2026年11月11日
ep17-hero-cover
单张 24GB RX 7900 XTX 运行 Qwen3.8 Flash (125B) MoE 大模型:Avalon 与 Strata RDNA3 两套顶级优化路线完整安装部署指南。含 256K 超长上下文配置、MTP 加速、合成跑分中位数与真实编程反转实测全流程。

RX 7900 XTX 单卡运行 Qwen3.8 Flash (125B):Avalon 与 Strata RDNA3 双引擎安装部署实战

玩客笔记 EP17 配套教程|Ubuntu 24.04 + ROCm 7.2.4|一张 RX 7900 XTX 24GB|Qwen3.8-Flash-Next 125B|IQ3 + MTP

更新:2026-11-05。 本文提供两个可操作的独立部署流程。若要精确复现视频跑分,请同时使用视频测试时的模型、源码提交和实际启动配置;仅仅安装成功不代表自动获得相同吞吐。

Avalon vs Strata 7900XTX 实测对决

为什么这次要比较两套引擎?

同样一张 24GB 显存的 RX 7900 XTX,也能运行参数规模高达 125B 的 MoE 大模型。原因并非模型的全部权重都装进了显存,而是推理引擎把 GPU、CPU 和系统内存协同起来,只在每一步激活一部分专家。

这期视频使用两套已实测可运行的路线:Avalon + 专用 IQ3_KS Hybrid + 两步 MTP,以及 Strata RDNA3 + Swift 1.5 IQ3_S + 四步 MTP。它们的模型权重、量化与缓存优化不同,所以比较的是完整部署方案,而不是只改变一行推理引擎代码的严格同模型实验。

本期视频的本地实测报告显示:短提示持续生成中位数 Avalon 为 80.3 tokens/s,Strata 为 92.5 tokens/s;接近 256K 的输入下,Prefill 分别为 1,662.7 和 3,190.4 tokens/s,首字延迟从 156.4 秒大幅腰斩至 81.4 秒。而在真实端到端 Python 编程任务中,Avalon 则凭借更优的单次推理路径反超交卷。这些是本次具体主机与配置的实测回报,不是每个用户安装之后的保证速度。

1. 准备硬件、磁盘和系统

本次实测环境:

项目 视频实测配置
GPU AMD Radeon RX 7900 XTX 24GB(仅使用一张)
CPU Ryzen 7 3700X(支持 AVX2)
内存 约 94GB ~ 96GB DDR4(实测平台配置)
系统 Ubuntu 24.04.4 LTS,x86-64
ROCm 7.2.4
存储 推荐 NVMe SSD
上下文 视频对照使用 262,144 tokens 的最大窗口

实际建议: 如果只安装一套,引擎、模型和缓存预留约 120–180GB 可用 SSD 空间比较稳妥;同时装两套并保留 Strata 专家 pack,建议至少 300GB 可用空间。实际占用取决于下载版本、临时文件和是否保留重复副本。64GB RAM 的机器可能也能运行,但本文的吞吐数字以约 94GB~96GB RAM 为条件;内存较小时可能频繁读盘,速度明显下降。

先检查机器,而不是直接下载将近百 GB 的模型:

cat /etc/os-release | head -n 6
uname -m
lscpu | grep -i avx2 | head -n 1
free -h
df -h "$HOME"
lspci | grep -Ei 'VGA|Display|AMD|Radeon'
command -v rocm-smi && rocm-smi
/opt/rocm/bin/rocminfo 2>/dev/null | grep -m 3 gfx1100

预期看到 x86_64、AVX2、RX 7900 XTX 对应的 gfx1100。如果 rocminfo 不存在或不能识别 GPU,先按照 AMD ROCm 7.2.4 Ubuntu 安装文档 配置 ROCm,不要直接在已有生产系统上盲目升级驱动。若提示 /dev/kfd 或 /dev/dri/renderD* 无访问权限,核对当前用户是否属于 render、video 组;调整组权限后需重新登录。

安装常见构建工具(在一台新 Ubuntu 机器上执行):

sudo apt update
sudo apt install -y git cmake ninja-build build-essential \
  python3 python3-venv python3-pip curl pciutils
mkdir -p "$HOME/AI"

为了避免同时运行时争抢 GPU,以下两套引擎一次只启动一个。为便于排查,示例端口 Avalon 为 8080,Strata 为 8081,均只监听本机 127.0.0.1。

2. 路线 A:部署 Avalon(专用 IQ3_KS + MTP)

2.1 获取并固定源码

官方项目:freriadoc/Avalon。与视频对照对应的源码提交为 9ff242b。不要直接拿未来的 main 版本跑出成绩,再与本期旧版本数据混比。

cd "$HOME/AI"
git clone https://github.com/freriadoc/Avalon.git
cd Avalon
git checkout 9ff242b
git rev-parse --short HEAD

2.2 用 ROCm 构建 llama-server

下面来自 Avalon 官方 HIP 构建路线,明确指定 RX 7900 XTX 的 gfx1100:

cd "$HOME/AI/Avalon"
cmake -S . -B build \
  -DGGML_HIP=ON \
  -DAMDGPU_TARGETS=gfx1100 \
  -DCMAKE_BUILD_TYPE=Release \
  -DCMAKE_C_COMPILER=/opt/rocm/bin/amdclang \
  -DCMAKE_CXX_COMPILER=/opt/rocm/bin/amdclang++
cmake --build build -j"$(nproc)" --target llama-server
ls -lh build/bin/llama-server

如果提示找不到 amdclang,请先检查 /opt/rocm/bin 是否存在、ROCm 开发组件是否安装正确。不要在编译失败后自动改成 CUDA 构建:本教程是 AMD HIP 路线。若部分环境提示未定义 GGML_HIP,可尝试替换为兼容参数 -DGGML_HIPBLAS=ON。

2.3 下载 Avalon 专用模型和 MTP 文件

模型来源:freriadoc/Qwen3.8-Flash-Next-Avalon-GGUF。主模型由 33 个 GGUF 分片组成,另有 MTP sidecar 与 moe-cache-ranking.bin。必须下载完整,不能只拿第一个分片。 官方标注主模型约 89GiB,MTP 文件约 1.48GB。

先为 Hugging Face CLI 创建隔离环境:

python3 -m venv "$HOME/AI/hf-tools"
source "$HOME/AI/hf-tools/bin/activate"
python -m pip install -U 'huggingface_hub[cli]'

下载到固定目录(可使用 huggingface-cli download 或 hf download,网络中断可直接重试同一命令):

mkdir -p "$HOME/AI/models/Avalon-IQ3KS"
huggingface-cli download freriadoc/Qwen3.8-Flash-Next-Avalon-GGUF \
  --local-dir "$HOME/AI/models/Avalon-IQ3KS"

find "$HOME/AI/models/Avalon-IQ3KS" -name '*.gguf' | sort | head
find "$HOME/AI/models/Avalon-IQ3KS" -maxdepth 1 -name '*.gguf' | wc -l

最后一条应显示 33(模型根目录的主分片数量);MTP 分片位于 MTP/ 下,不计入这 33 个。请同时确认 moe-cache-ranking.bin 和 MTP 文件存在。若下载工具返回下载失败或模型仓库需要额外授权,先按网站实际提示处理,不跳过校验。

2.4 启动 Avalon(256K + 两步 MTP)

以下使用官方 README 已提供的配置(-b 9536 -ub 9536 为 7900 XTX 显存与 Prefill 优化配置):

cd "$HOME/AI/Avalon"
MODEL_DIR="$HOME/AI/models/Avalon-IQ3KS"
HIP_VISIBLE_DEVICES=0 ./build/bin/llama-server \
  -m "$MODEL_DIR/Qwen3.8-Flash-Next-Avalon-IQ3KS-00001-of-00033.gguf" \
  -c 262144 -b 9536 -ub 9536 -fa on \
  -ctk q8_0 -ctv q4_0 --jinja --parallel 1 \
  -md "$MODEL_DIR/MTP/mtp-Qwen3.8-Flash-Next-shared-IQ3K-IQ4NL-FR65k.gguf" \
  --spec-type draft-mtp --spec-draft-n-max 2 -ubd 256 \
  -ctkd q8_0 -ctvd q8_0 \
  --host 127.0.0.1 --port 8080

首次启动会读取模型与预热缓存,不能仅凭短时间没有输出就断定卡死。启动后在主机浏览器打开 http://127.0.0.1:8080;也可以在另一个终端执行:

curl -s http://127.0.0.1:8080/health
curl -s http://127.0.0.1:8080/v1/models

请在日志中核对 draft model 正常加载;MTP 并不是只要命令里出现 -md 就一定运行成功。

3. 路线 B:部署 Strata RDNA3(Swift 1.5 IQ3_S + MTP)

项目:nicejunjie/Strata-rdna3,这是针对 RDNA3 调优的社区 fork,区别于标准上游 Strata。本期测试固定的源码提交是 309f0c8f。

3.1 获取并固定 fork

cd "$HOME/AI"
git clone https://github.com/nicejunjie/Strata-rdna3.git
cd Strata-rdna3
git checkout 309f0c8f
git rev-parse --short HEAD

3.2 安装 Swift IQ3_S 并编译 HIP 引擎

先核实重要差别:fork 自带的 rdna3/run.py iq3-1gpu 示例配置默认是 ISTA 原版 IQ3_S,并非视频本次使用的 Swift 1.5 IQ3_S。因此下面明确指定 --family swift --model IQ3_S,避免下载错误权重。Swift 模型来自 UkisAI Swift 1.5 GGUF,该量化的两个分片合计约 83.74GB。

cd "$HOME/AI/Strata-rdna3"
export XDG_CONFIG_HOME="$PWD/.config"
D="$HOME/AI/Strata-data"

./setup.sh --setup --build \
  --backend hip \
  --family swift --model IQ3_S \
  --context 262144 --kv int8 \
  --gpu 0 --vision no \
  --port 8081 \
  --data-dir "$D" \
  --no-start --yes

这一条会在项目自己的 .venv 中准备工具链、构建 HIP 引擎、下载 Swift 模型两分片及 MTP draft、生成 Strata 专家 pack 和启动配置。不要在已有 Strata 安装上省略 XDG_CONFIG_HOME:旧版本的 setup 可能迁移原先模型文件。 首次下载与打包会占用大量磁盘、内存和时间。

版本注意:Strata 的构建流程可能安装自己的隔离 ROCm SDK 组件,即使宿主机已有 ROCm 7.2.4,最终实际使用的构建工具链也可能不同。请以 engine/BUILD.json、构建日志为准,不能仅凭系统 rocm-smi 版本宣称工具链完全一致。

3.3 查看生成配置,确认四步 MTP

在本次固定源码中,setup.py 生成模型命令时默认加入 --spec 4 --spec-min-p 0.5 --mtp <draft目录>,以及选定的最大上下文和 KV 精度。安装完成后检查:

cd "$HOME/AI/Strata-rdna3"
ls -lh run-*.sh
ls -lh engine/strata engine/BUILD.json
# 查找 Strata 自动生成的 JSON 配置:
find "$HOME/AI/Strata-data" "$HOME/AI/Strata-rdna3" \
  -type f -name '*.json' 2>/dev/null | grep -Ei 'strata|iq3|swift' | head -n 30

找出启动脚本中 --config 引用的 JSON,再确认其 args 中包含 --spec 4、--mtp 和 --max-context 262144。没有这些项时请先检查 setup 是否真正完成,不应为了启动就删除 MTP 配置。

3.4 启动 Strata 并进入网页后台

cd "$HOME/AI/Strata-rdna3"
export XDG_CONFIG_HOME="$PWD/.config"
./setup.sh --gpu 0 --port 8081

如果该项目目录中已生成对应 Swift 模型的 run-*.sh,也可以从生成的脚本启动;优先以实际脚本和它引用的 JSON 为准。浏览器访问:

http://127.0.0.1:8081

Strata 的网页通常可查看 Chat 和 Monitor。命令行也可以验证:

curl -s http://127.0.0.1:8081/v1/models

网页打开但模型没有回答,不算部署成功;必须再做一次真正的中文聊天验证。

3.5 想进一步接近 RDNA3 极限性能?

fork 还提供 RDNA3 完整复现说明 和 RDNA3 优化参数。这些文件包含 WMMA、专家计算、KV Host DMA 等专项选项。但它们的 iq3-1gpu 预设面向原版 IQ3_S,不要原封不动地套到 Swift 配置上并宣称必然重现本次成绩。

本篇步骤的目标是让 Swift IQ3_S + MTP 确实成功启动并回答;如要严格重现视频的 92.5 tokens/s,还须与本次实测所用的 config/strata.json、模型文件哈希及对应的调优环境变量逐项核对。目前公开资料中没有这组完整配置,所以不把未知值写成所谓“实测同款一键参数”。

4. 统一验证:确认两套引擎都真正生成了答案

两套引擎都提供 OpenAI 兼容接口。下面使用 Python 标准库,不需要再安装第三方客户端。每次先确认只启动了其中一套引擎。

在 ~/AI/ 创建一次验证脚本:

cat > "$HOME/AI/check_model.py" <<'PY'
import json, sys, urllib.request
port = int(sys.argv[1])
base = f"http://127.0.0.1:{port}"
with urllib.request.urlopen(base + "/v1/models", timeout=30) as r:
    models = json.load(r)["data"]
if not models:
    raise SystemExit("没有返回可用模型")
model_id = models[0]["id"]
body = json.dumps({
    "model": model_id,
    "messages": [{"role": "user", "content": "请用中文解释 MoE 模型为什么可以在 24GB 显卡上运行,分三点回答。"}],
    "max_tokens": 256,
    "temperature": 0,
    "stream": False
}, ensure_ascii=False).encode("utf-8")
req = urllib.request.Request(base + "/v1/chat/completions", data=body,
    headers={"Content-Type": "application/json"}, method="POST")
with urllib.request.urlopen(req, timeout=300) as r:
    answer = json.load(r)
print("model:", model_id)
print(answer["choices"][0]["message"].get("content", ""))
print("usage:", answer.get("usage", {}))
PY

启动 Avalon 时执行 python3 "$HOME/AI/check_model.py" 8080;启动 Strata 时执行 python3 "$HOME/AI/check_model.py" 8081。能返回非空中文答案、没有服务端错误和崩溃,才算完成最小部署验收。首次请求可能因加载或长上下文初始化而等待较久。

5. 常见问题与处理方式

Q1:提示 No HIP devices、gfx1100 not found 或没有 GPU 权限。 先检查 rocm-smi、rocminfo、/dev/kfd 权限及实际 GPU 驱动;不要通过改用 CPU-only 运行来冒充单卡实测。AMD 安装与系统兼容问题优先查官方 ROCm 文档。

Q2:Strata 下载或安装中断。 在原项目目录、相同 XDG_CONFIG_HOME 和数据目录下重复安装命令,利用其续传与已有文件检查机制;不要反复换数据目录造成大文件重复下载。磁盘不足时应先核查大小,不要直接删除其他项目的模型。

Q3:模型启动后内存使用明显上升。 这是大 MoE 模型的正常特征之一:大量专家权重留在系统内存,长上下文 KV 也会额外占用资源。视频中提到的“约 54.8GB”是本地执行端按整机 MemTotal - MemAvailable 采集的全机已用内存峰值,不是证明 Strata 进程独占了 54.8GB。

Q4:250K 输入崩溃或 OOM。 初次跑通可以先用更小窗口,例如 Avalon -c 65536,Strata 在重新配置时使用 --context 65536。这只为排障;降低上下文后不能再称为视频的 256K 复现成绩。检查是否仍有第二引擎占用显存、交换分区过载或 RAM 不够。

Q5:为什么我的生成速度达不到视频里的数字? CPU 型号、DDR4 带宽、PCIe、GPU 占用、专家命中率、模型量化、输入长度、MTP 接受率、KV 精度、是否启用 RDNA3 调优,以及测量的是瞬时值还是三次中位数,都会影响结果。尤其不要把 Strata 官方 iq3-1gpu 原版模型预设误当成 Swift 1.5 的完整复现实例。

Q6:能同时给多个人使用吗? 本期只做了 单并发 性能测试,并未验证高并发吞吐或多个请求同时加速;本文也不建议直接把服务绑定到公网。局域网访问需要另行配置监听地址和认证。

Q7:开源程序与模型可以重新打包出售吗? 引擎源码、Avalon 模型、Swift 模型采用不同的许可证。本文只提供原始项目和权重来源链接,转发文章不等于获得模型再分发或商业销售权。发布整合安装包前需逐项审查许可证、NOTICE 和模型使用条款。

6. 本次视频成绩表(用于参考,不保证每台机器复现)

6.1 合成 Benchmark 基准测试(三次运行中位数)

场景与测试指标 Avalon IQ3_KS + MTP Strata Swift IQ3_S + MTP 性能差值 / 胜出方
1K 输入、2048 输出:Decode 持续生成 80.3 tokens/s 92.5 tokens/s +15.2% (Strata)
64K 输入:Prefill 预填充吞吐 1938.4 tokens/s 3167.1 tokens/s +63.4% (Strata)
64K 输入:Decode 生成(256 输出) 72.3 tokens/s 97.5 tokens/s +34.9% (Strata)
约 250K 输入:Prefill 预填充吞吐 1662.7 tokens/s 3190.4 tokens/s +91.9% (Strata 1.92x)
约 250K 输入:Decode 生成(256 输出) 59.5 tokens/s 83.1 tokens/s +39.7% (Strata)
约 250K 输入:首字等待延迟(TTFT) 156.4 秒 81.4 秒 -48% 腰斩 (Strata)

6.2 真实应用场景考核(反转亮点)

业务任务场景 任务特征 Avalon 实测耗时 Strata 实测耗时 最终结果与分析
长文档关键信息提取 约 3.2 万字文档抽取目标实体 38.11 秒 7.37 秒 Strata 胜出(长预填充极致加速)
超长代码库大海捞针 64K Context 查找隐藏 Bug 标记 25.86 秒 10.94 秒 Strata 胜出(长文本检索精准响应)
Python 线程安全缓存池实现 真实端到端编程(含 3 项单元测试) 20.79 秒 25.04 秒 🔥 Avalon 反超!(单次推理路径更优)

关键技术洞察:
跑分测试赢了,并不代表在所有真实工程任务中绝对压制。在 Python 编程任务中,虽然 Strata 的首字响应和持续速度更快,但 Avalon 凭借更高效的单次推理路径和更少的分支重试,以 20.79 秒率先进行完整交卷,且双方生成的代码均 100% 通过了 3 项多线程并发单元测试。这也是为什么我们强烈建议不要“迷信跑分”,应结合具体任务场景选型。

以上采用本期本地执行端的汇总中位数。主要速度对比为本机、双方各自选用的完整优化方案结果;不是同一 GGUF、同一量化格式的纯推理内核比较。视频展示实时竞速时,请使用原始时间序列,不要将表中中位数人为插值成伪造的实时采样。

7. 原始项目、权重与复现资源

  • Avalon 项目:https://github.com/freriadoc/Avalon
  • Avalon IQ3_KS + MTP 模型:https://huggingface.co/freriadoc/Qwen3.8-Flash-Next-Avalon-GGUF
  • Strata RDNA3 fork:https://github.com/nicejunjie/Strata-rdna3
  • Strata fork 的 RDNA3 复现说明:https://github.com/nicejunjie/Strata-rdna3/blob/main/rdna3/README.md
  • Strata 的 RDNA3 参数与机制:https://github.com/nicejunjie/Strata-rdna3/blob/main/docs/RDNA3_SETTINGS.md
  • Swift 1.5 IQ3_S 模型:https://huggingface.co/ukisai/Swift-1.5-Qwen3.8-Flash-Next-GSQ-RCO-GGUF
  • ROCm 7.2.4 Ubuntu 安装说明:https://rocm.docs.amd.com/projects/install-on-linux/en/docs-7.2.4/install/install-methods/package-manager/package-manager-ubuntu.html

结语

如果你只有一张 RX 7900 XTX,想在本地运行 125B MoE,并且主要关心长文档处理与生成效率,这期实测更支持优先尝试 Strata RDNA3 + Swift IQ3_S;如果想体验另一条专用量化、CPU/GPU 协同加速路线,则可以按照前面的步骤部署 Avalon。两套方案都值得实际跑一遍,再选择适合自己机器的那套。

玩客笔记会继续分享 AMD 显卡、本地大模型部署与 AI Agent 工程化的实际测试。本文教程及视频测试数据以所述版本和环境为准;安装过程如遇 upstream 改动,请以冻结 commit 和其发布说明作为复现基线。

💡 资源获取与技术交流:如需本期全套测试脚本、自动化压测日志与 Remotion 原始数据包,或在环境搭建中遇到 HIP 报错,欢迎通过视频画面右下方的联系方式直接交流探讨,添加时备注「7900XTX」随时探讨!

About The Author

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注