Skip to content

Commit 4e02e33

Browse files
committed
Merge branch 'develop' of https://github.com/PaddlePaddle/Paddle into stablize_depthwise_conv
2 parents 52ae66b + 0efda9d commit 4e02e33

File tree

528 files changed

+46646
-5415
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

528 files changed

+46646
-5415
lines changed

.pre-commit-config.yaml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,4 +49,7 @@ repos:
4949
entry: python ./tools/codestyle/copyright.hook
5050
language: system
5151
files: \.(c|cc|cxx|cpp|cu|h|hpp|hxx|proto|py|sh)$
52-
exclude: (?!.*third_party)^.*$ | (?!.*book)^.*$
52+
exclude: |
53+
(?x)^(
54+
paddle/utils/.*
55+
)$

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ if(WIN32)
130130
# NOTE(zhouwei25): GPU compile have too high memory utilization when parallel compiling,
131131
# For Visual Studio generators, /MP should be added.
132132
# For other generators like Ninja, it is not need to add /MP.
133-
if("${CMAKE_GENERATOR}" STREQUAL "Visual Studio" AND NOT WITH_GPU)
133+
if(CMAKE_GENERATOR MATCHES "Visual Studio" AND NOT WITH_GPU)
134134
math(EXPR PROCESS_MAX "${CPU_CORES} * 2 / 3")
135135
set(${flag_var} "${${flag_var}} /MP${PROCESS_MAX}")
136136
endif()

cmake/cupti.cmake

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ find_path(CUPTI_INCLUDE_DIR cupti.h
99
$ENV{CUPTI_ROOT} $ENV{CUPTI_ROOT}/include
1010
${CUDA_TOOLKIT_ROOT_DIR}/extras/CUPTI/include
1111
${CUDA_TOOLKIT_ROOT_DIR}/targets/x86_64-linux/include
12+
${CUDA_TOOLKIT_ROOT_DIR}/targets/aarch64-linux/include
1213
NO_DEFAULT_PATH
1314
)
1415

cmake/external/gflags.cmake

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ ExternalProject_Add(
4141
${SHALLOW_CLONE}
4242
"${GFLAGS_DOWNLOAD_CMD}"
4343
PREFIX ${GFLAGS_PREFIX_DIR}
44+
UPDATE_COMMAND ""
4445
SOURCE_DIR ${GFLAGS_SOURCE_DIR}
4546
BUILD_COMMAND ${BUILD_COMMAND}
4647
INSTALL_COMMAND ${INSTALL_COMMAND}

cmake/external/glog.cmake

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ ExternalProject_Add(
4545
DEPENDS gflags
4646
PREFIX ${GLOG_PREFIX_DIR}
4747
SOURCE_DIR ${GLOG_SOURCE_DIR}
48+
UPDATE_COMMAND ""
4849
CMAKE_ARGS -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
4950
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
5051
-DCMAKE_CXX_FLAGS=${GLOG_CMAKE_CXX_FLAGS}

cmake/external/mkldnn.cmake

Lines changed: 26 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ SET(MKLDNN_SOURCE_DIR ${THIRD_PARTY_PATH}/mkldnn/src/extern_mkldnn)
2020
SET(MKLDNN_INSTALL_DIR ${THIRD_PARTY_PATH}/install/mkldnn)
2121
SET(MKLDNN_INC_DIR "${MKLDNN_INSTALL_DIR}/include" CACHE PATH "mkldnn include directory." FORCE)
2222
SET(MKLDNN_REPOSITORY ${GIT_URL}/oneapi-src/oneDNN.git)
23-
SET(MKLDNN_TAG 593e0de6267d2575f3e4c9e9818f0f11253d093a)
23+
SET(MKLDNN_TAG e2d45252ae9c3e91671339579e3c0f0061f81d49)
2424

2525

2626
# Introduce variables:
@@ -79,49 +79,44 @@ ExternalProject_Add(
7979
-DCMAKE_CXX_FLAGS=${MKLDNN_CXXFLAG}
8080
-DDNNL_BUILD_TESTS=OFF -DDNNL_BUILD_EXAMPLES=OFF
8181
CMAKE_CACHE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=${MKLDNN_INSTALL_DIR}
82-
BUILD_BYPRODUCTS ${MKLDNN_LIB}
8382
)
8483

85-
ADD_LIBRARY(shared_mkldnn SHARED IMPORTED GLOBAL)
86-
SET_PROPERTY(TARGET shared_mkldnn PROPERTY IMPORTED_LOCATION ${MKLDNN_LIB})
87-
ADD_DEPENDENCIES(shared_mkldnn ${MKLDNN_PROJECT})
8884
MESSAGE(STATUS "MKLDNN library: ${MKLDNN_LIB}")
8985
add_definitions(-DPADDLE_WITH_MKLDNN)
90-
91-
# generate a static dummy target to track mkldnn dependencies
92-
# for cc_library(xxx SRCS xxx.c DEPS mkldnn)
93-
generate_dummy_static_lib(LIB_NAME "mkldnn" GENERATOR "mkldnn.cmake")
94-
95-
TARGET_LINK_LIBRARIES(mkldnn ${MKLDNN_LIB} ${MKLML_IOMP_LIB})
96-
ADD_DEPENDENCIES(mkldnn ${MKLDNN_PROJECT})
97-
9886
# copy the real so.0 lib to install dir
9987
# it can be directly contained in wheel or capi
10088
if(WIN32)
10189
SET(MKLDNN_SHARED_LIB ${MKLDNN_INSTALL_DIR}/bin/mkldnn.dll)
10290

10391
file(TO_NATIVE_PATH ${MKLDNN_INSTALL_DIR} NATIVE_MKLDNN_INSTALL_DIR)
10492
file(TO_NATIVE_PATH ${MKLDNN_SHARED_LIB} NATIVE_MKLDNN_SHARED_LIB)
105-
ADD_CUSTOM_COMMAND(TARGET ${MKLDNN_PROJECT} POST_BUILD
106-
COMMAND (copy ${NATIVE_MKLDNN_INSTALL_DIR}\\bin\\dnnl.dll ${NATIVE_MKLDNN_SHARED_LIB} /Y))
107-
add_custom_command(TARGET ${MKLDNN_PROJECT} POST_BUILD VERBATIM
108-
COMMAND dumpbin /exports ${MKLDNN_INSTALL_DIR}/bin/mkldnn.dll > ${MKLDNN_INSTALL_DIR}/bin/exports.txt)
109-
add_custom_command(TARGET ${MKLDNN_PROJECT} POST_BUILD VERBATIM
110-
COMMAND echo LIBRARY mkldnn > ${MKLDNN_INSTALL_DIR}/bin/mkldnn.def)
111-
add_custom_command(TARGET ${MKLDNN_PROJECT} POST_BUILD VERBATIM
112-
COMMAND echo EXPORTS >> ${MKLDNN_INSTALL_DIR}/bin/mkldnn.def)
113-
add_custom_command(TARGET ${MKLDNN_PROJECT} POST_BUILD VERBATIM
114-
COMMAND echo off && (for /f "skip=19 tokens=4" %A in (${MKLDNN_INSTALL_DIR}/bin/exports.txt) do echo %A >> ${MKLDNN_INSTALL_DIR}/bin/mkldnn.def) && echo on)
115-
add_custom_command(TARGET ${MKLDNN_PROJECT} POST_BUILD VERBATIM
116-
COMMAND lib /def:${MKLDNN_INSTALL_DIR}/bin/mkldnn.def /out:${MKLDNN_INSTALL_DIR}/bin/mkldnn.lib /machine:x64)
93+
94+
ADD_CUSTOM_COMMAND(OUTPUT ${MKLDNN_LIB}
95+
COMMAND (copy ${NATIVE_MKLDNN_INSTALL_DIR}\\bin\\dnnl.dll ${NATIVE_MKLDNN_SHARED_LIB} /Y)
96+
COMMAND dumpbin /exports ${MKLDNN_INSTALL_DIR}/bin/mkldnn.dll > ${MKLDNN_INSTALL_DIR}/bin/exports.txt
97+
COMMAND echo LIBRARY mkldnn > ${MKLDNN_INSTALL_DIR}/bin/mkldnn.def
98+
COMMAND echo EXPORTS >> ${MKLDNN_INSTALL_DIR}/bin/mkldnn.def
99+
COMMAND echo off && (for /f "skip=19 tokens=4" %A in (${MKLDNN_INSTALL_DIR}/bin/exports.txt) do echo %A >> ${MKLDNN_INSTALL_DIR}/bin/mkldnn.def) && echo on
100+
COMMAND lib /def:${MKLDNN_INSTALL_DIR}/bin/mkldnn.def /out:${MKLDNN_LIB} /machine:x64
101+
COMMENT "Generate mkldnn.lib manually--->"
102+
DEPENDS ${MKLDNN_PROJECT}
103+
VERBATIM)
104+
ADD_CUSTOM_TARGET(mkldnn_cmd ALL DEPENDS ${MKLDNN_LIB})
117105
else(WIN32)
118106
SET(MKLDNN_SHARED_LIB ${MKLDNN_INSTALL_DIR}/libmkldnn.so.0)
119107
SET(MKLDNN_SHARED_LIB_1 ${MKLDNN_INSTALL_DIR}/libdnnl.so.1)
120108
SET(MKLDNN_SHARED_LIB_2 ${MKLDNN_INSTALL_DIR}/libdnnl.so.2)
121-
ADD_CUSTOM_COMMAND(TARGET ${MKLDNN_PROJECT} POST_BUILD
122-
COMMAND ${CMAKE_COMMAND} -E copy ${MKLDNN_LIB} ${MKLDNN_SHARED_LIB})
123-
ADD_CUSTOM_COMMAND(TARGET ${MKLDNN_PROJECT} POST_BUILD
124-
COMMAND ${CMAKE_COMMAND} -E copy ${MKLDNN_LIB} ${MKLDNN_SHARED_LIB_1})
125-
ADD_CUSTOM_COMMAND(TARGET ${MKLDNN_PROJECT} POST_BUILD
126-
COMMAND ${CMAKE_COMMAND} -E copy ${MKLDNN_LIB} ${MKLDNN_SHARED_LIB_2})
109+
ADD_CUSTOM_COMMAND(OUTPUT ${MKLDNN_SHARED_LIB_2}
110+
COMMAND ${CMAKE_COMMAND} -E copy ${MKLDNN_LIB} ${MKLDNN_SHARED_LIB}
111+
COMMAND ${CMAKE_COMMAND} -E copy ${MKLDNN_LIB} ${MKLDNN_SHARED_LIB_1}
112+
COMMAND ${CMAKE_COMMAND} -E copy ${MKLDNN_LIB} ${MKLDNN_SHARED_LIB_2}
113+
DEPENDS ${MKLDNN_PROJECT})
114+
ADD_CUSTOM_TARGET(mkldnn_cmd ALL DEPENDS ${MKLDNN_SHARED_LIB_2})
127115
endif(WIN32)
116+
117+
# generate a static dummy target to track mkldnn dependencies
118+
# for cc_library(xxx SRCS xxx.c DEPS mkldnn)
119+
generate_dummy_static_lib(LIB_NAME "mkldnn" GENERATOR "mkldnn.cmake")
120+
121+
TARGET_LINK_LIBRARIES(mkldnn ${MKLDNN_LIB} ${MKLML_IOMP_LIB})
122+
ADD_DEPENDENCIES(mkldnn ${MKLDNN_PROJECT} mkldnn_cmd)

cmake/external/protobuf.cmake

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -198,16 +198,16 @@ FUNCTION(build_protobuf TARGET_NAME BUILD_FOR_HOST)
198198
"-Dprotobuf_MSVC_STATIC_RUNTIME=${MSVC_STATIC_CRT}")
199199
ENDIF()
200200

201-
if(WITH_ASCEND AND NOT WITH_ASCEND_CXX11)
202-
SET(PROTOBUF_REPOSITORY https://gitee.com/tianjianhe/protobuf.git)
203-
SET(PROTOBUF_TAG v3.8.0)
204-
elseif(WITH_ASCEND_CL AND NOT WITH_ASCEND_CXX11)
205-
SET(PROTOBUF_REPOSITORY https://gitee.com/tianjianhe/protobuf.git)
206-
SET(PROTOBUF_TAG v3.8.0)
207-
else()
208-
SET(PROTOBUF_REPOSITORY ${GIT_URL}/protocolbuffers/protobuf.git)
209-
SET(PROTOBUF_TAG 9f75c5aa851cd877fb0d93ccc31b8567a6706546)
210-
endif()
201+
if(WITH_ASCEND AND NOT WITH_ASCEND_CXX11)
202+
SET(PROTOBUF_REPOSITORY https://gitee.com/tianjianhe/protobuf.git)
203+
SET(PROTOBUF_TAG v3.8.0)
204+
elseif(WITH_ASCEND_CL AND NOT WITH_ASCEND_CXX11)
205+
SET(PROTOBUF_REPOSITORY https://gitee.com/tianjianhe/protobuf.git)
206+
SET(PROTOBUF_TAG v3.8.0)
207+
else()
208+
SET(PROTOBUF_REPOSITORY ${GIT_URL}/protocolbuffers/protobuf.git)
209+
SET(PROTOBUF_TAG 9f75c5aa851cd877fb0d93ccc31b8567a6706546)
210+
endif()
211211

212212
cache_third_party(${TARGET_NAME}
213213
REPOSITORY ${PROTOBUF_REPOSITORY}

cmake/external/pybind11.cmake

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ ExternalProject_Add(
3939
# to be modified without triggering incremental compilation, and the
4040
# third-party library version changes cannot be incorporated.
4141
# reference: https://cmake.org/cmake/help/latest/module/ExternalProject.html
42+
UPDATE_COMMAND ""
4243
CONFIGURE_COMMAND ""
4344
BUILD_COMMAND ""
4445
INSTALL_COMMAND ""

cmake/external/xpu.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ ELSE ()
3535
ENDIF()
3636

3737
SET(XPU_BASE_URL_WITHOUT_DATE "https://baidu-kunlun-product.cdn.bcebos.com/KL-SDK/klsdk-dev")
38-
SET(XPU_BASE_URL "${XPU_BASE_URL_WITHOUT_DATE}/20210804")
38+
SET(XPU_BASE_URL "${XPU_BASE_URL_WITHOUT_DATE}/20210818")
3939
SET(XPU_XRE_URL "${XPU_BASE_URL}/${XPU_XRE_DIR_NAME}.tar.gz" CACHE STRING "" FORCE)
4040
SET(XPU_XDNN_URL "${XPU_BASE_URL}/${XPU_XDNN_DIR_NAME}.tar.gz" CACHE STRING "" FORCE)
4141
SET(XPU_XCCL_URL "${XPU_BASE_URL_WITHOUT_DATE}/20210623/${XPU_XCCL_DIR_NAME}.tar.gz" CACHE STRING "" FORCE)

cmake/inference_lib.cmake

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,12 @@ function(copy_part_of_thrid_party TARGET DST)
7272
copy(${TARGET}
7373
SRCS ${MKLML_LIB} ${MKLML_IOMP_LIB} ${MKLML_INC_DIR}
7474
DSTS ${dst_dir}/lib ${dst_dir}/lib ${dst_dir})
75+
if(WITH_STRIP)
76+
add_custom_command(TARGET ${TARGET} POST_BUILD
77+
COMMAND strip -s ${dst_dir}/lib/libiomp5.so
78+
COMMAND strip -s ${dst_dir}/lib/libmklml_intel.so
79+
COMMENT "striping libiomp5.so\nstriping libmklml_intel.so")
80+
endif()
7581
endif()
7682
elseif(${CBLAS_PROVIDER} STREQUAL EXTERN_OPENBLAS)
7783
set(dst_dir "${DST}/third_party/install/openblas")
@@ -94,8 +100,17 @@ function(copy_part_of_thrid_party TARGET DST)
94100
DSTS ${dst_dir} ${dst_dir}/lib ${dst_dir}/lib)
95101
else()
96102
copy(${TARGET}
97-
SRCS ${MKLDNN_INC_DIR} ${MKLDNN_SHARED_LIB} ${MKLDNN_SHARED_LIB_1} ${MKLDNN_SHARED_LIB_2}
98-
DSTS ${dst_dir} ${dst_dir}/lib ${dst_dir}/lib ${dst_dir}/lib)
103+
SRCS ${MKLDNN_INC_DIR} ${MKLDNN_SHARED_LIB}
104+
DSTS ${dst_dir} ${dst_dir}/lib)
105+
if(WITH_STRIP)
106+
add_custom_command(TARGET ${TARGET} POST_BUILD
107+
COMMAND strip -s ${dst_dir}/lib/libmkldnn.so.0
108+
COMMENT "striping libmkldnn.so.0")
109+
endif()
110+
add_custom_command(TARGET ${TARGET} POST_BUILD
111+
COMMAND ${CMAKE_COMMAND} -E create_symlink libmkldnn.so.0 ${dst_dir}/lib/libdnnl.so.1
112+
COMMAND ${CMAKE_COMMAND} -E create_symlink libmkldnn.so.0 ${dst_dir}/lib/libdnnl.so.2
113+
COMMENT "Make a symbol link of libmkldnn.so.0")
99114
endif()
100115
endif()
101116

@@ -205,6 +220,9 @@ copy(inference_lib_dist
205220
copy(inference_lib_dist
206221
SRCS ${PADDLE_SOURCE_DIR}/paddle/fluid/platform/float16.h
207222
DSTS ${PADDLE_INFERENCE_INSTALL_DIR}/paddle/include/experimental/)
223+
copy(inference_lib_dist
224+
SRCS ${PADDLE_SOURCE_DIR}/paddle/utils/any.h
225+
DSTS ${PADDLE_INFERENCE_INSTALL_DIR}/paddle/include/experimental/)
208226

209227
# CAPI inference library for only inference
210228
set(PADDLE_INFERENCE_C_INSTALL_DIR "${CMAKE_BINARY_DIR}/paddle_inference_c_install_dir" CACHE STRING
@@ -222,6 +240,13 @@ copy(inference_lib_dist
222240
SRCS ${src_dir}/inference/capi_exp/pd_*.h ${paddle_inference_c_lib}
223241
DSTS ${PADDLE_INFERENCE_C_INSTALL_DIR}/paddle/include ${PADDLE_INFERENCE_C_INSTALL_DIR}/paddle/lib)
224242

243+
if(WITH_STRIP AND NOT WIN32)
244+
add_custom_command(TARGET inference_lib_dist POST_BUILD
245+
COMMAND strip -s ${PADDLE_INFERENCE_C_INSTALL_DIR}/paddle/lib/libpaddle_inference_c.so
246+
COMMAND strip -s ${PADDLE_INFERENCE_INSTALL_DIR}/paddle/lib/libpaddle_inference.so
247+
COMMENT "striping libpaddle_inference_c.so\nstriping libpaddle_inference.so")
248+
endif()
249+
225250
# fluid library for both train and inference
226251
set(fluid_lib_deps inference_lib_dist)
227252
add_custom_target(fluid_lib_dist ALL DEPENDS ${fluid_lib_deps})

0 commit comments

Comments
 (0)