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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GPU cuda代码可以在多个GPU卡上运行而无需任何实现吗?相关的知识,希望对你有一定的参考价值。

我已经有一个基于GPU CUDA C ++的代码,可以在单个NVIDIA显卡上运行良好。是否可以通过添加新的NVIDIA卡并在2张GPU卡(旧的和新的)上运行代码来加速计算?我的意思是我是否需要编写任何新代码以使当前代码可以在两个GPU卡上运行,或者它可以在没有任何新实现的情况下工作?

答案

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

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

{
    cudaSetDevice(i);

    cudaMemcpy(...)

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

}

以上是关于GPU cuda代码可以在多个GPU卡上运行而无需任何实现吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何编写可在任何 GPU 上运行的 GPU 并行化程序? [关闭]

CUDA 学习(十三)全局内存

多 GPU 分析(多个 CPU,MPI/CUDA 混合)

Cuda中的多个GPU - 之前的工作代码,但不再是

无需硬件即可进行 CUDA 编程的 GPU 模拟器 [关闭]

如何知道 CAFFE 代码是使用 GPU 还是 CUDA 代码运行?