128G ram, 最高跑到UD-Q5_K_XL, 最低测了IQ4_XS-v31 + N-gramQ8. 发出来方便大家参考
硬件 / 软件环境
| 项目 |
环境 |
| CPU |
AMD Ryzen 9 5900XT,16核32线程,AVX2 |
| GPU |
AMD Radeon RX 7900 XTX,24GB,gfx1100 |
| 内存 |
128GB;系统可用约125.7GiB |
| 模型存储 |
XG7000 1TB NVMe,ZFS |
| 系统 |
TrueNAS 25.10.7,Linux 6.12.105-production+truenas |
| AMDGPU |
7.1.9.31600000 |
| ROCm |
10.1.0,系统路径 /opt/rocm |
| hipBLASLt |
100401,匹配 gfx1100 调优表(43行) |
| 推理后端 |
Strata RDNA3 fork,具体引擎版本见下表 |
| GPU 队列 |
引擎 GPU_MAX_HW_QUEUES=6;视觉助手限制为2 |
| ZFS ARC |
自动管理,zfs_arc_max=0 |
文件体积与速度总表
PP = prefill,TG = decode,速度单位均为tokens/s;每格按 PP / TG 排列。GB按10⁹字节,括号GiB按2³⁰字节。
| 配置 |
引擎版本 |
原GGUF分片合计 GB(GiB) |
实际N-gram / PLE |
GGUF+所用外置表 GB |
约8K输入 PP / TG |
长输入 PP / TG |
| IQ4_XS-v31 |
0.1.49.1 |
93.67(87.24) |
外置Q8_0,54.40GB;mmap;1MiB块 |
148.07 |
802.3 / 65.5 |
32K:1126.8 / 62.7;128K:1489.9 / 60.0 |
| UD-Q4_K_XL |
0.1.43 |
111.33(103.69) |
内置IQ4_NL,28.80GB;ram |
111.33 |
2082.7 / 57.4 |
64,358 tokens:3670.2 / 58.3 |
| UD-Q5_K_XL |
0.1.49.1 |
158.29(147.42) |
外置Q8_0,54.40GB;direct;16KiB块 |
212.69 |
1600.5 / 46.0 |
32K:2368.5 / 50.9;128K:3432.4 / 47.4 |
体积口径: 原GGUF分片合计包含包内N-gram。IQ4_XS和Q5_K_XL另外使用独立Q8表,所以额外计入54.40GB;Q4_K_XL直接使用包内28.80GB的IQ4_NL表,不再重复加一次。合计不含native pack、MTP、视觉投影及备用文件,不等于RAM占用。
测速口径: IQ4_XS与Q5_K_XL取对应最终配置的固定新输入记录,temperature=0、top_k=1、top_p=1、seed=42,各输出384 tokens,禁止prompt复用。Q4_K_XL取最终版本的完整无缓存日常日志:约8K一栏为11条记录的中位数,输入7,961~8,072、输出158~506 tokens;64,358一栏为单次150-token输出。Q4日常请求的实际采样未统一。不同输入语料、输出长度、PLE方式和引擎版本的结果只作整套配置参考,不作为严格同条件量化排名。
三套共用参数
以下是启动参数片段,公共段与对应方案段合并使用。模型、pack、MTP和profile路径按各自安装目录填写;数值取实际最终配置。
--pack "$PACK_DIR" \
--native "$MODEL_GGUF" \
--expert-profile "$EXPERT_PROFILE" \
--mtp "$MTP_DIR" \
--expert-cache auto \
--max-context 153600 \
--spec 5 \
--spec-min-p 0.70 \
--mtp-window 4096 \
--mtp-q4 all \
--pcie-frac 0.20 \
--kv int8 \
--kv-resident 32768 \
--pool-tasks 96 \
--ple-row-cache 1048576 \
--prompt-cache 12 \
--prompt-cache-tail \
--adapt-every 1 \
--adapt-decay 0.97 \
--conversation-cache-min-tokens 2000 \
--conversation-cache-min-free-mib 2048 \
--stats \
--vision
公共MTP数据目录为rt格式。三套默认采样均为temperature=0.5、top_p=0.95、top_k=40;客户端显式参数可以覆盖默认值。
1. IQ4_XS-v31
- 引擎:RDNA3 0.1.49.1。
- 主模型:UD-IQ4_XS-v31,4个GGUF分片。
- PLE:独立Q8_0表,mmap读取;实际文件为1MiB ZFS数据块。
- 专家arena约56.24GiB,不含N-gram缓存、KV和系统开销。
--pool-workers 12 \
--prefill 32768 \
--vram-reserve-mib 768 \
--ple-io mmap \
--ple-gguf "$Q8_ENGRAM" \
--adapt-swaps 80 \
--conversation-cache-mib 4096 \
--conversation-cache-slots 4 \
--mtp-draft-vocab "$ZH60K_DRAFT_VOCAB"
对应方案环境变量:
export STRATA_PREFILL_CPU_SHARE=0.6
export STRATA_PREFILL_CPU_SHARE_MAX=7936
export STRATA_ADAPT_OVERLAP=1
export STRATA_TOPK_SPLIT_MIN=98304
export STRATA_QSA_ROWS=1
export STRATA_ENGINE_NICE=0
2. UD-Q4_K_XL
- 引擎:RDNA3 0.1.43。
- 主模型:UD-Q4_K_XL,4个GGUF分片。
- PLE:直接使用包内的IQ4_NL表,ram模式锁入内存。
- 专家arena约71.73GiB;加上约26.82GiB的PLE表及其他开销,128GB内存接近满载。
- Prefill为auto,最终上限32768;未额外指定mtp-draft-vocab。
--pool-workers 12 \
--prefill auto \
--vram-reserve-mib 512 \
--ple-io ram \
--adapt-swaps 160 \
--conversation-cache-mib 2048 \
--conversation-cache-slots 2
对应方案环境变量:
export STRATA_PREFILL_AUTO_MAX=32768
export STRATA_PREFILL_CPU_SHARE=auto
export STRATA_PREFILL_CPU_SHARE_MAX=6144
export STRATA_PREFILL_MMQ_TILE_ROWS=32
export STRATA_PF_SWITCH_MIN_T=4096
export STRATA_WMMA_GEMM=1
3. UD-Q5_K_XL(当前在用)
- 引擎:RDNA3 0.1.49.1。
- 主模型:UD-Q5_K_XL,6个GGUF分片。
- PLE:独立Q8_0表,direct读取;使用16KiB ZFS数据块的文件副本。
- 专家arena约91.61GiB。N-gram表放在NVMe按需读取,不将整张54.40GB表锁入RAM。
- 所用Q8表与原表字节相同,SHA256校验通过;主模型专家仍完整放在RAM。
--pool-workers 10 \
--prefill 32768 \
--vram-reserve-mib 832 \
--ple-io direct \
--ple-gguf "$Q8_ENGRAM_16K" \
--adapt-swaps 160 \
--conversation-cache-mib 4096 \
--conversation-cache-slots 4 \
--mtp-draft-vocab "$ZH60K_DRAFT_VOCAB"
对应方案环境变量:
export STRATA_PREFILL_CPU_SHARE=0.6
export STRATA_PREFILL_CPU_SHARE_MAX=7936
export STRATA_ADAPT_OVERLAP=1
export STRATA_TOPK_SPLIT_MIN=98304
export STRATA_QSA_ROWS=1
export STRATA_ENGINE_NICE=0
当前Q5配置另通过了两轮150,000-token输入检索验证。GPU加载模型后的待机实测为0%占用、约23W。
共用环境变量
下面是三套配置中取值相同的环境变量;与各方案自己的环境段一起使用。HIPBLASLT_TABLE应指向与本机gfx1100、hipBLASLt 100401相匹配的调优表。
export HIP_PLATFORM=amd
export ROCM_PATH=/opt/rocm
export HIP_PATH=/opt/rocm
export HSA_OVERRIDE_GFX_VERSION=11.0.0
export LD_LIBRARY_PATH=/opt/rocm/lib
export GPU_MAX_HW_QUEUES=6
export STRATA_HIP_WMMA=1
export STRATA_SELECT_WMMA=1
export STRATA_HC_UPMIX=1
export STRATA_HEAD_MIX_MULTI=1
export STRATA_GR_RDNA=1
export STRATA_GR_RDNA_Q8=1
export STRATA_GR_RDNA_A8=1
export STRATA_GR_FUSED=1
export STRATA_GR_INJ_UP=1
export STRATA_GDN_CHUNKED=1
export STRATA_GDN_HEAD=1
export STRATA_GDN_CONVL2=1
export STRATA_GDN_NOY=1
export STRATA_GDN_PP=1
export STRATA_GDN_CHUNK_GDV=0
export STRATA_PF_FUSED=1
export STRATA_PF_GEMM=1
export STRATA_PF_F16=2
export STRATA_PF_HCDOWN=1
export STRATA_PF_PAD=1
export STRATA_PF_GROUP_RES=1
export STRATA_PREFILL_RING=384
export STRATA_QFUSE=1
export STRATA_PA_FAST=1
export STRATA_PA_KLDS=1
export STRATA_KV_HOST_DMA=1
export STRATA_COMBINE_CPU=1
export STRATA_WAIT_FUSE=1
export STRATA_ROUTE_PUBLISH=1
export STRATA_VERIFY_QDEDUP=1
export STRATA_RDNA_MMVQ_WAVE=3
export STRATA_RDNA_Q6K=1
export STRATA_STAGER_RING=64
export STRATA_PEER_TRANSPORT=host
export STRATA_HIPBLASLT_TUNING="$HIPBLASLT_TABLE"
export STRATA_PF_FUSED_KQ=1
export STRATA_FUSE_CONVAB=1
export STRATA_SH_STREAM=0
ZFS的16KiB块需要对应文件实际以该块大小写入;改变dataset的recordsize不会自动改变旧文件的数据块。当前整个models dataset仍为1MiB,Q5所用独立Q8表副本为16KiB。
项目:Strata RDNA3;模型:Unsloth Qwen3.8-Flash-Next GGUF。