[오류해결] torch.cuda.current_device()가 항상 0으로 잡히는 경우

2023. 1. 10. 02:36오류해결

이번에 새로운 서버를 사용하게 되었는데 이전과 다르게 gpu id를 설정해줄 필요가 있었다. 그래서 평소와 같이

os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"
os.environ["CUDA_VISIBLE_DEVICES"] = "1"

로 devices를 제한해주는 방법을 사용했는데 어떤 이유에서인지 어떠한 gpu 번호를 할당하든 0번 gpu만 사용하는 현상이 발생하였다. ㅠㅠ main문으로 가져오기도 하고 별 시도를 해보았는데 계속 0번 gpu만 할당...

 

여러 서칭을 통해 결국 해결법을 발견하였으니....어이가 없었다. ㅎㅎ..

 

그것은 위 구문을 무조건 import torch하기 전에 써야한다는 것. 나는 이러한 사실을 몰랐기에 그냥 모든 import 후에 위 구문을 써놓았으니 torch가 import 되면서 이미 gpu:0을 가져가 버렸다는 것이다. 

 

해결 끝 ㅎㅎ