GMOD: a dynamic GPU memory overflow detector

GMOD: a dynamic GPU memory overflow detector
复制标题

DOI:
10.1145/3243176.3243194
复制
发表时间:
2018-11
期刊:
Proceedings of the 27th International Conference on Parallel Architectures and Compilation Techniques
影响因子:
--
通讯作者:
Bang Di;Jianhua Sun;Dong Li;Hao Chen;Zhe Quan
Bang Di;Jianhua Sun;Dong Li;Hao Chen;Zhe Quan
中科院分区:
其他
文献类型:
--
作者:
Bang Di;Jianhua Sun;Dong Li;Hao Chen;Zhe Quan

文献摘要

被引文献

相似文献

GPU 中丰富的线程级并行性促进了在单个 GPU 上共同运行 GPU 内核。然而,当 GPU 内核共同运行时,内核可能会利用缓冲区溢出来攻击在同一 GPU 上运行的另一个内核。旨在检测 GPU 缓冲区溢出的工作非常有限。现有的工作要么具有较大的性能开销,要么检测缓冲区溢出的能力有限。在本文中,我们介绍了 GMOD,一个检测 GPU 缓冲区溢出的运行时软件系统。 GMOD 基于基于金丝雀的设计对动态分配的缓冲区执行始终在线的监视。 GMOD引入了一组字节数组来存储缓冲区信息以进行缓冲区溢出检测。为了实现高性能,GMOD 引入了多种技术,例如对字节数组的无锁访问、高性能内存释放的延迟内存释放以及字节数组的高效内存重新分配和垃圾收集。我们的实验表明,GMOD 能够在运行时检测缓冲区溢出,并且运行时开销很小(平均为 2.9%,最高可达 9.1%)。
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%).