paperbot · PL 论文追踪

全部论文 待读 收藏

P2 cuCatch: A Debugging Tool for Efficiently Catching Memory Safety Violations in CUDA Applications

cuCatch:一种高效捕获 CUDA 应用程序内存安全违规的调试工具
PLDI 7(PLDI)2023匹配度 2/10 · 该论文是 CUDA 内存安全动态检测/调试工具,属于程序分析与系统领域,但与用户核心方向(PL 与 AI/LLM 结合、静态分析、Agentic 程序、浮点程序分析、贝叶斯程序分析)几乎没有直接交集。它不涉及 LLM/Agent,也不是浮点或贝叶斯分析,因此匹配度较低。引用 15 inbox
Mohamed Tarek Ibn Ziad, Sana Damani, Aamer Jaleel, Stephen W. Keckler, Mark Stephenson
crossref: 2026-09-10

AI 速览

一句话:提出面向 CUDA 的内存安全检测工具 cuCatch,用编译器插桩与驱动支持低开销捕获时空违规。

CUDA、OpenCL 和 OpenACC 是 NVIDIA GPU 通用计算的主要编程方式,但同样面临 C/C++ 中常见的内存安全漏洞;GPU 执行环境具有多个不同内存空间和成千上万并发线程,且防护机制较少,直接移植 CPU 方案困难。本文提出 cuCatch,一种专为 CUDA 编程模型设计的内存安全错误检测工具。它结合优化的编译器插桩与驱动支持,实现一种可捕获空间和时间内存安全错误的新算法。在大量 GPU 应用上的实验表明,cuCatch 平均仅带来 19% 运行时开销,比当前最先进的 GPU 调试工具快数个数量级,同时具有更高的错误检测覆盖率,适合加速 GPU 应用的内存安全调试。

问题
CUDA 等 GPU 编程模型存在内存安全漏洞,但 GPU 的多内存空间、大量并发线程和较少防护机制使 CPU 内存安全方案难以直接移植。
方法
cuCatch 结合优化的编译器插桩与驱动支持,实现面向 CUDA 的空间和时间内存安全错误检测算法。
评估
在广泛的 GPU 应用上评估,平均运行时开销为 19%,比现有 GPU 调试工具快数个数量级,并具有更高的错误检测覆盖率。
原文摘要(Abstract)

CUDA, OpenCL, and OpenACC are the primary means of writing general-purpose software for NVIDIA GPUs, all of which are subject to the same well-documented memory safety vulnerabilities currently plaguing software written in C and C++. One can argue that the GPU execution environment makes software development more error prone. Unlike C and C++, CUDA features multiple, distinct memory spaces to map to the GPU’s unique memory hierarchy, and a typical CUDA program has thousands of concurrently executing threads. Furthermore, the CUDA platform has fewer guardrails than CPU platforms that have been forced to incrementally adjust to a barrage of security attacks. Unfortunately, the peculiarities of the GPU make it difficult to directly port memory safety solutions from the CPU space. This paper presents cuCatch, a new memory safety error detection tool designed specifically for the CUDA programming model. cuCatch combines optimized compiler instrumentation with driver support to implement a novel algorithm for catching spatial and temporal memory safety errors with low performance overheads. Our experimental results on a wide set of GPU applications show that cuCatch incurs a 19% runtime slowdown on average, which is orders of magnitude faster than state-of-the-art debugging tools on GPUs. Moreover, our quantitative evaluation demonstrates cuCatch’s higher error detection coverage compared to prior memory safety tools. The combination of high error detection coverage and low runtime overheads makes cuCatch an ideal candidate for accelerating memory safety debugging for GPU applications.

链接与引用

DOI 原文 · PDF(开放获取) ·

BibTeX
@article{paperbot2009,
  title = {cuCatch: A Debugging Tool for Efficiently Catching Memory Safety Violations in CUDA Applications},
  author = {Mohamed Tarek Ibn Ziad and Sana Damani and Aamer Jaleel and Stephen W. Keckler and Mark Stephenson},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {7},
  number = {PLDI},
  year = {2023},
  doi = {10.1145/3591225}
}