Wooks_learning

linux(서버) 딥러닝 학습을 위한 GPU 사용 방법 본문

OS/Linux

linux(서버) 딥러닝 학습을 위한 GPU 사용 방법

Wooks_ 2021. 9. 17. 19:04

현재 회사에서 인턴으로 근무하고 있는데 처음 사용하다보니 실수가 잦아 정리를 해놓아야 할 것 같다!

 

순서대로 진행하면 무난히 학습할 수 있을 것 같다.

 

1. 가상환경 실행

conda activate 가상환경 이름
혹은
source activate 가상환경 이름

 

위와 같이 (base)로 되어있는 환경이 activate한 가상환경이름으로 변경되는 상태에서 실행한다.

 

2. GPU정보 확인

nvidia-smi

1. 자신의 현재 cuda version이 아닌 추천 cuda version.

2. gpu 번호 : 0 , gpu 이름 : GeForce MX250. 회사 서버에 접속하면 여러개 있는데(0,1,2,...) 자신이 사용할 gpu번호를 설정하여 사용하면 된다.

3. 현재 GPU사용량

4. 사용 중인 process 정보

 

3. GPU번호 지정

3-1) 터미널에서 코드 실행 시 (대부분 해당 방법으로 실행함.)

CUDA_VISIBLE_DEVICES=사용할 GPU번호 python 실행시킬 파이썬 파일 이름.py

3-2) 파이썬 내부 코드로 실행 시

GPU_NUM = 0 # 원하는 GPU 번호 입력
device = torch.device(f'cuda:{GPU_NUM}' if torch.cuda.is_available() else 'cpu')
torch.cuda.set_device(device)

해당 스텝까지 실행하면 학습이 잘 진행될 것이다.

------------------------------------------------------------------------------------------------------------------------------

 

 

만약 학습을 진행하다 도중에 멈추고 학습을 다시 진행할 때 RuntimeError: CUDA out of memory 블라블라

에러가 뜰 수 있는데, 그럴 경우 다음 과정을 진행하면 해결할 수 있다.

 

4) 어떤 명령어를 통해 실행되는지 확인.

ps -p PID번호 -o args

 

nvidia-smi명령어에서 4번 박스에 사용하는 gpu목록들이 나올텐데 어떤 명령어로 돌리고 있는지 알 수 없다. 만약 잘못 건드리면 다른 사람이 학습하는 것이 꺼질 수 있어서 해당 코드로 어떤 명령어를 통해 돌고있는지 확인할 수 있다.

만약 자신이 python test.py라고 입력하여 gpu를 사용했고, 다시 학습할 때 CUDA memory에러가 났다면 해당 코드로 어떤 명령어로 gpu를 사용했는지 알아야한다. 그럼 자신이 사용했던 python test.py가 나올것이고 다음 코드를 사용하면 해당 gpu memory만 삭제할 수 있다.

 

5) gpu 삭제

kill -9 PID이름
kill -15 PID이름

위에서 PID이름을 찾았다면, 다음 명령어를 통해 memory를 삭제할 수 있다.

왠만하면 kill -15를 먼저 사용해보는 것이 좋다.

 

kill -15의 경우 조금 더 안전하게 종료하고, kill -9의 경우 강제종료를 하는 느낌이라 kill -15를 먼저 사용해보고 그래도 메모리가 삭제되지 않는다면 kill -9를 사용하는 것을 추천한다.

 

'OS > Linux' 카테고리의 다른 글

tmux를 이용한 서버 사용법  (0) 2021.10.13
Linux명령어 모음(1)  (0) 2021.09.11
Comments