发明名称 |
一种基于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号北京大学 |