Skip to content

Commit 467bf8e

Browse files
author
sandyhouse
committed
Merge branch 'develop' of https://github.com/PaddlePaddle/Paddle into im_vlog
2 parents 5e642d5 + a40ea45 commit 467bf8e

File tree

423 files changed

+20575
-8011
lines changed

Some content is hidden

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

423 files changed

+20575
-8011
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ paddle/infrt/dialect/pd_ops.td
5656
paddle/infrt/dialect/phi/ir/phi_cpu_kernels.td
5757
paddle/infrt/dialect/phi/ir/phi_gpu_kernels.td
5858
tools/infrt/kernels.json
59+
tools/infrt/kernel_signature.json
5960
paddle/infrt/dialect/pd_ops_info.h
6061
.lit_test_times.txt
6162
paddle/infrt/tests/dialect/Output

CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ option(WITH_IPU "Compile PaddlePaddle with Graphcore IPU" OFF)
5353
# to develop some acl related functionality on x86
5454
option(WITH_ASCEND_CL "Compile PaddlePaddle with ASCEND CL" ${WITH_ASCEND})
5555
option(WITH_ASCEND_CXX11 "Compile PaddlePaddle with ASCEND and CXX11 ABI" OFF)
56+
option(WITH_ONNXRUNTIME "Compile PaddlePaddle with ONNXRUNTIME" OFF)
5657
# Note(zhouwei): It use option above, so put here
5758
include(init)
5859
include(generic) # simplify cmake module

cmake/external/onnxruntime.cmake

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
# Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved.
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
15+
if (NOT WITH_ONNXRUNTIME)
16+
return()
17+
endif ()
18+
19+
if (WITH_ARM)
20+
message(SEND_ERROR "The current onnxruntime backend doesn't support ARM cpu")
21+
return()
22+
endif ()
23+
24+
INCLUDE(ExternalProject)
25+
26+
add_definitions(-DPADDLE_WITH_ONNXRUNTIME)
27+
28+
SET(ONNXRUNTIME_PROJECT "extern_onnxruntime")
29+
SET(ONNXRUNTIME_PREFIX_DIR ${THIRD_PARTY_PATH}/onnxruntime)
30+
SET(ONNXRUNTIME_SOURCE_DIR ${THIRD_PARTY_PATH}/onnxruntime/src/${ONNXRUNTIME_PROJECT})
31+
SET(ONNXRUNTIME_INSTALL_DIR ${THIRD_PARTY_PATH}/install/onnxruntime)
32+
SET(ONNXRUNTIME_INC_DIR "${ONNXRUNTIME_INSTALL_DIR}/include" CACHE PATH "onnxruntime include directory." FORCE)
33+
SET(ONNXRUNTIME_LIB_DIR "${ONNXRUNTIME_INSTALL_DIR}/lib" CACHE PATH "onnxruntime lib directory." FORCE)
34+
SET(CMAKE_BUILD_RPATH "${CMAKE_BUILD_RPATH}" "${ONNXRUNTIME_LIB_DIR}")
35+
36+
37+
if (WIN32)
38+
SET(ONNXRUNTIME_URL "https://github.com/microsoft/onnxruntime/releases/download/v1.10.0/onnxruntime-win-x64-1.10.0.zip")
39+
elseif (APPLE)
40+
SET(ONNXRUNTIME_URL "https://github.com/microsoft/onnxruntime/releases/download/v1.10.0/onnxruntime-osx-x86_64-1.10.0.tgz")
41+
else ()
42+
SET(ONNXRUNTIME_URL "https://github.com/microsoft/onnxruntime/releases/download/v1.10.0/onnxruntime-linux-x64-1.10.0.tgz")
43+
endif()
44+
45+
46+
INCLUDE_DIRECTORIES(${ONNXRUNTIME_INC_DIR}) # For ONNXRUNTIME code to include internal headers.
47+
if (WIN32)
48+
SET(ONNXRUNTIME_SOURCE_LIB "${ONNXRUNTIME_SOURCE_DIR}/lib/onnxruntime.dll" CACHE FILEPATH "ONNXRUNTIME source library." FORCE)
49+
SET(ONNXRUNTIME_SHARED_LIB "${ONNXRUNTIME_INSTALL_DIR}/lib/onnxruntime.dll" CACHE FILEPATH "ONNXRUNTIME shared library." FORCE)
50+
SET(ONNXRUNTIME_LIB "${ONNXRUNTIME_INSTALL_DIR}/lib/onnxruntime.lib" CACHE FILEPATH "ONNXRUNTIME static library." FORCE)
51+
elseif (APPLE)
52+
SET(ONNXRUNTIME_SOURCE_LIB "${ONNXRUNTIME_SOURCE_DIR}/lib/libonnxruntime.1.10.0.dylib" CACHE FILEPATH "ONNXRUNTIME source library." FORCE)
53+
SET(ONNXRUNTIME_LIB "${ONNXRUNTIME_INSTALL_DIR}/lib/libonnxruntime.1.10.0.dylib" CACHE FILEPATH "ONNXRUNTIME static library." FORCE)
54+
SET(ONNXRUNTIME_SHARED_LIB ${ONNXRUNTIME_LIB} CACHE FILEPATH "ONNXRUNTIME shared library." FORCE)
55+
else ()
56+
SET(ONNXRUNTIME_SOURCE_LIB "${ONNXRUNTIME_SOURCE_DIR}/lib/libonnxruntime.so.1.10.0" CACHE FILEPATH "ONNXRUNTIME source library." FORCE)
57+
SET(ONNXRUNTIME_LIB "${ONNXRUNTIME_INSTALL_DIR}/lib/libonnxruntime.so.1.10.0" CACHE FILEPATH "ONNXRUNTIME static library." FORCE)
58+
SET(ONNXRUNTIME_SHARED_LIB ${ONNXRUNTIME_LIB} CACHE FILEPATH "ONNXRUNTIME shared library." FORCE)
59+
endif ()
60+
61+
if (WIN32)
62+
ExternalProject_Add(
63+
${ONNXRUNTIME_PROJECT}
64+
${EXTERNAL_PROJECT_LOG_ARGS}
65+
URL ${ONNXRUNTIME_URL}
66+
PREFIX ${ONNXRUNTIME_PREFIX_DIR}
67+
DOWNLOAD_NO_PROGRESS 1
68+
CONFIGURE_COMMAND ""
69+
BUILD_COMMAND ""
70+
UPDATE_COMMAND ""
71+
INSTALL_COMMAND ${CMAKE_COMMAND} -E copy ${ONNXRUNTIME_SOURCE_LIB} ${ONNXRUNTIME_SHARED_LIB} &&
72+
${CMAKE_COMMAND} -E copy ${ONNXRUNTIME_SOURCE_DIR}/lib/onnxruntime.lib ${ONNXRUNTIME_LIB} &&
73+
${CMAKE_COMMAND} -E copy_directory ${ONNXRUNTIME_SOURCE_DIR}/include ${ONNXRUNTIME_INC_DIR}
74+
BUILD_BYPRODUCTS ${ONNXRUNTIME_LIB}
75+
)
76+
else ()
77+
ExternalProject_Add(
78+
${ONNXRUNTIME_PROJECT}
79+
${EXTERNAL_PROJECT_LOG_ARGS}
80+
URL ${ONNXRUNTIME_URL}
81+
PREFIX ${ONNXRUNTIME_PREFIX_DIR}
82+
DOWNLOAD_NO_PROGRESS 1
83+
CONFIGURE_COMMAND ""
84+
BUILD_COMMAND ""
85+
UPDATE_COMMAND ""
86+
INSTALL_COMMAND ${CMAKE_COMMAND} -E copy ${ONNXRUNTIME_SOURCE_LIB} ${ONNXRUNTIME_LIB} &&
87+
${CMAKE_COMMAND} -E copy_directory ${ONNXRUNTIME_SOURCE_DIR}/include ${ONNXRUNTIME_INC_DIR}
88+
BUILD_BYPRODUCTS ${ONNXRUNTIME_LIB}
89+
)
90+
endif()
91+
92+
ADD_LIBRARY(onnxruntime STATIC IMPORTED GLOBAL)
93+
SET_PROPERTY(TARGET onnxruntime PROPERTY IMPORTED_LOCATION ${ONNXRUNTIME_LIB})
94+
ADD_DEPENDENCIES(onnxruntime ${ONNXRUNTIME_PROJECT})

cmake/external/paddle2onnx.cmake

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
# Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved.
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
15+
if(NOT WITH_ONNXRUNTIME)
16+
return()
17+
endif()
18+
19+
if (WITH_ARM)
20+
message(SEND_ERROR "The current onnxruntime backend doesn't support ARM cpu")
21+
return()
22+
endif ()
23+
24+
INCLUDE(ExternalProject)
25+
26+
SET(PADDLE2ONNX_PROJECT "extern_paddle2onnx")
27+
SET(PADDLE2ONNX_PREFIX_DIR ${THIRD_PARTY_PATH}/paddle2onnx)
28+
SET(PADDLE2ONNX_INSTALL_DIR ${THIRD_PARTY_PATH}/install/paddle2onnx)
29+
SET(PADDLE2ONNX_INC_DIR "${PADDLE2ONNX_INSTALL_DIR}/include" CACHE PATH "paddle2onnx include directory." FORCE)
30+
SET(PADDLE2ONNX_REPOSITORY ${GIT_URL}/PaddlePaddle/Paddle2ONNX.git)
31+
SET(PADDLE2ONNX_TAG cpp)
32+
SET(LIBDIR "lib")
33+
SET(CMAKE_BUILD_RPATH "${CMAKE_BUILD_RPATH}" "${PADDLE2ONNX_INSTALL_DIR}/${LIBDIR}")
34+
35+
INCLUDE_DIRECTORIES(${PADDLE2ONNX_INC_DIR}) # For PADDLE2ONNX code to include internal headers.
36+
if(WIN32)
37+
SET(PADDLE2ONNX_LIB "${PADDLE2ONNX_INSTALL_DIR}/${LIBDIR}/paddle2onnx.lib" CACHE FILEPATH "paddle2onnx static library." FORCE)
38+
SET(PADDLE2ONNX_SHARED_LIB "${PADDLE2ONNX_INSTALL_DIR}/${LIBDIR}/paddle2onnx.dll" CACHE FILEPATH "paddle2onnx shared library." FORCE)
39+
elseif(APPLE)
40+
SET(PADDLE2ONNX_LIB "${PADDLE2ONNX_INSTALL_DIR}/${LIBDIR}/libpaddle2onnx.dylib" CACHE FILEPATH "PADDLE2ONNX library." FORCE)
41+
else()
42+
SET(PADDLE2ONNX_LIB "${PADDLE2ONNX_INSTALL_DIR}/${LIBDIR}/libpaddle2onnx.so" CACHE FILEPATH "PADDLE2ONNX library." FORCE)
43+
endif(WIN32)
44+
45+
46+
# The protoc path is required to compile onnx.
47+
string(REPLACE "/" ";" PROTOC_BIN_PATH ${PROTOBUF_PROTOC_EXECUTABLE})
48+
list(POP_BACK PROTOC_BIN_PATH)
49+
list(JOIN PROTOC_BIN_PATH "/" PROTOC_BIN_PATH)
50+
51+
52+
set(PADDLE2ONNX_OPTIONAL_ARGS
53+
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
54+
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
55+
-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
56+
-DCMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE}
57+
-DCMAKE_CXX_FLAGS_DEBUG=${CMAKE_CXX_FLAGS_DEBUG}
58+
-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
59+
-DCMAKE_C_FLAGS_DEBUG=${CMAKE_C_FLAGS_DEBUG}
60+
-DCMAKE_C_FLAGS_RELEASE=${CMAKE_C_FLAGS_RELEASE}
61+
-DONNX_CUSTOM_PROTOC_PATH=${PROTOC_BIN_PATH}
62+
-DWITH_STATIC=OFF
63+
-DCMAKE_INSTALL_PREFIX=${PADDLE2ONNX_INSTALL_DIR}
64+
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
65+
-DCMAKE_BUILD_TYPE=${THIRD_PARTY_BUILD_TYPE}
66+
${EXTERNAL_OPTIONAL_ARGS}
67+
)
68+
69+
if (WITH_PYTHON)
70+
set(PADDLE2ONNX_OPTIONAL_ARGS ${PADDLE2ONNX_OPTIONAL_ARGS}
71+
-DPYTHON_EXECUTABLE:FILEPATH=${PYTHON_EXECUTABLE}
72+
-DPYTHON_INCLUDE_DIR:PATH=${PYTHON_INCLUDE_DIR}
73+
-DPYTHON_LIBRARY:FILEPATH=${PYTHON_LIBRARY}
74+
)
75+
endif ()
76+
77+
78+
ExternalProject_Add(
79+
${PADDLE2ONNX_PROJECT}
80+
${EXTERNAL_PROJECT_LOG_ARGS}
81+
${SHALLOW_CLONE}
82+
GIT_REPOSITORY ${PADDLE2ONNX_REPOSITORY}
83+
GIT_TAG ${PADDLE2ONNX_TAG}
84+
DEPENDS protobuf
85+
PREFIX ${PADDLE2ONNX_PREFIX_DIR}
86+
UPDATE_COMMAND ""
87+
CMAKE_ARGS ${PADDLE2ONNX_OPTIONAL_ARGS}
88+
CMAKE_CACHE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=${PADDLE2ONNX_INSTALL_DIR}
89+
-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON
90+
-DCMAKE_BUILD_TYPE:STRING=${THIRD_PARTY_BUILD_TYPE}
91+
BUILD_BYPRODUCTS ${PADDLE2ONNX_LIB}
92+
)
93+
94+
ADD_LIBRARY(paddle2onnx STATIC IMPORTED GLOBAL)
95+
SET_PROPERTY(TARGET paddle2onnx PROPERTY IMPORTED_LOCATION ${PADDLE2ONNX_LIB})
96+
ADD_DEPENDENCIES(paddle2onnx ${PADDLE2ONNX_PROJECT})

cmake/external/protobuf.cmake

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,11 @@ 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)
201+
202+
if(WITH_ONNXRUNTIME)
203+
SET(PROTOBUF_REPOSITORY ${GIT_URL}/protocolbuffers/protobuf.git)
204+
SET(PROTOBUF_TAG v3.18.0)
205+
elseif(WITH_ASCEND AND NOT WITH_ASCEND_CXX11)
202206
SET(PROTOBUF_REPOSITORY https://gitee.com/tianjianhe/protobuf.git)
203207
SET(PROTOBUF_TAG v3.8.0)
204208
elseif(WITH_ASCEND_CL AND NOT WITH_ASCEND_CXX11)
@@ -248,7 +252,9 @@ FUNCTION(build_protobuf TARGET_NAME BUILD_FOR_HOST)
248252
)
249253
ENDFUNCTION()
250254

251-
if(WITH_ASCEND OR WITH_ASCEND_CL)
255+
if(WITH_ONNXRUNTIME)
256+
SET(PROTOBUF_VERSION 3.18.0)
257+
elseif(WITH_ASCEND OR WITH_ASCEND_CL)
252258
SET(PROTOBUF_VERSION 3.8.0)
253259
elseif(WITH_IPU)
254260
SET(PROTOBUF_VERSION 3.6.1)

cmake/external/xpu.cmake

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

3737
if(NOT DEFINED XPU_BASE_URL)
3838
SET(XPU_BASE_URL_WITHOUT_DATE "https://baidu-kunlun-product.cdn.bcebos.com/KL-SDK/klsdk-dev")
39-
SET(XPU_BASE_URL "${XPU_BASE_URL_WITHOUT_DATE}/20220228")
39+
SET(XPU_BASE_URL "${XPU_BASE_URL_WITHOUT_DATE}/20220307")
4040
else()
4141
SET(XPU_BASE_URL "${XPU_BASE_URL}")
4242
endif()

cmake/inference_lib.cmake

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,24 @@ function(copy_part_of_thrid_party TARGET DST)
114114
endif()
115115
endif()
116116

117+
if (WITH_ONNXRUNTIME)
118+
set(dst_dir "${DST}/third_party/install/onnxruntime")
119+
copy(${TARGET}
120+
SRCS ${ONNXRUNTIME_INC_DIR} ${ONNXRUNTIME_LIB_DIR}
121+
DSTS ${dst_dir} ${dst_dir})
122+
123+
set(dst_dir "${DST}/third_party/install/paddle2onnx")
124+
if(WIN32)
125+
copy(${TARGET}
126+
SRCS ${PADDLE2ONNX_INC_DIR}/paddle2onnx ${PADDLE2ONNX_SHARED_LIB} ${PADDLE2ONNX_LIB}
127+
DSTS ${dst_dir}/include ${dst_dir}/lib ${dst_dir}/lib)
128+
else()
129+
copy(${TARGET}
130+
SRCS ${PADDLE2ONNX_INC_DIR}/paddle2onnx ${PADDLE2ONNX_LIB}
131+
DSTS ${dst_dir}/include ${dst_dir}/lib)
132+
endif()
133+
endif()
134+
117135
set(dst_dir "${DST}/third_party/install/gflags")
118136
copy(${TARGET}
119137
SRCS ${GFLAGS_INCLUDE_DIR} ${GFLAGS_LIBRARIES}

0 commit comments

Comments
 (0)