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 并行化程序? [关闭]