Avalon大家试了吗 AMD又要冲一波了
-
号称比strata快44%,准备试一下看看
-
Avalon (Qwen3.8-Flash-Next) Windows 部署文档
日期:2026-11-07
硬件:AMD RX 7900 XTX 24GB / Ryzen 5 5600G / DDR4 双通道(系统实际识别 63.4 GB)
项目:https://github.com/freriadoc/Avalon (llama.cpp 分支,专为 Qwen3.8-Flash-Next 125B MoE 优化)
成果:Windows 下从零编译部署成功,实测生成 54–58 t/s(MTP,512 token)
一、最终部署布局
项 路径 / 值 源码 C:\AI\Avalon(git clone,main 分支)可执行文件 C:\AI\Avalon\build\bin\llama-server.exe启动脚本 C:\AI\Avalon\avalon-server.bat模型 C:\AI\models\Avalon-GGUF(91 GiB,33 分片 IQ3_KS + MTP + moe-cache-ranking.bin)HIP SDK C:\Program Files\AMD\ROCm\7.2编译脚本 C:\AI\Avalon\build_windows.bat(首次)/build_only.bat(增量)服务地址 http://0.0.0.0:8080(OpenAI 兼容/v1/chat/completions)
️ 模型必须放在 NVMe SSD。放机械硬盘时生成仅 3–6 t/s,挪到 NVMe 后 49–58 t/s。模型里有个 36 GB 的 per-layer token embedding 张量每个 token 都要访问,HDD 随机读直接把速度打死。
二、环境准备
- Visual Studio 2026 Community(含 MSVC 14.51、CMake、Ninja)——VS 自带 CMake 路径:
C:\Program Files\Microsoft Visual Studio\18\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\{CMake\bin\cmake.exe, Ninja} - AMD HIP SDK 7.2:官网下载页 → Windows 11 / 7.2,实际直链(1.6 GB):
https://download.amd.com/developer/eula/rocm-hub/AMD-Software-PRO-Edition-26.Q3-Win11-For-HIP.exe
静默安装:Start-Process <exe> -ArgumentList '-install','-log','C:\AI\hip_install.log' -Verb RunAs -Wait(会弹 UAC) - git,python 3.14 + huggingface_hub(
pip install huggingface_hub,下载用hf.exe,位于%APPDATA%\Python\Python314\Scripts) - 网络代理:本机
127.0.0.1:7890可用(git/curl 走-x http://127.0.0.1:7890;GitHub 直连超时)
三、编译(关键坑与解法)
配置命令(在
build_windows.bat内完成,需 vcvars64 环境):call "...\VC\Auxiliary\Build\vcvars64.bat" set HIP_PATH=C:\Program Files\AMD\ROCm\7.2 set CXXFLAGS=-isystem C:\AI\Avalon\hip_compat cmake -B build -G Ninja -DGGML_HIP=ON -DAMDGPU_TARGETS=gfx1100 ^ -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ cmake --build build --target llama-server -j 8坑 1:MSVC 14.51
<cmath>与 HIP clang 冲突(必须修)错误形态:
error: __device__ function 'isgreater' cannot overload __host__ __device__ function 'isgreater' (引用 MSVC 14.51 cmath 的 _CLANG_BUILTIN2(isgreater))原因:MSVC 14.51 起把
isgreater/isless等声明为 constexpr(clang 下隐含__host__ __device__),与 ROCm clang 的__device__声明冲突。上游修复见 LLVM PR #201563、Strata PR #373。解法(同 Strata 方案):建垫片目录,并把
CXXFLAGS=-isystem <垫片目录>加进环境:// C:\AI\Avalon\hip_compat\cmath #if defined(__HIP__) #include <__clang_cuda_math_forward_declares.h> #endif #include_next <cmath>注意:
.bat里不要写中文注释(GBK 代码页下 UTF-8 中文会破坏 cmd 解析)。坑 2:
moe-cache.cuPOSIXclose()(必须修)ggml/src/ggml-cuda/moe-cache.cu约 3647 行close(f.second)在 Windows 无此符号。修法:文件头部_WIN32块加#include <io.h>,该处改为:#if defined(_WIN32) _close(f.second); #else close(f.second); #endif其他
- Ninja 不在 PATH:把上面 VS 的 Ninja 目录加进 PATH。
- 直接
clang链接失败(oldnames.lib找不到):必须在 vcvars64 环境里跑 CMake。 - 编译时长约 25 分钟(iGPU 6 核,283 个目标)。
四、模型下载
# 国内走 hf-mirror 更快;HuggingFace 官方源经代理实测会掉到 ~100KB/s export HF_ENDPOINT=https://hf-mirror.com hf download freriadoc/Qwen3.8-Flash-Next-Avalon-GGUF --local-dir C:\AI\models\Avalon-GGUF- 39 个文件共 91 GiB,镜像实测 ~200MB/s、21 分钟下完;官方源经代理 3 小时仅 3 GB。
- 校验目录:33 个
Qwen3.8-Flash-Next-Avalon-IQ3KS-000xx-of-00033.gguf+MTP\mtp-...FR65k.gguf+moe-cache-ranking.bin。 - 与 Strata 的 IQ3_S 模型不通用(Avalon 用自有 IQ3_KS 混合量化 + 专属张量布局),必须单独下载。
五、启动脚本
avalon-server.bat@echo off set HIP_PATH=C:\Program Files\AMD\ROCm\7.2 set PATH=C:\AI\Avalon\build\bin;%HIP_PATH%\bin;%PATH% set MODEL_DIR=C:\AI\models\Avalon-GGUF set GGML_CUDA_MOE_ARENA_MB=46000 C:\AI\Avalon\build\bin\llama-server.exe ^ -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 0.0.0.0 --port 8080 %*要点:
GGML_CUDA_MOE_ARENA_MB=46000是 Windows 上的必开项:Avalon 的 RAM 专家 arena 在 Windows 默认关闭(页缓存模式)。46 GB ≈ 专家总量 49 GiB 略留余量;内存紧张可降 40000。--fit默认开:稠密权重进 GPU,专家进内存,GPU 专家缓存自动吃剩余显存(本机约 12.5 GB,来自 moe-cache-ranking.bin 热度排序)。- KV 缓存 q8_0/q4_0,262k 上下文 + MTP 全装得下 24 GB 显存。
六、性能实测(RX 7900 XTX / 5600G / 63.4GB 可用内存)
配置 生成 512 token (MTP) 短 prompt 预填充 启动加载 模型在 HDD(HGST 2TB) 3.3 – 6.0 t/s 1.3 – 7.7 t/s ~9.5 分钟 模型 → NVMe SSD 49.4 t/s ~21 t/s 53 秒 + 46GB 内存 arena 54 – 58 t/s ~26 t/s — 作者参考(7900XT/64G/32k ctx) 98.4 t/s ~1700 t/s — 按作者口径复测(32k ctx、贪心、MTP、3 轮平均):57.7 t/s ≈ 标称 59%。差距主要来自:系统实际可用内存 63.4 GB(arena 装不满专家,部分走页缓存/SSD)+ CPU 6 核比作者 8 核慢。MTP 草稿接受率 0.58–0.73 正常,tail-skip 生效(
[moe-cache] tail skip (rank >= 7)日志可确认)。排障速查
症状 原因 处置 速度个位数 t/s 模型在机械盘 挪 NVMe(robocopy /E /MT:8) 50 t/s 上不去 90+ 内存 arena 未开或装不满 设 GGML_CUDA_MOE_ARENA_MB;检查系统实际可用内存日志 pin: 0 expert tensors registered内存不足/驱动注册上限 正常现象(Windows 报 KFD 上限),靠 arena 解决 首轮请求极慢 GPU 专家缓存冷 热身 1–2 轮后再测 API 报 ill-formed UTF-8 git-bash 里 curl 传中文被转码 测试用英文 payload
七、经验总结
- 磁盘 > 一切:本项目对存储延迟极敏感,模型必须在 NVMe;HDD 上速度差 10 倍。
- Windows arena 默认关:README 的
GGML_CUDA_MOE_ARENA_MB=0注释容易误读——"on Windows it is still the default" 指的是旧行为在 Windows 是默认,想要 RAM arena 必须显式设值。 - VS 2026 (MSVC 14.51) + HIP SDK 7.2 的 cmath 冲突是必踩的坑,垫片头是官方认可解法;不想折腾可改装 VS 2022 的 MSVC 14.4x。
- 镜像下载:国内环境
HF_ENDPOINT=https://hf-mirror.com比"官方源+代理"快百倍。 - 内存识别:装机内存 ≠ 系统可用内存,部署前先看 llama-server 日志里的
CPU: ... (64893 MiB, ...)一行确认可用量。 - 与 Strata 模型不通用,别指望复用 IQ3_S 文件。
- Visual Studio 2026 Community(含 MSVC 14.51、CMake、Ninja)——VS 自带 CMake 路径:
-
-
-
-