Skip to content

Commit 0f99148

Browse files
authored
fix cc_test_old in mkldnn test (#60008)
* fix cc_test_old in mkldnn test * fix * update * Update CMakeLists.txt
1 parent 89f1a0a commit 0f99148

5 files changed

Lines changed: 112 additions & 135 deletions

File tree

cmake/generic.cmake

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -598,6 +598,10 @@ function(paddle_test_build TARGET_NAME)
598598
${paddle_test_DEPS} common paddle_gtest_main_new)
599599
add_dependencies(${TARGET_NAME} ${paddle_lib} ${paddle_test_DEPS} common
600600
paddle_gtest_main_new)
601+
if(WITH_MKLDNN)
602+
target_link_libraries(${TARGET_NAME} mkldnn)
603+
add_dependencies(${TARGET_NAME} mkldnn)
604+
endif()
601605
if(WITH_SHARED_PHI)
602606
target_link_libraries(${TARGET_NAME} $<TARGET_LINKER_FILE:phi>)
603607
add_dependencies(${TARGET_NAME} phi)

paddle/fluid/framework/op_registry.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -426,7 +426,7 @@ struct OpKernelRegistrarFunctorEx<PlaceType,
426426
STATIC_ASSERT_GLOBAL_NAMESPACE( \
427427
__use_op_itself_##op_type, \
428428
"USE_OP_ITSELF must be called in global namespace"); \
429-
extern int TouchOpRegistrar_##op_type(); \
429+
TEST_API extern int TouchOpRegistrar_##op_type(); \
430430
UNUSED static int use_op_itself_##op_type##_ = TouchOpRegistrar_##op_type()
431431

432432
#define USE_OP_DEVICE_KERNEL_WITH_CUSTOM_TYPE(op_type, \

paddle/phi/core/kernel_registry.h

Lines changed: 97 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -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()

test/cpp/fluid/mkldnn/CMakeLists.txt

Lines changed: 10 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -59,33 +59,9 @@ cc_test(
5959
test_mkldnn_caching
6060
SRCS test_mkldnn_caching.cc
6161
DEPS ${TEST_MKLDNN_CACHING_DEPS})
62-
if(WIN32 AND WITH_TESTING)
63-
cc_test_old(
64-
test_mkldnn_op_nhwc
65-
SRCS
66-
test_mkldnn_op_nhwc.cc
67-
DEPS
68-
fleet_executor
69-
conditional_block_op
70-
executor
71-
recurrent_op_helper
72-
recurrent_op
73-
op_registry
74-
generated_static_op
75-
crop_op
76-
activation_op
77-
generated_op
78-
generated_static_op
79-
phi
80-
common
81-
transpose_op
82-
fused_transpose_op
83-
scope
84-
device_context
85-
enforce)
86-
else()
87-
cc_test_old(test_mkldnn_op_nhwc SRCS test_mkldnn_op_nhwc.cc DEPS
88-
${paddle_lib} python)
62+
63+
if(WITH_TESTING)
64+
paddle_test(test_mkldnn_op_nhwc SRCS test_mkldnn_op_nhwc.cc)
8965
endif()
9066

9167
cc_test(
@@ -116,3 +92,10 @@ cc_test(
11692
scope
11793
device_context
11894
enforce)
95+
96+
if(WITH_ONNXRUNTIME AND WIN32)
97+
# Copy onnxruntime for some c++ test in Windows, since the test will
98+
# be build only in CI, so suppose the generator in Windows is Ninja.
99+
copy_onnx(test_mkldnn_op_nhwc)
100+
endif()
101+

test/cpp/fluid/mkldnn/test_mkldnn_op_nhwc.cc

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -26,23 +26,6 @@
2626
#include "paddle/phi/core/enforce.h"
2727
#include "paddle/phi/core/kernel_registry.h"
2828

29-
USE_OP_ITSELF(pool2d);
30-
PD_DECLARE_KERNEL(pool2d, OneDNN, ONEDNN);
31-
USE_OP_ITSELF(relu);
32-
PD_DECLARE_KERNEL(relu, OneDNN, ONEDNN);
33-
USE_OP_ITSELF(transpose);
34-
PD_DECLARE_KERNEL(transpose, OneDNN, ONEDNN);
35-
USE_OP_ITSELF(fused_transpose);
36-
PD_DECLARE_KERNEL(fused_transpose, OneDNN, ONEDNN);
37-
USE_OP_ITSELF(shape);
38-
PD_DECLARE_KERNEL(shape, OneDNN, ONEDNN);
39-
USE_OP_ITSELF(crop);
40-
PD_DECLARE_KERNEL(crop, CPU, ALL_LAYOUT);
41-
42-
PD_DECLARE_KERNEL(pool2d, CPU, ALL_LAYOUT);
43-
PD_DECLARE_KERNEL(relu, CPU, ALL_LAYOUT);
44-
PD_DECLARE_KERNEL(shape, CPU, ALL_LAYOUT);
45-
4629
namespace paddle {
4730
namespace operators {
4831

0 commit comments

Comments
 (0)