내 컴퓨터에 GPU가 있나 — cuda와 is_available ★★
GPU는 컴퓨터에 따라 있기도 하고 없기도 해요. 특히 노트북에는 없는 경우가 많아요. PyTorch에서 GPU를 쓰려면 NVIDIA 그래픽 카드와 CUDA(쿠다)가 필요해요. 교수님 설명으로 CUDA는 "GPU를 사용할 수 있게 해 주는 프로그램"이에요. 컴퓨터에 GPU가 있는지는 터미널에서 nvidia-smi를 입력해 확인해요. 결과가 나오면 GPU가 있는 거예요.
이 수업은 1주차에 GPU 유무와 관계없이 CPU 버전 PyTorch로 통일하기로 했어요. GPU판은 용량이 3~4GB로 커서 설치가 오래 걸리고 충돌도 생기기 때문이에요. 교수님은 GPU가 필요하면 학과 서버를 쓸 계획이라고 했어요.
코드에서는 이렇게 GPU 사용 가능 여부를 물어봐요.
| 코드 줄 | 무슨 뜻 |
|---|---|
torch.cuda.is_available() | "지금 GPU를 쓸 수 있나요?"라는 질문. 가능하면 True, 아니면 False |
'cuda' if ... else 'cpu' | 0장에서 본 한 줄 조건식이에요. 쓸 수 있으면 'cuda'(GPU), 아니면 'cpu'를 device 이름으로 골라요 |
| 위 결과 | 위 출력은 GPU가 없는 컴퓨터에서 나온 결과예요. GPU가 있는 곳(예: Colab GPU)에서는 True와 cuda가 나와요 |
코드가 돌아갈 컴퓨터에 GPU가 있는지 미리 알 수 없기 때문이에요. 'cuda'로 못 박으면 GPU가 없는 PC에서 에러가 나요. 위 한 줄로 "있으면 GPU, 없으면 CPU"를 고르면 같은 코드를 어디서든 그대로 돌릴 수 있어요. 교수님도 "디바이스를 명시하는 건 좋지 않다"고 했어요.
한 가지 더 알아 둘 것이 있어요. CUDA를 설치했다고 is_available()이 저절로 True가 되는 것은 아니에요. 실제로 사용할 수 있는 GPU가 있는 환경이어야 True가 나와요.
GPU 사용 가능 여부는 torch.cuda.is_available()로 확인하고, device = 'cuda' if torch.cuda.is_available() else 'cpu'로 선택하면 GPU 유무와 관계없이 같은 코드를 실행할 수 있다. 결과 예측 문제는 GPU가 없는 환경이면 False와 cpu가 나온다고 보세요.
잠깐 확인 — 노트북에 GPU가 없을 때 위 코드의 device는 무엇이 되나요?
'cpu'예요. is_available()이 False라서 else 쪽 값을 골라요.
자료: 2주차(+1·3주차) · Week02_Tensor_and_GPU, 구글 Colab GPU 환경 사용법.pdf · 빅분01(1주차)·빅분02(2주차)·빅데이터03(3주차) 녹취