CUDA 版本 10.1。帕斯卡 GPU。所有命令都发送到默认流:
void * ptr;
cudaMalloc(&ptr, ...);
launch_kernel<<<...>>>(ptr);
cudaDeviceSynchronize(); // Is this required?
cudaFree(ptr);
答案是否会改变cudaMallocManaged()
?
一些 CUDA API 调用,例如cudaMalloc(), cudaFree(), cudaHostAlloc()
、设备到设备复制等更改 GPU 的虚拟内存地址映射。这些调用会导致设备同步,因此您无需调用cudaDeviceSynchronize()
因为它已经在同步了。
同样的情况也发生在cudaMallocManaged()
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)