2012-06-06 3 views
5

Я читаю CUDA. Пример. Я обнаружил, что когда они вводили события, они вызывали cudaEventDestroy для каждого созданного ими события.Должны ли события CUDA и потоки всегда уничтожаться?

Однако я заметил, что некоторые более поздние примеры пренебрегли этой функцией очистки. Есть ли нежелательные побочные эффекты, связанные с забыванием уничтожить созданные события и потоки (т. Е. Как утечка памяти, когда вы забываете освободить выделенную память)?

ответ

4

Любые ресурсы, которые приложение все еще удерживает в момент выхода, будут автоматически освобождены ОС/драйверами. Таким образом, если приложение создает только ограниченное количество событий, нет необходимости их освобождать вручную. Тем не менее, разрешение на выход приложения, не освобождая всех ресурсов, является плохой практикой, потому что становится трудно отличить настоящие утечки и утечки «по назначению».

0

Вы идентифицировали ошибки в образце кода книги.

События CUDA легкие, но утечка ресурсов - это утечка ресурсов. Со временем, если вы пропустите их достаточно, вы больше не сможете их создавать.

Смежные вопросы