相关疑难解决方法(0)

将cudaMalloc同步主机和设备?

我知道cudaMemcpy会同步主机和设备,但cudaMalloc或cudaFree怎么样?

基本上我想在多个GPU设备上异步内存分配/复制和内核执行,我的代码的简化版本是这样的:

void wrapper_kernel(const int &ngpu, const float * const &data)
{
 cudaSetDevice(ngpu);
 cudaMalloc(...);
 cudaMemcpyAsync(...);
 kernels<<<...>>>(...);
 cudaMemcpyAsync(...);
 some host codes;
}

int main()
{
 const int NGPU=3;
 static float *data[NGPU];
 for (int i=0; i<NGPU; i++) wrapper_kernel(i,data[i]);
 cudaDeviceSynchronize();
 some host codes;
}
Run Code Online (Sandbox Code Playgroud)

但是,GPU按顺序运行,无法找到原因.

cuda

5
推荐指数
1
解决办法
2450
查看次数

标签 统计

cuda ×1