インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス

変数と配列の効率良い割り当て

このトピックは、インテル® グラフィックス・テクノロジーをターゲットとする場合にのみ適用されます。

インテル® グラフィックス・テクノロジー・レジスター・ファイル (GRF) は、GRF サブ領域の直接レジスターネーミングと間接アクセスの両方を考慮した、柔軟なアドレッシング・モードを備えるレジスターファイルです。

コンパイラーは可能な場合、コンパイル時に関数またはブロック範囲内の、自動記憶域上の変数と配列を GRF に割り当てようとします。

配列を含む、変数の GRF 割り当てを有効にするには、次の条件が満たされていなければなりません。

これらのいずれかの条件が真でない場合、変数または配列はスタックメモリー領域に割り当てられます。

GRF アクセスは、アクセスのレイテンシーが低く命令シーケンスが短いため非常に効率的です。GRF に割り当てられた配列は、定数データのキャッシュに特に役立ちます。ただし、次の点に注意してください。

デフォルトでは、コンパイラーはインテル® グラフィックス・テクノロジー向けに中間コードを生成します。そして、アプリケーションの実行時に、インテル® グラフィックス・テクノロジー・ドライバーの JIT コンパイラーが、中間コードから実行コードを生成します。

mgpu-arch (Linux*) または Qgpu-arch (Windows*) オプションを使用して、直接実行コードをコンパイルすることもできます。

関連情報