Replace the function-like macros used to generate the headers to kernels. Previously, all kernels were functions in CUDA and C++, and lambdas in SYCL, with the former being passed to their respective kernel launches via function pointers. This necessitated the use of macros around the function name and arguments. By changing the kernels to functors, they can be passed in the same way to all platforms, with better readability and fewer IDE-problems from the heavy preprocessing.
Replace the function-like macros used to generate the headers to kernels. Previously, all kernels were functions in CUDA and C++, and lambdas in SYCL, with the former being passed to their respective kernel launches via function pointers. This necessitated the use of macros around the function name and arguments. By changing the kernels to functors, they can be passed in the same way to all platforms, with better readability and fewer IDE-problems from the heavy preprocessing.