llama.cppプロジェクトは、2世代のAdreno GPUにおける行列乗算のパフォーマンスを向上させるため、OpenCLバックエンドを更新しました。この変更は主にX2E世代を対象としており、xmem F16xF32 GEMMパスをデフォルトで有効にし、A7X世代の処理を最適化しています。
- X2Eデバイスにおいて、Adreno xmem F16xF32 GEMMをオプトイン環境変数が必要だったものからデフォルトで有効化。
- Adreno A7Xコンパイラにおけるタイル分割f32 GEMMをバイパスし、バッチ処理演算を行ごとのカーネルにルーティングすることでレジスタ溢れの問題を回避。
- xmem最適化により、Adreno X2-90デバイスでのgpt-oss-20bのprefill速度が約25%向上し、A7Xバイパスによりgemma-3n-E4Bで約9%の改善を実現。
これらの最適化は、新旧のAdrenoシリコンにおける特定のコンパイラ非効率に対処し、モデルprefillフェーズ中に低速な行列乗算カーネルで消費されるGPU時間を削減します。