我得到了不同大小的groupize的矢量加法器的执行时间,我在这个实验中只使用了一个组。
groupsize --------execution time
1 ----------------3.6
50 ---------------4.22
100 --------------4.3
200 --------------4.28
300 --------------4.3
400 --------------4.31
500 --------------4.38
600 --------------4.38
700 --------------4.78
800 --------------5.18
900 --------------5.78
1000 -------------6.4
我可以得出结论一个sm可以一起工作大约600个工作项吗? 我有一些问题,任何人都可以帮助我吗?
为什么当groupsize从1增加到50以及从600增加到1000时,执行时间会急剧增加?
非常感谢
答案 0 :(得分:1)
查看内核和主机入队参数的一些代码会很有帮助。结论还取决于您运行的硬件类型 - GPU,CPU,加速器,FPGA ......?
一些想法:
local
记忆或障碍相互协调。 (问题是embarrassingly parallel。)理论上,组大小为1允许编译器,驱动程序和硬件最大限度地灵活地将工作项最佳地分配给线程和并行执行单元。因此,这是最快的,这不足为奇。 (根据寄存器压力和内存访问模式,在令人尴尬的并行情况下手动增加特定类型硬件的组大小有时会有所帮助。)