AVX-VNNI
AVX-VNNIは、適合する整数推論および信号処理カーネルで使用されるVEXエンコードのベクタードット積命令を提供します。これはAVX-512 VNNIやNPUとは異なります。
確認しておくべき要点
AVX-VNNIは、適合する整数推論および信号処理カーネルで使用されるVEXエンコードのベクタードット積命令を提供します。これはAVX-512 VNNIやNPUとは異なります。
仕組み
オリジナルのAVX-VNNI拡張命令には、128ビットまたは256ビットベクターに対するバイトおよびワードの積和演算が含まれます。例えば、VPDPBUSDは符号なしバイトと符号付きバイトを乗算し、グループをダブルワードに合計して、デスティネーションに累積します。飽和バリアントには独自のオーバーフロー動作があります。量子化と符号の有無は、選択した操作と一致している必要があります。
有用な場面
ニューラルネットワークライブラリは、重みをパックし適切なランタイム実装を選択した後、量子化された行列カーネルにこれらのドット積を使用することがあります。データ変換、スケール、ゼロポイント、およびメモリ移動は依然として重要です。内積が高速化されても、エンドツーエンドのモデル精度やアプリケーションのレイテンシが保証されるわけではありません。
サポートと有効化の確認方法
サポートされているリーフおよびサブリーフの範囲を確認した後、有効なAVXステートをチェックし、次にオリジナルのAVX-VNNI拡張命令についてCPUID.07H.01H:EAXビット4をチェックしてください。以降のバリアントについては個別のビットを確認してください。ライブラリがAVX-512パスではなく、一致するVEXパスを選択したことを確認してください。
プログラムは、適切な実装を含んでいることと、実行時にそれを選択することの両方が必要です。ハードウェアの列挙、OSで有効化されたレジスタ状態、およびバイナリのコンパイル済みベースラインは、別個の確認事項です。仮想マシンはホストよりも意図的に少ない機能を公開することができ、コンテナがホストCPUに命令を追加することはありません。
この機能が確立しない事項
AVX-VNNIは、AVX-512、AMX、以降のすべてのVNNI拡張命令、またはすべての整数型のサポートを意味するものではありません。AVX-VNNI-INT8とAVX-VNNI-INT16は個別の機能エニュメレーションを持ち、オリジナルのAVX-VNNIビットから推測してはなりません。
実際の互換性とパフォーマンス
代表的なデータを使用して完全なワークロードを測定してください。より広いベクトルは命令数を減らすことができますが、メモリトラフィック、同期、または変換コストが変わらないままになる可能性があります。命令のレイテンシ、スループット、および電力動作は、正確なマイクロアーキテクチャと動作条件に依存します。
実践的な検証チェックリスト
- 関係する正確なプロセッサまたはプラットフォームのモデル、ならびにアプリケーション、OS、ランタイムのバージョンを記録してください。実際のエラーや要件の文言をそのまま保持してください。
- その正確なモデルの製造元リファレンスを確認し、プログラムが実行される環境で実効的な機能と有効化状態を検査してください。
- 選択したバイナリまたはバックエンドのすべての要件を比較してください。類似した名前の機能、エイリアス、または広範な技術表記だけでは不十分です。
- アプリケーションが意図した実装を選択したことを確認してください。要件が満たされていない場合は、文書化された診断機能とサポートされているフォールバックを使用してください。
- 一度に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に関する保証ではありません。
この記事は役に立ちましたか?
「はい」または「いいえ」を選択するだけで完了します。必要に応じて理由を選択するか、簡単なメモを追加してください。
ご協力ありがとうございます。ページの改善に役立てられます。