GitHubリポジトリへのプルリクエスト#25434で、Apple Silicon向けGPUバックエンド「metal」に、半精度浮動小数点(f16)ソーステンソルを扱うset_rows演算が追加された。一見小さな変更だが、これによりAppleデバイス上での大規模言語モデル推論時のデータ転送パターンが変化し、特にKleidiAI有効化ビルドと無効化ビルドの分岐が明確になった点が、AI推論のハードウェア最適化競争における最新動向を示している。

f16対応set_rows追加の技術的意味

set_rowsは、行列の特定行を別のテンソルデータで置き換える低レベル演算である。今回metalバックエンドにsrc0引数としてf16型(16ビット浮動小数点)の直接受け渡しが可能になった。これまではf32(32ビット)への変換を挟むか、別経路で処理する必要があった。f16はメモリ帯域幅と消費電力を抑えつつ、多くのAIモデルで十分な数値精度を維持できるため、Apple SiliconのGPU(統合メモリアーキテクチャ上で動作するApple GPU)での推論スループット向上に直結する。コード変更を共同提交したのはGeorgi Gerganov氏で、同氏が主導するggmlライブラリのエコシステム全体に波及する変更と位置づけられる。

KleidiAI無効化が示すARM最適化の分岐

今回のCI(継続的インテグレーション)テスト結果で注目すべきは、macOS Apple Siliconのarm64ビルドのうち、KleidiAI有効化版が「DISABLED」と明示された点だ。KleidiAIはARMが提供するAI推論高速化ライブラリ群で、CPU上の行列乗算などを最適化する。Apple Silicon上での本変更とKleidiAIの組み合わせが、テスト段階で何らかの不整合または最適化方針の違いを示したと考えられる。GPU(metal)に処理を寄せる設計と、ARM系CPU最適化ライブラリを併用する設計の間で、特定の演算に対する実装選択が分岐し始めていることを示唆する。

クロスプラットフォームCIに見る多極化する推論インフラ

プルリクエストに付随するCI一覧は、現代のAI推論インフラの多様性を端的に表している。Ubuntuではx64/arm64のCPUビルドに加え、Vulkan、ROCm 7.2、OpenVINO、SYCL(FP32/FP16)が稼働する。WindowsではCUDA 12とCUDA 13が並行テストされ、OpenCL Adreno(Qualcomm GPU向け)やHIP(AMD GPU向け)も含まれる。Android arm64やiOS XCFrameworkも対象だ。単一の演算追加が、これだけ多様なバックエンドでテストされる事実は、AI推論ライブラリがハードウェア固有の最適化と抽象化の間でバランスを取らざるを得ない開発現実を浮き彫りにする。

エッジAI推論の新たな競争軸

f16対応set_rowsのようなプリミティブな演算の追加は、AIモデルの高速化競争が、モデルアーキテクチャや量子化手法から、より下層のテンソル演算プリミティブの最適化へと降りていることを示す。特にApple Siliconのような統合メモリ環境では、GPU演算とCPU演算の境界が曖昧で、データ型変換のコストが全体性能を左右する。今回の変更は、Appleデバイス上で動作するローカルLLM(Ollama、LM Studio等がggmlを利用)の応答速度やバッテリー消費に段階的な改善をもたらす可能性がある。同時に、KleidiAIのようなベンダー提供最適化ライブラリとの共存が今後の課題として浮上した。