ITPub博客

首页 > Linux操作系统 > Linux操作系统 > CUDA优化之指令优化

CUDA优化之指令优化

原创 Linux操作系统 作者:yyfn风辰 时间:2010-07-08 19:44:41 0 删除 编辑
3.9 指令优化
        各种指令有不同的执行时间,这样要更快的速度可尽量使用占用时间少的指令,比如x *= 2; 最好写成x += x;因为乘法的占用的时间比加法多,但是这个并不明显,因为在现代处理器上乘法的效率已经和加法差不多了。要注意的是除法和模余,它们占用的时间远大于加法,要尽量少使用。另外一些超越函数占用的时间更长,为此CUDA提供了超越函数的更快版本,更快的代价是精度损失。所以在速度远比精度重要的情况下,可以使用,但是如果精度比较重要的话,就要注意了。

3.9.1 寄存器依赖
        在程序的一些部分,我们经常要存取数据,如果在后面的比较近的指令中要读取这个数据,此时就要等到这个数据存取完成,这就是寄存器依赖,其后果就是由于要等待导致的性能损耗。这种损耗往往可以通过重新安排程序的语句减弱。

3.10 分支优化
        在CUDA中,分支会极大的减弱性能,因为SM没有分支预测,因此只能让束内线程在每个分支上都执行一遍,当然如果某个分支没有线程执行,就可以忽略,因此要减少分支的数目。但是在实践中很多时候分支是没有办法减少的。此时目前还没有好的解决方案。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/23057064/viewspace-667614/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-12-21

  • 博文量
    28
  • 访问量
    128593