我已经有一个基于GPU CUDA C ++的代码,可以在单个NVIDIA图形卡上很好地工作。是否可以通过添加新的NVIDIA卡并在2个GPU卡(旧的和新的)上运行代码来加快计算速度? 我的意思是我需要编写任何新代码来使当前代码准备好在两个GPU卡上运行,还是不需要任何新实现就可以工作?
答案 0 :(得分:1)
不,不能。大多数设备控制代码(例如内核启动,cudaMalloc和cudaMemcpy)都针对一台特定设备,您需要使用cudaSetDevice来指定要执行的设备,例如:
for (i = 0; i < gpuCount; i++)
{
cudaSetDevice(i);
cudaMemcpy(...)
some_kernel_func<<...>>> (...)
}