gpu 메모리를 비우는 함수가 있을까요?

보통 학습을 하면, 중간에 오류가 생겨 gpu 메모리가 가득찬채로 꺼지는 경우가 있습니다.
그럴때마다 jupyter를 재시작 해주는데, 너무 불편하네요

torch.cuda.empty_cache()
이걸 이용해도 조금밖에 줄지를 않네요.

이런 상황에서 사용할 수 있는 함수가 있을까요?

사용하지 않는 텐서가 있다면 del tensor로 지운 다음 torch.cuda.empty_cache() 를 실행하시면 됩니다.
torch.cuda.memory_allocated()와 torch.cuda.memory_reserved() 를 이용하시면 사용하고 있는 메모리와 cache 메모리를 각각 볼 수 있습니다.
torch.cuda.empty_cache()는 torch.cuda.memory_reserved() 에서 보이는 만큼을 free하게 해줍니다.

혹시 불편하다고 하시는 부분이 out of memory가 발생 자체일까요?
아니면 발생 이후 프로세스가 종료지 않고 gpu 메모리가 비워지지 않는 것일까요?