我可以在CUDA GPU上使用多少块和线程

时间:2018-05-12 19:06:45

标签: python vector cuda gpu numba

我得到了关于为cuda编程设置线程数和块数的正确值的混淆读物。在阅读了几个指南和许多提示后,我没有得到我搜索的答案。 我的GPU:Nvidia GT645M 计算能力:3.0

据我所知:
每个块的最大线程数在我的情况下为1024(32 x 32)
在我的情况下,网格中的最大块数为2 ** 31 - 1 = 4294967295块
多处理器计数= 2
块的数量取决于输入数据=(输入数据)/(每块的线程数)
对于像[1,2,...... 10] + [1,2,...... 10]这样的输入数据,我需要10个线程和1个块。

我的计算问题:
例如,我有这样的输入数据:

git rev-parse --show-toplevel

我尝试对此向量进行操作,如: ' +',' - ',' *'按价值

问题1:
我的知识:
GPU cuda计算的工作方式如下:
对于numpy数组中的每个值 - > cuda块与一个线程一起使用。

我的意思是 (x = [0,1,...... 9])+(y = [1,2,...... 10])= x [0] + y [0] in:block(0,0),螺纹(0,0),
 那么x [1] + y [1] in:block(0,0),thread(1,0)等等。

这是对的吗?

问题2:
让我们说: 线程数= 5
块数= 1

那么这一个块中的所有线程都将运行2次x + y?

问题3:
一次可以同时运行多少个块?

如果您可以通过简单的矢量示例解释cuda上的逐步计算,那将很好。

感谢您的帮助,请不要给cuda指南任何链接,我会感到困惑,阅读它们。请举例说明:)

0 个答案:

没有答案