web-dev-qa-db-ja.com

Intel SSEおよびAVXの例とチュートリアル

Intel SSEおよびAVX命令を学習するための優れたC/C++チュートリアルまたは例はありますか?

Microsoft MSDNやIntelのサイトではほとんど見つかりませんでしたが、基本から理解することは素晴らしいことです。

33
veda

視覚的な傾向のあるSIMDプログラマーにとって、Stefano Tommesaniのサイトはx86 SIMDプログラミングの最良の紹介です。

http://www.tommesani.com/index.php/simd/46-sse-arithmetic.html

図はMMXとSSE2のみに提供されていますが、学習者がSSE2に習熟すると、正式な仕様を読み進めるのは比較的簡単です。


AからMで始まるIntel IA-32命令

http://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-software-developer-vol-2a-manual.pdf

NからZで始まるIntel IA-32命令

http://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-software-developer-vol-2b-manual.pdf


さらに、Intel SIMDプログラマーは、SSE2世代外の命令に必要な最小限のアーキテクチャを知ることが重要です。

ウィキペディアで世代別に閲覧:

1つのページで特定のIntel SIMDニーモニックを検索する(テキスト検索経由):


14
rwong

ここに素敵な紹介があります

コードプロジェクトSSE

また、 Microsoft DirectX SDK がインストールされている場合、xnamathのソースには、sse組み込み関数を使用した多くのベクトル/行列演算があります(sdk includeフォルダー、xnamath.h、xnamathconvert.inl、xnamathmatrix.inlを確認してください)。 ..)

3
catflier

Appleの開発者向けサイト にはいくつかの良いものがあります。 SSEパフォーマンスプログラミング

3
Paul R

SIMDをいくつかの一般的なアルゴリズムに適用する方法の例を見ると便利な場合があります。 Games Developer Conference 2011では、 "Hotspots、FLOPS、およびuOps:To-the-Metal CPU最適化" と呼ばれるIntelの講演がありました。講演では、いくつかの AVXを布の計算に適用する方法を示すインテルのサンプルコード について言及しています。

2
Brad Werth