释放小七猫的分享欲

intel 核显硬件加速跑 ollama

tags: NAS
@ 28/06/2026

intel 核显硬件加速跑 ollama

我的 NAS 用了一块 q1j2 的 CPU,带一块 96 EU 的 XE 核显,性能比较给力。但长期以来我都将这块核显闲置,因为除了视频转码之外没找到合适的场景。

最近看英文比较多,于是想把沉浸式翻译接到自己的接口,减少 token 使用量。

安装 ollama

现在 ollama 已经支持 iGPU,不再需要使用 ipex 一类的方案,现在这些第三方方案已经归档,不再更新(也没必要了)。

我使用 fedora 系统,可以使用 sudo dnf install ollama 来安装,但 fedora 源里面的 ollama 版本较老,不合适,还是使用官网的安装方法更好:

curl -fsSL https://ollama.com/install.sh | sh

查看 ollama 的服务文件:

❯ cat /etc/systemd/system/ollama.service
[Unit]
Description=Ollama Service
After=network-online.target

[Service]
ExecStart=/usr/local/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3

[Install]
WantedBy=default.target

默认使用 ollama:ollama 用户和用户组启动,其配置文件路径为 /var/lib/ollama/

可能需要手动创建这个文件夹并设用户组:

sudo mkdir /var/lib/ollama/
sudo chown -R ollama:ollama /var/lib/ollama/

在文件 /etc/systemd/system/ollama.service 的 [service] 添加几个环境变量:

Environment="OLLAMA_IGPU_ENABLE=true"
Environment="OLLAMA_HOST=0.0.0.0"
Environment="OLLAMA_ORIGINS=*"

分别为启用 intel 核显(以前是 OLLAMA_VULKAN=true,新版本偷偷改了,坑人);监听所有 IP,运行 WebUI 访问。

sudo systemctl daemon-reload
sudo systemctl restart ollama

此外,你可能还需要安装 vulkan 驱动,fedora 如下:

sudo dnf install mesa-vulkan-drivers vulkan-loader vulkan-tools

Vulkan 排错

  1. vulkaninfo 工具:
❯ vulkaninfo | grep "GPU id"

WARNING: [Loader Message] Code 0 : terminator_CreateInstance: Received return code -9 from call to vkCreateInstance in ICD /usr/lib64/libvulkan_dzn.so. Skipping this driver. 'DISPLAY' environment variable not set... skipping surface info WARNING: [Loader Message] Code 0 : ICD for selected physical device does not export vkGetPhysicalDeviceDisplayPlanePropertiesKHR! WARNING: [Loader Message] Code 0 : ICD for selected physical device does not export vkGetPhysicalDeviceDisplayPropertiesKHR! GPU id = 0 (Intel(R) Iris(R) Xe Graphics (RPL-P)) GPU id = 1 (llvmpipe (LLVM 22.1.7, 256 bits))

能看到 GPU 则说明 vulkan 驱动正常。

  1. ICD 文件路径,通常它们在/usr/share/vulkan/icd.d/目录下
❯ cat /usr/share/vulkan/icd.d/intel_icd.x86_64.json
{
    "ICD": {
        "api_version": "1.4.348",
        "library_arch": "64",
        "library_path": "/usr/lib64/libvulkan_intel.so"
    },
    "file_format_version": "1.0.1"
}

程序通过这个文件找驱动,需要存在。

  1. ollama 对 vulkan 的支持

检查编译后的二进制是否包含 Vulkan 符号:

❯ strings /usr/local/bin/ollama | grep -i "ggml_vulkan"

 esc cancelggml_vulkan:\s+(\d+)\s+=.*\|\s+uma:\s+([01])\s+\|evicting intermediate blob which no longer existsllama-server model fits alongside existing models

有输出则说明当前版本 ollama 支持 vulkan,只要是官网安装的最新版,都支持。

安装模型测试

这里使用 qwen3.5:4b 进行测试。

ollama pull qwen3.5:4b
ollama run qwen3.5:4b
❯ ollama run qwen3.5:4b
>>> 测试对话
Thinking...
好的,用户说“测试对话”.....

使用 sudo intel_gpu_top 查看核显使用情况:

intel-gpu-top: Intel Alderlake_p (Gen12) @ /dev/dri/card0 - 1419/1446 MHz;   1% RC6; 23.59/45.42 W;      118 irqs/s

         ENGINES     BUSY                                                                                   MI_SEMA MI_WAIT
       Render/3D   93.67% |

可见 GPU 已经跑起来了。