|国家预印本平台
首页|一种快速安全的GPU堆分配器

一种快速安全的GPU堆分配器

Fast and Secure GPU Memory Allocator

中文摘要英文摘要

图形处理单元(GPUs)广泛应用于在诸多领域中执行通用计算,例如科学计算,深度学习。为了在GPU编程中提供更大的灵活性,在GPU编程框架(如CUDA)中引入了动态内存分配。然而,CUDA提供的动态内存分配器在高并发环境下效率低下。因此,最近有研究提出了几种动态内存分配器来增强动态内存管理的性能。但是,这些分配器只关注实现更高的性能,却忽略了安全问题。在本文中,我们基于ScatterAlloc提出了一种快速安全的GPU内存分配器。为了有效地防止缓冲区溢出等内存攻击,分配器由几种关键技术组成,包括基于canary的内存保护(提供两种选项,如释放时检测和实时监测),地址压缩和over-provisioning。实验结果表明,分配器可以有效地检测缓冲区溢出错误,同时它具有比CUDA工具包提供的分配器快约100倍的性能。

Graphics Processing Units (GPUs) is widely used to perform general purpose computing in many areas such as scientific computing and deep learning. In order to offer more flexibility in GPU programming, dynamic memory allocation has been introduced in GPU programming frameworks suchas CUDA. However, the dynamic memory allocator in CUDA is inefficient in highly concurrent environments. Thus, several dynamic memory allocators are recently proposed to enhance the performance of dynamic memory management. However, these allocators only focus on achieving higher performance but ignore the security issues. In this paper, we propose a fast and secure GPU memory allocator based on ScatterAlloc. In order to efficiently protect against memory attacks such asbuffer overflows, our allocator consists of several key techniques including canary-based memory protection (two options such as detection-on-free and always-on-detection are provided), address compression, and over-provisioning. Experimental results show that the allocator can effectively detect buffer overflow errors while it is still approximately 100 times faster than the CUDA toolkit allocator.

吴江、陈浩

计算技术、计算机技术

软件工程动态内存分配UDA缓冲区溢出GPGPU

Software engineeringDynamic Memory AllocationCUDABuffer OverflowGPGPU

吴江,陈浩.一种快速安全的GPU堆分配器[EB/OL].(2019-04-04)[2025-08-16].http://www.paper.edu.cn/releasepaper/content/201904-82.点此复制

评论