AMD卡跑大模型只用CPU不用显存,电脑天天卡死,最后找到了4条出路

AMD卡跑大模型只用CPU不用显存,电脑天天卡死,最后找到了4条出路

上周有个客户咨询我,语气挺急的。

他说他的电脑配的是A卡,16G显存,拿Ollama本地跑大模型,结果发现一个问题,推理的时候显卡基本闲置,Ollama完全不调用显存,全靠CPU和内存在扛。

模型小的时候还能忍,模型一大,内存直接被吃满,整个电脑卡死,鼠标都动不了。

我当时就。。。这不就是A卡用户本地部署最经典的噩梦吗?

这个问题在A卡用户圈子里太普遍了。你去Ollama的GitHub Issues里搜「AMD」关键词,能翻出几百条相关帖子,几乎每一条都在问同一件事,「为什么我的A卡在Ollama里只用CPU不用GPU?」

所以今天这篇文章,我想把这件事从根上讲清楚,A卡为什么不用显存,怎么让它用上显存,以及如果Ollama实在搞不定,有什么替代方案。

先说为什么。

A卡不用显存,99%的情况只有一个原因,Ollama没有正确识别到你的AMD GPU。

N卡的情况下,Ollama背后走的是CUDA,NVIDIA的驱动生态太成熟了,装上驱动,Ollama自动识别显卡,自动把模型加载到显存里跑,整个过程你什么都不用做。

A卡就完全不一样了。

A卡走的是ROCm,AMD的GPU计算平台。但ROCm跟CUDA有一个天壤之别,它不是所有A卡都支持,而且支持列表特别挑剔。你以为你有一张A卡,ROCm就能用?不是的,它要看你的GPU架构代号(gfx编号)在不在官方支持列表里。

不在的话,对不起,ROCm初始化失败,Ollama静默回退到CPU,你的显卡就这么闲着。

而且Ollama在A卡上的问题不止这一个。它还自带一份ROCm库,版本可能和你系统装的ROCm不一样,跟你装的HIP SDK版本不匹配,跟你显卡驱动的兼容性也不一定对。任何一环出了问题,GPU发现就会超时失败,Ollama就默默用CPU去跑了。

最坑的是,Ollama不会给你弹个错误提示说「你的GPU没识别成功」,它只是默默地把推理放到CPU上。如果你不看任务管理器或者不用ollama ps命令查,你可能都不知道自己一直是在用CPU跑模型。

好,原因搞清楚了。接下来解决问题。

我按照从简单到复杂的顺序排列了四条路,你按顺序试,哪条通就走哪条。

方案一:先试环境变量强制Vulkan

这是最快的一条路。

Ollama从0.12.11版本开始支持Vulkan后端,Vulkan跟ROCm不一样,它是一个通用图形API,几乎支持所有AMD显卡,包括ROCm官方不支持的老卡。

设置方法很简单,在启动Ollama之前,设置环境变量OLLAMA_VULKAN=1。

Windows的话,在系统环境变量里加上就行。如果Ollama是以后台服务运行的,你需要在服务配置里加这个环境变量。具体操作是,打开注册表编辑器,找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Ollama,在Environment里加上OLLAMA_VULKAN=1,然后重启Ollama服务。

Linux的话,如果是systemd管理的服务,编辑/etc/systemd/system/ollama.service,在[Service]段加一行Environment="OLLAMA_VULKAN=1",然后sudo systemctl daemon-reload && sudo systemctl restart ollama。

设好之后跑一个模型,用ollama ps看Processor那列是不是变成了100% GPU,或者打开任务管理器看GPU占用是不是上去了。

有个实测数据,RX 580这种Polaris架构的老卡,Vulkan模式下token生成速度比CPU模式快40倍。真的是40倍。

但Vulkan也有它的问题。实测中,某些模型在Vulkan后端下会卡死或崩溃,尤其是一些新架构的模型像Qwen3.5系列。如果你的模型在Vulkan下跑不稳,继续看下一条。

方案二:试试HSA_OVERRIDE_GFX_VERSION

如果你的A卡不在ROCm官方支持列表里,但是架构代号跟某个支持列表里的型号比较接近,你可以用HSA_OVERRIDE_GFX_VERSION这个环境变量来「伪装」你的GPU架构。

常见对应关系:

RX 7000系列(RDNA3,gfx1100)→ 已经在支持列表里,不需要override

RX 6000系列(RDNA2,gfx1030/gfx1032等)→ 设HSA_OVERRIDE_GFX_VERSION=10.3.0

RX 780M/790M核显(gfx1103)→ 设HSA_OVERRIDE_GFX_VERSION=11.0.0

设置方法和Vulkan一样,加在环境变量里就行。但注意,不要同时设OLLAMA_VULKAN=1和HSA_OVERRIDE_GFX_VERSION,二选一。

另外,如果你设了HIP_VISIBLE_DEVICES=-1,赶紧删掉。这个环境变量会隐藏ROCm的GPU访问,导致Ollama被迫用CPU。有不少人是在设了这个变量之后GPU就再也没被识别到过。

还有一件事,如果你改了环境变量但Ollama还是只用CPU,记得完整重启Ollama服务。很多人只是在终端里export了变量,但Ollama是后台服务运行的,服务进程根本没拿到新变量。

方案三:确认Ollama版本和驱动版本

Ollama的A卡兼容性在不同版本之间差异很大。

0.13.x版本之后对AMD GPU的支持明显改善。0.18版本开始原生支持更多A卡架构。如果你还在跑老版本,先升级到最新版。

AMD驱动也一样,去Adrenalin里检查更新,装最新版。Windows用户还需要确认有没有装HIP SDK,没有的话装一个7.1版本的。

如果你升级了驱动和Ollama版本之后还是不行,试着在启动Ollama时加OLLAMA_DEBUG=1,看日志里到底卡在了哪一步。日志会告诉你GPU被发现了吗?初始化成功了吗?还是被filter掉了?

方案四:换工具,用LM Studio

坦率的讲,如果你把前三条路都走了,Ollama还是死活不用你的A卡,那就别跟Ollama死磕了。换LM Studio。

LM Studio对AMD显卡的兼容性比Ollama好得多,尤其对A卡用户。

原因很简单。LM Studio也是基于llama.cpp的,但它的Vulkan后端比Ollama的更成熟,设备枚举做得更好。同样一张A卡,Ollama的Vulkan发现不了,LM Studio的Vulkan一下就找到了。这在社区里有大量实测对比数据。

LM Studio的操作方法:

在Chat界面下载模型,加载模型的时候,勾选Show advanced settings,GPU Offload Layers拉到最大,勾选Use GPU acceleration。

加载完之后看一下GPU占用,应该就能看到显卡在工作了。

如果你是双显卡笔记本(AMD独显+Intel集显),还需要在AMD Software里把LM Studio的图形配置设为高性能模式,让它强制使用AMD显卡。

LM Studio还自带OpenAI兼容的API服务,端口1234,所以如果你之前是用Ollama的API给其他应用提供模型服务的,LM Studio完全可以替代Ollama的位置。

额外建议:考虑换Linux

我最后再说一个很多A卡用户忽略的事情。

就是操作系统的选择。

ROCm在Linux上的稳定性和兼容性远超Windows。同样的硬件,Ubuntu 24.04 + ROCm 7.x的体验比Windows 11好太多了。在Windows上,ROCm不是官方支持的路径,A卡走Vulkan又经常有兼容问题。Linux上ROCm原生支持,性能也能达到同级别N卡的80%到90%。

如果你是认真想用A卡跑本地模型,而且有一台可以装Linux的机器,我真心建议你装个Ubuntu 24.04试一试。Docker + ROCm的部署方式在Linux上非常成熟,装好amdgpu驱动和ROCm之后,Ollama的rocm版镜像拉起来直接就能用GPU。

我见过一个案例,RX 7900 XTX在Ubuntu上跑Llama 3.1 8B,速度96 tok/s,RTX 4090是128 tok/s,7900 XTX达到4090的75%,但价格只有4090的一半不到。

说真的,A卡用户在AI领域确实被亏待了。软件生态跟N卡比差距太大,踩的坑也更多。但A卡不是不能用,只是需要多走几步。

这几步走完了,你会发现A卡跑本地模型其实也能很丝滑。

如果看完这篇文章你还是蒙圈,也可以直接找人远程本地部署,简单、方便,免得自己去琢磨这些技术的东西。

编辑于 2026-06-26 · 著作权归作者所有