CUDA_VISIBLE_DEVICES 관련

꼼댕이·2024년 1월 2일
0

python&linux

목록 보기
7/10

예를 들어 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로 써줬기 때문에 에러가 난 것이다.

참고

profile
사람을 연구하는 공돌이

0개의 댓글