Writing kernels
These kernel language constructs are intended to be used as part of @kernel
functions and not valid outside that context.
Constant arguments
Kernel functions allow for input arguments to be marked with the @Const
macro. It informs the compiler that the memory accessed through that marked input argument, will not be written to as part of the kernel. This has the implication that input arguments are not allowed to alias each other. If you are used to CUDA C this is similar to const restrict
.
Indexing
There are several @index
variants.
Local memory, variable lifetime and private memory
@localmem
, @synchronize
, @private