最近、Intelが発売したAlder Lake-Sにて後出しで無効化されたり、AMDが初めて対応する事で話題になっている『AVX-512』ですが、そもそも一体何なのか、何に使うものかのかを簡単に解説します。
AVX-512とは?
ここではAVX-512について解説するものの、あくまでPCパーツの一つの用語やユーザーにどのようなベネフィットがあるかと言う観点で紹介します。そのため、複雑なプログラミングの仕組みなどディープな所までは触れません。
AVX-512とはIntelが提唱した命令セットの一つで、2013年にIntelが投入したXeon Phi x200と呼ばれる並列コンピューティング用のアーキテクチャーで初めて採用され、コンシューマー向けには2017年に発売されたSkylake-Xで採用がされています。
AVX-512の『AVX』とはAdvanced Vector Extensionsと呼ばれる命令セットの一つで、オリジナルのAVXでは浮動小数点演算が256ビット化、AVX2では整数演算が256ビットまで拡張され、今回紹介するAVX-512ではその名の通り、整数と浮動小数点の両方を512ビットまで一度の命令で実行する事が可能になる命令セットです。
ちなみに、Advanced Vector Extensionsと言うのはSIMD(Single Instruction Multiple Data)と呼ばれるもので、通常であればA+B=Cという命令を動作クロック毎、例えば3 GHzであれば1秒間に30億回行いますが、SIMDであるAVX-512ではA1+B1=C1、A2+B2=C2・・・A16+B16=C16と言うのを一回の動作クロックで実行してしまいます。
これだけ見るとAVX-512を入れるだけで数倍速くなるの?と思うかもしれませんが、これが使える場面は限られているため、すべての命令が数倍高速化される訳ではありません。
AVX-512で何が変わるのか?
AVX-512の用途としてIntelは『科学的シミュレーション、財務分析、人工知能 (AI) / ディープラーニング、3D モデリング / 分析、画像およびオーディオ / ビデオ処理、暗号化、データ圧縮などのワークロードや用途でパフォーマンスを向上させることができます』としています。
ただ、一般コンシューマーがこの中で使うのは主に3D モデリングと画像およびオーディオ/ビデオ処理ぐらいです。
現時点で、AVX-512をサポートしているのは3DモデリングソフトではCinema4D、動画エンコードではHandbreakなどに搭載されているHEVCエンコーダーの一つである『x265コーディック』ぐらいしかサポートされていません。
Intel AVX-512 tested in x265: how to enable it and does it help? – HWCooling.net
AVX2に比べると命令長が2倍になっているため、パフォーマンスも2倍になると考えたくはなりますが、x265をAVX-512を利用してエンコードをしてもエンコード時間は7%しか短縮できず、一方で消費電力は29%増大する代物になっています。
ちなみに、AVX-512の効果が最も体感できるのはRPCS3と呼ばれるPlayStation3エミュレーターで、AVX2では190FPSで動作するゲームが、AVX-512を有効化すると235FPS、約23%高いパフォーマンスを発揮するようになるとの事です。
AVX-512 対応製品は?
AVX-512に対応する製品はコンシューマー向けでは2017年に発売がされたSkylake-Xにて初めて採用がされていますが、その後のコンシューマー向けはデスクトップ向けCPUではRocket Lake-Sのみで、モバイル向けCPUではIce LakeとTiger Lakeが対応しています。
Alder Lake-Sについては、CPUとしては対応可能となっており、初期に販売されたものはE-Coreを無効化すればAVX-512対応CPUにはなりますが、Intelではこの使い方は正規では無いとしてBIOSアップデートや2022年以降に出荷される製品では無効化するなどしています。
関連記事:IntelがAlder Lake-SでAVX-512を近々ハードウェアレベルで無効化する模様
2022年に登場予定のRaptor Lake-Sでも同様の対応が取られる見込みのためIntelではコンシューマー向けにAVX-512対応するCPUは発売する予定は無いようです。
一方で、AMDでは2022年9月15日に発売すると見られているZen 4アーキテクチャーを搭載するRyzen 7000シリーズでAVX-512に対応する方針である事を公式発表しており、2022年6月現在では、Ryzen 7000シリーズがコンシューマー向けCPUとしてはAVX-512に対応する唯一のCPUになる見込みです。
関連記事:AMD Zen 4 Ryzen 7000やEPYCの最新情報が出現。IPCはZen 3比で24%向上
AVX-512については出現してから既に10年近くが経過していますが、動画編集ソフトやゲームなどコンシューマーが主に使う用途においては限定的な採用となっており、AVX-512の有無が現時点では大きな問題となる事はあまりありません。
ただ、RPCS3と呼ばれるPS3エミュレーターでパフォーマンスが向上するなどAVX-512の効果が出る分野も出てきています。今後、AMDのRyzen 7000シリーズなどで大々的に対応がなされるとコンシューマー向けのソフトやゲーム開発者もこの技術でパフォーマンス向上に活かそうとする可能性があるため、もしかしたらRyzen 7000シリーズをキッカケに近い内に主要なソフトウェアで対応が行われる可能性もあります。
コメント
コメント一覧 (3件)
>オリジナルのAVXでは一度に128ビットの命令まで実行可能だったものが、AVX2にて256ビットまで拡張され、
AVX1では浮動小数点演算が、AVX2では整数演算が、それぞれ256bit対応だと思います。
ご指摘ありがとうございます。記事の方を修正させていただきます。
x265を使うのはハードウェアエンコードの画質に不満がある場合だと思うので、
プリセットはSlower以下を使うと仮定すると、AVX512の伸び率は9%~17%ですね。
プリセットが重くなる程伸びが大きいのは、重く複雑なアルゴリズムはスレッド間の依存関係が強く、複数のコアをうまく使えなくなるからです。(12コアでもCPU使用率50%とかになります。)
この場合、AVX512によるシングルスレッド処理速度の伸びの割合が高くなります。
※よくMediumプリセットの比較を見かけますが、ハードウェアエンコードと画質に大差が無い上に遅いだけなので、使用するメリットはほぼ無いです。
画質を気にしないならそもそもハードウェアエンコードで十分ですからね。
https://www.isus.jp/media/accelerating-x265-with-avx-512/
CPUマイニングの場合、アルゴリズムによってAVX2よりもAVX512が2倍以上高速な事もあるみたいですね。
https://www.phoronix.com/review/rocket-lake-avx512/5