发明名称 一种基于CUDA并行环境的GPU程序优化方法
摘要 本发明涉及一种基于CUDA并行环境的GPU并行程序优化方法,定义了GPU程序内核的性能瓶颈,根据级别包括全局储存器访问延迟、共享存储器访问冲突、指令流水线冲突、指令瓶颈。并为每个性能瓶颈提出实际可操作的判定标准和瓶颈优化解决方法:全局储存器访问延迟优化方法:转存共享存储器、访问归并、提高线程级并行度、提高指令级并行度;共享存储器访问冲突和指令流水线冲突优化方法:解决bank conflict,转存寄存器、提高线程级并行度、提高指令级并行度;指令瓶颈:指令替换和减少分支。本发明为CUDA程序编写和优化提供依据,帮助程序编写者方便得找到CUDA程序中的性能瓶颈,并针对性能瓶颈做出高效有针对性的优化,使得CUDA程序可以更大限度的发挥GPU设备的计算能力。
申请公布号 CN102981807A 申请公布日期 2013.03.20
申请号 CN201210444220.4 申请日期 2012.11.08
申请人 北京大学 发明人 孟洋;李胜;汪国平
分类号 G06F9/38(2006.01)I 主分类号 G06F9/38(2006.01)I
代理机构 北京君尚知识产权代理事务所(普通合伙) 11200 代理人 冯艺东
主权项 一种基于CUDA并行环境的GPU程序优化方法,其步骤包括:1)根据CUDA上的程序分析工具对GPU程序进行检测,得到程序需求占有率并判断此时程序是否存在全局存储器访问瓶颈,同时对所述全局存储器访问瓶颈进行消除,进入步骤2);2)根据共享存储器中bank‑conflicts访问冲突的数目判断所述步骤1)的GPU程序中是否存在共享存储器访问瓶颈,同时消除所述共享存储器访问瓶颈和新生成的全局存储器访问瓶颈,进入步骤3);3)使用CUDA的程序分析工具在所述步骤2)的GPU程序提取出性能参数,判断是否存在流水线指令执行依赖瓶颈并消除该指令流水线冲突,得到实际IPC可达到指令瓶颈IPC的GPU程序进入步骤4);4)在所述步骤3)中若GPU程序实际IPC达到指令瓶颈IPC,则进行指令瓶颈优化处理;5)重复遍历以上步骤1)—4),直至所述GPU程序不存在上述步骤2)‑4)中的任意一项瓶颈,完成GPU程序优化。
地址 100871 北京市海淀区颐和园路5号北京大学