CUDA 版本 10.1。帕斯卡 GPU。所有命令都发送到默认流:
void * ptr;
cudaMalloc(&ptr, ...);
launch_kernel<<<...>>>(ptr);
cudaDeviceSynchronize(); // Is this required?
cudaFree(ptr);
Run Code Online (Sandbox Code Playgroud)
答案是否会改变cudaMallocManaged()?
一些 CUDA API 调用(例如cudaMalloc(), cudaFree(), cudaHostAlloc()设备到设备复制等)会更改 GPU 的虚拟内存地址映射。这些调用正在导致设备同步,因此您不需要调用,cudaDeviceSynchronize()因为它已经在同步。
同样的情况也发生在cudaMallocManaged().
| 归档时间: |
|
| 查看次数: |
842 次 |
| 最近记录: |