前一阵 qwen3:30b-a3b 大模型很火,说是离线状态下可以达到很牛逼的程度,碰巧我因为被抓壮丁要去参加一个傻逼的 CTF 比赛,所以就决定跑个模型来做理论题。
不过我没有 Nvidia 的显卡,我只有 Intel 显卡,听说 Intel 天天吹牛逼自己显卡算力多屌多屌,那就试试看吧。
经过查询后,发现 Intel 用 GPU 加速跑大模型,当前性能最好的方案就是这个 IPEX,简单来说就是一个由 Intel 官方优化和整合好的一键跑大模型的方案,支持 ollama 和 llama.cpp,还有其他的主流应用等。
如果你是 Windows 用户,这个一键整合包可以做到几乎绿色运行,你只需要确保你电脑驱动安装正常,下载下来,运行 bat 就可以开始加载和下载大模型了。
然而 Linux 下就有点麻烦了,不过这时候我推荐用官方的 Docker 镜像来做这件事情。
所谓 IPEX 的 Docker 镜像,就是用 Ubuntu 为基础,安装了一系列 Intel 官方的 OneAPI 包,还有 Intel-compute-runtime 之类的包,最后把 Intel 官方优化版的绿色 Ollama 一同打包起来生成的,最大的好处就是在 Linux 下只需要把你的 /dev/dri GPU 设备映射到 Docker 里,一切就可以正常运行了。真的是纯绿色使用,你的 Host 系统完全不需要安装任何东西,不会装一套 Runtime 把你的系统搞的一团糟。而且 Docker 这玩意所有发行版都支持,通用型极强。
当然我用的是 Podman,我讨厌 Docker 自带的那个傻逼服务,占用内存。
官方对于如何运行 IPEX 是有一套文档的,但是很冗杂,我还是建议直接 Docker 一把梭:
podman pull docker.io/intelanalytics/ipex-llm-inference-cpp-xpu
如果你身处中国大陆,发现这个连接被墙了,或者不稳定,那没办法,你需要自己想办法,要么科学上网,要么用国内的一些镜像。
镜像 Pull 之后,就可以运行了,建议加上一些参数:
podman run -d --replace --name=ipex-llm-inference-cpp-xpu \
--net=bridge \
--device=/dev/dri \
-p 11434:11434 \
-v /home/plum/Develop/ollama/models:/root/.ollama/models:Z \
-e PATH=/llm/ollama:$PATH \
-e OLLAMA_HOST=0.0.0.0 \
-e no_proxy=localhost,127.0.0.1 \
-e ZES_ENABLE_SYSMAN=1 \
-e OLLAMA_INTEL_GPU=true \
-e ONEAPI_DEVICE_SELECTOR=level_zero:0 \
-e DEVICE=Arc \
-e NEOReadDebugKeys=1 \
-e PrintDebugSettings=1 \
-e UseExternalAllocatorForSshAndDsh=0 \
\
intelanalytics/ipex-llm-inference-cpp-xpu:latest \
bash -c "cd /llm/scripts && source ipex-llm-init --gpu --device Arc && bash start-ollama.sh & sleep 5 && tail -f /llm/ollama/ollama.log"
大部分不需要修改,其中: -v /home/plum/Develop/ollama/models:/root/.ollama/models:Z \
这一个,前者是你本地大模型的存储目录,我建议你自定义一个,如果你想换容器跑类似的服务,你就可以映射同样的目录,直接用就可以,不用再次下载大模型。至于 11434 端口映射是方便你使用 Cherry Studio 之类的东西直接连接本地 API 的,你也可以自己该端口。
这时候我建议你安装一个本地的 Podman 管理 GUI 工具,比命令行方便许多,这里我用的是 Pods,GTK 的,KDE 不知道对应的是啥,可能也有吧。运行容器之后可以进入容器的 Terminal 里,运行一下 Bash,进入 Bash 就可以像正常的 Linux 终端一样跑 ollama 和后续的命令了,什么 ollama pull,ollama list,ollama run 都可以,虽然 ollama 版本有点老,但是的确是 Intel 官方优化过的,性能出乎意料的还不错。

我的配置是 U285H 64GRAM 集成的 Arc 140T 的 GPU,可以正常运行,会吃掉我 22G 左右的内存,反应速度我忘记跑分了,但是可以接受,尤其是线下比赛做个题什么的完全来得及。官方也有跑分数据,可以进行参考:
https://github.com/intel/ipex-llm?tab=readme-ov-file
我觉得比起跑分,最重要的是,在大内存的 Intel 集成显卡下,你可以跑得起来 qwen3:30b-a3b 这样的模型,而且运行的还不错,意义就很重大,我记得 8G 显存的设备就算算力再高,因为显存限制是跑不动这个模型的。

同样 Intel 官方还提供了其他类似的 IPEX 容器,都可以如法炮制,甚至如果你是 AMD 显卡,网上也有类似的 RocM 容器,Red Hat 甚至还有一个 ramalama 的工具,打包了 Podman 和各种 Ollama 容器,方便你快速在 Intel / AMD / Nvidia 上部署大模型,十分快捷绿色,本机什么都不需要装,只需要映射显卡设备就行了。
注意:Kernel 6.18 和 Xe 驱动(Kernel 6.18.7 已经修复)
这里需要特别强调一下,如果你是 Intel 显卡,且使用了 6.18 的内核,同时你还运行在 Xe 显卡驱动下,而不是 i915,那你大概率无法运行 IPEX 和相关的大模型容器,会提示无法获取显存容量。
主要原因这是一个 Bug:(还特么是我最先报的)
https://github.com/intel/compute-runtime/issues/875
Intel 官方的态度真的很让人火大,你跟他说模型不能用,他就让你升级新版,你升级了新版还不能用,他就说你是 Arrowlake 显卡,默认不是 Xe 驱动,让你滚回去用 i915;可是你 Xe 驱动作为实验性质,本来就是拿来测试问题解决问题的,面对用户汇报的问题 Intel 想到的不是解决,而是甩锅也是抽象。

然后后来提出这个问题的人越来越多,原因是大部分 NAS 系统开始升级到最新内核,还是有很多用 MTL 和 LNL intel 架构的用户在自己的 NAS 上跑大模型的,他们都开始先后遇到了类似的问题,也就都报过来了,Intel 才开始变得重视。
这里最搞笑的事 Lunar Lake 默认用的就是 Xe 驱动,这下 Intel 无法让人家滚回去用 i915 了(笑
我自己也有一张 Intel B580 显卡,默认 Battle Mage 架构,默认 Xe 驱动,我也尝试跑大模型,结果好像也是同样的问题。
当然这个问题当前也只是被 Intel 记录了,说是会尽快解决,但至少目前还没解决。如果是 6.18 更新内核,也在用 Xe 驱动,那建议就是降级到 6.17 内核就行了,或者等待 Intel 解决这个问题,或者用 Vulkan 后端跑 Ollama,代价就是性能表现是一坨大便,但至少能用。
说来 Intel 前一阵还在 CES 吹 Pantherlake 算力多牛逼多牛逼,结果自己的设备在最新内核下都没法跑,不知道是官方已经转向 Vulkan 后端了,还是压根没人用自己的设备,看来在大模型这一块, Cuda 还是绝对的业界标准啊。
反转了,刚写完没多久,发现 Intel 已经在 6.18.7 内核里修复了这个问题
https://bugzilla.redhat.com/show_bug.cgi?id=2431159
我用Mac能行么李大湿?