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

Cuda threads per block with multiple GPU's

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

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

我想你问的是每个块的最大线程数,它存在于 per-GPU 基础上。这意味着即使您有两个 GPU,每个 GPU 每个块最多有 1024 个线程,块大小仍然保持不变。

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

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