CUDA-lite:为减低GPU编程的复杂性而生[1]

作者中有大名鼎鼎的胡文美教授,这篇文章算是GPU程序自动调优的一篇很经典的文章。不得不赞叹写文章的人的功夫,文章写得非常明了,看得人很舒服,好评:)

文章的motivation是觉得GPU的global memory如果coalescing之后程序性能会得到很大的提升(和N卡自带的属性有关)。然后作者就做了一个源到源编译器CUDA-lite专门针对global memory的coalescing优化(专注于一个点,值得学习)。具体流程是如果用户要对一个数组a[]进行操作,CUDA-lite会自动转换成以下步骤:建立两个shared memory数组b[]和c[],先把a[]拷进b[]中(coalescing),然后对b[]进行处理之后的结果放进c[],最后由c[]拷进global memory中(coalescing)。这样要比直接对在global memory中的a[]进行读写操作性能要好得多。

实验也是做得非常好,选了两个现实的程序(这点没得黑,详见上一篇的评论)和一个简单的基本程序。CUDA-lite的优化结果也是非常的6,能和手动调优的版本55开。

看完这篇文章的感想是,源到源编译器还是挺有用的(实现自动调优),但是优化的点和角度很需要研究研究,不能太泛太多(顾不全也做不好),也不好做前人已经做烂的点,最好是可以解决某一类的程序并且解决的效果不错。哎哎,还是得多看paper,任重而道远呀。。。


参考:

[1] Ueng S Z, Lathara M, Baghsorkhi S S, et al. CUDA-lite: Reducing GPU programming complexity[M]//Languages and Compilers for Parallel Computing. Springer Berlin Heidelberg, 2008: 1-15.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值