优化有关寄存器的 CUDA 内核
我正在使用 CUDA 占用计算器来尝试优化我的 CUDA 内核。目前我使用 34 个寄存器和零共享内存...因此,每块 310 个线程的最大占用率为 63%。当我可以以某种方式将寄存器(例如通过共享内存传递内核参数)更改为 20 或更低时,我可以获得 100% 的占用率。这是一个好方法吗?还是您建议我使用另一种优化方法?
此外,我还想知道计算能力 2.1 的占用率计算器是否有更新版本!?
I'm using the CUDA Occupancy calculator to try to optimize my CUDA kernel. Currently I'm using 34 registers and zero shared memory...Thus the maximum occupancy is 63% for 310 Threads per block. When I could somehow change the registers (e.g. by passing kernel parameters via shared memory) to 20 or below I could get an occupancy of 100%. Is this a good way to do it or would you advise me to use another path of optimizing?
Further I'm also wondering if there's a newer version of the occupancy calculator for Compute Capability 2.1!?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
需要考虑的一些要点:
Some points to consider:
talonmies 是正确的,入住率被高估了。
Vasily Volkov 在 GTC2010 上就此主题做了精彩演讲:“以更低的占用率实现更好的性能”。
http://www.cs.berkeley.edu/~volkov/volkov10-GTC .pdf
talonmies is correct, occupancy is overrated.
Vasily Volkov had a great presentation at GTC2010 on this topic: "Better Performance at Lower Occupancy."
http://www.cs.berkeley.edu/~volkov/volkov10-GTC.pdf