cuCatch: A Debugging Tool for Efficiently Catching Memory Safety Violations in CUDA(…)
summary
cuCatch implements compiler-added read-metadata and safety-check instructions plus a runtime PST and two-level shadow map to retrieve per-allocation base, size and a random tag, enabling spatial and temporal checks without changing ABIs. A prototype on an RTX 2080 Ti shows a 19% geometric mean slowdown, catches >70% detection coverage on a CUDA bug suite (versus 35% for compute-sanitizer and 42% for GPU Shield), runs one to three orders of magnitude faster than compute-sanitizer, and supports global, shared and local memory.
AI-written summary · about
chapters (13)
- 0:00Introduction to cuCatch
- 1:47Memory safety errors on GPUs
- 3:32Limitations of GPU tools
- 4:57Shadow tag and bounds algorithm
- 7:51Runtime memory safety validation
- 9:15Compiler pointer analysis
- 11:23Error detection coverage
- 13:31Performance overhead
- 15:57Advantages over alternatives
- 16:19Q&A: CPU vs GPU tools
- 18:28Q&A: Real-world errors detected
- 19:31Q&A: Benchmark suite plans
- 20:14Q&A: Higher coverage reasons
related talks
55m“Modern C++ Testing with Catch2”
45mModern C++ testing with Catch2
49mCatching up with Catch2: Changes recent and future
01h 07mTestdriven C++ with Catch
58mTest Driven C++ with Catch
55mUsing the Valgrind Framework to Build a Persistent Memory Error Detector
24mStatic analysis for concurrent C++ in Visual Studio
59mUnder-approximation for Scalable Bug Detection
