この度、Armv9-Aアーキテクチャに、行列演算を多用するワークロードの高速化に向けて設計された高性能な拡張命令セット「SME2(Scalable Matrix Extension 2)」が実装となった。今回導入されるSME2はモバイルアプリ開発に活用でき、高度なAI処理をCPUから直接実行する際のパーフォーマンス改善や効率改善が可能になるという。また、使用にあたってのアプリツール変更も不要だ。
従来のSME拡張機能では、行列演算処理やベクトルストリーミング処理を導入していたが、今回発表となるSME2では、さらに処理速度の高速化、マルチベクトルデータ処理命令、マルチベクトルに対するロード/ストア、マルチベクトル予測機構が導入された形だ。
アップグレードされたSME2の性能は最新のiOS端末やApple M4チップファミリーで利用可能だ。さらにAndroid端末へも近日中に実装予定だと、Arm社のAI・開発者プラットフォームサービス部門部長 Alex Spinelli氏が明らかにしている。
行列演算処理は、モバイル端末で画像処理や言語処理、音声生成などを使用したリアルタイム推論タスクの実行に欠かせない機能だ。特に、SME2対応・非対応の端末での動作を比較したところ、対応端末で著しいワークフロー改善がみられたという。同社は、次のように発表している。
SME2対応ハードウェアでは、グーグルのGemma 3モデルでのチャット応答速度が6倍に改善したほか、シングルコアCPUで最大800語の要約生成を1秒以内に実行に移すことが可能です。
同様に、3.8BパラメータのPhi-3 Miniモデルを搭載したvivo X200 Proのフラッグシップモデルデバイスでは、2.6倍のプロンプト処理機能の高速化が確認できた。
SME2の活用に向けて、Arm社からはグーグルのXNNPACKと統合されたKleidiAIライブラリがリリースされている。XNNPACKは複数の機械学習フレームワークやAIフレームワークで採用されており、Alibaba社のMNN、ググールのLiteRT、マイクロソフトのONNX Runtimeやllama.cppでも使用されている。
対応機種でSME2をサポートすることで、XNNPACKとも統合されます。これによりKleidiAI経由でSME2での行列演算を多用する処理も自動でルート化することが可能です。そのため、アプリケーションロジックや開発インフラを変更する必要もありません。すぐにSME2のよさを実感することができるでしょう。
KleidiAIは、マイクロカーネルアーキテクチャを採用しているため、C言語やC++言語のコードベースへの統合が容易になっている。
「マイクロカーネル」とは、「必要最小限の機能絞り、特定の機械学習オペレーターの高速化に特化したソフトウェア」のことである。パック格納や行列乗算機能などが一例だ。テンソル出力作業を複数スレッドで分散処理できるため、各マイクロカーネルの処理範囲の限定が可能だ。こうした点からも、マイクロカーネルの関数としての有用性がお分かりいただけるだろう。
さらに、KleidiAIには他にも開発者に嬉しい機能がある。「外部依存関係の影響を受けない」、「動的メモリやメモリ管理が不要」、「高いモジュール性を備えており、各マイクロカーネルが.cファイルと.hファイルのみで構成される独立ライブラリとなっている」といった点が挙げられる。
SME2の活用に向けて、Arm社からはLiteRT、MNN、PyTorchなどの対応フレームワークを使用したLLM(大規模言語モデル)ベースのアプリの使用実例に関する追加リソースが配信されている。