GPU cuda代码可以在多个GPU卡上运行而无需任何实现吗?

时间:2018-12-23 21:40:51

标签: c++ cuda gpu

我已经有一个基于GPU CUDA C ++的代码,可以在单个NVIDIA图形卡上很好地工作。是否可以通过添加新的NVIDIA卡并在2个GPU卡(旧的和新的)上运行代码来加快计算速度? 我的意思是我需要编写任何新代码来使当前代码准备好在两个GPU卡上运行,还是不需要任何新实现就可以工作?

1 个答案:

答案 0 :(得分:1)

不,不能。大多数设备控制代码(例如内核启动,cudaMalloc和cudaMemcpy)都针对一台特定设备,您需要使用cudaSetDevice来指定要执行的设备,例如:

for (i = 0; i < gpuCount; i++)

{
    cudaSetDevice(i);

    cudaMemcpy(...)

    some_kernel_func<<...>>> (...)        

}