本ガイドは、インテル社の許可を得て iSUS (IA Software User Society) が作成した、https://ispc.github.io/ispc.html (英語) で公開されている 2023年1月18日時点の『Intel® ISPC User’s Guide』の日本語参考訳です。原文は更新される可能性があります。原文と翻訳文の内容が異なる場合は原文を優先してください。
インテル® インプリシット SPMD プログラム・コンパイラー (インテル® ISPC) は、CPU と GPU 上で実行する SPMD (単一プログラム複数データ) プログラムを記述するためのコンパイラーです。SPMD によるプログラミングはグラフィックスや GPGPU プログラマーにはよく知られており、GPU シェーダー、CUDA*、そして OpenCL* カーネルで使用されています。SPMD の主な考え方は、1 つのデータ要素 (例えば、ピクセルシェーダーの場合はピクセル) を処理するようにプログラムを記述し、ハードウェアとランタイムが異なる入力 (異なるピクセル値など) でプログラムを並列に複数呼び出して実行することです。
本ガイドでは、CPU と GPU 上で SPMD プログラムを実行するパフォーマンス志向のプログラマーがハイパフォーマンスな C 言語のバリアントを使用して、軽量な抽象化レイヤーにより組み込み関数を直接記述するような生産性の低い作業を行うことなく SIMD ベクトルユニットの計算能力を活用できるように、次のような役立つ情報を提供します。
- インテル® ISPC の各バージョンでの改良点
- 導入ガイド
- コンパイラーの使用法
- 並列実行モデル
- 言語
- 標準ライブラリー
- アプリケーションとの相互運用性