[IND] 5 分鐘閱讀OraCore 編輯部

TurboQuant 在 AMD GPU 上把長上下文延遲壓下來

3.6x 加速、TTFT 13.9 秒降到 0.89 秒:這篇整理 TurboQuant 在 AMD GPU 上最值得採用的 5 個實作選擇。

分享 LinkedIn
TurboQuant 在 AMD GPU 上把長上下文延遲壓下來

這篇整理 TurboQuant 在 AMD GPU 上的 5 個實作選擇,幫你判斷長上下文服務該怎麼壓低 KV-cache 延遲。

如果你的 LLM 服務常被 KV-cache 逼到記憶體瓶頸,這份清單可以直接幫你決定要不要上 TurboQuant、選哪種量化設定,以及哪些技巧值得先做。ROCm 版本在實測中把端到端效能拉到最高 3.6x,TTFT 也從 13.9 秒降到 0.89 秒。

項目規格 A規格 B
TQ4/44-bit K / 4-bit V預設推薦
Agentic workload test100 conversations, 32 concurrency~25K prefixes
Cache hit rateFP85.3%
Cache hit rateTQ4/467.7%
End-to-end speedupROCm kernels vs open-source baselineUp to 3.6x

1. 先把 TurboQuant 做成可上線版本

訂閱 AI 趨勢週報

每週精選模型發布、工具應用與深度分析,直送信箱。不定期,不騷擾。

不會寄垃圾信,隨時可取消。

這篇最重要的訊號,不是 TurboQuant 會壓縮 KV-cache,而是 AMD 的 ROCm 實作把它做到了可服務化。對線上推理來說,Kernel 品質、記憶體行為和延遲表現,往往比演算法名稱更關鍵。

TurboQuant 在 AMD GPU 上把長上下文延遲壓下來

作者把版本整合進 vLLM,並用 Triton、HIP 和 FlyDSL 針對執行路徑做優化。這代表它不是只在論文圖表裡好看,而是朝著真實 serving 場景去修正瓶頸。

  • 目標平台:AMD Instinct GPU 上的 vLLM
  • 優化組合:Triton、HIP ISA 控制、FlyDSL
  • 核心目標:縮小 KV-cache 體積,同時守住吞吐

2. TQ4/4 是最穩的預設值

作者明確把 TQ4/4,也就是 4-bit K 加 4-bit V,當成預設生產設定。原因很直接:它在壓縮率、準確率和執行成本之間,給出最均衡的折衷。

如果你要先選一個能落地的方案,這通常是起點,而不是終點。文章也指出 K 比 V 更敏感,所以 K 端用了 rotation 加 LUT quantization,V 端則維持較標準的 uniform quantization。

  • K 端:rotation + LUT quantization
  • V 端:standard uniform quantization
  • 2-bit 方案可行,但額外成本較難回收

3. 軟注意力模型可先跳過邊界層

對 full-attention 模型來說,最簡單的精度補救之一,就是不要量化第一層和最後一層。這些 boundary layers 往往對 KV quantization 更敏感,保留全精度通常能換回一部分準確率。

TurboQuant 在 AMD GPU 上把長上下文延遲壓下來

這個技巧不是通用規則。文章沿用 vLLM 的 heuristic,只把它用在 softmax attention 模型,不延伸到像 Qwen3.5 這類 hybrid attention 模型。對部署者來說,這是低風險、先試先贏的調整。

--kv-cache-dtype-skip-layers # softmax attention models 的邊界層可用

4. Walsh-Hadamard 比隨機 rotation 更實用

原始 TurboQuant 允許 random rotation,但 ROCm 版本改偏向 Walsh-Hadamard transform,簡稱 WHT。原因不是理論包裝,而是它更適合 kernel,而且在實測中也有更好的表現。

這個選擇同時改善了實作複雜度和效果。WHT 能把能量分散得更均勻,對 quantizer 更友善,也避開了 dense random rotation 在 production kernel 裡不好處理的問題。

  • 比 random rotation 更好寫進 kernel
  • 在測試組合裡精度表現更佳
  • 方向上也和 TurboQuant+、llama.cpp 的做法一致

5. 4-bit 路徑先別加 QJL

作者對 QJL 的態度很乾脆:在 4-bit 預算下,它增加了複雜度和 runtime overhead,卻沒有帶來相稱的準確率收益。就他們的比較結果來看,直接不加 QJL 反而是最強的配置。

他們也拆解了失敗原因。原始 Gaussian projection matrix 表現最差;orthogonalized Gaussian 和 Walsh-Hadamard projection 可以補回不少,但放到 4-bit 的主路徑,最合理的做法仍是跳過 QJL。

  • raw Gaussian QJL 在 key 上最弱
  • orthogonal-Gaussian 與 Walsh-Hadamard 可補回部分損失
  • 4-bit sweep 裡,單純 MSE 路徑勝過所有 K-side QJL 變體

怎麼挑

如果你在做長上下文、多輪 agent 服務,優先順序很清楚:先用 TQ4/4,再加 WHT rotation,最後視模型型態加上 boundary-layer skipping。這組合最接近文章裡的生產最佳解。

如果你的工作負載還沒到明顯記憶體瓶頸,或你對精度更敏感,就先留在 BF16 或 FP8,並把 TurboQuant 當成一套指引,專注處理最吃 KV-cache 的那一段。這篇真正的價值,是幫你判斷壓縮應該從哪裡開始。