K5 格式定義與技術實作細節
TKintegers 全稱為 Ternary Kluster,其中 K5 代表使用五個平衡三進制數字(trits)來編碼每個權重。這種編碼方式提供 243 種可能的數值組合,但在記憶體佈局中,每個代碼仍佔用一個位元組(byte)。作者特別強調,五個 trit 不等於五個二進位比特(bits)。
在 GPU 推理實作上,K5 內核將有界圖塊展開以進行計算,並使用 FP16 張量核心運算元搭配 FP32 累加精度。部分張量會保持較高的精度處理。這種設計使得 K5 能在沒有專用 K5 硬體指令的現有 GPU 上運行,並展現出優於特定 FP8 基線的效能。
NVIDIA L4 上的吞吐量比較數據
測試在 NVIDIA L4 顯卡上進行,該硬體原生支援 FP8 張量核心。作者將 K5 實作與標準的 TorchAO 動態 E4M3 FP8 基線(運行於 eager PyTorch)進行比較。測試模型為 Qwen2.5-0.5B-Instruct,並使用固定的匹配工作負載以確保公平性。
在預填充(Prefill)階段,K5 達到每秒 3,402.85 個 token 的吞吐量,而 FP8 基線為每秒 1,061.58 個 token,前者約為後者的 3.21 倍。在解碼(Decode)階段,K5 達到每秒 26.75 個 token,FP8 基線為每秒 8.63 個 token,前者約為後者的 3.10 倍。解碼測試是透過固定 token 數的模型前向傳播並攜帶 KV cache 來測量。
結果限制與未來驗證需求
作者明確指出,這些測量結果僅適用於該特定模型、工作負載和實作環境,並未確立 K5 在所有情況下都能勝過所有 FP8 執行時。值得注意的是,作為對照組的純 FP16 版本在測試中實際上比 K5 和 FP8 兩者都快。
作者歡迎技術社群對內核設計和基準測試方法論提供回饋,特別是獨立的複製驗證。相關程式碼、轉換器、原生內核、基準測試腳本及記錄的證據已發布於 GitHub 倉庫 tkintegers,並附有 YouTube 示範影片連結。




