cudaDeviceReset v.cudaFree

时间:2013-08-05 03:51:41

标签: c++ memory-management cuda

关于cudaDeviceReset()的正确使用存在各种问题,但我未能找到以下问题的答案。

cudaDeviceReset()上的文档说explicitly destroys and cleans up all resources associated with the current device in the current process

假设我有一个包含许多数组的程序,所有数组都分配有cudaMalloc。我可以在程序结束时使用cudaDeviceReset代替许多cudaFree语句来快速释放设备上的所有内存吗?这样做有什么不利之处吗?

1 个答案:

答案 0 :(得分:4)

如果您愿意,可以在应用程序结束时致电cudaDeviceReset()。实际上,对于视觉分析器的正确使用,这是recommended

如果您确实已完成GPU并准备退出应用程序,那么如果您选择使用cudaDeviceReset(),应该没有任何缺点。请注意,由于应用程序退出还将释放资源(由于应用程序出口处的cuda上下文被破坏),因此这些方案(cudaDeviceReset与许多cudaFree语句)可能都不是必需的。 。但请注意上面关于探查器使用的声明。