13 void (*func)(
unsigned int mode,
unsigned int ndarrayValueBit,
char* argv);
21 #ifndef MU_NON_BLOCKING_KERNEL_INIT
22 #define MU_NON_BLOCKING_KERNEL_INIT(FUNC) \
24 extern "C" [[gnu::used]] const uint64_t __mu_kernel_type__ = 1;
29 #define _MU_CONCAT(a, b) a##b
32 #define MU_CONCAT(a, b) _MU_CONCAT(a, b)
40 #ifndef MU_KERNEL_DEFINE
41 #define MU_KERNEL_DEFINE(TARGET, ID) \
42 extern "C" void MU_CONCAT(__mu_kernel_, ID)(unsigned int mode, unsigned int ndarrayValueBit, char* argv) \
44 mu::callMain(TARGET, mode, ndarrayValueBit, argv); \
46 extern "C" [[gnu::used]] const mu::KernelInfo MU_CONCAT(__mu_func_, ID) = { \
48 MU_CONCAT(__mu_kernel_, ID)};
56 #define MU_KERNEL_ADD(FUNC) MU_KERNEL_DEFINE(FUNC, FUNC)
62 #ifndef __pxl_kernel__
63 #define __pxl_kernel__ [[clang::annotate("mu::offload")]]
70 #define __mu_shared__ [[clang::annotate("mu::share")]]
77 #define __mu_device__ [[clang::annotate("mu::device")]]