コンテンツへスキップ

AVX-512

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

AVX-512は、opmaskレジスタと512ビット演算のサポートを備えたx86ベクトル拡張ファミリです。その基盤(Foundation)と個別のサブセットは別々に確認する必要があります。単一のAVX-512という表記は完全な互換性仕様ではありません。

確認しておくべき要点

AVX-512は、opmaskレジスタと512ビット演算のサポートを備えたx86ベクトル拡張ファミリです。その基盤(Foundation)と個別のサブセットは別々に確認する必要があります。単一のAVX-512という表記は完全な互換性仕様ではありません。

仕組み

このアーキテクチャでは、ZMMベクターステートとkオペマスクレジスタが追加されます。マスク操作では個々のレーンを選択でき、命令ごとに固有のマージまたはゼロ化の動作が適用されます。AVX512Fが基礎となり、AVX512BW、DQ、CD、VLがそれぞれ異なる追加機能をカバーします。AVX512VLにより、関連する操作をより狭いベクターで実行できるため、AVX-512コードが必ずしもすべての命令で512ビットを処理するわけではありません。

有用な場面

マスクされた数値ループは、選択された命令が必要なマスキングセマンティクスをサポートしていれば、個別のスカラー末尾処理なしで最終の部分ベクターを処理できます。バイト操作、衝突検出、または特定の演算フォーマットを使用するアプリケーションは、それらの正確なサブセットを要求する必要があります。AVX-512 VNNIとAVX-VNNIは異なるエンコーディングおよびエニュメレーションを使用します。

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

AVXチェックの後、プログラムに必要な特定のCPUIDリーフ7の機能ビットを確認してください。AVX-512ステートの場合、XCR0でXMM、YMM、オペマスク、上位ZMM、および高位ZMMステート(ビット1、2、5、6、7)を有効にする必要があります。一般的に使用されるマスクはE6Hです。XGETBVの前にOSXSAVEを確認し、必要なすべてのサブセットをチェックするディスパッチャを使用してください。

プログラムは、適切な実装を含んでいることと、実行時にそれを選択することの両方が必要です。ハードウェアの列挙、OSで有効化されたレジスタ状態、およびバイナリのコンパイル済みベースラインは、別個の確認事項です。仮想マシンはホストよりも意図的に少ない機能を公開することができ、コンテナがホストCPUに命令を追加することはありません。

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

AVX512F、CPU世代名、またはx86-64-v4からすべてのAVX-512サブセットを推測しないでください。周波数、電力、および実行スループットは、実装およびワークロードによって異なります。データベースのラベルだけでは、ファームウェア、ハイブリッドコアポリシー、またはハイパーバイザーが現在のプロセスに使用可能な機能を公開しているかどうかを確定することはできません。

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

代表的なデータを使用して完全なワークロードを測定してください。より広いベクトルは命令数を減らすことができますが、メモリトラフィック、同期、または変換コストが変わらないままになる可能性があります。命令のレイテンシ、スループット、および電力動作は、正確なマイクロアーキテクチャと動作条件に依存します。

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

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

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

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

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

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

Intel 64 and IA-32 Architectures Software Developer's Manual · Linuxカーネル: ユーザー空間でのXSTATE機能の使用 · x86-64 psABI: プロセッサアーキテクチャおよびマイクロアーキテクチャレベル

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

出典と検証

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

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

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

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