これらを使用して一部のコードのパフォーマンスを改善することを検討していますが、* mmintrin.h ヘッダーで定義されている関数については適切なドキュメントを見つけるのが難しいようです。
EDIT:開始方法に関する非常に基本的なチュートリアルに特に興味があります。
これらを使用して一部のコードのパフォーマンスを改善することを検討していますが、* mmintrin.h ヘッダーで定義されている関数については適切なドキュメントを見つけるのが難しいようです。
EDIT:開始方法に関する非常に基本的なチュートリアルに特に興味があります。
http://software.intel.com/en-us/articles/intel-intrinsics-guideに、Mac/Linux/Windows 用の便利なIntel Intrinsics Guideがあります。これは、MMX からさまざまな種類の SSE up までのすべての Intel SIMD をカバーしています。 AVX2らに。
Intelから次の PDF を入手することもできます。
インテル® 64 および IA-32 アーキテクチャー・ソフトウェア・デベロッパーズ・マニュアル、ボリューム 2A: 命令セット・リファレンス、AM (253666-021)
インテル® 64 および IA-32 アーキテクチャー・ソフトウェア・デベロッパーズ・マニュアル、ボリューム 2B: 命令セット・リファレンス、ニュージーランド (253667-021)
インテル® SSE4 プログラミング・リファレンス (D91561-001)
組み込みガイドのオンライン バージョンが提供されるようになったため、何もインストールする必要がなくなり、常に最新の状態に保たれます。
これは、私が今まで見つけた MMX/SSE プログラミングの最高の入門書です。(私は SSE2 を 5 年間プログラミングしてきましたが、今でもこのチュートリアルが最も概念的に明確であると感じています。)
http://www.tommesani.com/Docs.html
これは手順の完全なリストではありません。詳細を学ぶ準備ができたら、@PaulR が提案するように Intel 組み込みガイドを読み始めてください。
留意すべき重要な点の 1 つは、MMX/SSE はデータの移動 (シャッフルまたは任意の置換、または単一要素の変更) に関して厳しく制限される傾向があるということです。これは、CPU シリコン設計の制限です。スキャッター/ギャザー命令は数年前に追加されたばかりであり、顧客のコンピューターで利用できない場合もあります。
http://www.hackersdelight.org/でビット並列操作を悪用するためのトリックが規定されているのと同様に、MMX/SSE のベクトル化トリックの大きなレパートリーがあります。