具有多个GPU的每个块的Cuda线程

时间:2018-02-20 21:19:07

标签: cuda nvidia pycuda

在大学项目中使用Cuda GPU编程,只是想知道GPU是否有可能的块大小为1024,如果你有2个GPU&s;这是否意味着该块大小加倍?如果您需要单独访问GPU,这会影响程序的实现吗?

2 个答案:

答案 0 :(得分:1)

不,块大小不会加倍。块大小通常与GPU上每个Streaming Multiprocessor的最大活动warp数有关。如果您计划在多个GPU上编写程序,则需要在调用任何CUDA运行时函数之前每次在代码中设置活动GPU设备(通过cudaSetDevice())。每个GPU将分别和异步地运行其功能。

答案 1 :(得分:0)

我认为您要问的是每个块的最大线程数,这是基于每个GPU的。这意味着即使您有两个GPU,每个块最多1024个线程,块大小仍然是静态的。

所以回答你的问题,不,块大小不会翻倍。不幸的是,你仍然需要单独与每个GPU进行通信。

您可以查看有关技术规范的更多信息,例如每个块here.

的线程数