2025. 2. 2. 11:06ㆍ카테고리 없음
딥러닝 모델을 실행할 때 GPU가 아닌 CPU만 사용되는 경우는 몇 가지 이유로 발생할 수 있습니다. 아래 단계별로 확인해 보세요:
### 1. **GPU 드라이버 및 프레임워크 설치 확인**
- **NVIDIA GPU 사용 시 필수:**
CUDA Toolkit + cuDNN이 설치되어 있어야 하며, PyTorch/TensorFlow의 **GPU 지원 버전**이 설치되어 있어야 합니다.
(예: PyTorch 설치 시 `pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121`)
- **확인 방법 (PyTorch):**
```python
import torch
print(torch.cuda.is_available()) # True가 나와야 GPU 사용 가능
print(torch.__version__) # CUDA 버전과 호환되는지 확인
```
### 2. **모델 코드에서 GPU 설정 누락**
- 모델과 데이터를 명시적으로 GPU로 이동시켜야 합니다:
```python
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model = model.to(device) # 모델을 GPU로 이동
inputs = inputs.to(device) # 데이터도 GPU로 이동
```
### 3. **VRAM 부족 문제**
- **DeepSeek-R1-7B**는 70억 파라미터 모델로, **약 14GB 이상의 VRAM**이 필요합니다.
- GPU가 이 용량을 충족하지 못하면 자동으로 CPU로 폴백됩니다.
- `nvidia-smi` 명령어로 VRAM 사용량을 확인하세요.
### 4. **프레임워크별 GPU 가속 설정**
- **Hugging Face Transformers 사용 시:**
`device_map="auto"` 설정을 추가하면 자동으로 GPU를 활용합니다:
```python
from transformers import AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained("deepseek-ai/deepseek-r1-7b", device_map="auto")
```
### 5. **하드웨어 호환성 문제**
- **구형 GPU** (예: Maxwell 아키텍처 이전)는 최신 CUDA 버전을 지원하지 않을 수 있습니다.
- **AMD GPU**는 ROCm 지원이 필요한데, 일부 모델은 공식적으로 호환되지 않을 수 있습니다.
### 6. **실제 GPU 사용량 확인 방법**
- **Windows:** 작업 관리자 → 성능 탭 → GPU 사용량 확인
- **Linux:** `nvidia-smi -l 1` (초당 업데이트)
→ `Volatile GPU-Util`이 0%라면 GPU가 실제로 사용되지 않고 있는 것입��다.
### 정상 여부 판단
- **비정상입니다.** GPU가 지원되는 환경에서 모델을 실행했다면 반드시 GPU를 활용해야 효율적입니다.
- **해결이 안 될 경우:**
CPU 모드로 강제 실행하는 코드가 있을 수 있으니, 모델 로딩 부분을 다시 확인하거나
`export CUDA_VISIBLE_DEVICES=0` (Linux/macOS) 또는 `set CUDA_VISIBLE_DEVICES=0` (Windows)로 GPU를 명시적으로 지정해 보세요.
---
최종 결론: **설정 오류 또는 하드웨어 제약 때문**일 가능성이 높습니다.
GPU 지원 환경을 점검하고 VRAM 용량을 확인한 후, 필요한 경우 모델을 **양자화**(8bit/4bit)하거나 **배치 크기**를 줄여 보세요.