Strata 在 AMD Strix Halo 上的調校紀錄
-
這是在設備上使用 Pi Agent + Qwen3.8-Flash-Next UD-IQ4_XS 讓他調校自己的結果,以下是他整理的重點記錄。
Strix Halo 跑 256K 上下文本地模型:兩個真正的槓桿
機器 Ryzen AI Max+ 395(gfx1151,128 GB 統一記憶體)
模型 Qwen3.8-Flash-Next UD-IQ4_XS(Unsloth Dynamic,55.43 GiB expert / 24576 個)
環境 ROCm 7.2.4 / hipBLASLt 1.2.2 / Strata engine 0.1.40 / 256K context
效果
只比「大段 prompt 冷讀」(≥20000 個新讀入 token):
階段 prompt 生成 預設安裝 382 tok/s(9 樣本,359–393) 45.8 tok/s(268 樣本) 加 hipBLASLt 調校表 687 tok/s(3 樣本,660–773) 48 tok/s 最終配置 1246 tok/s(7 樣本,1238–1299) 52.0 tok/s(133 樣本) prompt +226%(3.26 倍)· 生成 +13.7%
21 萬 token 的冷讀:9.2 分鐘 → 2.8 分鐘
槓桿一:hipBLASLt 自己校正(+80%)
gfx1151 上 hipBLASLt 自行挑選 GEMM kernel 的表現很差。
tools/hip/tune_hipblaslt把 90 個真實 GEMM 尺寸逐一跑完所有候選 solution,量出最快者寫成一張表。空載跑一次,幾分鐘。版本碼必須完全相符。 表頭綁
架構 + hipBLASLt 版本碼,引擎是嚴格比對(if (version != expected_version)直接拒絕)。倉裡附的 gfx1151 表是100401(ROCm 7.14.1),ROCm 7.2.4 是100202→ 必須自己校正,沒有公版可沿用。solution ID 在版本之間也不相通。cmake --build build --target tune_hipblaslt -j 8 ./build/bin/tune_hipblaslt --pack <pack> --arch gfx1151 \ --output tools/hip/gfx1151-hipblaslt-100202.txt # 然後 env.STRATA_HIPBLASLT_TUNING 指向該檔啟動日誌會回報
hipBLASLt tuning enabled (90 rows, gfx1151, version 100202)。
槓桿二:維護者的快速配置(再 +81%)
來自
docs/STRIX_HALO.md§5/§6:--prefill 16384 --lookup-chain 3 --mtp-q4 all --mtp-window 8192 env: STRATA_PF_FUSED=1 STRATA_PF_GEMM=1 STRATA_HC_UPMIX=1 STRATA_PA_FAST=1 STRATA_HIP_WMMA=1 STRATA_SELECT_WMMA=1 STRATA_HC_Q8=1 STRATA_PF_SWITCH_MIN_T=4096--prefill從auto(上限 8192)放寬到 16384,讓長 prompt 少切一半的塊。
️ 這 7 個環境開關會改輸出 token(加總順序 / FP16 中間值),不同於 §4 那 18 個 byte-identical 的預設開關。需要逐字可重現輸出的人不要開。
前提:別把 expert cache 擠出去
額度公式
MemAvailable − 6 GiB,要 ≥ 55.43 GiB 才裝得下全部 expert。裝不下就會每次請求都從 SSD 讀 expert,所有調校收益直接轉負。每次重啟後確認這行:
expert cache 24576 slots, 55.43 GiB — all experts resident這條因果鏈是:可用 RAM → expert cache 額度 → SSD 讀取量 → 速度。在統一記憶體的機器上,任何吃 RAM 的設定都要單獨測。
視覺:AMD 走 CPU,可用
hip_vision()在 AMD 上一律回cpu(gpu/yes會直接關閉)。自己抓 mmproj(0.85 GiB / 449M 參數 / 27 層 ViT)、自己編strata-vision。- 第一張圖 17 秒,同一張重複送 3 秒(sha256 快取命中)
max_tokens 1024= 有效解析度 1344×768- 2560×1440 的表格截圖,中文小字可正確轉錄
- 解碼執行緒實測:8→19.1s 16→10.7s 24→9.7s 32→10.0s(24 是最佳點)
最終配置
--expert-cache auto --prefill 16384 --spec 4 --spec-min-p 0.5 --mtp <mtp/rt> --max-context 262144 --kv int8 --kv-resident 32768 --lookup-chain 3 --mtp-q4 all --mtp-window 8192 --vision --vram-reserve-mib 700 env STRATA_HIPBLASLT_TUNING = <自校 90 列表> STRATA_PF_FUSED / PF_GEMM / HC_UPMIX / PA_FAST HIP_WMMA / SELECT_WMMA / HC_Q8 = 1 STRATA_PF_SWITCH_MIN_T = 4096 vision max_tokens 1024 · threads 24 · gpu false
一句話:在 Strix Halo 上,最大的槓桿不是模型或量化,是「hipBLASLt 要自己校正」加上「別把 expert cache 的記憶體擠掉」。前者給你 3 倍,後者決定那 3 倍還在不在。
-
-
-
-


