Proceedings of the ACM on Programming Languages · 2023 · 11 citations · 23 references
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.
23
Nicholas Nethercote, Julian Seward · 2007 · 2.2K citations
Engineering, Computer Architecture, Software Engineering +18
Steven G. Parker, James Bigler, Andreas Dietrich et al. · ACM Transactions on Graphics · 2010 · 653 citations
László Szekeres, Mathias Payer, Tao Wei et al. · 2013 · 640 citations · Full text
Engineering, Information Security, Memory Model (Programming) +21
Santosh Nagarakatte, Milo M. K. Martin, Steve Zdancewic · 2009 · 520 citations
Auto-tuning a high-level language targeted to GPU codes
Scott Grauer-Gray, Lifan Xu, Robert Searles et al. · 2012 · 454 citations