티스토리 뷰
예를 들어 GPU가 3대 있는 서버에서 2번 GPU를 사용해야 한다면, 아래 명령어처럼 실행해준다.
CUDA_VISIBLE_DEVICES=2 python run.py
CUDA_VISIBLE_DEVICES에 사용할 GPU id를 지정해준다.
+ 참고
위 방식대로만 사용하면 되는데, 나의 경우 추가적으로 설정을 잘못해서 'RuntimeError: CUDA error: invalid device ordinal' 에러가 발생했다.
def makeMultiTurnChatbot(model_name, from_file=None, device="cuda:0"):
model = BartForDialogueGeneration.from_pretrained(model_name).to(device)
...
원래 코드에서 device="cuda:0"으로 되어 있던 부분을 device="cuda:2"로 바꿔 주어서 에러가 났다.
CUDA_VISIBLE_DEVICES는 해당 id의 GPU(들)만을 볼 수 있게 한다는 것으로, 넘겨 받은 GPU(들)을 0번부터로 인식한다.
그래서 2번 GPU만을 넘겨줬을 경우 이를 0번 GPU로 인식하고, 1개의 GPU만 보이는 상황이므로 cuda:0만 존재한다. 그런데 cuda:2로 써줬기 때문에 에러가 난 것이다.
반응형
'AI' 카테고리의 다른 글
[Pytorch] nn.BCELoss(), nn.CrossEntropyLoss() (0) | 2023.04.12 |
---|---|
모델의 특정 layer를 freeze시키기 (0) | 2023.02.02 |
Neural Network 설명 및 직접 구현해보기 (0) | 2021.09.11 |
[PyTorch] 학습 Loss 그래프 그리기 (Tensorboard 이용) (0) | 2021.05.11 |
Windows에서 Pytorch 설치하기 (Anaconda 기반) (0) | 2020.07.14 |
댓글