Proxmox VE 9.2+ Intel 核显 SR-IOV + AMD Radeon AI PRO R9700 直通+Ubuntu24.04部署实测(三)
-
PVE 9.2 主机与 llama.cpp 推理服务器- R9700 直通 Ubuntu 搭建本地大模型
作为家庭主服务器使用:
1、PPPOE(Ikuai8)
2、OpenWRT(科学上网)
3、软路由(另外加一张4口2.5G网卡)
4、本地AI服务器
5、解码影音库、远程办公
6、注意:
ALL IN ONE · ALL IN BOOM 
7、做好数据备份、网络冗余。关键设备:显卡 PCI ID
1002:7551(gfx1201),宿主机 PCI 地址0000:04:00.0。
阶段一:宿主机配置 GPU 直通
在 PVE 宿主机(R9700)上操作。
1.1 确认 IOMMU 已启用
# 确认有 IOMMU 组(有输出即已启用) ls /sys/kernel/iommu_groups/ | wc -l # 查看显卡 IOMMU 组(应为独立组) for d in /sys/kernel/iommu_groups/*/devices/*; do echo "$d -> $(basename $(dirname $(dirname $d)))" done | grep -i "04:00"1.2 配置 vfio-pci 绑定显卡
① 写入 vfio 绑定规则
cat > /etc/modprobe.d/vfio.conf <<'EOF' options vfio-pci ids=1002:7551,1002:ab40 softdep amdgpu pre: vfio-pci EOF1002:7551是显卡本体,1002:ab40是显卡音频功能(可绑可不绑,绑了更干净)。② 配置 vfio 模块开机加载
cat > /etc/modules-load.d/vfio.conf <<'EOF' vfio vfio_iommu_type1 vfio_pci vfio_virqfd EOF③ 把 vfio 模块加入 initramfs(关键,确保在 amdgpu 之前抢占显卡)
cat >> /etc/initramfs-tools/modules <<'EOF' vfio vfio_iommu_type1 vfio_pci vfio_virqfd EOF④ 更新 initramfs
update-initramfs -u -k all1.3 给 VM 添加直通设备
# VMID 以实际为准(本机为ID 102) qm set 102 -hostpci0 0000:04:00.0,pcie=1pcie=1让 QEMU 以 PCIe 模式呈现设备( GPU 必需)。
若 VM 正在运行,该改动会在下次启动时生效。1.4 重启宿主机生效
reboot1.5 验证直通成功
宿主机上(显卡应绑定 vfio-pci 而非 amdgpu):
lspci -nnk -s 04:00.0 # 期望:Kernel driver in use: vfio-pci客户机 Ubuntu 内(显卡应出现且绑定 amdgpu):
lspci -nnk | grep -A3 1002:7551 # 期望:Kernel driver in use: amdgpu
阶段二:客户机安装 ROCm
在 Ubuntu 24.04 虚拟机内操作(以下命令需要 root / sudo)。
2.1 安装前置包
sudo apt update sudo apt install -y python3-setuptools python3-wheel curl2.2 下载并安装 amdgpu-install 脚本
# 下载最新 amdgpu-install(版本号可能更新,以 repo 为准) wget https://repo.radeon.com/amdgpu-install/31.50/ubuntu/noble/amdgpu-install_31.50.315000-1_all.deb sudo apt install -y ./amdgpu-install_31.50.315000-1_all.deb2.3 补充 AMD 仓库公钥(重要,否则 apt 报 NO_PUBKEY)
sudo mkdir -p /etc/apt/keyrings curl -sL https://repo.radeon.com/rocm/rocm.gpg.key | \ sudo gpg --dearmor --yes -o /etc/apt/keyrings/rocm.gpg # 验证 key ID 应为 9386B48A1A693C5C gpg --show-keys /etc/apt/keyrings/rocm.gpg2.4 安装 ROCm(跳过 dkms 内核驱动)
sudo amdgpu-install -y --usecase=rocm --no-dkms--no-dkms:Ubuntu 24.04 内核自带 amdgpu 已能驱动 R9700(gfx1201),无需额外 DKMS 内核模块,可避免编译失败。
该命令会安装 ROCm 10.0 的 gfx1201 专用完整栈(rocBLAS、MIOpen、RCCL 等),耗时取决于网速。2.5 给用户加 GPU 访问权限
sudo usermod -a -G render,video $USER
️ 组权限需重新登录(注销或重启)才生效。2.6 验证 ROCm 识别 GPU
# 重新登录后执行 rocminfo | grep -iE "gfx1201|R9700" # 应显示 gfx1201 / Radeon AI PRO R9700 amd-smi # 应显示 Radeon AI PRO R9700 + 显存
阶段三:安装 llama.cpp 与模型
3.1 下载 AMD 官方预编译二进制
# 预编译包自带 ROCm 运行时(约 3.5GB) wget -O llama-bin-linux.zip \ "https://repo.radeon.com/rocm/llama.cpp/linux/rocm-rel-7.2.1/llama-b8407-ubuntu-24.04-rocm-7.2.1-gfx110X-gfx115X-gfx120X-x64.zip"也可用 aria2 多线程加速:
aria2c -x 16 -s 16 -o llama-bin-linux.zip "URL"(实测可提速百倍)。3.2 解压并安装
sudo apt install -y unzip sudo mkdir -p /opt/llama.cpp sudo unzip -q -o llama-bin-linux.zip -d /opt/llama.cpp解压后目录(记录下完整路径,后面要用):
/opt/llama.cpp/llama-b8407-ubuntu-24.04-rocm-7.2.1-gfx110X-gfx115X-gfx120X-x64/3.3 下载模型(GGUF 格式)
mkdir -p /opt/llama.cpp/models cd /opt/llama.cpp/models # 示例:Qwen2.5-1.5B(中文友好,约 1.1GB) wget -O qwen2.5-1.5b-instruct-q4_k_m.gguf \ "https://huggingface.co/Qwen/Qwen2.5-1.5B-Instruct-GGUF/resolve/main/qwen2.5-1.5b-instruct-q4_k_m.gguf"国内网络可改用镜像
https://hf-mirror.com/...;或下载更大的模型(7B/14B/32B)放入同一目录。3.4 创建便捷启动器(本机为例)
sudo tee /usr/local/bin/llama-cpp >/dev/null <<'EOF' #!/bin/bash DIR="/opt/llama.cpp/llama-b8407-ubuntu-24.04-rocm-7.2.1-gfx110X-gfx115X-gfx120X-x64" export LD_LIBRARY_PATH="$DIR" MODEL="/opt/llama.cpp/models/qwen2.5-1.5b-instruct-q4_k_m.gguf" case "$1" in server) shift; exec "$DIR/llama-server" -m "$MODEL" -ngl 99 -fa on -c 4096 "$@";; cli) shift; exec "$DIR/llama-cli" -m "$MODEL" -ngl 99 "$@";; bench) shift; exec "$DIR/llama-bench" -m "$MODEL" "$@";; *) echo "用法: llama-cpp {server|cli|bench} [参数]";; esac EOF sudo chmod +x /usr/local/bin/llama-cpp
阶段四:验证与使用
4.1 验证 GPU 推理
# 命令行对话测试 llama-cpp cli -p "你好" -n 60 --no-display-prompt期望输出包含:
ggml_cuda_init: found 1 ROCm devices (Total VRAM: 30576 MiB) Device 0: AMD Radeon Graphics, gfx1201 ...(生成的中文回复)...4.2 日常使用
llama-cpp server # 启动 Web 服务 → 浏览器打开 http://localhost:8080 llama-cpp cli # 命令行对话 llama-cpp bench # 性能测试关键参数:
-ngl 99:所有层 offload 到 GPU(性能关键)-fa on:Flash Attention(省显存提速)-c 4096:上下文长度
4.3 更换更大模型
- 下载 GGUF 到
/opt/llama.cpp/models/ - 编辑
/usr/local/bin/llama-cpp,把MODEL=改为新模型路径
常见问题(实测踩坑记录)
问题 原因 解决 apt 报 NO_PUBKEY 9386B48A1A693C5Camdgpu-install 未自动导入公钥 手动下载 rocm.gpg.key 到 keyrings rocminfo找不到 GPU用户不在 render 组 / 未重新登录 usermod -aG render,video $USER后重新登录llama.cpp 报 libamd_comgr.so.3找不到未设库路径 设 LD_LIBRARY_PATH指向解压目录下载速度慢(KB/s) 单线程 + 代理 用 aria2c -x 16 -s 16多线程



-
,
T terry 固定了此主题
-
,系统 取消固定了此主题