コンテンツへスキップ

AMX(Advanced Matrix Extensions)

アーキテクチャリファレンスFeex

別名: AMX、AMX(Advanced Matrix Extensions)

Intel AMXは、タイルベースの行列計算機能をx86に追加します。AMX-TILEと算術演算拡張には個別の機能ビットがあり、OSは相当なサイズのタイル状態を管理する必要があります。

確認しておくべき要点

Intel AMXは、タイルベースの行列計算機能をx86に追加します。AMX-TILEと算術演算拡張には個別の機能ビットがあり、OSは相当なサイズのタイル状態を管理する必要があります。

仕組み

AMXは、通常のYMM/ZMMベクトルではなく、設定された2次元タイルレジスタを使用します。タイル設定はアクティブな形状を記述し、AMX-INT8やAMX-BF16などの算術演算拡張は特定の行列演算と数値形式を定義します。ソフトウェアはデータをパックし、列挙されたパレットの制限下で有効な形状を選択します。

有用な場面

行列ライブラリは、サポートされているカーネルをタイルロード、ドット積演算、タイルストアへと低水準化(lower)できます。パッキングのコスト、行列の次元、およびキャッシュの局所性が、小規模または不規則なワークロードにおいて支配的になる場合があります。タイルハードウェアによって、すべてのニューラルネットワーク演算子が高速化の対象となるわけではありません。

サポートと有効化の確認方法

CPUIDリーフ7でAMX-TILEおよび必要なすべての算術演算拡張を確認し、タイルの制限を列挙して、OSで有効化された状態を確認してください。Linuxでは、動的タイルデータを使用するアプリケーションは文書化されたARCH_REQ_XCOMP_PERMフローに従う必要があります。サポートビットとXCR0ビットだけでは不十分です。

ハードウェアが利用可能であることは第一歩にすぎません。ドライバ、ランタイム、実行プロバイダ、サポートされる演算子、および数値形式がアプリケーションと一致している必要があります。AIという表記がすべてのモデルが高速化されることを意味すると想定するのではなく、実際のバックエンドの選択とフォールバックを検査してください。

この機能が確立しない事項

AMXはAVX-512、汎用NPU、またはすべてのAMX算術形式を意味するものではありません。CPUビット単体では、プロセスのパーミッションや十分なシグナルスタック状態は確立されません。サポートされていないタイル形状や欠落しているOSパーミッションは、AMX対応マシン上であってもフォールトを発生させる可能性があります。

実際の互換性とパフォーマンス

コンパイル、転送、未サポートの演算子を含め、指定された条件下での完全なワークロードを比較してください。1秒あたりの最大演算回数(ピークTOPS/FLOPS)は精度とカウントの前提条件に依存します。それらは、測定されたレイテンシ、スループット、エネルギー、またはモデル精度の代用にはなりません。

実践的な検証チェックリスト

  1. 関係する正確なプロセッサまたはプラットフォームのモデル、ならびにアプリケーション、OS、ランタイムのバージョンを記録してください。実際のエラーや要件の文言をそのまま保持してください。
  2. その正確なモデルの製造元リファレンスを確認し、プログラムが実行される環境で実効的な機能と有効化状態を検査してください。
  3. 選択したバイナリまたはバックエンドのすべての要件を比較してください。類似した名前の機能、エイリアス、または広範な技術表記だけでは不十分です。
  4. アプリケーションが意図した実装を選択したことを確認してください。要件が満たされていない場合は、文書化された診断機能とサポートされているフォールバックを使用してください。
  5. 一度に1つのサポート対象の変更のみを行い、同じワークロードを繰り返してください。元の構成と復旧手順を常に利用可能な状態にしておいてください。

機能が記載されているにもかかわらずソフトウェアで使用できない場合

正確にどのコンポーネントが失敗しているかから調査を開始してください。ハードウェアデータベースに記載されているのは記録された機能です。オペレーティングシステムまたはハイパーバイザーは、異なる実効環境を公開することがあります。破損や無関係な未サポート命令でも同様の症状が発生する可能性があるため、不正命令エラーの場合も実際にフォールトの原因となった命令とバイナリビルドの調査が必要です。

正確なプラットフォーム向けにサポートされているアプリケーション、ドライバ、またはランタイムのバージョンをインストールし、必要に応じてベンダーが文書化しているベースラインまたはフォールバックビルドを使用してください。ソフトウェアアップデートによってプロセッサに欠落している命令を作り出すことはできません。ファームウェアおよびセキュリティポリシーの変更は、一般的な最適化レシピではなく、システム製造元の手順と復旧計画に従う必要があります。

本説明のソースと対象範囲

Intel 64 and IA-32 Architectures Software Developer's Manual · Linuxカーネル: ユーザー空間でのXSTATE機能の使用

これらのリファレンスは、アーキテクチャの動作およびソフトウェア要件を規定しています。リンクされたハードウェアモデルページのすべての機能値を個別に検証するものではありません。モデルのサポート状況については、そのページの製造元エビデンスを使用し、実際の実効システム構成を確認してください。この記事はベンチマーク、認定、または独立したレビュー日を提供するものではありません。

出典と検証

エディトリアル所有権: Feex。独立したレビュー日は記録されていません。 調査方法.

  • Intel 64 and IA-32 Architectures Software Developer's Manual · 第1巻および第2巻では指定された命令ファミリおよびCPUIDについて説明し、第3巻では状態、ページング、VMX、保護制御について説明しています。アーキテクチャドキュメントは、特定のモデルに対するサポートを確定するものではありません。
  • Linuxカーネル: ユーザー空間でのXSTATE機能の使用 · OSで有効化されたベクトル状態、動的に有効化されるタイル状態、シグナルスタック要件、およびAMXパーミッションフロー。Linux固有の動作は、他のOSに関する保証ではありません。

この記事は役に立ちましたか?

「はい」または「いいえ」を選択するだけで完了します。必要に応じて理由を選択するか、簡単なメモを追加してください。

この記事は役に立ちましたか?