연구실에서 다같이 연구를 하다보니 같은 서버에 GPU를 나눠서 사용해야 한다. 그럴 때 어떻게 나눠쓸 수 있을까? CUDA_VISIBLE_DEVICES를 이용해서 내가 현재 볼 수 있는 GPU를 한정시키는 방법이 있다. 그래서 특정 GPU들만 이용해서 Multi GPU로 모델을 학습할 수 있다. 예를 들면, 만약 2,3번만 보이게 설정했다면 걔네를 GPU 0번과 1번으로 인식하여 두 GPU만을 이용해서 학습하게 된다.
1) 터미널 창에서 GPU를 지정하여 python파일을 실행시킨다.
model = torch.nn.DataParallel(model)
model.cuda()
CUDA_VISIBLE_DEVICES = 2,3 python train.py #터미널창
2) 코드내부에서 GPU를 지정해서 실행시킨다.
import os
os.environ["CUDA_VISIBLE_DEVICES"]='2, 3'
model = torch.nn.DataParallel(model)
model.cuda()
python train.py #터미널창
'ML&DL > PyTorch' 카테고리의 다른 글
[PyTorch] Tensor 합치기: cat(), stack() (9) | 2020.09.16 |
---|---|
[PyTorch] 시계열 데이터를 위한 RNN/LSTM/GRU 사용법과 팁 (8) | 2020.08.05 |
[PyTorch] 시계열 데이터를 위한 다양한 Normalization기법 (BatchNorm1d, GroupNorm 사용법) (2) | 2020.07.28 |
[PyTorch] 시계열 데이터를 위한 1D convolution과 1x1 convolution (9) | 2020.07.08 |
[PyTorch] torch.nn.KLDivLoss() 사용법과 예제 (1) | 2020.07.07 |