Memory leaks CUDA事件和流是否应始终被销毁?

Memory leaks CUDA事件和流是否应始终被销毁?,memory-leaks,cuda,Memory Leaks,Cuda,我通过示例阅读CUDA,发现当他们引入事件时,他们为创建的每个事件调用cudaEventDestroy 然而,我注意到后来的一些示例忽略了这个清理功能。忘记销毁创建的事件和流是否有任何不良副作用(例如,当您忘记释放分配的内存时,内存泄漏)?应用程序退出时仍保留的任何资源将由操作系统/驱动程序自动释放。因此,如果应用程序只创建有限数量的事件,则严格来说没有必要手动释放它们。尽管如此,让应用程序在不释放所有资源的情况下退出是一种不好的做法,因为很难区分真正的泄漏和“故意”泄漏。您已经在书中的示例代码

我通过示例阅读CUDA,发现当他们引入事件时,他们为创建的每个事件调用
cudaEventDestroy


然而,我注意到后来的一些示例忽略了这个清理功能。忘记销毁创建的事件和流是否有任何不良副作用(例如,当您忘记释放分配的内存时,内存泄漏)?

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

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

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