首页|基于Profiling信息的GPU程序性能瓶颈自动化分析与优化

基于Profiling信息的GPU程序性能瓶颈自动化分析与优化

秦晓宇

基于Profiling信息的GPU程序性能瓶颈自动化分析与优化

秦晓宇1
扫码查看

作者信息

  • 1. 山东大学
  • 折叠

摘要

近年来,GPU以超高的数据处理速度和质量在学术界和工业界获得了大量的关注。为了使应用程序能够更好地利用GPU资源,NVIDIA提供了涵盖各个领域常用功能的高度封装的库函数便于用户使用,然而由于其不开源的特性,用户无法对库函数进行编辑从而实现更为复杂的任务需求。所以,在开发者自主编写GPU程序的过程中,如何充分使用GPU硬件资源也是学术界重点研究的课题之一。因此,开发者想要编写优质的CUDA核函数在GPU上运行,不仅需要了解GPU架构、指令集等硬件基础,还需要通过GPU程序的Profiling信息对CUDA内核进行性能分析,以便寻找核函数可能存在的性能瓶颈和优化空间。 本篇论文借助Nsight Compute获取CUDA内核的profiling信息,将指令通道利用率、warp状态等性能参数与源码和SASS汇编代码相结合,分析CUDA核函数可能存在的性能瓶颈并对其进行相应的优化。本文在Turing和Ampere架构上,探索了不同领域的CUDA核函数对SM上各类资源的占有情况,设计自动化算法根据profiling信息判定不同类型的性能瓶颈,给出核函数存在的计算资源浪费问题或过于消极的编译问题。对于上述性能瓶颈,本文给出了使用混合精度计算指令代替单一类型计算指令和手动消除编译问题的优化方案,通过删除不必要的指令、增加指令之间的隐藏掩盖和分担部分指令模块的负担等方式,来减缓存在性能瓶颈的指令通道的阻塞状况,尽可能地平衡或者最大化各个指令通道的利用率,从而实现GPU程序性能的提升。 本文主要使用了Rodinia基准测试集中的程序来进行实验验证,结果表明通过优化可以使程序性能在Turing和Ampere上获得最大5.06x、5.79x的提升,平均获得1.76x、1.96x的提升,也验证了本文提出的自动化性能瓶颈的检测和优化方案的有效性和可行性。

关键词

图形处理器/性能瓶颈/自动化分析/动态信息

引用本文复制引用

授予学位

硕士

学科专业

软件工程

导师

鞠雷

学位年度

2021

学位授予单位

山东大学

语种

中文

中图分类号

TP
段落导航相关论文