Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions cmake/generic.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -598,6 +598,10 @@ function(paddle_test_build TARGET_NAME)
${paddle_test_DEPS} common paddle_gtest_main_new)
add_dependencies(${TARGET_NAME} ${paddle_lib} ${paddle_test_DEPS} common
paddle_gtest_main_new)
if(WITH_MKLDNN)
target_link_libraries(${TARGET_NAME} mkldnn)
add_dependencies(${TARGET_NAME} mkldnn)
endif()
if(WITH_SHARED_PHI)
target_link_libraries(${TARGET_NAME} $<TARGET_LINKER_FILE:phi>)
add_dependencies(${TARGET_NAME} phi)
Expand Down
2 changes: 1 addition & 1 deletion paddle/fluid/framework/op_registry.h
Original file line number Diff line number Diff line change
Expand Up @@ -426,7 +426,7 @@ struct OpKernelRegistrarFunctorEx<PlaceType,
STATIC_ASSERT_GLOBAL_NAMESPACE( \
__use_op_itself_##op_type, \
"USE_OP_ITSELF must be called in global namespace"); \
extern int TouchOpRegistrar_##op_type(); \
TEST_API extern int TouchOpRegistrar_##op_type(); \
UNUSED static int use_op_itself_##op_type##_ = TouchOpRegistrar_##op_type()

#define USE_OP_DEVICE_KERNEL_WITH_CUSTOM_TYPE(op_type, \
Expand Down
187 changes: 97 additions & 90 deletions paddle/phi/core/kernel_registry.h
Original file line number Diff line number Diff line change
Expand Up @@ -573,31 +573,33 @@ struct KernelRegistrar {
kernel_unfold_macro(meta_kernel_fn<cpp_dtype, context>), \
variadic_kernel_unfold_marco(meta_kernel_fn<cpp_dtype, context>));

#define _PD_KERNEL_REGISTRAR_INIT_1(reg_type, \
kernel_name, \
backend, \
context, \
layout, \
registrar_id, \
args_def_fn, \
meta_kernel_fn, \
arg_parse_functor_macro, \
kernel_unfold_macro, \
variadic_kernel_unfold_marco, \
cpp_dtype) \
_PD_CREATE_REGISTRAR_OBJECT(reg_type, \
kernel_name, \
backend, \
context, \
layout, \
registrar_id, \
args_def_fn, \
meta_kernel_fn, \
arg_parse_functor_macro, \
kernel_unfold_macro, \
variadic_kernel_unfold_marco, \
cpp_dtype) \
int TouchKernelSymbolFor_##kernel_name##_##backend##_##layout() { return 0; }
#define _PD_KERNEL_REGISTRAR_INIT_1(reg_type, \
kernel_name, \
backend, \
context, \
layout, \
registrar_id, \
args_def_fn, \
meta_kernel_fn, \
arg_parse_functor_macro, \
kernel_unfold_macro, \
variadic_kernel_unfold_marco, \
cpp_dtype) \
_PD_CREATE_REGISTRAR_OBJECT(reg_type, \
kernel_name, \
backend, \
context, \
layout, \
registrar_id, \
args_def_fn, \
meta_kernel_fn, \
arg_parse_functor_macro, \
kernel_unfold_macro, \
variadic_kernel_unfold_marco, \
cpp_dtype) \
TEST_API int TouchKernelSymbolFor_##kernel_name##_##backend##_##layout() { \
return 0; \
}
#define _PD_KERNEL_REGISTRAR_INIT_2(reg_type, \
kernel_name, \
backend, \
Expand Down Expand Up @@ -1136,45 +1138,45 @@ struct KernelRegistrar {
reg_type, kernel_name, backend, layout, kernel_fn)

#ifndef _WIN32
#define __PD_REGISTER_KERNEL_FOR_ALL_DTYPE( \
reg_type, kernel_name, backend, layout, kernel_fn) \
template decltype(kernel_fn) kernel_fn; \
static void __PD_KERNEL_args_def_FN_##kernel_name##_##backend##_##layout( \
const ::phi::KernelKey& kernel_key, ::phi::Kernel* kernel); \
static const ::phi::KernelRegistrar \
__reg_phi_kernel_##kernel_name##_##backend##_##layout( \
reg_type, \
#kernel_name, \
#backend, \
DATA_LAYOUT(layout), \
::phi::KernelArgsParseFunctor<decltype(&kernel_fn)>::Parse, \
&__PD_KERNEL_args_def_FN_##kernel_name##_##backend##_##layout, \
PHI_KERNEL(kernel_fn), \
PHI_VARIADIC_KERNEL(kernel_fn)); \
int TouchKernelSymbolFor_##kernel_name##_##backend##_##layout() { \
return 0; \
} \
void __PD_KERNEL_args_def_FN_##kernel_name##_##backend##_##layout( \
#define __PD_REGISTER_KERNEL_FOR_ALL_DTYPE( \
reg_type, kernel_name, backend, layout, kernel_fn) \
template decltype(kernel_fn) kernel_fn; \
static void __PD_KERNEL_args_def_FN_##kernel_name##_##backend##_##layout( \
const ::phi::KernelKey& kernel_key, ::phi::Kernel* kernel); \
static const ::phi::KernelRegistrar \
__reg_phi_kernel_##kernel_name##_##backend##_##layout( \
reg_type, \
#kernel_name, \
#backend, \
DATA_LAYOUT(layout), \
::phi::KernelArgsParseFunctor<decltype(&kernel_fn)>::Parse, \
&__PD_KERNEL_args_def_FN_##kernel_name##_##backend##_##layout, \
PHI_KERNEL(kernel_fn), \
PHI_VARIADIC_KERNEL(kernel_fn)); \
TEST_API int TouchKernelSymbolFor_##kernel_name##_##backend##_##layout() { \
return 0; \
} \
void __PD_KERNEL_args_def_FN_##kernel_name##_##backend##_##layout( \
const ::phi::KernelKey& kernel_key UNUSED, ::phi::Kernel* kernel UNUSED)
#else
#define __PD_REGISTER_KERNEL_FOR_ALL_DTYPE( \
reg_type, kernel_name, backend, layout, kernel_fn) \
static void __PD_KERNEL_args_def_FN_##kernel_name##_##backend##_##layout( \
const ::phi::KernelKey& kernel_key, ::phi::Kernel* kernel); \
static const ::phi::KernelRegistrar \
__reg_phi_kernel_##kernel_name##_##backend##_##layout( \
reg_type, \
#kernel_name, \
#backend, \
DATA_LAYOUT(layout), \
::phi::KernelArgsParseFunctor<decltype(&kernel_fn)>::Parse, \
&__PD_KERNEL_args_def_FN_##kernel_name##_##backend##_##layout, \
PHI_KERNEL(kernel_fn), \
PHI_VARIADIC_KERNEL(kernel_fn)); \
int TouchKernelSymbolFor_##kernel_name##_##backend##_##layout() { \
return 0; \
} \
void __PD_KERNEL_args_def_FN_##kernel_name##_##backend##_##layout( \
#define __PD_REGISTER_KERNEL_FOR_ALL_DTYPE( \
reg_type, kernel_name, backend, layout, kernel_fn) \
static void __PD_KERNEL_args_def_FN_##kernel_name##_##backend##_##layout( \
const ::phi::KernelKey& kernel_key, ::phi::Kernel* kernel); \
static const ::phi::KernelRegistrar \
__reg_phi_kernel_##kernel_name##_##backend##_##layout( \
reg_type, \
#kernel_name, \
#backend, \
DATA_LAYOUT(layout), \
::phi::KernelArgsParseFunctor<decltype(&kernel_fn)>::Parse, \
&__PD_KERNEL_args_def_FN_##kernel_name##_##backend##_##layout, \
PHI_KERNEL(kernel_fn), \
PHI_VARIADIC_KERNEL(kernel_fn)); \
TEST_API int TouchKernelSymbolFor_##kernel_name##_##backend##_##layout() { \
return 0; \
} \
void __PD_KERNEL_args_def_FN_##kernel_name##_##backend##_##layout( \
const ::phi::KernelKey& kernel_key, ::phi::Kernel* kernel)
#endif

Expand Down Expand Up @@ -1243,34 +1245,38 @@ struct KernelRegistrar {
const ::phi::KernelKey& kernel_key UNUSED, \
::phi::Kernel* kernel UNUSED))
#ifndef _WIN32
#define ___PD_REGISTER_KERNEL_FOR_ALL_BACKEND_DTYPE( \
reg_type, kernel_name, backend, layout, kernel_fn, args_def_fn) \
template decltype(kernel_fn) kernel_fn; \
static const ::phi::KernelRegistrar \
__reg_phi_kernel_##kernel_name##_##backend##_##layout( \
reg_type, \
#kernel_name, \
#backend, \
DATA_LAYOUT(layout), \
::phi::KernelArgsParseFunctor<decltype(&kernel_fn)>::Parse, \
&args_def_fn, \
PHI_KERNEL(kernel_fn), \
PHI_VARIADIC_KERNEL(kernel_fn)); \
int TouchKernelSymbolFor_##kernel_name##_##backend##_##layout() { return 0; }
#define ___PD_REGISTER_KERNEL_FOR_ALL_BACKEND_DTYPE( \
reg_type, kernel_name, backend, layout, kernel_fn, args_def_fn) \
template decltype(kernel_fn) kernel_fn; \
static const ::phi::KernelRegistrar \
__reg_phi_kernel_##kernel_name##_##backend##_##layout( \
reg_type, \
#kernel_name, \
#backend, \
DATA_LAYOUT(layout), \
::phi::KernelArgsParseFunctor<decltype(&kernel_fn)>::Parse, \
&args_def_fn, \
PHI_KERNEL(kernel_fn), \
PHI_VARIADIC_KERNEL(kernel_fn)); \
TEST_API int TouchKernelSymbolFor_##kernel_name##_##backend##_##layout() { \
return 0; \
}
#else
#define ___PD_REGISTER_KERNEL_FOR_ALL_BACKEND_DTYPE( \
reg_type, kernel_name, backend, layout, kernel_fn, args_def_fn) \
static const ::phi::KernelRegistrar \
__reg_phi_kernel_##kernel_name##_##backend##_##layout( \
reg_type, \
#kernel_name, \
#backend, \
DATA_LAYOUT(layout), \
::phi::KernelArgsParseFunctor<decltype(&kernel_fn)>::Parse, \
&args_def_fn, \
PHI_KERNEL(kernel_fn), \
PHI_VARIADIC_KERNEL(kernel_fn)); \
int TouchKernelSymbolFor_##kernel_name##_##backend##_##layout() { return 0; }
#define ___PD_REGISTER_KERNEL_FOR_ALL_BACKEND_DTYPE( \
reg_type, kernel_name, backend, layout, kernel_fn, args_def_fn) \
static const ::phi::KernelRegistrar \
__reg_phi_kernel_##kernel_name##_##backend##_##layout( \
reg_type, \
#kernel_name, \
#backend, \
DATA_LAYOUT(layout), \
::phi::KernelArgsParseFunctor<decltype(&kernel_fn)>::Parse, \
&args_def_fn, \
PHI_KERNEL(kernel_fn), \
PHI_VARIADIC_KERNEL(kernel_fn)); \
TEST_API int TouchKernelSymbolFor_##kernel_name##_##backend##_##layout() { \
return 0; \
}
#endif
#define _PD_FOR_ALL_BACKEND_DTYPE_1( \
reg_type, kernel_name, layout, meta_kernel_fn, args_def_fn, backend) \
Expand Down Expand Up @@ -1322,7 +1328,8 @@ struct KernelRegistrar {
PD_STATIC_ASSERT_GLOBAL_NAMESPACE( \
PD_DECLARE_tp_kernel_ns_check_##kernel_name##_##backend##_##layout, \
"PD_DECLARE_KERNEL must be called in global namespace."); \
extern int TouchKernelSymbolFor_##kernel_name##_##backend##_##layout(); \
TEST_API extern int \
TouchKernelSymbolFor_##kernel_name##_##backend##_##layout(); \
UNUSED static int \
__declare_kernel_symbol_for_##kernel_name##_##backend##_##layout = \
TouchKernelSymbolFor_##kernel_name##_##backend##_##layout()
Expand Down
37 changes: 10 additions & 27 deletions test/cpp/fluid/mkldnn/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -59,33 +59,9 @@ cc_test(
test_mkldnn_caching
SRCS test_mkldnn_caching.cc
DEPS ${TEST_MKLDNN_CACHING_DEPS})
if(WIN32 AND WITH_TESTING)
cc_test_old(
test_mkldnn_op_nhwc
SRCS
test_mkldnn_op_nhwc.cc
DEPS
fleet_executor
conditional_block_op
executor
recurrent_op_helper
recurrent_op
op_registry
generated_static_op
crop_op
activation_op
generated_op
generated_static_op
phi
common
transpose_op
fused_transpose_op
scope
device_context
enforce)
else()
cc_test_old(test_mkldnn_op_nhwc SRCS test_mkldnn_op_nhwc.cc DEPS
${paddle_lib} python)

if(WITH_TESTING)
paddle_test(test_mkldnn_op_nhwc SRCS test_mkldnn_op_nhwc.cc)
endif()

cc_test(
Expand Down Expand Up @@ -116,3 +92,10 @@ cc_test(
scope
device_context
enforce)

if(WITH_ONNXRUNTIME AND WIN32)
# Copy onnxruntime for some c++ test in Windows, since the test will
# be build only in CI, so suppose the generator in Windows is Ninja.
copy_onnx(test_mkldnn_op_nhwc)
endif()

17 changes: 0 additions & 17 deletions test/cpp/fluid/mkldnn/test_mkldnn_op_nhwc.cc
Original file line number Diff line number Diff line change
Expand Up @@ -26,23 +26,6 @@
#include "paddle/phi/core/enforce.h"
#include "paddle/phi/core/kernel_registry.h"

USE_OP_ITSELF(pool2d);
PD_DECLARE_KERNEL(pool2d, OneDNN, ONEDNN);
USE_OP_ITSELF(relu);
PD_DECLARE_KERNEL(relu, OneDNN, ONEDNN);
USE_OP_ITSELF(transpose);
PD_DECLARE_KERNEL(transpose, OneDNN, ONEDNN);
USE_OP_ITSELF(fused_transpose);
PD_DECLARE_KERNEL(fused_transpose, OneDNN, ONEDNN);
USE_OP_ITSELF(shape);
PD_DECLARE_KERNEL(shape, OneDNN, ONEDNN);
USE_OP_ITSELF(crop);
PD_DECLARE_KERNEL(crop, CPU, ALL_LAYOUT);

PD_DECLARE_KERNEL(pool2d, CPU, ALL_LAYOUT);
PD_DECLARE_KERNEL(relu, CPU, ALL_LAYOUT);
PD_DECLARE_KERNEL(shape, CPU, ALL_LAYOUT);

namespace paddle {
namespace operators {

Expand Down