关于CUDA程序的grid和block size选择

2020-07-26  本文已影响0人  fantasy5328

疑问

之前一直不太明白的一点:在thread总数确定的情况下,grid size(block number) 和block size(thread number per block)如何组合?
比如说想在8个SM上跑10248个thread,那可以81024,也可以16512,或32256,如何选择最佳?

Background

首先明确GPU软硬件的一些情况:

一些发现

总结

在需要满足最高的吞吐量时,尽量满足SM的最大thread数量,同时block数量尽量少。
举例:SM最大thread:2048;block最大thread:1024.
这时就尽量安排每个SM 2个block,每个block1024个线程。当然还要满足register、shared memory的要求。

附:

最大寄存器限制

上一篇下一篇

猜你喜欢

热点阅读