728x90

이전 포스팅에서 pytorch DDP 사용시 conda 문제로 축약되어 게시한 글이 있었다. 해당 글에서는 conda를 최신으로 업데이트하여 문제 해결을 하라고 하였으나, 직접 돌려보니 conda version 문제는 아닌 듯 하다.

 

그러던 도중 다른 연구자들에 따르면, python 3.8에서 이러한 문제들이 자주 생긴다고 주장되었고, 이에 대한 해결책이 python 3.7로 degrading 하여 사용하라는 것이었다.

 

이에 따라 나는 conda latest version에 python 3.7로 세팅하여 실행해보았지만, 같은 문제가 생겼음을 확인하였다.

 

이 와중에 ram memory 문제라는 것이 제기되었다. data loader를 너무 급격히 돌리다보면 system memory가 부족하여 생기는 문제라고 한다.

 

현재 사용중인 서버 환경은 ubuntu 18.04, memory 251G, Swp 30G, RTX 24GB x 8EA이다. 통상적으로 메모리가 512는 되어야 한다고 주장하는 것 같다.

 

반면에, 다른 서버 환경인 memory 126GB, Swp 30.4GB, RTX 24GB x 4EA 에서는 해당 문제가 발생하지 않았다. 즉 parallel DDP를 사용하기 위해서는 memory 혹은 Swp memory 가 더 필요한 것처럼 보일 수 있다.

 

혹은 사용하는 data가 커서 생기는 문제일 수도 있다.

 

현재 사용하는 데이터는 wav 음성을 입력으로 사용하여 pre-trained 된 feature model로 부터 약 3~5MB의 768, T 만큼의 feature를 얻고, 이것을 npy로 저장하고 있다. 이렇듯, 데이터가 커서 생긴 문제일 수도 있을 것 같다.

 

또한, 약 5개의 서버에서 NAS로 묶어서 sharing을 하였는데, 모든 곳에서 같은 data를 read 하다가 부하가 생긴 문제는 아닐까? 라는 생각이 들었다.

 

하지만 추측하건대, system memory를 늘리면 해결가능한 문제인 것으로 보인다.

 

요약

 

1. pytorch DDP 문제 발생

2. conda update 시도 하여 문제 해결 --> 실패

3. python 3.7 버전으로 degrading 하여 문제 해결 --> 실패

4. 결론: system memory 추가 필요

728x90
728x90

Pytorch에서 DDP로 multi-GPU training을 신나게 돌리다가, 종종 에러가 발생한다.

 

 

구글링 결과, anaconda 관련 문제인 것 같았다.

 

main.py 및 DDP loading 과 관련된 문젱는 아니었다.

 

상당히 비슷한 문제가 아래의 링크에 포함되어 있는데,

 

https://github.com/conda/conda/issues/9589

 

Warning about leaked semaphore under Python 3.8 · Issue #9589 · conda/conda

Current Behavior Under Python 3.8, there is a warning printed when running most conda commands: ~/miniconda3/lib/python3.8/multiprocessing/resource_tracker.py:216: UserWarning: resource_tracker: Th...

github.com

 

이들은 모두 conda의 version, 그리고 python version 문제라고 하였다.

 

그래서 나는 우선 conda를 최신으로 업데이트 하였다.

 

conda update --all

 

위의 명령어를 통해서 업데이트 이후, deactivate, 다시 activate 하였다.

 

우선은 다시 돌리고 있는 중인데, 만약 이와 같은 문제가 또 생겼을 경우 python 버전을 3.7로 낮춰서 해봐야 할 것 같다.

728x90

+ Recent posts