gpt4 book ai didi

memory-management - cudaFree() 之前是否需要 cudaDeviceSynchronize()?

转载 作者:行者123 更新时间:2023-12-05 09:12:30 42 4
gpt4 key购买 nike

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() 也会发生同样的情况。

关于memory-management - cudaFree() 之前是否需要 cudaDeviceSynchronize()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58070326/

42 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com