QualcommのAI推論プロセッサ「Hexagon」向けソフトウェアスタックにおいて、中核となる行列積カーネル(matmul)の大規模な再設計が進行している。重みレイアウトのタイル化、量子化処理の並列化、キャッシング機構の導入などにより、オンデバイスで動作する大規模言語モデルの効率が大きく変わる可能性がある。

32x32タイル化で重み再配置、演算の無駄を削減

変更の核心は、従来の重み行列レイアウトを廃止し、32x32のタイル形式へ統一した点にある。プロセッサ内部のベクトル演算器とDMA転送の単位に合わせ、データの流れを最適化。具体的には、hmx-mmとhvx-mm両方のマイクロカーネルにおいて、タイル形式専用のベクトル内積ループ展開を導入し、レジスタ使用効率を高めている。量子化フォーマットも動的量子化処理のオーバーヘッドを削減するよう再設計され、特にq8_0とq8_1形式で効果を発揮する。

カーネル選択をホスト側へ移管、キャッシュで再計算を回避

推論のたびに最適な演算カーネルを選択する処理(MM_SELECT)が、DSP側からホストCPU側へ移管された。これにより、複雑な判定ロジックがDSPの負荷にならず、さらに「シンプルなグラフキャッシング」機能が追加されたことで、一度決定したカーネルパラメータを再利用し、同一モデルの連続推論時に再計算コストが省かれる。ホストとDSP間のパラメータ同期も改善され、OLMoEやLFMといった特定モデルで発生していたMUL_MAT_ID割り当ての不具合も修正されている。

並列量子化とパイプライン化でスループットを追求

大規模な行データを扱う際は、量子化処理自体がボトルネックとなる。この改修では、ブロック単位の並列量子化器が導入され、行サイズが大きい場合に複数のスレッドで分担処理を行う。さらに、活性化処理のDMAプリフェッチをパラメータ化し、パイプライン実行を復活させることで、演算とデータ転送のオーバーラップ効率を引き上げた。出力処理の32行制限も緩和され、稼働率の向上が図られている。

アーキテクチャの一本化と互換性の整理

今回の一連のコミットでは、v73未満の古いアーキテクチャのサポートが打ち切られ、HMXを前提とした環境へと統一された。x4x2のような旧形式の命名はすべて_tiledに変更され、非推奨のコードやスクラッチバッファが削除されている。一方で、タイル形式を利用できない場合のフォールバックパス(非タイルmm)も改修され、すべてのMUL_MATテストを通過できる互換性は維持されている。CMakeビルドもHMX向けに一括有効化された。