6

我正在阅读 CUDA By Example,我发现当他们引入事件时,他们会调用cudaEventDestroy他们创建的每个事件。

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

4

2 回答 2

5

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

于 2012-06-06T19:30:02.850 回答
1

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

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

于 2012-06-08T05:28:33.017 回答