Следует ли всегда уничтожать события и потоки CUDA?
Я читаю CUDA на примере, и я обнаружил, что когда они вводили события, они вызывали cudaEventDestroy
для каждого события, которое они создали.
Однако я заметил, что некоторые более поздние примеры пренебрегают этой функцией очистки. Существуют ли какие-либо нежелательные побочные эффекты от забывания уничтожить созданные события и потоки (например, утечка памяти, когда вы забываете освободить выделенную память)?
2 ответа:
Любые ресурсы, которые приложение все еще держит в момент выхода, будут автоматически освобождены ОС / драйверами. Таким образом, если приложение создает только ограниченное число событий, нет необходимости освобождать их вручную. Тем не менее, позволить приложению выйти, не освободив все ресурсы специально, - плохая практика, потому что становится трудно отличить подлинные утечки от "преднамеренных" утечек.