CUDA执行时间与块大小的比较

时间:2019-03-25 18:15:04

标签: cuda nvidia

目标很简单:使用CUDA绘制块大小对执行时间的影响。可以看到的是,对于32的倍数的每个块大小,执行时间是最低的,在这些倍数(例如33、65、97、129,...)之后,执行时间应该增加。但是,这不是我得到的结果。执行时间会下降,然后趋于平稳。 enter image description here

我正在NVIDIA GeForce 940M上运行CUDA运行时10.0。

我尝试了几种获取执行时间的方法。 CUDA文档中建议的一种表示以下方法应该起作用:

?mapview::addLogo

但是这种计时方式会产生前面提到的结果。

问题出在计时执行上吗?还是特定的GPU可能导致结果出现问题?

1 个答案:

答案 0 :(得分:1)

因此,这些线程块中的每个线程块都将转换为扭曲,并且随着每个线程块的线程数增加32,您每次都减少了发散线程的百分比。例如,如果您每个线程块启动33个线程,则每个线程块将具有1个经线,且所有32个通道均处于活动状态,而另一个线程束仅具有1个通道处于活动状态。因此,在每次测试增量时,您都不会增加发散的数量,而只是向该线程块添加了1个活动的扭曲。

如果您还没有正确扩展应用程序,则无论如何您都可以同时安排所有工作,因此对执行时间不会有任何影响。

希望这会有所帮助!