• 2019 Update 4
  • 03/20/2019
  • Public Content
Contents

Using the Restrict Qualifier for Kernel Arguments

Consider using the
restrict
(defined by the C99) type qualifier for kernel arguments (pointers) in the kernel signature. The qualifier declares that pointers do not alias each other, which helps the compiler limit the effects of pointer aliasing, while aiding the caching optimizations.
__kernel void foo( __constant float* restrict a, __constant float* restrict b, __global float* restrict result)
Note
You can use the
restrict
qualifier only with kernel arguments. In the specific example above, it enables the compiler to assume that pointers
a
,
b
, and
result
do point to the different locations. So you must ensure that the pointers do not point to overlapping memory regions.

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.