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 | 系列 | 显卡型号 |
|---|---|---|
| 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 更可靠。您可以通过运行 nvidia-smi -L 来发现 GPU 的 UUID。如果您想忽略 GPU 并强制使用 CPU,请使用无效的 GPU ID(例如“-1”)。
Linux 挂起与恢复
在 Linux 上,经过一次挂起/恢复循环后,Ollama 有时无法发现您的 NVIDIA GPU,从而回退到在 CPU 上运行。您可以通过重新加载 NVIDIA UVM 驱动来绕过此驱动 bug,命令为:sudo rmmod nvidia_uvm && sudo modprobe nvidia_uvm
AMD Radeon
Ollama 通过 ROCm 库支持以下 AMD GPU:
注意:Vulkan 库提供了额外的 AMD GPU 支持 - 请参阅下文。
Linux 支持
Ollama 在 Linux 上需要 AMD ROCm v7 驱动程序。您可以使用 AMD 的 ROCm 文档中的 amdgpu-install 实用工具进行安装或升级。
| 系列 | 显卡和加速器 |
|---|---|
| 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 的驱动程序堆栈。
| 系列 | 显卡和加速器 |
|---|---|
| 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 target。例如,Radeon RX 5400 是 gfx1034(也称为 10.3.4),然而,ROCm 目前不支持此 target。最接近的支持是 gfx1030。您可以使用环境变量 HSA_OVERRIDE_GFX_VERSION,采用 x.y.z 语法。因此,例如,要强制系统在 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 Targets。下表展示了一些映射到这些 LLVM targets 的示例 GPU:
| LLVM Target | 示例 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 上联系或提交issue。
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 GPU)
Ollama 通过 Metal API 支持在 Apple 设备上进行 GPU 加速。
Vulkan GPU 支持
Windows 和 Linux 上的额外 GPU 支持通过 Vulkan 提供。安装后端时,默认启用 Vulkan。在 Windows 上,大多数 GPU 厂商的驱动程序都捆绑了 Vulkan 支持,无需额外的设置步骤。大多数 Linux 发行版需要安装额外的组件,并且在 Mesa 和特定于 GPU 厂商的软件包之间可能有多个 Vulkan 驱动选项可供选择
- Linux Intel GPU 说明 - https://dgpu-docs.intel.com/driver/client/overview.html
- Linux AMD GPU 说明 - https://amdgpu-install.readthedocs.io/en/latest/install-script.html#specifying-a-vulkan-implementation
在某些 Linux 发行版上使用 AMD GPU 时,您可能需要将 ollama 用户添加到 render 组。
Ollama 调度器利用 GPU 库报告的可用 VRAM 数据来做出最佳的调度决策。Vulkan 需要额外的功能或以 root 身份运行才能暴露这些可用的 VRAM 数据。如果既没有授予 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。
在混合 iGPU/dGPU 系统中,如果 Vulkan iGPU 不稳定,请保持 Vulkan 启用状态,并将 GGML_VK_VISIBLE_DEVICES 设置为独立 GPU 的索引。例如,当 Vulkan1 是独立 GPU 时,使用 GGML_VK_VISIBLE_DEVICES=1。