Intel® FPGA SDK for OpenCL™: ベスト・プラクティス・ガイド

ID 683521
日付 12/08/2017
Public
ドキュメント目次

3.7. ポインター・エイリアシングの回避

可能であれば、ポインター引数にrestrictキーワードを挿入します。 ポインター引数にrestrictキーワードを含めると、 Intel® FPGA SDK for OpenCL™オフライン・コンパイラー競合しないロード動作とストア動作との間の不要なメモリー依存関係を作成することがなくなります。

restrictキーワードは、オフライン・コンパイラーに、ポインターが別のポインターのエイリアスではないことを通知します。たとえば、カーネルに大域メモリーABが重複しない2つのポインターがある場合、カーネルを次のように宣言します。

__kernel void myKernel (__global int * restrict A,
                        __global int * restrict B)
警告: 他のポインターの別名を指すポインターにrestrictキーワードを挿入すると、結果が正しくない可能性があります。