咨询与建议

看过本文的还看了

相关文献

该作者的其他文献

文献详情 >基于访存特征分析的GPU程序数据布局及性能优化技术研究 收藏
基于访存特征分析的GPU程序数据布局及性能优化技术研究

基于访存特征分析的GPU程序数据布局及性能优化技术研究

作     者:赵彦博 

作者单位:山东大学 

学位级别:硕士

导师姓名:李新

授予年度:2022年

学科分类:08[工学] 081201[工学-计算机系统结构] 0812[工学-计算机科学与技术(可授工学、理学学位)] 081202[工学-计算机软件与理论] 

主      题:异构计算 程序性能分析 高速缓存 存储结构 GPGPU 

摘      要:近年以来,随着半导体行业工艺与材料学的前沿发展的大幅推进,芯片的计算性能在短时间以内获得了极大的提升,传统计算需求如流体力学模拟与新兴计算需求如人工智能模型训练与推理等都受益于芯片性能的大幅度提升。NVIDIA与AMD、Intel、Xilinx等诸多厂商与开源社区也对各种芯片的驱动软件与上层工业软件进行了长期的开发与优化使得普通开发人员使用各种芯片进行计算加速不再艰难,如CUDA,HIP,OpenCL,OpenMP,MKL等计算库。但是如何更好地编写GPGPU程序已经成为了目前最主要的挑战,而如cuDNN,cuBlas等将计算需求高度封装并优化开发的GPU加速库则会带来程序开发的灵活性上的问题。如今业界的程序性能分析工具大多由NVIDIA公司开发,如Nvprof、nvvp等工具;为了更加精确地在新架构下分析程序具体在每种硬件中的执行情况,NVIDIA开发了 Nsight系列程序性能分析套件,如Nsight Compute、Nsight System等。而为了方便程序员进行更加深度的性能分析,NVIDIA也在驱动层面开放了许许多多的二进制分析库,如NVbit,CUDA Sanitizer等工具;为程序员更加精细的对程序性能进行优化提供了理论与实践的基础。广大的GPGPU体系结构研究人员则基于上述的工具基础开发了许多的第三方程序性能分析工具,如HPCtoolkit与GVProf等。本篇论文主要分为两个GPGPU的性能优化方向:一为CUDA程序指令与GPU计算架构的协同设计与优化,主要表现为一个基于Nsight Compute提供的程序性能报告与NVIDIA官方手册提供的具体GPU架构信息综合而成的程序计算性能优化方案;二为CUDA程序访存特征与GPU存储架构的协同设计与优化,主要手段是通过CUDA sanitizer API 提供的 kernel memory 信息结合 HPCtoolkit 与 GVProf 等 profiling 工具获取并分析CUDA程序的访存特征,然后根据具体的GPU存储架构与GPU存储详细实现信息进行GPU的Cache系统的性能建模,且使用Sampling等方案进行访存方案特征检测的Overhead优化,最终使用Ampere架构下NVIDIA提供的高速缓存持久化接口对所有SM共享的L2高速缓存进行数据布局方案探索。本篇论文主要使用了 Rodinia、PolybenchGPU等性能测试套件与CUDA SDK以及CUDA Best Practices Guide等提供的程序进行实验验证,结果表明通过指令方面的优化可以使程序性能在RTX3090与Jetson Xavier中获得1.5x-36x的执行时间加速;通过访存方面的优化在RTX3090中获得了 5%-50%的存储读写流量降低,也验证了本文提出的数据布局与性能优化框架的有效性。

读者评论 与其他读者分享你的观点

用户名:未登录
我的评分