
이 글에서 다루는 내용
윈도우 PC의 NVIDIA GPU를 그대로 쓰면서, WSL2 안의 Ubuntu에서 Ollama를 GPU 가속으로 실행하는 전 과정을 정리합니다. 윈도우 드라이버만 최신으로 맞추면 WSL 내부에 별도 GPU 드라이버를 깔지 않아도 CUDA가 그대로 노출되기 때문에, 핵심은 드라이버 확인 → CUDA Toolkit 설치 → Ollama 설치 → GPU 인식 검증의 네 단계로 정리됩니다. 이 글 한 편이면 노트북에 꽂혀 있는 RTX 카드로 Llama, Qwen, Gemma 같은 모델을 빠르게 돌릴 수 있는 상태가 됩니다.
1. 사전 요구사항 점검
1-1. 환경 체크리스트
설치를 시작하기 전에 아래 항목을 먼저 확인합니다. 한 가지라도 빠지면 GPU가 인식되지 않거나 Ollama가 CPU 모드로 떨어집니다.
| 항목 | 요구 사항 | 확인 방법 |
|---|---|---|
| Windows | Windows 11 또는 Windows 10 21H2 이상 | winver |
| WSL | WSL2 + Ubuntu 22.04 이상 | wsl -l -v |
| GPU | NVIDIA GPU (CUDA Compute Capability 5.0 이상) | 장치 관리자 / GeForce Experience |
| 드라이버 | NVIDIA Game Ready 또는 Studio 드라이버 (WSL 지원 버전) | PowerShell nvidia-smi |
| VRAM | 7B 모델 8GB, 13B 모델 16GB 권장 | nvidia-smi |
ℹ️ WSL이 아직 설치되어 있지 않다면 먼저 WSL2 설치와 Ubuntu 초기 세팅 가이드를 참고해 기본 환경을 만들고 돌아옵니다.
1-2. 윈도우 NVIDIA 드라이버 확인
WSL의 GPU 가속은 윈도우 측 드라이버가 모든 일을 처리합니다. WSL 내부에는 절대로 별도의 NVIDIA 드라이버 패키지를 설치하면 안 됩니다. 먼저 호스트 PowerShell에서 드라이버 상태를 확인합니다.
nvidia-smi
예상 출력 보기
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 555.xx Driver Version: 555.xx CUDA Version: 12.5 |
|-----------------------------------------------------------------------------|
| GPU Name TCC/WDDM | Bus-Id Disp.A | Volatile Uncorr. ECC |
| 0 NVIDIA GeForce RTX 4070 WDDM | 00000000:01:00.0 On | N/A |
+-----------------------------------------------------------------------------+
출력 우측 상단의 CUDA Version은 드라이버가 지원하는 최대 CUDA 런타임 버전입니다. WSL에서 설치할 CUDA Toolkit 버전이 이 값보다 낮거나 같아야 합니다. 드라이버가 너무 오래됐다면 NVIDIA 드라이버 페이지에서 최신 Game Ready 드라이버를 받아 업데이트합니다.
⚠️ WSL Ubuntu 셸에서
apt install nvidia-driver-...명령을 실행하지 않습니다. 충돌이 생겨 기존 윈도우 드라이버가 망가질 수 있습니다.
2. WSL 안에서 GPU 인식 확인
2-1. Ubuntu에서 nvidia-smi 실행
WSL 셸로 들어가 동일한 명령을 실행합니다. 윈도우 측 드라이버가 정상이면 WSL 내부에서도 같은 GPU 정보가 그대로 보입니다.
wsl
nvidia-smi
출력이 PowerShell과 거의 동일하게 나오면 GPU 패스스루는 이미 동작하고 있는 상태입니다. 만약 command not found가 뜨면 WSL 커널이 오래된 경우가 많으니 PowerShell에서 아래로 업데이트합니다.
wsl --update
wsl --shutdown
2-2. /usr/lib/wsl/lib 점검
WSL은 윈도우 드라이버에서 제공하는 라이브러리를 /usr/lib/wsl/lib 아래에 마운트합니다. 이 경로에 libcuda.so.1이 보여야 정상입니다.
ls /usr/lib/wsl/lib | grep -i cuda
예상 출력 보기
libcuda.so
libcuda.so.1
libcuda.so.1.1
3. CUDA Toolkit 설치
3-1. WSL 전용 메타 패키지 사용
일반 Ubuntu용 CUDA 패키지가 아니라 WSL-Ubuntu 전용 메타 패키지를 사용해야 합니다. 일반 패키지는 GPU 드라이버까지 함께 설치하려고 시도하는데, WSL 환경에서는 윈도우 드라이버와 충돌해 GPU가 사라집니다.
NVIDIA가 제공하는 WSL용 keyring을 먼저 등록합니다. Ubuntu 22.04 기준입니다. 24.04를 쓰는 경우 URL의 ubuntu2204를 ubuntu2404로 바꿉니다.
wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt update
이어서 CUDA Toolkit을 설치합니다. 버전을 고정하지 않으면 호환되는 최신 버전이 들어옵니다.
sudo apt install -y cuda-toolkit
💡 특정 버전이 필요하면
cuda-toolkit-12-5처럼 마이너 버전을 명시합니다. 1번 단계에서 확인한 드라이버 지원 CUDA 버전 이하로 선택합니다.
3-2. PATH 등록
설치된 nvcc는 /usr/local/cuda/bin에 들어갑니다. 셸에서 바로 쓰려면 PATH에 등록합니다.
echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc
설치가 끝났는지 nvcc 버전으로 확인합니다.
nvcc --version
예상 출력 보기
nvcc: NVIDIA (R) Cuda compiler driver
Cuda compilation tools, release 12.5, V12.5.xx
Build cuda_12.5.r12.5/compiler.xxxxxxxx_0
여기서 nvcc가 잡히지 않으면 PATH 등록이 빠진 것이고, libcuda 관련 오류가 뜨면 윈도우 드라이버를 다시 확인해야 합니다.
4. Ollama 설치
4-1. 한 줄 설치
CUDA가 준비된 WSL Ubuntu에서는 Ollama 설치 자체는 한 줄이면 끝납니다. 설치 스크립트가 GPU를 자동으로 감지해 NVIDIA 백엔드를 활성화합니다.
curl -fsSL https://ollama.com/install.sh | sh
예상 출력 보기
>>> Downloading ollama...
>>> Installing ollama to /usr/local/bin...
>>> NVIDIA GPU installed.
>>> The Ollama API is now available at 127.0.0.1:11434
마지막 줄에 NVIDIA GPU installed 메시지가 보이면 GPU 백엔드까지 정상으로 잡힌 상태입니다. 만약 그 줄이 보이지 않고 CPU 모드로 떨어졌다면 4-3절의 트러블슈팅을 참고합니다.
4-2. systemd 서비스 동작 확인
WSL에서도 systemd가 활성화되어 있다면 Ollama가 백그라운드 서비스로 등록됩니다.
systemctl status ollama
WSL의 systemd가 꺼져 있다면 /etc/wsl.conf에 아래 두 줄을 추가하고 wsl --shutdown 후 다시 진입합니다.
[boot]
systemd=true
4-3. 수동 실행으로 GPU 로그 확인
service가 GPU를 잡지 못하는 경우라면 한 번 수동으로 띄워 로그를 직접 보는 편이 진단에 빠릅니다.
OLLAMA_DEBUG=1 ollama serve
예상 출력 보기
level=INFO msg="detected GPUs" count=1 library=cuda
level=INFO msg="NVIDIA GPU detected" name="NVIDIA GeForce RTX 4070" vram="12.0 GiB"
level=INFO msg="Listening on 127.0.0.1:11434"
로그에 library=cuda가 보이면 GPU가 정상 인식된 것입니다. library=cpu로 떨어진다면 다음 섹션의 모델 실행 시 GPU 점유율이 0으로 잡힙니다.
5. 모델 실행과 GPU 가속 검증
5-1. 가벼운 모델로 첫 실행
VRAM 8GB 이하 GPU라면 7B 양자화 모델부터 시작합니다. Llama 3.2 3B는 4GB 안팎으로 가장 부담이 적습니다.
ollama run llama3.2:3b
모델이 다운로드된 뒤 프롬프트가 뜨면 짧은 질문을 던져봅니다. CPU 단독으로는 답변이 한참 끊기지만, GPU 가속이 정상적으로 들어가면 거의 실시간으로 토큰이 흐릅니다.
5-2. 추론 중 GPU 점유율 확인
다른 WSL 셸을 하나 더 열어 모델 실행 중 GPU 사용량을 모니터링합니다.
watch -n 0.5 nvidia-smi
응답이 생성되는 동안 GPU-Util이 50% 이상으로 튀고 Memory-Usage가 모델 크기만큼 잡혀 있다면 GPU 추론이 동작하는 것입니다. 두 값이 모두 0에 가깝다면 CPU 모드입니다.
5-3. ollama ps로 모델 적재 상태 보기
현재 메모리에 올라가 있는 모델과 어디에 올라갔는지(GPU/CPU)를 한 번에 확인할 수 있습니다.
ollama ps
예상 출력 보기
NAME ID SIZE PROCESSOR UNTIL
llama3.2:3b abcd1234 3.5 GB 100% GPU 4 minutes from now
PROCESSOR 칼럼이 100% GPU로 찍히면 모델 전체가 VRAM에 적재된 상태입니다. 60% GPU / 40% CPU처럼 분할되어 있다면 VRAM이 부족해 일부가 시스템 메모리로 넘어간 경우이므로, 더 작은 양자화(예: q4_K_M)나 더 가벼운 모델로 바꾸는 편이 빠릅니다.
트러블슈팅
문제 1: WSL에서 nvidia-smi가 동작하지 않음
WSL 셸에서 nvidia-smi: command not found나 Failed to initialize NVML이 출력되는 경우입니다. 대부분 WSL 커널이 오래됐거나 윈도우 드라이버가 WSL 지원 버전이 아닐 때 발생합니다.
wsl --update
wsl --shutdown
위 명령 후에도 동일하다면 윈도우 측 드라이버를 최신 Game Ready 버전으로 재설치합니다.
문제 2: Ollama가 CPU 모드로만 동작
설치 직후 NVIDIA GPU installed 메시지가 보이지 않은 경우입니다. /usr/lib/wsl/lib의 libcuda 심볼릭 링크가 LD_LIBRARY_PATH보다 우선순위가 낮으면 발생할 수 있습니다.
echo 'export LD_LIBRARY_PATH=/usr/lib/wsl/lib:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc
sudo systemctl restart ollama
그래도 잡히지 않으면 OLLAMA_DEBUG=1 ollama serve로 직접 띄워 로그에서 정확한 원인을 확인합니다.
문제 3: dpkg 충돌 - cuda-drivers
일반 Ubuntu용 CUDA 저장소를 잘못 등록하면 cuda-drivers 패키지가 설치되며 WSL의 GPU 패스스루를 깨뜨립니다. 이미 설치돼 버렸다면 즉시 제거합니다.
sudo apt remove --purge -y '^nvidia-.*' '^cuda-drivers.*'
sudo apt autoremove -y
이후 3-1절의 WSL-Ubuntu 메타 패키지를 다시 등록해 깔끔히 재설치합니다.
문제 4: 윈도우 호스트에서 Ollama API 호출 실패
기본 설치 시 Ollama는 127.0.0.1:11434에만 바인딩되어 윈도우 측에서는 접근하기 까다로울 수 있습니다. 외부 바인딩으로 바꿔주면 윈도우 브라우저나 다른 도구에서 그대로 호출할 수 있습니다.
sudo systemctl edit ollama
편집기에 아래 두 줄을 추가하고 저장한 뒤 서비스를 재시작합니다.
[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
sudo systemctl daemon-reload
sudo systemctl restart ollama
이제 윈도우에서 http://localhost:11434로 접근하면 Ollama 응답이 돌아옵니다.
마무리
WSL2 + Ollama + CUDA 조합의 핵심은 윈도우 드라이버는 호스트가, CUDA Toolkit과 Ollama는 WSL 내부가 책임진다는 역할 분리입니다. 이 경계를 지키지 않고 WSL 안에 NVIDIA 드라이버를 따로 설치하는 순간 환경이 깨집니다. 처음에는 드라이버 → CUDA → Ollama → 검증 순서를 그대로 따라가다가, 두 번째 머신부터는 WSL keyring 등록과 cuda-toolkit 설치, 그리고 curl ... | sh 한 줄로 굳어집니다.
- 공식 문서: CUDA on WSL User Guide
- 공식 문서: Ollama GPU 지원 문서
- 관련 글: WSL2 설치와 Ubuntu 초기 세팅 가이드
'AI & LLM' 카테고리의 다른 글
| OpenClaw에 Ollama 로컬 LLM 연동하기 (2) | 2026.04.24 |
|---|---|
| 클로드 플러그인 활용하기 - 설치부터 직접 만들기까지 (0) | 2026.04.24 |
| OpenClaw란 무엇인가? 내 기기에서 돌아가는 오픈소스 AI 비서 (0) | 2026.04.23 |
| 하네스 엔지니어링이란? (1) | 2026.04.22 |
| 클로드 토큰 절약 방법 - 비용 레버 8가지 실전 정리 (1) | 2026.04.21 |