Memory management 在CudFree()之前是否需要CudDeviceSynchronize()?

Memory management 在CudFree()之前是否需要CudDeviceSynchronize()?,memory-management,cuda,Memory Management,Cuda,CUDA版本10.1。帕斯卡GPU。所有命令都会发送到默认流: 无效*ptr; cudaMalloc&ptr。。。; 启动内核ptr; cudaDeviceSynchronize;//这是必需的吗? cudaFreeptr; cudaMallocManaged是否会改变答案?一些CUDA API调用,如cudaMalloc、cudaFree、cudaHostAlloc、设备到设备拷贝等。更改GPU的虚拟内存地址映射。这些调用会导致设备同步,因此您不需要调用cudaDeviceSynchroniz

CUDA版本10.1。帕斯卡GPU。所有命令都会发送到默认流:

无效*ptr; cudaMalloc&ptr。。。; 启动内核ptr; cudaDeviceSynchronize;//这是必需的吗? cudaFreeptr;
cudaMallocManaged是否会改变答案?

一些CUDA API调用,如cudaMalloc、cudaFree、cudaHostAlloc、设备到设备拷贝等。更改GPU的虚拟内存地址映射。这些调用会导致设备同步,因此您不需要调用cudaDeviceSynchronize,因为它已经在同步


CudamAllocManager也会发生同样的情况

一些CUDA API调用,如cudaMalloc、cudaFree、cudaHostAlloc、设备到设备拷贝等,会更改GPU的虚拟内存地址映射。这些调用会导致设备同步,因此您不需要调用cudaDeviceSynchronize,因为它已经在同步

CudamAllocManager也会发生同样的情况