모델 학습 돌리거나 추론할 때 사용하는 명령어 모음
파이썬 쉘에 들어가서 아래처럼 출력이 나온다면 사용 가능한 것 !
$ python3
>> import torch
>> torch.cuda.is_available()
True
CUDA_VISIBLE_DEVICES={GPU NODE NUM} python3 train.py
앞에 GPU Node 번호로 환경변수 셋팅해주고 돌릴 코드에 대한 명령어 입력하기
CUDA_VISIBLE_DEVICES
는 환경변수라서 "~.py"
와 같은 python file을 터미널을 통해 실행할때는 다음과 같이 명령어 앞에 설정해서 사용
여러개 사용도 가능한데, nn.DataParallel()
이 작성되어있어야함
아래 코드를 파일 내에 작성해서 GPU가 제대로 할당되었는지 확인 가능 하다
import torch
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
print('Device:', device)
print('Current cuda device:', torch.cuda.current_device())
print('Count of using GPUs:', torch.cuda.device_count())
아래 그림은 분명 1번 노드를 사용해서 코드를 돌렸지만, 실제로는 이미 사용 중이던 0번 노드 GPU를 사용하려고 해서 메모리 관련 에러가 뜬 것이다.
➡️ 코드가 안먹을리 없다. 자세히 보면 CUDA_VISIBLE_DEVICES에서 S가 하나 빠졌있다. 휴먼 에러였다..
torch.cuda.empty_cache()
python -m ipykernel install --user --name={가상환경이름}