Abstract | ||
---|---|---|
Rich thread-level parallelism in GPU has motivated co-running GPU kernels on a single GPU. However, when GPU kernels co-run, it is possible that a kernel can leverage buffer overflow to attack another kernel running on the same GPU. There is very limited work aiming to detect buffer overflow for GPU. The existing work has either large performance overhead or limited capability to detect buffer overflow.
In this paper, we introduce GMOD, a runtime software system that detects GPU buffer overflow. GMOD performs always-on monitoring on dynamically allocated buffers based on a canary-based design. GMOD introduces a set of byte arrays to store buffer information for buffer overflow detection. To enable high performance, GMOD introduces several techniques, such as lock-free accesses to the byte arrays, delayed memory free for high performance memory free, and efficient memory reallocation and garbage collection for the byte arrays. Our experiments show that GMOD is capable of detecting buffer overflows at runtime and has small runtime overhead (2.9% on average and up to 9.1%).
|
Year | DOI | Venue |
---|---|---|
2018 | 10.1145/3243176.3243194 | PACT |
Keywords | Field | DocType |
Buffer Overflows, CUDA, GPU, High Performance | Kernel (linear algebra),Delayed Memory,Byte,CUDA,Computer science,Parallel computing,Software system,Garbage collection,Detector,Buffer overflow | Conference |
ISBN | Citations | PageRank |
978-1-4503-5986-3 | 2 | 0.36 |
References | Authors | |
18 | 5 |