DrGPUM: Guiding Memory Optimization for GPU-Accelerated Applications

DrGPUM: Guiding Memory Optimization for GPU-Accelerated Applications
复制标题

DOI:
10.1145/3582016.3582044
复制
发表时间:
2023-03
期刊:
Proceedings of the 28th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 3
影响因子:
--
通讯作者:
Mao Lin;K. Zhou;Pengfei Su
Mao Lin;K. Zhou;Pengfei Su
中科院分区:
其他
文献类型:
--
作者:
Mao Lin;K. Zhou;Pengfei Su

文献摘要

相似文献

GPU广泛用于当今的计算平台,以加速各个领域的应用程序。然而,稀缺的GPU内存资源往往是增强GPU计算适用性的主要限制因素。在本文中,我们提出了DrGPUM,第一个分析器,系统地调查GPU加速应用程序中的内存效率低下的模式。与现有的一大类GPU分析器相比,DrGPUM的优势在于它能够(1)将有问题的内存使用与数据对象和GPU API相关联,(2)识别和分类对象级和对象内内存效率低下,以及(3)提供丰富的见解来指导内存优化。DrGPUM可在完全优化和未经修改的GPU二进制文件上工作,不需要修改硬件或操作系统,并具有用户友好的GUI,这使得它在生产中使用具有吸引力。我们的评估与知名的基准测试和应用程序显示DrGPUM的有效性,在确定内存效率低下,适度的开销。消除这些低效率只需要不到9行的源代码修改,就可以显著降低峰值内存使用率(高达83%)和/或显著提高性能(高达2.48倍)。我们的优化补丁已得到应用程序开发人员的确认,并已上传到他们的存储库。
GPUs are widely used in today’s computing platforms to accelerate applications in various domains. However, scarce GPU memory resources are often the dominant limiting factor in strengthening the applicability of GPU computing. In this paper, we propose DrGPUM, the first profiler that systematically investigates patterns of memory inefficiencies in GPU-accelerated applications. The strength of DrGPUM, when compared to a large class of existing GPU profilers, is its ability to (1) correlate problematic memory usage with data objects and GPU APIs, (2) identify and categorize object-level and intra-object memory inefficiencies, and (3) provide rich insights to guide memory optimization. DrGPUM works on fully-optimized and unmodified GPU binaries, requires no modification to hardware or OS, and features a user-friendly GUI, which makes it attractive to use in production. Our evaluation with well-known benchmarks and applications shows DrGPUM’s effectiveness in identifying memory inefficiencies with moderate overhead. Eliminating these inefficiencies requires less than nine source lines of code modifications and yields significant reductions in peak memory usage (up to 83%) and/or significant performance improvements (up to 2.48×). Our optimization patches have been confirmed by application developers and upstreamed to their repositories.