하드웨어 지원 (GPU)

하드웨어 지원 (GPU)

Ollama가 어떤 GPU에서 동작하는지, GPU를 어떻게 골라 쓰는지 살펴볼게요. 먼저 NVIDIA부터 볼게요.

NVIDIA

Ollama는 compute capability 5.0 이상, 드라이버 버전 550 이상의 NVIDIA GPU를 지원해요. compute capability 5.0~6.2 사이의 NVIDIA GPU는 드라이버 버전 570 이상이 필요해요.

내 카드가 지원되는지 compute compatibility를 확인해보세요: https://developer.nvidia.com/cuda-gpus

Compute Capability Family Cards
12.1 NVIDIA GB10 (DGX Spark)
12.0 GeForce RTX 50xx RTX 5060 RTX 5060 Ti RTX 5070 RTX 5070 Ti RTX 5080 RTX 5090
NVIDIA Professional RTX PRO 4000 Blackwell RTX PRO 4500 Blackwell RTX PRO 5000 Blackwell RTX PRO 6000 Blackwell
9.0 NVIDIA H200 H100
8.9 GeForce RTX 40xx RTX 4090 RTX 4080 SUPER RTX 4080 RTX 4070 Ti SUPER RTX 4070 Ti RTX 4070 SUPER RTX 4070 RTX 4060 Ti RTX 4060
NVIDIA Professional L4 L40 RTX 6000
8.6 GeForce RTX 30xx RTX 3090 Ti RTX 3090 RTX 3080 Ti RTX 3080 RTX 3070 Ti RTX 3070 RTX 3060 Ti RTX 3060 RTX 3050 Ti RTX 3050
NVIDIA Professional A40 RTX A6000 RTX A5000 RTX A4000 RTX A3000 RTX A2000 A10 A16 A2
8.0 NVIDIA A100 A30
7.5 GeForce GTX/RTX GTX 1650 Ti TITAN RTX RTX 2080 Ti RTX 2080 RTX 2070 RTX 2060
NVIDIA Professional T4 RTX 5000 RTX 4000 RTX 3000 T2000 T1200 T1000 T600 T500
Quadro RTX 8000 RTX 6000 RTX 5000 RTX 4000
7.0 NVIDIA TITAN V V100 Quadro GV100
6.1 NVIDIA TITAN TITAN Xp TITAN X
GeForce GTX GTX 1080 Ti GTX 1080 GTX 1070 Ti GTX 1070 GTX 1060 GTX 1050 Ti GTX 1050
Quadro P6000 P5200 P4200 P3200 P5000 P4000 P3000 P2200 P2000 P1000 P620 P600 P500 P520
Tesla P40 P4
6.0 NVIDIA Tesla P100 Quadro GP100
5.2 GeForce GTX GTX TITAN X GTX 980 Ti GTX 980 GTX 970 GTX 960 GTX 950
Quadro M6000 24GB M6000 M5000 M5500M M4000 M2200 M2000 M620
Tesla M60 M40
5.0 GeForce GTX GTX 750 Ti GTX 750 NVS 810
Quadro K2200 K1200 K620 M1200 M520 M5000M M4000M M3000M M2000M M1000M K620M M600M M500M

구형 GPU를 지원하기 위해 로컬에서 빌드하는 방법은 development 문서를 참고하세요.

GPU 선택

시스템에 NVIDIA GPU가 여러 개 있고 Ollama가 그중 일부만 쓰게 하고 싶다면 CUDA_VISIBLE_DEVICES를 GPU 목록(쉼표로 구분)으로 설정하면 돼요. 숫자 ID를 쓸 수도 있는데 순서가 달라질 수 있어서 UUID가 더 안정적이에요. GPU의 UUID는 nvidia-smi -L로 확인할 수 있어요. GPU를 무시하고 CPU만 강제하려면 잘못된 GPU ID(예: -1)를 쓰면 돼요.

Linux 일시중지/재개

Linux에서 일시중지/재개 주기 이후 Ollama가 NVIDIA GPU를 발견하지 못하고 CPU로 폴백하는 일이 가끔 있어요. 이 드라이버 버그는 sudo rmmod nvidia_uvm && sudo modprobe nvidia_uvm으로 NVIDIA UVM 드라이버를 다시 로드하면 해결할 수 있어요.

AMD Radeon

Ollama는 ROCm 라이브러리를 통해 다음 AMD GPU를 지원해요.

참고: 추가 AMD GPU 지원은 Vulkan 라이브러리로 제공돼요. 아래를 참고하세요.

Linux 지원

Ollama는 Linux에서 AMD ROCm v7 드라이버를 요구해요. AMD의 ROCm 문서에 있는 amdgpu-install 유틸리티로 설치하거나 업그레이드할 수 있어요.

Family Cards and accelerators
AMD Radeon RX 9070 XT 9070 GRE 9070 9060 XT 9060 XT LP 9060 7900 XTX 7900 XT 7900 GRE 7800 XT 7700 XT 7700 7600 XT 7600 6950 XT 6900 XTX 6900XT 6800 XT 6800
AMD Radeon AI PRO R9700 R9600D
AMD Radeon PRO W7900 W7800 W7700 W7600 W7500 W6900X W6800X Duo W6800X W6800 V620
AMD Ryzen AI Ryzen AI Max+ 395 Ryzen AI Max 390 Ryzen AI Max 385 Ryzen AI 9 HX 475 Ryzen AI 9 HX 470 Ryzen AI 9 465 Ryzen AI 9 HX 375 Ryzen AI 9 HX 370 Ryzen AI 9 365
AMD Instinct MI350X MI300X MI300A MI250X MI250 MI210 MI100

Windows 지원

Ollama는 Windows에서 AMD ROCm v7 / HIP7 지원 드라이버 스택을 요구해요.

Family Cards and accelerators
AMD Radeon RX 7900 XTX 7900 XT 7900 GRE 7800 XT 7700 XT 7600 XT 7600
AMD Radeon PRO W7900 W7800 W7700 W7600 W7500

Linux에서의 오버라이드

Ollama는 AMD ROCm 라이브러리를 사용하는데, 이 라이브러리가 모든 AMD GPU를 지원하지는 않아요. 어떤 경우에는 비슷한 LLVM 타깃을 강제로 쓰게 할 수 있어요. 예를 들어 Radeon RX 5400은 gfx1034(10.3.4)인데 ROCm이 이 타깃을 아직 지원하지 않아요. 가장 가까운 지원 타깃은 gfx1030이에요. x.y.z 문법으로 HSA_OVERRIDE_GFX_VERSION 환경 변수를 쓸 수 있어요. RX 5400에서 강제로 실행하려면 서버 환경 변수로 HSA_OVERRIDE_GFX_VERSION="10.3.0"을 설정하면 돼요. 지원되지 않는 AMD GPU가 있다면 아래 지원 타입 목록으로 실험해볼 수 있어요. GFX 버전이 다른 GPU가 여러 개라면 환경 변수에 숫자 디바이스 번호를 붙여 개별 설정할 수 있어요. 예를 들어 HSA_OVERRIDE_GFX_VERSION_0=10.3.0, HSA_OVERRIDE_GFX_VERSION_1=11.0.0처럼요. 현재 Linux에서 알려진 지원 GPU 타입은 다음 LLVM 타깃들이에요. 다음 표는 이 LLVM 타깃에 매핑되는 예시 GPU를 보여줘요.

LLVM Target An Example GPU
gfx908 Radeon Instinct MI100
gfx90a Radeon Instinct MI210/MI250
gfx942 Radeon Instinct MI300X/MI300A
gfx950 Radeon Instinct MI350X
gfx1030 Radeon PRO V620
gfx1100 Radeon PRO W7900
gfx1101 Radeon PRO W7700
gfx1102 Radeon RX 7600
gfx1150 Ryzen AI 9 HX 375
gfx1151 Ryzen AI Max+ 395
gfx1200 Radeon RX 9070
gfx1201 Radeon RX 9070 XT

추가 도움이 필요하면 Discord에 문의하거나 이슈를 등록하세요.

GPU 선택

시스템에 AMD GPU가 여러 개 있고 Ollama가 그중 일부만 쓰게 하고 싶다면 ROCR_VISIBLE_DEVICES를 GPU 목록(쉼표로 구분)으로 설정하면 돼요. 디바이스 목록은 rocminfo로 볼 수 있어요. GPU를 무시하고 CPU만 강제하려면 잘못된 GPU ID(예: -1)를 쓰면 돼요. 가능하면 숫자 값 대신 Uuid로 디바이스를 식별하는 게 좋아요. 일부 Linux 배포판에서는 SELinux가 컨테이너의 AMD GPU 디바이스 접근을 막을 수 있어요. 호스트 시스템에서 sudo setsebool container_use_devices=1을 실행하면 컨테이너가 디바이스를 쓸 수 있게 돼요.

Metal (Apple GPUs)

Ollama는 Metal API를 통해 Apple 디바이스에서 GPU 가속을 지원해요.

Vulkan GPU 지원

Windows와 Linux에서 추가 GPU 지원은 Vulkan으로 제공돼요. Vulkan은 백엔드가 설치되면 기본으로 활성화돼요. Windows에서는 대부분 GPU 벤더 드라이버에 Vulkan 지원이 포함되어 있어 추가 설정이 필요 없어요. 대부분의 Linux 배포판은 추가 컴포넌트 설치가 필요하고, Mesa와 GPU 벤더 전용 패키지 사이에서 Vulkan 드라이버 옵션이 여러 개일 수 있어요.

일부 Linux 배포판의 AMD GPU에서는 ollama 사용자를 render 그룹에 추가해야 할 수 있어요. Ollama 스케줄러는 GPU 라이브러리가 보고하는 사용 가능한 VRAM 데이터를 활용해 최적의 스케줄링 결정을 내려요. Vulkan은 이 사용 가능한 VRAM 데이터를 노출하려면 추가 권한이나 root로 실행이 필요해요. root 접근이나 이 권한이 없다면 Ollama는 모델의 대략적인 크기로 최선의 스케줄링을 해요.

sudo setcap cap_perfmon+ep /usr/local/bin/ollama

GPU 선택

특정 Vulkan GPU를 고르려면 FAQ에 설명된 대로 Ollama 서버에서 GGML_VK_VISIBLE_DEVICES 환경 변수를 하나 이상의 숫자 ID로 설정하면 돼요. Vulkan 기반 GPU에 문제가 생기면 OLLAMA_VULKAN=0 또는 GGML_VK_VISIBLE_DEVICES=-1로 모든 Vulkan GPU를 끌 수 있어요. Vulkan iGPU가 불안정한 iGPU/dGPU 혼합 시스템에서는 Vulkan을 켜둔 채 GGML_VK_VISIBLE_DEVICES를 개별 GPU 인덱스로 설정하세요. 예를 들어 Vulkan1이 개별 GPU일 때 GGML_VK_VISIBLE_DEVICES=1을 쓰면 돼요.