SageAttention
https://arxiv.org/abs/2410.02367SageAttention: Accurate 8-Bit Attention for Plug-and-play Inference Acceleration
https://arxiv.org/abs/2411.10958SageAttention2: Efficient Attention with Thorough Outlier Smoothing and Per-thread INT4 Quantization
https://arxiv.org/abs/2505.11594SageAttention3: Microscaling FP4 Attention for Inference and An Exploration of 8-Bit Training
https://github.com/thu-ml/SageAttentionthu-ml/SageAttention
https://github.com/woct0rdho/SageAttention/releasesWindows用ビルド済みバイナリ
1.06なら普通にpipで入る(30xxならこちらで良い)
RTX 40XXだと2.x.x系で性能が上がり、RTX 50XXだと2.x.x系の対応になるためビルドをしたりする必要があり、Windows環境だと導入難度が跳ね上がる。
Nvidia GPUの場合、shader modelという機能が8.0以降じゃないと動かない
Tritonとの連携でミスるらしい
triton + sageattention error: RuntimeError: PassManager::run failed · Issue #6228 · comfyanonymous/ComfyUI
自分のGPUがいくつなのかは、以下のサイトで調べると分かる(外部サイト注意)
GPU Database | TechPowerUp
Attention量子化
SageAttention (1)
Gemini.icon要するに、SageAttentionは QK^T の計算にはINT8量子化を、PV の計算にはFP16データ型とFP16アキュムレータを使用することで、精度を保ちつつ高速化を図っています。Softmax操作は精度の観点からFP32で実行されます
SageAttention2
ChatGPT.iconSageAttention①ではブロック単位(たとえば64×64など)でQ,KをINT8化していましたが、SageAttention2では「各GPUワープ(Warp)単位」でQ,KをINT4化します
P(=softmax(QKᵀ))をFP8、VをFP8に落とす→その後のマトリクス乗算を「FP8×FP8→FP16 Accumulator」で行う
SageAttention3
FP4を使ってさらに低精度化する
なんもわかりません🤤nomadoor.icon
関係ない
SEG