학습이 급격하게 느려지는 경우 어떻게 진단하시나요?

환경:
Ubuntu 20.4
CUDA 11.2
Python 3.7

===============================================================================
안녕하세요, 진행중인 프로젝트의 학습을 진행하는 도중 학습이 급격하게 느려지는 현상이 생겨 질문드립니다.

이 문제가 CPU의 문제인지, Memory의 문제인지 잘 모르겠네요. 혹시 유사한 경험이 있으신 분들이 계실까요?

혹, 이러한 경우에는 어떻게 진단하시고 해결하시는지요?

===============================================================================

현재까지 인지하고 있는 현상은 다음과 같습니다.

  1. 과거에도 프로세스가 메모리 오버되어 Killed 되는 현상이 있었으나,
    num_workers 조절, Batch size 조절로 해결하였음.

  2. 이전의 경우, Process Killed 는 되었으나, 보시는 사진과 같이 Thread가 몇개만 running하고 나머지는 노는 경우는 없었습니다.

3.Swap Memory 영역으로 넘어갈 때 마다 학습이 급격하게 느려지는 공통적인 현상이 나타난 경험이 있었으나, 그때도 Threads가 놀지는 않았었습니다.

221121_리소스_편집

먼저 swap memory 를 사용하게 된다는 것은 기존 메모리(RAM) 사용량을 초과한 부분을 disk 공간을 이용해 메모리처럼 사용하는 것입니다.

아무리 disk 가 빠르다고 해도 메모리만큼 빠를수는 없기 때문에 swap memory 영역을 쓰게 되는 순간부터 학습이 느려질 수 있을 것 같습니다.

가능하시다면 어느 부분에서 메모리를 많이 사용하는지 체크하시어 최적화를 해보시는 것이 좋을 것 같네요.

1개의 좋아요

네, 그렇군요. 감사드립니다.
참 웃긴게 첫 epoch에서는 swap오버가 안되는데
다음 epoch부터 오버가 되네요…
epoch마다 메모리가 완전 해제되는 게 아닌 것 같아요…