请问线程块的大小和块内线程数目取多少才能充分发挥GPU的性能

是不是线程块的大小为GPU核心数目的2倍以上,块内线程数目是16的整数倍且大于64是比较好的选择

楼主您好:

关于您的"是不是线程块的大小为GPU核心数目的2倍以上"的看法, 我的意见是:
(1)Block Size和SM的数目的2倍没有任何关系. 例如, 一般人常用的Block Size, 并非需要在GTX460(7 SM)上就一定是GT430(2 SM)上的3.5倍.
(2)由于硬件限制每个SM上只能同时驻留8个blocks. 我建议在支持最大驻留线程数量为1536 Threads per SM的fermi硬件上, 不要使用<192 threads的block size, 否则您无法达到1的occupancy, 也就是说, 您的一个SM上可能没有足够的warps用来切换, 以满足掩盖global访问延迟等问题.

祝您工作快乐!

[ 本帖最后由 悠闲的小猫 于 2011-6-8 12:56 编辑 ]