具有多个GPU的每个块Cuda线程';s

具有多个GPU的每个块Cuda线程';s,cuda,nvidia,pycuda,Cuda,Nvidia,Pycuda,在一个大学项目中使用Cuda GPU编程,只是想知道如果你有2个GPU,一个GPU的块大小是否可能是1024,这是否意味着块大小是原来的两倍?这会影响程序的执行吗?您需要单独访问GPU吗?不,块大小不会加倍。块大小通常与GPU上每个流式多处理器的最大活动扭曲数有关。如果计划在多个GPU上编写程序,则每次调用任何CUDA运行时函数之前,都需要在代码中设置活动的GPU设备(通过cudaSetDevice())。每个GPU将分别异步运行其功能。我想您要问的是每个块的最大线程数,它是基于每个GPU存在的

在一个大学项目中使用Cuda GPU编程,只是想知道如果你有2个GPU,一个GPU的块大小是否可能是1024,这是否意味着块大小是原来的两倍?这会影响程序的执行吗?您需要单独访问GPU吗?

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

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

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

您可以查看更多关于技术规范的信息,例如每个块的线程数