本ガイドは、インテル社の許可を得て iSUS (IA Software User Society) が作成した、https://ispc.github.io/perfguide.html (英語) で公開されている 2023年1月18日時点の『Intel® ISPC Performance Guide』の日本語参考訳です。原文は更新される可能性があります。原文と翻訳文の内容が異なる場合は原文を優先してください。
インテル® インプリシット SPMD プログラム・コンパイラー (インテル® ISPC) は、CPU と GPU 上で実行する SPMD (単一プログラム複数データ) プログラムを記述するためのコンパイラーです。
インテル® ISPC が提供する SPMD プログラミング・モデルは、プロセッサーの SIMD ベクトル・ハードウェアを効率良く使用することで、多くのワークロードに対し優れたパフォーマンスをごく自然に発揮します。本ガイドでは、インテル® ISPC を最大限に活用する方法を詳しく説明します。
- 主要な概念
- foreach による効率良い反復
- foreach_tiled による制御フローの一貫性を向上
- 一貫性のある制御フロー構造を使用する
- 適切であれば常に uniform を使用する
- 可能であれば「配列構造体」レイアウトを使用する
- ヒントとテクニック
- ギャザーとスキャッターを理解する
- メモリーリードの結合について理解する
- 可能な限り 64 ビット・アドレス計算を避ける
- 8 ビットおよび 16 ビット整数タイプの計算を避ける
- 効率良くリダクションを実装する
- 効率良く “foreach_active” を使用する
- 低レベルのベクトル手法の利用
- Fast math オプション
- 積極的な inline 展開
- システム数学ライブラリーを避ける
- 使用中のスコープで変数を宣言する
- ランタイムの動作を理解するため インテル® ISPC プログラムをインストルメントする
- ターゲットのベクトル幅を選択