CUDA事件和流是否应该被销毁?

时间:2012-06-06 18:49:54

标签: memory-leaks cuda

我正在阅读CUDA示例,我发现当他们介绍事件时,他们为他们创建的每个事件调用了cudaEventDestroy

但是我注意到后来的一些例子忽略了这个清理功能。是否存在忘记破坏已创建事件和流的不良副作用(例如,当您忘记释放已分配的内存时内存泄漏)?

2 个答案:

答案 0 :(得分:5)

应用程序在退出时仍保留的任何资源都将由操作系统/驱动程序自动释放。因此,如果应用程序仅创建有限数量的事件,则不必手动释放它们。尽管如此,让应用程序退出而不是故意释放所有资源是不好的做法,因为很难区分真正的泄漏和“故意”泄漏。

答案 1 :(得分:0)

您已经在本书的示例代码中发现了错误。

CUDA事件是轻量级的,但资源泄漏是资源泄漏。随着时间的推移,如果你泄漏了足够的东西,你将无法再创建它们。