Ollama 在 AMD 新平台上跑不动,加行环境变量就能满血
现象:GPU 在“摸鱼”,CPU 在“渡劫”
刚入手 AMD Ryzen AI Max+ 395(Strix Halo 架构)笔记本时,我满怀期待地装上了 Ollama,准备体验本地大模型的丝滑。毕竟这台机器主打的就是 128GB 统一内存和强大的 Radeon 核显,理论上跑个 32B 模型应该不在话下。然而现实却给了我一记闷棍:在终端执行 ollama run 拉取并运行模型后,生成的 token 速度慢得令人发指,大概只有 3-4 tokens/s,稍微复杂点的指令甚至要等上半天。
更诡异的是打开任务管理器一看,CPU 占用率直接飙到 100%,风扇狂转得像要起飞,而本该承担重任的 GPU(Radeon 8060S)的 “3D” 和 “Compute” 占用率却死死趴在 0% 附近,仿佛完全不存在一样。这种“有劲使不出”的尴尬场景,相信不少刚接触 Strix Halo 平台的极客玩家都遇到过。明明硬件参数拉满,软件也装好了,为什么推理引擎就是识别不到显卡?
经过一番排查和查阅资料,问题终于浮出水面:这不是硬件故障,也不是驱动没装好,而是推理后端(基于 llama.cpp 内核)对最新 RDNA3 架构的自动检测机制“滞后”了。Strix Halo 集成的 Radeon 显卡内部 GFX 版本标识为 11.0.3,但 Ollama 在 Windows 环境下默认尝试匹配旧版本或无法准确解析新设备 ID。为了保命不崩溃,它保守地放弃了 GPU 加速,回退到了纯 CPU 模式。要解决这个问题,不需要重装系统或编译源码,只需加一行环境变量,就能强行唤醒沉睡的算力。
核心解法:手动指定 GFX 架构版本
解决识别错位的关键,在于通过系统环境变量给推理引擎贴一张“身份证”,强制告诉它:“别猜了,我就是 GFX 11.0.3"。这个变量名为 HSA_OVERRIDE_GFX_VERSION。一旦设置成功,Ollama 就能绕过模糊的自动检测,直接调用最高效的指令集路径,彻底激活 Radeon 显卡的 AI 推理潜能。
方法一:全局设置(永久生效)
如果你希望所有基于 llama.cpp 的程序(包括 LM Studio、Ollama 等)都能自动识别显卡,建议直接在系统中添加全局环境变量。
- 打开设置入口:按下
Win键,直接在搜索框输入“编辑系统环境变量”,点击搜索结果中的控制面板项。 - 进入变量管理:在弹出的“系统属性”窗口右下角,点击“环境变量”按钮。
- 新建系统变量:务必在下方的"系统变量"区域(而不是上面的用户变量,以确保对所有服务生效)点击“新建”。
- 变量名:
HSA_OVERRIDE_GFX_VERSION - 变量值:
11.0.3
- 变量名:
- 保存并重启:连续点击“确定”保存所有设置。注意:修改后必须完全关闭正在运行的 Ollama 终端或服务,重新启动才能生效。
设置完成后,再次运行模型,你会在 Ollama 的日志中看到 GPU 卸载层数(GPU Offload)瞬间跳变至最大值,显存占用曲线稳步上升,原本闲置的计算单元被全部唤醒。
方法二:脚本启动(灵活控制)
对于习惯命令行操作的极客玩家,或者需要在不同架构设备间切换的场景,全局修改环境变量可能不够灵活。Ollama 允许在启动时通过临时环境变量的方式注入配置,这种方法不会影响系统其他程序,非常适合写进自动化脚本中。
PowerShell 启动脚本
如果你常用 PowerShell,可以创建一个 .ps1 文件,内容如下:
# 设置环境变量强制指定 GFX 版本
$env:HSA_OVERRIDE_GFX_VERSION = "11.0.3"
# 启动 Ollama 服务
ollama serve
或者直接在一行命令中运行特定模型:
$env:HSA_OVERRIDE_GFX_VERSION="11.0.3"; ollama run qwen2.5:7b
批处理文件(.bat)
对于传统的 CMD 用户或需要双击即用的场景,创建一个 .bat 文件更为方便:
@echo off
REM 强制指定 AMD GPU 架构版本为 11.0.3 (RDNA3/Strix Halo)
set HSA_OVERRIDE_GFX_VERSION=11.0.3
REM 启动 Ollama 服务
ollama serve
将上述代码保存为 start_ollama_amd.bat,以后每次需要运行 Ollama 时,直接双击该文件即可。这种方式确保了每次运行都能精准命中正确的 GPU 架构,彻底杜绝因环境差异导致的性能波动。
效果验证:从"PPT"到“德芙”的质变
配置好环境变量后,最直观的反馈就是速度的飞跃。我在同一台 Ryzen AI Max+ 395 上,使用 Qwen2.5-32B 模型进行了前后对比测试。
- 修改前(默认自动检测):
- 生成速度:3-4 tokens/s
- GPU 占用:< 10% (几乎为零)
- 体验:明显的卡顿,打字机效果断断续续,CPU 满载发热严重。
- 修改后(指定 GFX 11.0.3):
- 生成速度:25-30 tokens/s
- GPU 占用:> 90% (稳定满载)
- 体验:流畅如德芙,首字延迟大幅降低,连续生成长文本不再中断,风扇噪音也明显减小(因为 CPU 不再需要独自承担所有计算)。
速度提升了近 8 倍,这不仅仅是数字的变化,更是可用性的质变。原本需要几分钟才能生成的代码片段,现在几秒钟即可呈现;原本因为显存调度错误导致的频繁崩溃,也变得稳如磐石。
避坑指南与额外建议
虽然加一行环境变量能解决大部分问题,但在实际折腾过程中,还有几个细节需要注意,以免踩坑:
- 驱动版本要新:AMD 的 Adrenalin 驱动程序更新频繁,新架构的支持往往包含在最新版驱动中。如果设置了环境变量依然无效,请务必前往官网下载并安装最新版本的显卡驱动。旧版驱动可能根本不存在
11.0.3的定义文件,导致强制指定也无效。 - 后端选择 Vulkan:在 Windows 上,虽然 ROCm 是 AMD 的亲儿子,但其生态重心主要在 Linux,Windows 端的稳定性目前仍不如 Vulkan。确保你的 Ollama 版本较新(推荐 0.1.3x+),或者在使用 LM Studio 等其他工具时,手动在开发者设置中将 Backend 切换为 Vulkan。这是发挥上述环境变量作用的前提。
- BIOS 设置检查:为了充分发挥 Strix Halo 统一内存的优势,建议进入 BIOS 检查是否开启了 Resizable BAR,并将 iGPU 内存分配调至最大(如 96GB 或更高)。如果 BIOS 里限制了显存大小,即便软件层面识别正确,也可能因为显存不足而无法加载大模型。
对于 Strix Halo 用户而言,这行简单的 HSA_OVERRIDE_GFX_VERSION=11.0.3 代码,就是解锁本地 AI 全部潜能的钥匙。它让昂贵的统一内存架构真正转化为了实实在在的算力红利,让你的 AMD 新平台不再只是“能跑”,而是真正“好用”。
200小时GPU算力已就位,快来领取:https://marketing.csdn.net/questions/Q2604140858304426315?utm_source=AIpaper
更多推荐


所有评论(0)