AMD 显卡跑大模型,Ollama 加 ROCm 七点零环境配置实录

📅 2026/7/3 17:16:31 ✍️ 编辑团队 👁️ 阅读次数
AMD 显卡跑大模型,Ollama 加 ROCm 七点零环境配置实录
从系统底层开始驱动安装与权限配置在 Ubuntu 上折腾 AMD 显卡跑大模型最让人头大的往往不是模型本身而是环境配置。尤其是 ROCm 7.0 发布后虽然生态完善了不少但“一步错步步错”的情况依然常见。很多兄弟在本地 Radeon 或者 Instinct 卡上部署时卡在驱动识别这一步就直接劝退了。今天我就把自己在 Ubuntu 22.04 LTS 上从零搭建 ROCm 7.0 环境的实录整理出来重点聊聊怎么避开那些文档里没写清楚的坑特别是用户组权限和 Ollama 识别显卡这两个高频问题。首先别急着去 Github 拉代码先把操作系统层面的地基打牢。ROCm 对内核版本比较敏感建议直接使用 Ubuntu 22.04 LTS 或更新版本老版本内核可能会缺少必要的硬件调度支持。安装前务必确认当前用户拥有sudo权限。这里有个极易被忽视的细节用户组归属。ROCm 驱动需要访问/dev/kfd和/dev/dri设备文件如果当前用户不在video和render用户组里后续所有命令都会报Permission denied。执行以下命令将当前用户加入对应组sudousermod-aGvideo,render$USER敲完这行别以为就结束了必须重启系统才能生效。我第一次配的时候就忘了重启结果后面编译 PyTorch 时报了一堆莫名其妙的链接错误排查半天才发现是权限问题。重启后可以用groups $USER确认一下输出里是否包含了video和render。接下来是添加官方软件源。千万别图省事去下载第三方打包的.deb文件版本冲突能让你怀疑人生。AMD 官方提供了清晰的源地址我们直接通过脚本添加。打开终端依次执行wgethttps://repo.radeon.com/amdgpu-install/7.0/ubuntu/jammy/amdgpu-install_7.0.70000-1_all.debsudoaptinstall./amdgpu-install_7.0.70000-1_all.deb源添加好后不需要安装全家桶我们只需要核心的开发组件。执行以下命令安装hip-base和相关依赖sudoamdgpu-install--usecasehip,dev --no-dkms加上--no-dkms参数是为了避免在内核更新时自动编译驱动模块导致的不稳定对于大多数桌面和服务器环境官方预编译的内核模块已经足够稳定。安装过程可能需要几分钟期间会拉取一堆依赖包保持网络畅通即可。验证环境与解决 Ollama 识别难题安装完成后不要急着跑大模型先验证驱动是否正常工作。ROCm 提供了一个非常直观的工具rocm-smi它能列出所有被识别的 GPU 及其状态。在终端输入rocm-smi如果一切正常你应该能看到一个表格清晰地显示 GPU 编号、温度、功耗、显存使用率以及当前的频率策略。比如我的 Radeon RX 7900 XTX 在这里会显示为Card0显存占用和温度数据实时跳动。如果这里报错或者显示为空说明驱动加载失败这时候要去检查dmesg | grep amdgpu的日志通常能定位到内核模块加载失败的原因。除了看状态还要确认架构信息是否匹配。运行rocminfo可以看到详细的硬件架构代号如gfx1100对应 RDNA3 架构。这一步很关键因为后续编译 PyTorch 或 vLLM 时需要指定这个架构代号否则生成的二进制文件在当前硬件上无法运行会报illegal instruction。环境通了之后重头戏来了让 Ollama 跑起来。很多同学在 AMD 卡上运行 Ollama 时发现它根本不用独显而是慢吞吞地跑在 CPU 上。这是因为 Ollama 默认优先寻找 CUDA 设备对 ROCm 的支持需要手动“指路”。解决方法很简单设置环境变量OLLAMA_HIP_VISIBLE_DEVICES。假设你的rocm-smi显示显卡编号为 0那么在启动 Ollama 服务前执行exportOLLAMA_HIP_VISIBLE_DEVICES0ollama serve如果是多卡环境可以用逗号分隔比如0,1。设置生效后观察 Ollama 的日志输出如果看到类似offloading to GPU的提示且显存占用开始上升就说明配置成功了。为了验证效果可以拉取一个量化模型测试ollama run llama3:8b-instruct-q4_0问它几个问题如果生成速度明显提升不再是每秒几个字的龟速那就大功告成。为了方便大家快速复现和日常检查我写了一个简单的 Shell 脚本用来自动检查驱动版本、用户组权限以及 Ollama 的环境变量配置。你可以把它保存为check_rocm.sh#!/bin/bashecho ROCm Environment Check # 1. Check User Groupsecho-nUser Groups: ifgroups$USER|grep-qvideogroups$USER|grep-qrender;thenecho[OK] video render groups found.elseecho[FAIL] Missing video or render group! Run: sudo usermod -aG video,render \$USERfi# 2. Check Driver Versionecho-nROCm Version: ifcommand-vrocm-smi/dev/null;thenrocm-smi--showdriverversionelseecho[FAIL] rocm-smi not found. Is ROCm installed?fi# 3. Check GPU VisibilityechoGPU Status:ifrocm-smi--showproductname/dev/null;thenrocm-smi--showproductnameelseecho[FAIL] No GPUs detected by rocm-smi.fi# 4. Check Ollama Envecho-nOllama HIP Env: if[-n$OLLAMA_HIP_VISIBLE_DEVICES];thenecho[OK] Set to$OLLAMA_HIP_VISIBLE_DEVICESelseecho[WARN] Not set. Ollama might run on CPU.fiecho Check Complete 给脚本加上执行权限chmod x check_rocm.sh每次环境出问题跑一下基本能覆盖 90% 的排查场景。其实 AMD 显卡跑大模型的门槛正在快速降低ROCm 7.0 的稳定性比之前几个版本好了太多。只要把底层的驱动权限理顺再通过环境变量正确引导上层应用本地推理的体验并不比 N 卡差多少尤其是在显存容量占优的情况下跑一些大参数量的量化模型反而更有优势。剩下的就是根据具体需求去调整 vLLM 或 LLaMA-Factory 的参数了那是另一个值得深入的话题。200小时GPU算力已就位快来领取https://marketing.csdn.net/questions/Q2604140858304426315?utm_sourceAIpaper