๐ CUDA๋ฅผ ์ค์นํ์ฌ GPU ์ฌ์ฉํ๊ธฐ
ํ์ฌ ์ค๋ฅ๋ ์คํํ๋ ค๋ ๋ชจ๋ธ์ด GPU๋ฅผ ํ์๋ก ํ์ง๋ง, ํ์ฌ ์์คํ ์์ GPU๋ฅผ ์ฌ์ฉํ ์ ์์ด์ ๋ฐ์ํ ์๋ฌ.
PyTorch๊ฐ GPU๋ฅผ ์ธ์ํ์ง ๋ชปํด์ ๋ฐ์ํ ๋ฌธ์ ์
๋๋ค.
์ด๋ฅผ ํด๊ฒฐํ๋ ค๋ฉด CUDA๋ฅผ ์ค์นํ๊ณ , PyTorch๊ฐ GPU๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์ธ์ํ๋๋ก ์ค์ ํด์ผ ํฉ๋๋ค.
โ 0. CUDA๊ฐ ์ ์์ ์ผ๋ก ์ค์น๋์๋์ง ํ์ธ
(venv2) PS C:\Users\007\Documents\TEAM3_GITHUB\AI> nvidia-smi
Mon Feb 17 15:05:06 2025
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 538.92 Driver Version: 538.92 CUDA Version: 12.2 |
|-----------------------------------------+----------------------+----------------------+
| GPU Name TCC/WDDM | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+======================+======================|
| 0 NVIDIA GeForce RTX 4090 ... WDDM | 00000000:01:00.0 On | N/A |
| N/A 48C P8 8W / 89W | 289MiB / 16376MiB | 10% Default |
| | | N/A |
+-----------------------------------------+----------------------+----------------------+
+---------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=======================================================================================|
+---------------------------------------------------------------------------------------+
(venv2) PS C:\Users\007\Documents\TEAM3_GITHUB\AI> nvidia-smi
Mon Feb 17 15:05:19 2025
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 538.92 Driver Version: 538.92 CUDA Version: 12.2 |
|-----------------------------------------+----------------------+----------------------+
| GPU Name TCC/WDDM | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+======================+======================|
| 0 NVIDIA GeForce RTX 4090 ... WDDM | 00000000:01:00.0 On | N/A |
| N/A 49C P8 8W / 86W | 289MiB / 16376MiB | 8% Default |
| | | N/A |
+-----------------------------------------+----------------------+----------------------+
+---------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=======================================================================================|
+---------------------------------------------------------------------------------------+
ํ์ฌ nvidia-smi ๋ช ๋ น์ด๋ฅผ ์คํํ ๊ฒฐ๊ณผ **GPU(GeForce RTX 4090)**์ **CUDA ๋ฒ์ (12.2)**์ด ํ์๋๊ณ ์์ต๋๋ค.
๐ ๊ฒฐ๋ก : CUDA๊ฐ ์ ์์ ์ผ๋ก ์ค์น๋์ด ์์ต๋๋ค! ๐
๊ทธ๋ฌ๋ PyTorch๊ฐ ์ด CUDA๋ฅผ ์ ๋๋ก ์ธ์ํ๋์ง ํ์ธํด์ผ ํฉ๋๋ค.
๐๋ง์ฝ, CUDA๊ฐ ์ค์น๋์ด ์์ง ์๋ค๋ฉด, CUDA ์ค์นํ๊ธฐ.
๐ 1. PyTorch๊ฐ CUDA๋ฅผ ์ธ์ํ๋์ง ํ์ธ
์๋ ๋ช ๋ น์ด๋ฅผ ์คํํ์ฌ PyTorch๊ฐ GPU๋ฅผ ์ธ์ํ๋์ง ํ์ธํ์ธ์.
python -c "import torch; print(torch.cuda.is_available())"
๐ ์ถ๋ ฅ ๊ฒฐ๊ณผ:
- True → PyTorch๊ฐ CUDA๋ฅผ ์ ์์ ์ผ๋ก ์ธ์ โ
- False → PyTorch๊ฐ CUDA๋ฅผ ์ธ์ํ์ง ๋ชปํจ โ (์๋ ํด๊ฒฐ ๋ฐฉ๋ฒ ์ฐธ๊ณ )

๐ฅ 2. PyTorch๊ฐ CUDA๋ฅผ ์ธ์ํ์ง ๋ชปํ ๊ฒฝ์ฐ ํด๊ฒฐ ๋ฐฉ๋ฒ
๋ง์ฝ **torch.cuda.is_available()์ด False**๋ฅผ ๋ฐํํ๋ฉด, PyTorch๊ฐ CPU ๋ฒ์ ์ผ๋ก ์ค์น๋์ด ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
1๏ธโฃ ํ์ฌ ์ค์น๋ PyTorch ๋ฒ์ ํ์ธ
python -c "import torch; print(torch.__version__)"
๐ ๋ฒ์ ์ด +cpu๊ฐ ํฌํจ๋์ด ์๋ค๋ฉด → CUDA ๋ฒ์ ์ด ์๋ CPU ๋ฒ์ ์!
2.6.0+cpu โ (์๋ชป๋ ๋ฒ์ )

ํด๊ฒฐ ๋ฐฉ๋ฒ: PyTorch๋ฅผ CUDA ์ง์ ๋ฒ์ ์ผ๋ก ๋ค์ ์ค์นํด์ผ ํฉ๋๋ค.
2๏ธโฃ PyTorch GPU ๋ฒ์ ์ฌ์ค์น
๐ ํ์ฌ CUDA ๋ฒ์ ์ด 12.2์ด๋ฏ๋ก, ์๋ ๋ช ๋ น์ด๋ฅผ ์คํํ์ธ์.
pip uninstall torch -y pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
- cu121 → CUDA 12.1์ ์ง์ํ๋ PyTorch ๋ฒ์ ์ ๋๋ค.
- CUDA 11.8์ ์ฌ์ฉํ๋ค๋ฉด:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

๐ ์ค์น ์๋ฃ ํ ๋ค์ ํ์ธ:
python -c "import torch; print(torch.cuda.is_available())"
- True๊ฐ ๋์ค๋ฉด ์ ์์ ์ผ๋ก GPU๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. โ
- False๊ฐ ๋์ค๋ฉด ์ถ๊ฐ ์ค์ ์ด ํ์ํฉ๋๋ค. โ

โ (์ ํ์ฌํญ) 3. accelerate ์ค์ ์ GPU ๋ชจ๋๋ก ๋ณ๊ฒฝ
PyTorch๊ฐ GPU๋ฅผ ์ธ์ํ๋ฉด, accelerate๋ GPU๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก ์ค์ ํด์ผ ํฉ๋๋ค.
accelerate config
๐ ์ค์ ๋ง๋ฒ์ฌ์์ ์๋ ์ต์ ์ ์ ํํ์ธ์.
- "Which compute resource should be used?" → CUDA
- "Do you want to offload to CPU?" → No
- "What is the maximum GPU memory available in GB?" → 16GB (4090์ด๋ฉด 24GB์ผ ์๋ ์์)

์ค์ ์๋ฃ ํ ๋ค์ ์คํ:
python app/models/model_main.py