GPGPU OpenCL/CUDA 高性能编程的10大注意事项

AMD异构开发 2014-04-01 03:36:01
为大家推荐一篇文章,关于GPGPU OpenCL/CUDA 高性能编程的10大注意事项的。
我把10个注意事项的每个部分的标题发在这里了,具体的内容大家可以访问以下链接:http://hc.csdn.net/contents/content_details?type=1&id=341

1.展开循环
2.避免处理非标准化数字
3.通过编译器选项传输常量基本类型数据到kernel,而不是使用private memory
4.如果共享不重要的话,保存一部分变量在private memory而不是local memory
5.访问local memory应避免bank conflicts
6.避免使用”%“操作
7.kernel中重用(Reuse) private memory,为同一变量定义不同的宏
8.对于(a*b+c)操作,尽量使用 fma function
9.在program file 文件中对非kernel的函数使用inline
10.避免分支预测惩罚,应该尽量使得条件判断为真的可能性大

更多精彩内容,尽在异构开发技术社区。欢迎访问并一起讨论!
...全文
840 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
allentate 2015-07-01
  • 打赏
  • 举报
回复
很好,好强大。谢谢
zenny_chen 2014-04-05
  • 打赏
  • 举报
回复
随着GPU自身不断发展,其实有些优化措施对于更新的GPU而言,效果越来越小了,呵呵。比如Bank confliction,在GeForce 9400上有一对bank confliction的性能影响还是比较明显的,而到了Fermi架构,这种差距就减小不少。
lcwyylcwyy 2014-04-02
  • 打赏
  • 举报
回复
这篇文章的很多建议,在编程实践中非常重要,好文!
lcwyylcwyy 2014-04-02
  • 打赏
  • 举报
回复
循环展开,有时候在CUDA中可以用#pragma unroll

604

社区成员

发帖
与我相关
我的任务
社区描述
异构开发技术
社区管理员
  • OpenCL和异构编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧