@@ -573,31 +573,33 @@ struct KernelRegistrar {
573573 kernel_unfold_macro(meta_kernel_fn<cpp_dtype, context>), \
574574 variadic_kernel_unfold_marco(meta_kernel_fn<cpp_dtype, context>));
575575
576- #define _PD_KERNEL_REGISTRAR_INIT_1 (reg_type, \
577- kernel_name, \
578- backend, \
579- context, \
580- layout, \
581- registrar_id, \
582- args_def_fn, \
583- meta_kernel_fn, \
584- arg_parse_functor_macro, \
585- kernel_unfold_macro, \
586- variadic_kernel_unfold_marco, \
587- cpp_dtype) \
588- _PD_CREATE_REGISTRAR_OBJECT(reg_type, \
589- kernel_name, \
590- backend, \
591- context, \
592- layout, \
593- registrar_id, \
594- args_def_fn, \
595- meta_kernel_fn, \
596- arg_parse_functor_macro, \
597- kernel_unfold_macro, \
598- variadic_kernel_unfold_marco, \
599- cpp_dtype) \
600- int TouchKernelSymbolFor_##kernel_name##_##backend##_##layout() { return 0 ; }
576+ #define _PD_KERNEL_REGISTRAR_INIT_1 (reg_type, \
577+ kernel_name, \
578+ backend, \
579+ context, \
580+ layout, \
581+ registrar_id, \
582+ args_def_fn, \
583+ meta_kernel_fn, \
584+ arg_parse_functor_macro, \
585+ kernel_unfold_macro, \
586+ variadic_kernel_unfold_marco, \
587+ cpp_dtype) \
588+ _PD_CREATE_REGISTRAR_OBJECT(reg_type, \
589+ kernel_name, \
590+ backend, \
591+ context, \
592+ layout, \
593+ registrar_id, \
594+ args_def_fn, \
595+ meta_kernel_fn, \
596+ arg_parse_functor_macro, \
597+ kernel_unfold_macro, \
598+ variadic_kernel_unfold_marco, \
599+ cpp_dtype) \
600+ TEST_API int TouchKernelSymbolFor_##kernel_name##_##backend##_##layout() { \
601+ return 0 ; \
602+ }
601603#define _PD_KERNEL_REGISTRAR_INIT_2 (reg_type, \
602604 kernel_name, \
603605 backend, \
@@ -1136,45 +1138,45 @@ struct KernelRegistrar {
11361138 reg_type, kernel_name, backend, layout, kernel_fn)
11371139
11381140#ifndef _WIN32
1139- #define __PD_REGISTER_KERNEL_FOR_ALL_DTYPE ( \
1140- reg_type, kernel_name, backend, layout, kernel_fn) \
1141- template decltype (kernel_fn) kernel_fn; \
1142- static void __PD_KERNEL_args_def_FN_##kernel_name##_##backend##_##layout( \
1143- const ::phi::KernelKey& kernel_key, ::phi::Kernel* kernel); \
1144- static const ::phi::KernelRegistrar \
1145- __reg_phi_kernel_##kernel_name##_##backend##_##layout( \
1146- reg_type, \
1147- #kernel_name, \
1148- #backend, \
1149- DATA_LAYOUT (layout), \
1150- ::phi::KernelArgsParseFunctor<decltype(&kernel_fn)>::Parse, \
1151- &__PD_KERNEL_args_def_FN_##kernel_name##_##backend##_##layout, \
1152- PHI_KERNEL (kernel_fn), \
1153- PHI_VARIADIC_KERNEL(kernel_fn)); \
1154- int TouchKernelSymbolFor_##kernel_name##_##backend##_##layout() { \
1155- return 0 ; \
1156- } \
1157- void __PD_KERNEL_args_def_FN_##kernel_name##_##backend##_##layout( \
1141+ #define __PD_REGISTER_KERNEL_FOR_ALL_DTYPE ( \
1142+ reg_type, kernel_name, backend, layout, kernel_fn) \
1143+ template decltype (kernel_fn) kernel_fn; \
1144+ static void __PD_KERNEL_args_def_FN_##kernel_name##_##backend##_##layout( \
1145+ const ::phi::KernelKey& kernel_key, ::phi::Kernel* kernel); \
1146+ static const ::phi::KernelRegistrar \
1147+ __reg_phi_kernel_##kernel_name##_##backend##_##layout( \
1148+ reg_type, \
1149+ #kernel_name, \
1150+ #backend, \
1151+ DATA_LAYOUT (layout), \
1152+ ::phi::KernelArgsParseFunctor<decltype(&kernel_fn)>::Parse, \
1153+ &__PD_KERNEL_args_def_FN_##kernel_name##_##backend##_##layout, \
1154+ PHI_KERNEL (kernel_fn), \
1155+ PHI_VARIADIC_KERNEL(kernel_fn)); \
1156+ TEST_API int TouchKernelSymbolFor_##kernel_name##_##backend##_##layout() { \
1157+ return 0 ; \
1158+ } \
1159+ void __PD_KERNEL_args_def_FN_##kernel_name##_##backend##_##layout( \
11581160 const ::phi::KernelKey& kernel_key UNUSED, ::phi::Kernel* kernel UNUSED)
11591161#else
1160- #define __PD_REGISTER_KERNEL_FOR_ALL_DTYPE ( \
1161- reg_type, kernel_name, backend, layout, kernel_fn) \
1162- static void __PD_KERNEL_args_def_FN_##kernel_name##_##backend##_##layout( \
1163- const ::phi::KernelKey& kernel_key, ::phi::Kernel* kernel); \
1164- static const ::phi::KernelRegistrar \
1165- __reg_phi_kernel_##kernel_name##_##backend##_##layout( \
1166- reg_type, \
1167- #kernel_name, \
1168- #backend, \
1169- DATA_LAYOUT (layout), \
1170- ::phi::KernelArgsParseFunctor<decltype(&kernel_fn)>::Parse, \
1171- &__PD_KERNEL_args_def_FN_##kernel_name##_##backend##_##layout, \
1172- PHI_KERNEL (kernel_fn), \
1173- PHI_VARIADIC_KERNEL(kernel_fn)); \
1174- int TouchKernelSymbolFor_##kernel_name##_##backend##_##layout() { \
1175- return 0 ; \
1176- } \
1177- void __PD_KERNEL_args_def_FN_##kernel_name##_##backend##_##layout( \
1162+ #define __PD_REGISTER_KERNEL_FOR_ALL_DTYPE ( \
1163+ reg_type, kernel_name, backend, layout, kernel_fn) \
1164+ static void __PD_KERNEL_args_def_FN_##kernel_name##_##backend##_##layout( \
1165+ const ::phi::KernelKey& kernel_key, ::phi::Kernel* kernel); \
1166+ static const ::phi::KernelRegistrar \
1167+ __reg_phi_kernel_##kernel_name##_##backend##_##layout( \
1168+ reg_type, \
1169+ #kernel_name, \
1170+ #backend, \
1171+ DATA_LAYOUT (layout), \
1172+ ::phi::KernelArgsParseFunctor<decltype(&kernel_fn)>::Parse, \
1173+ &__PD_KERNEL_args_def_FN_##kernel_name##_##backend##_##layout, \
1174+ PHI_KERNEL (kernel_fn), \
1175+ PHI_VARIADIC_KERNEL(kernel_fn)); \
1176+ TEST_API int TouchKernelSymbolFor_##kernel_name##_##backend##_##layout() { \
1177+ return 0 ; \
1178+ } \
1179+ void __PD_KERNEL_args_def_FN_##kernel_name##_##backend##_##layout( \
11781180 const ::phi::KernelKey& kernel_key, ::phi::Kernel* kernel)
11791181#endif
11801182
@@ -1243,34 +1245,38 @@ struct KernelRegistrar {
12431245 const ::phi::KernelKey& kernel_key UNUSED, \
12441246 ::phi::Kernel* kernel UNUSED))
12451247#ifndef _WIN32
1246- #define ___PD_REGISTER_KERNEL_FOR_ALL_BACKEND_DTYPE ( \
1247- reg_type, kernel_name, backend, layout, kernel_fn, args_def_fn) \
1248- template decltype (kernel_fn) kernel_fn; \
1249- static const ::phi::KernelRegistrar \
1250- __reg_phi_kernel_##kernel_name##_##backend##_##layout( \
1251- reg_type, \
1252- #kernel_name, \
1253- #backend, \
1254- DATA_LAYOUT (layout), \
1255- ::phi::KernelArgsParseFunctor<decltype(&kernel_fn)>::Parse, \
1256- &args_def_fn, \
1257- PHI_KERNEL(kernel_fn), \
1258- PHI_VARIADIC_KERNEL(kernel_fn)); \
1259- int TouchKernelSymbolFor_##kernel_name##_##backend##_##layout() { return 0 ; }
1248+ #define ___PD_REGISTER_KERNEL_FOR_ALL_BACKEND_DTYPE ( \
1249+ reg_type, kernel_name, backend, layout, kernel_fn, args_def_fn) \
1250+ template decltype (kernel_fn) kernel_fn; \
1251+ static const ::phi::KernelRegistrar \
1252+ __reg_phi_kernel_##kernel_name##_##backend##_##layout( \
1253+ reg_type, \
1254+ #kernel_name, \
1255+ #backend, \
1256+ DATA_LAYOUT (layout), \
1257+ ::phi::KernelArgsParseFunctor<decltype(&kernel_fn)>::Parse, \
1258+ &args_def_fn, \
1259+ PHI_KERNEL(kernel_fn), \
1260+ PHI_VARIADIC_KERNEL(kernel_fn)); \
1261+ TEST_API int TouchKernelSymbolFor_##kernel_name##_##backend##_##layout() { \
1262+ return 0 ; \
1263+ }
12601264#else
1261- #define ___PD_REGISTER_KERNEL_FOR_ALL_BACKEND_DTYPE ( \
1262- reg_type, kernel_name, backend, layout, kernel_fn, args_def_fn) \
1263- static const ::phi::KernelRegistrar \
1264- __reg_phi_kernel_##kernel_name##_##backend##_##layout( \
1265- reg_type, \
1266- #kernel_name, \
1267- #backend, \
1268- DATA_LAYOUT (layout), \
1269- ::phi::KernelArgsParseFunctor<decltype(&kernel_fn)>::Parse, \
1270- &args_def_fn, \
1271- PHI_KERNEL(kernel_fn), \
1272- PHI_VARIADIC_KERNEL(kernel_fn)); \
1273- int TouchKernelSymbolFor_##kernel_name##_##backend##_##layout() { return 0 ; }
1265+ #define ___PD_REGISTER_KERNEL_FOR_ALL_BACKEND_DTYPE ( \
1266+ reg_type, kernel_name, backend, layout, kernel_fn, args_def_fn) \
1267+ static const ::phi::KernelRegistrar \
1268+ __reg_phi_kernel_##kernel_name##_##backend##_##layout( \
1269+ reg_type, \
1270+ #kernel_name, \
1271+ #backend, \
1272+ DATA_LAYOUT (layout), \
1273+ ::phi::KernelArgsParseFunctor<decltype(&kernel_fn)>::Parse, \
1274+ &args_def_fn, \
1275+ PHI_KERNEL(kernel_fn), \
1276+ PHI_VARIADIC_KERNEL(kernel_fn)); \
1277+ TEST_API int TouchKernelSymbolFor_##kernel_name##_##backend##_##layout() { \
1278+ return 0 ; \
1279+ }
12741280#endif
12751281#define _PD_FOR_ALL_BACKEND_DTYPE_1 ( \
12761282 reg_type, kernel_name, layout, meta_kernel_fn, args_def_fn, backend) \
@@ -1322,7 +1328,8 @@ struct KernelRegistrar {
13221328 PD_STATIC_ASSERT_GLOBAL_NAMESPACE ( \
13231329 PD_DECLARE_tp_kernel_ns_check_##kernel_name##_##backend##_##layout, \
13241330 " PD_DECLARE_KERNEL must be called in global namespace." ); \
1325- extern int TouchKernelSymbolFor_##kernel_name##_##backend##_##layout(); \
1331+ TEST_API extern int \
1332+ TouchKernelSymbolFor_##kernel_name##_##backend##_##layout(); \
13261333 UNUSED static int \
13271334 __declare_kernel_symbol_for_##kernel_name##_##backend##_##layout = \
13281335 TouchKernelSymbolFor_##kernel_name##_##backend##_##layout()
0 commit comments