These kernel language constructs are intended to be used as part of
@kernel functions and not valid outside that context.
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
There are several