llama.cppはリリースb12342(#31533)で、src1列数が2〜24の量子化行列乗算(MMQ)向けに新しいint8 MMAカーネル「few-row MMQ」をCUDAバックエンドへ追加しました。対象はAmpere以降のNVIDIA GPUです。
何が新しいか
新カーネルは、src1列数が少ない量子化mat-mulを処理します。原文はその例としてspeculative decodingのverify passを挙げています。ディスパッチ順序は MMVQ → few-row → MMQ の順に更新されています。
対応条件
| 項目 | 内容 |
|---|---|
| 対象バックエンド | CUDA |
| 対応GPU | NVIDIA GPU(Ampere以降) |
| src1列数 | 2〜24 |
| 対応量子化形式 | Q8_0、Q3_K、Q4_K、Q5_K、Q6_K、IQ3_S、IQ4_NL、IQ4_XS |
few-row MMQにはCUDA限定のガードが入っています。HIP/MUSAで呼ばれた場合の中断処理も、より明確な形に改められました。
その他の変更
test_mul_matにweightsフラグを追加し、テストを2コンテキスト構成でビルドするよう変更しました- few-row用の量子化で、DS4 sumを量子化後の値から計算するよう修正しました(#31247と同じ方式)

まだコメントはありません。