Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
OpenDAS
Paddle
Commits
992bec46
Commit
992bec46
authored
Oct 08, 2023
by
“yuguo”
Browse files
2.5
parent
0259837d
Changes
357
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
597 additions
and
401 deletions
+597
-401
cmake/external/libxsmm.cmake
cmake/external/libxsmm.cmake
+26
-3
cmake/external/lite.cmake
cmake/external/lite.cmake
+37
-34
cmake/external/llvm.cmake
cmake/external/llvm.cmake
+0
-132
cmake/external/mkldnn.cmake
cmake/external/mkldnn.cmake
+8
-14
cmake/external/mklml.cmake
cmake/external/mklml.cmake
+44
-14
cmake/external/onnxruntime.cmake
cmake/external/onnxruntime.cmake
+56
-13
cmake/external/openblas.cmake
cmake/external/openblas.cmake
+46
-7
cmake/external/paddle2onnx.cmake
cmake/external/paddle2onnx.cmake
+52
-12
cmake/external/pocketfft.cmake
cmake/external/pocketfft.cmake
+21
-7
cmake/external/protobuf.cmake
cmake/external/protobuf.cmake
+27
-25
cmake/external/pslib.cmake
cmake/external/pslib.cmake
+11
-3
cmake/external/pybind11.cmake
cmake/external/pybind11.cmake
+28
-6
cmake/external/python.cmake
cmake/external/python.cmake
+4
-0
cmake/external/rocksdb.cmake
cmake/external/rocksdb.cmake
+49
-10
cmake/external/snappy.cmake
cmake/external/snappy.cmake
+2
-6
cmake/external/threadpool.cmake
cmake/external/threadpool.cmake
+4
-10
cmake/external/utf8proc.cmake
cmake/external/utf8proc.cmake
+3
-5
cmake/external/warpctc.cmake
cmake/external/warpctc.cmake
+55
-95
cmake/external/warprnnt.cmake
cmake/external/warprnnt.cmake
+121
-0
cmake/external/xbyak.cmake
cmake/external/xbyak.cmake
+3
-5
No files found.
Too many changes to show.
To preserve performance only
357 of 357+
files are displayed.
Plain diff
Email patch
cmake/external/libxsmm.cmake
View file @
992bec46
...
@@ -14,6 +14,9 @@
...
@@ -14,6 +14,9 @@
include
(
ExternalProject
)
include
(
ExternalProject
)
set
(
LIBXSMM_SOURCE_DIR
${
PADDLE_SOURCE_DIR
}
/third_party/libxsmm
)
set
(
LIBXSMM_TAG 7cc03b5b342fdbc6b6d990b190671c5dbb8489a2
)
set
(
LIBXSMM_PREFIX_DIR
${
THIRD_PARTY_PATH
}
/libxsmm
)
set
(
LIBXSMM_PREFIX_DIR
${
THIRD_PARTY_PATH
}
/libxsmm
)
set
(
LIBXSMM_INSTALL_DIR
${
THIRD_PARTY_PATH
}
/install/libxsmm
)
set
(
LIBXSMM_INSTALL_DIR
${
THIRD_PARTY_PATH
}
/install/libxsmm
)
set
(
LIBXSMM_INCLUDE_DIR
set
(
LIBXSMM_INCLUDE_DIR
...
@@ -25,11 +28,31 @@ set(LIBXSMM_LIBRARY_DIR
...
@@ -25,11 +28,31 @@ set(LIBXSMM_LIBRARY_DIR
set
(
LIBXSMM_LIB
"
${
LIBXSMM_LIBRARY_DIR
}
/libxsmm.a"
)
set
(
LIBXSMM_LIB
"
${
LIBXSMM_LIBRARY_DIR
}
/libxsmm.a"
)
set
(
LIBXSMMNOBLAS_LIB
"
${
LIBXSMM_LIBRARY_DIR
}
/libxsmmnoblas.a"
)
set
(
LIBXSMMNOBLAS_LIB
"
${
LIBXSMM_LIBRARY_DIR
}
/libxsmmnoblas.a"
)
file
(
GLOB LIBXSMM_SOURCE_FILE_LIST
${
LIBXSMM_SOURCE_DIR
}
)
list
(
LENGTH LIBXSMM_SOURCE_FILE_LIST RES_LEN
)
if
(
RES_LEN EQUAL 0
)
execute_process
(
COMMAND
${
GIT_EXECUTABLE
}
clone -b
${
LIBXSMM_TAG
}
"https://github.com/hfp/libxsmm.git"
${
LIBXSMM_SOURCE_DIR
}
)
else
()
# check git tag
execute_process
(
COMMAND
${
GIT_EXECUTABLE
}
describe --abbrev=6 --always --tags
OUTPUT_VARIABLE VERSION
OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET
WORKING_DIRECTORY
${
LIBXSMM_SOURCE_DIR
}
)
if
(
NOT
${
VERSION
}
STREQUAL
${
LIBXSMM_TAG
}
)
message
(
WARNING
"libxsmm version is not
${
VERSION
}
, checkout to
${
LIBXSMM_TAG
}
"
)
execute_process
(
COMMAND
${
GIT_EXECUTABLE
}
checkout
${
LIBXSMM_TAG
}
WORKING_DIRECTORY
${
LIBXSMM_SOURCE_DIR
}
)
endif
()
endif
()
ExternalProject_Add
(
ExternalProject_Add
(
extern_libxsmm
extern_libxsmm
${
SHALLOW_CLONE
}
${
EXTERNAL_PROJECT_LOG_ARGS
}
GIT_REPOSITORY
"
${
GIT_URL
}
/hfp/libxsmm.git"
SOURCE_DIR
${
LIBXSMM_SOURCE_DIR
}
GIT_TAG
"7cc03b5b342fdbc6b6d990b190671c5dbb8489a2"
PREFIX
${
LIBXSMM_PREFIX_DIR
}
PREFIX
${
LIBXSMM_PREFIX_DIR
}
UPDATE_COMMAND
""
UPDATE_COMMAND
""
CONFIGURE_COMMAND
""
CONFIGURE_COMMAND
""
...
...
cmake/external/lite.cmake
View file @
992bec46
...
@@ -35,6 +35,21 @@ if(LITE_WITH_XPU)
...
@@ -35,6 +35,21 @@ if(LITE_WITH_XPU)
endif
()
endif
()
endif
()
endif
()
if
(
WITH_ARM
)
if
(
LITE_WITH_XPU
)
set
(
LITE_OUTPUT_BIN_DIR inference_lite_lib.armlinux.armv8.xpu
)
elseif
(
LITE_WITH_NNADAPTER
)
message
(
"Enable LITE_WITH_NNADAPTER"
)
if
(
NNADAPTER_WITH_HUAWEI_ASCEND_NPU
)
set
(
LITE_OUTPUT_BIN_DIR inference_lite_lib.armlinux.armv8.nnadapter
)
endif
()
else
()
set
(
LITE_OUTPUT_BIN_DIR inference_lite_lib.armlinux.armv8
)
endif
()
else
()
set
(
LITE_OUTPUT_BIN_DIR inference_lite_lib
)
endif
()
if
(
LITE_WITH_NNADAPTER
)
if
(
LITE_WITH_NNADAPTER
)
add_definitions
(
-DLITE_SUBGRAPH_WITH_NNADAPTER
)
add_definitions
(
-DLITE_SUBGRAPH_WITH_NNADAPTER
)
if
(
NNADAPTER_WITH_HUAWEI_ASCEND_NPU
)
if
(
NNADAPTER_WITH_HUAWEI_ASCEND_NPU
)
...
@@ -50,9 +65,15 @@ if(NOT LITE_SOURCE_DIR OR NOT LITE_BINARY_DIR)
...
@@ -50,9 +65,15 @@ if(NOT LITE_SOURCE_DIR OR NOT LITE_BINARY_DIR)
set
(
LITE_PROJECT extern_lite
)
set
(
LITE_PROJECT extern_lite
)
set
(
LITE_PREFIX_DIR
${
THIRD_PARTY_PATH
}
/lite
)
set
(
LITE_PREFIX_DIR
${
THIRD_PARTY_PATH
}
/lite
)
set
(
LITE_INSTALL_DIR
${
THIRD_PARTY_PATH
}
/install/lite
)
set
(
LITE_INSTALL_DIR
${
THIRD_PARTY_PATH
}
/install/lite
)
set
(
LITE_BINARY_DIR
${
LITE_PREFIX_DIR
}
/src/extern_lite-build
)
set
(
LITE_SOURCE_DIR
${
LITE_PREFIX_DIR
}
/src/extern_lite
)
set
(
LITE_SHARED_LIB
${
LITE_BINARY_DIR
}
/
${
LITE_OUTPUT_BIN_DIR
}
/cxx/lib/libpaddle_full_api_shared.so
)
if
(
NOT LITE_GIT_TAG
)
if
(
NOT LITE_GIT_TAG
)
set
(
LITE_GIT_TAG
81ef66554099800c143a0feff6e0a491b3b0d12e
)
set
(
LITE_GIT_TAG
d06a1f36ec564fb618d555b342ca1076623d8b94
)
endif
()
endif
()
if
(
NOT CUDA_ARCH_NAME
)
if
(
NOT CUDA_ARCH_NAME
)
...
@@ -61,8 +82,9 @@ if(NOT LITE_SOURCE_DIR OR NOT LITE_BINARY_DIR)
...
@@ -61,8 +82,9 @@ if(NOT LITE_SOURCE_DIR OR NOT LITE_BINARY_DIR)
# No quotes, so cmake can resolve it as a command with arguments.
# No quotes, so cmake can resolve it as a command with arguments.
if
(
WITH_ARM
)
if
(
WITH_ARM
)
set
(
LITE_BUILD_COMMAND $
(
MAKE
)
publish_inference -j
)
set
(
LITE_BUILD_COMMAND
${
CMAKE_COMMAND
}
--build . --target
message
(
WARNING
"BUILD_COMMAND:
${
LITE_BUILD_COMMAND
}
"
)
publish_inference -j
)
message
(
STATUS
"BUILD_COMMAND:
${
LITE_BUILD_COMMAND
}
"
)
set
(
LITE_OPTIONAL_ARGS
set
(
LITE_OPTIONAL_ARGS
-DWITH_MKL=OFF
-DWITH_MKL=OFF
-DLITE_WITH_CUDA=OFF
-DLITE_WITH_CUDA=OFF
...
@@ -110,9 +132,12 @@ if(NOT LITE_SOURCE_DIR OR NOT LITE_BINARY_DIR)
...
@@ -110,9 +132,12 @@ if(NOT LITE_SOURCE_DIR OR NOT LITE_BINARY_DIR)
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
-DCMAKE_BUILD_TYPE=
${
THIRD_PARTY_BUILD_TYPE
}
-DCMAKE_BUILD_TYPE=
${
THIRD_PARTY_BUILD_TYPE
}
${
EXTERNAL_OPTIONAL_ARGS
}
${
EXTERNAL_OPTIONAL_ARGS
}
${
LITE_OPTIONAL_ARGS
}
)
${
LITE_OPTIONAL_ARGS
}
BUILD_BYPRODUCTS
${
LITE_SHARED_LIB
}
)
else
()
else
()
set
(
LITE_BUILD_COMMAND $
(
MAKE
)
publish_inference -j
)
set
(
LITE_BUILD_COMMAND
${
CMAKE_COMMAND
}
--build . --target
publish_inference -j
)
message
(
STATUS
"BUILD_COMMAND:
${
LITE_BUILD_COMMAND
}
"
)
set
(
LITE_OPTIONAL_ARGS
set
(
LITE_OPTIONAL_ARGS
-DWITH_MKL=ON
-DWITH_MKL=ON
-DLITE_WITH_CUDA=OFF
-DLITE_WITH_CUDA=OFF
...
@@ -157,34 +182,15 @@ if(NOT LITE_SOURCE_DIR OR NOT LITE_BINARY_DIR)
...
@@ -157,34 +182,15 @@ if(NOT LITE_SOURCE_DIR OR NOT LITE_BINARY_DIR)
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
-DCMAKE_BUILD_TYPE=
${
THIRD_PARTY_BUILD_TYPE
}
-DCMAKE_BUILD_TYPE=
${
THIRD_PARTY_BUILD_TYPE
}
${
EXTERNAL_OPTIONAL_ARGS
}
${
EXTERNAL_OPTIONAL_ARGS
}
${
LITE_OPTIONAL_ARGS
}
)
${
LITE_OPTIONAL_ARGS
}
CMAKE_GENERATOR
"Unix Makefiles"
BUILD_BYPRODUCTS
${
LITE_SHARED_LIB
}
)
endif
()
endif
()
ExternalProject_Get_Property
(
${
LITE_PROJECT
}
BINARY_DIR
)
ExternalProject_Get_Property
(
${
LITE_PROJECT
}
SOURCE_DIR
)
set
(
LITE_BINARY_DIR
${
BINARY_DIR
}
)
set
(
LITE_SOURCE_DIR
${
SOURCE_DIR
}
)
endif
()
if
(
WITH_ARM
)
if
(
LITE_WITH_XPU
)
set
(
LITE_OUTPUT_BIN_DIR inference_lite_lib.armlinux.armv8.xpu
)
elseif
(
LITE_WITH_NNADAPTER
)
message
(
"Enable LITE_WITH_NNADAPTER"
)
if
(
NNADAPTER_WITH_HUAWEI_ASCEND_NPU
)
set
(
LITE_OUTPUT_BIN_DIR inference_lite_lib.armlinux.armv8.nnadapter
)
endif
()
else
()
set
(
LITE_OUTPUT_BIN_DIR inference_lite_lib.armlinux.armv8
)
endif
()
else
()
set
(
LITE_OUTPUT_BIN_DIR inference_lite_lib
)
endif
()
endif
()
message
(
STATUS
"Paddle-lite BINARY_DIR:
${
LITE_BINARY_DIR
}
"
)
message
(
STATUS
"Paddle-lite BINARY_DIR:
${
LITE_BINARY_DIR
}
"
)
message
(
STATUS
"Paddle-lite SOURCE_DIR:
${
LITE_SOURCE_DIR
}
"
)
message
(
STATUS
"Paddle-lite SOURCE_DIR:
${
LITE_SOURCE_DIR
}
"
)
include_directories
(
${
LITE_SOURCE_DIR
}
)
include_directories
(
${
LITE_BINARY_DIR
}
/
${
LITE_OUTPUT_BIN_DIR
}
/cxx/include
)
include_directories
(
${
LITE_BINARY_DIR
}
)
if
(
LITE_WITH_XPU
)
if
(
LITE_WITH_XPU
)
include_directories
(
${
LITE_BINARY_DIR
}
/third_party/install/xpu/xdnn/include/
)
include_directories
(
${
LITE_BINARY_DIR
}
/third_party/install/xpu/xdnn/include/
)
include_directories
(
${
LITE_BINARY_DIR
}
/third_party/install/xpu/xre/include/
)
include_directories
(
${
LITE_BINARY_DIR
}
/third_party/install/xpu/xre/include/
)
...
@@ -199,12 +205,9 @@ function(external_lite_libs alias path)
...
@@ -199,12 +205,9 @@ function(external_lite_libs alias path)
endfunction
()
endfunction
()
external_lite_libs
(
external_lite_libs
(
lite_full_s
tatic
lite_full_s
hared
${
LITE_BINARY_DIR
}
/
${
LITE_OUTPUT_BIN_DIR
}
/cxx/lib/libpaddle_full_api_shared.so
${
LITE_BINARY_DIR
}
/
${
LITE_OUTPUT_BIN_DIR
}
/cxx/lib/libpaddle_full_api_shared.so
)
)
set
(
LITE_SHARED_LIB
${
LITE_BINARY_DIR
}
/
${
LITE_OUTPUT_BIN_DIR
}
/cxx/lib/libpaddle_full_api_shared.so
)
if
(
LITE_WITH_NNADAPTER
)
if
(
LITE_WITH_NNADAPTER
)
set
(
LITE_NNADAPTER_LIB
set
(
LITE_NNADAPTER_LIB
...
@@ -214,13 +217,13 @@ if(LITE_WITH_NNADAPTER)
...
@@ -214,13 +217,13 @@ if(LITE_WITH_NNADAPTER)
lite_nnadapter
lite_nnadapter
${
LITE_BINARY_DIR
}
/
${
LITE_OUTPUT_BIN_DIR
}
/cxx/lib/libnnadapter.so
${
LITE_BINARY_DIR
}
/
${
LITE_OUTPUT_BIN_DIR
}
/cxx/lib/libnnadapter.so
${
LITE_BINARY_DIR
}
/
${
LITE_OUTPUT_BIN_DIR
}
/cxx/lib/libhuawei_ascend_npu.so
)
${
LITE_BINARY_DIR
}
/
${
LITE_OUTPUT_BIN_DIR
}
/cxx/lib/libhuawei_ascend_npu.so
)
set
(
LITE_DEPS lite_full_s
tatic
lite_nnadapter
)
set
(
LITE_DEPS lite_full_s
hared
lite_nnadapter
)
set
(
LITE_NNADAPTER_NPU_LIB
set
(
LITE_NNADAPTER_NPU_LIB
${
LITE_BINARY_DIR
}
/
${
LITE_OUTPUT_BIN_DIR
}
/cxx/lib/libhuawei_ascend_npu.so
${
LITE_BINARY_DIR
}
/
${
LITE_OUTPUT_BIN_DIR
}
/cxx/lib/libhuawei_ascend_npu.so
)
)
endif
()
endif
()
else
()
else
()
set
(
LITE_DEPS lite_full_s
tatic
)
set
(
LITE_DEPS lite_full_s
hared
)
endif
()
endif
()
add_definitions
(
-DPADDLE_WITH_LITE
)
add_definitions
(
-DPADDLE_WITH_LITE
)
...
...
cmake/external/llvm.cmake
deleted
100644 → 0
View file @
0259837d
include
(
FetchContent
)
set
(
LLVM_DOWNLOAD_URL
https://paddle-inference-dist.bj.bcebos.com/infrt/llvm_b5149f4e66a49a98b67e8e2de4e24a4af8e2781b.tar.gz
)
set
(
LLVM_MD5 022819bb5760817013cf4b8a37e97d5e
)
set
(
FETCHCONTENT_BASE_DIR
${
THIRD_PARTY_PATH
}
/llvm
)
set
(
FETCHCONTENT_QUIET OFF
)
FetchContent_Declare
(
external_llvm
URL
${
LLVM_DOWNLOAD_URL
}
URL_MD5
${
LLVM_MD5
}
PREFIX
${
THIRD_PARTY_PATH
}
/llvm SOURCE_DIR
${
THIRD_PARTY_PATH
}
/install/llvm
)
if
(
NOT LLVM_PATH
)
FetchContent_GetProperties
(
external_llvm
)
if
(
NOT external_llvm_POPULATED
)
FetchContent_Populate
(
external_llvm
)
endif
()
set
(
LLVM_PATH
${
THIRD_PARTY_PATH
}
/install/llvm
)
set
(
LLVM_DIR
${
THIRD_PARTY_PATH
}
/install/llvm/lib/cmake/llvm
)
set
(
MLIR_DIR
${
THIRD_PARTY_PATH
}
/install/llvm/lib/cmake/mlir
)
else
()
set
(
LLVM_DIR
${
LLVM_PATH
}
/lib/cmake/llvm
)
set
(
MLIR_DIR
${
LLVM_PATH
}
/lib/cmake/mlir
)
endif
()
if
(
${
CMAKE_CXX_COMPILER
}
STREQUAL
"clang++"
)
set
(
CMAKE_EXE_LINKER_FLAGS
"
${
CMAKE_EXE_LINKER_FLAGS
}
-stdlib=libc++ -lc++abi"
)
endif
()
message
(
STATUS
"set LLVM_DIR:
${
LLVM_DIR
}
"
)
message
(
STATUS
"set MLIR_DIR:
${
MLIR_DIR
}
"
)
find_package
(
LLVM REQUIRED CONFIG HINTS
${
LLVM_DIR
}
)
find_package
(
MLIR REQUIRED CONFIG HINTS
${
MLIR_DIR
}
)
find_package
(
ZLIB REQUIRED
)
list
(
APPEND CMAKE_MODULE_PATH
"
${
LLVM_CMAKE_DIR
}
"
)
include
(
AddLLVM
)
include_directories
(
${
LLVM_INCLUDE_DIRS
}
)
list
(
APPEND CMAKE_MODULE_PATH
"
${
LLVM_CMAKE_DIR
}
"
)
list
(
APPEND CMAKE_MODULE_PATH
"
${
MLIR_CMAKE_DIR
}
"
)
include
(
AddLLVM
)
include
(
TableGen
)
include
(
AddMLIR
)
message
(
STATUS
"Found MLIR:
${
MLIR_DIR
}
"
)
message
(
STATUS
"Found LLVM
${
LLVM_PACKAGE_VERSION
}
"
)
message
(
STATUS
"Using LLVMConfig.cmake in:
${
LLVM_DIR
}
"
)
# To build with MLIR, the LLVM is build from source code using the following flags:
#[==[
cmake ../llvm -G "Unix Makefiles" \
-DLLVM_ENABLE_PROJECTS="mlir;clang" \
-DLLVM_BUILD_EXAMPLES=OFF \
-DLLVM_TARGETS_TO_BUILD="X86" \
-DCMAKE_BUILD_TYPE=Release \
-DLLVM_ENABLE_ASSERTIONS=ON \
-DLLVM_ENABLE_ZLIB=OFF \
-DLLVM_ENABLE_RTTI=ON \
-DLLVM_INSTALL_UTILS=ON \
-DCMAKE_INSTALL_PREFIX=./install
#]==]
# The matched llvm-project version is b5149f4e66a49a98b67e8e2de4e24a4af8e2781b (currently a temporary commit)
add_definitions
(
${
LLVM_DEFINITIONS
}
)
llvm_map_components_to_libnames
(
llvm_libs
Support
Core
irreader
X86
executionengine
orcjit
mcjit
all
codegen
)
message
(
STATUS
"LLVM libs:
${
llvm_libs
}
"
)
get_property
(
mlir_libs GLOBAL PROPERTY MLIR_ALL_LIBS
)
message
(
STATUS
"MLIR libs:
${
mlir_libs
}
"
)
add_definitions
(
${
LLVM_DEFINITIONS
}
)
# The minimum needed libraries for MLIR IR parse and transform.
set
(
MLIR_IR_LIBS MLIRAnalysis MLIRPass MLIRParser MLIRDialect MLIRIR MLIROptLib
)
# tb_base is the name of a xxx.td file (without the .td suffix)
function
(
mlir_tablegen_on td_base
)
set
(
options
)
set
(
oneValueArgs DIALECT
)
cmake_parse_arguments
(
mlir_tablegen_on
"
${
options
}
"
"
${
oneValueArgs
}
"
"
${
multiValueArgs
}
"
${
ARGN
}
)
set
(
LLVM_TARGET_DEFINITIONS
${
td_base
}
.td
)
mlir_tablegen
(
${
td_base
}
.hpp.inc -gen-op-decls
)
mlir_tablegen
(
${
td_base
}
.cpp.inc -gen-op-defs
)
if
(
mlir_tablegen_on_DIALECT
)
mlir_tablegen
(
${
td_base
}
_dialect.hpp.inc --gen-dialect-decls
-dialect=
${
mlir_tablegen_on_DIALECT
}
)
mlir_tablegen
(
${
td_base
}
_dialect.cpp.inc --gen-dialect-defs
-dialect=
${
mlir_tablegen_on_DIALECT
}
)
endif
()
add_public_tablegen_target
(
${
td_base
}
_IncGen
)
add_custom_target
(
${
td_base
}
_inc DEPENDS
${
td_base
}
_IncGen
)
endfunction
()
function
(
mlir_add_rewriter td_base
)
set
(
LLVM_TARGET_DEFINITIONS
${
td_base
}
.td
)
set
(
LLVM_TARGET_DEPENDS
${
LLVM_TARGET_DEPENDS
}
${
CMAKE_SOURCE_DIR
}
/paddle/infrt/dialect/infrt/ir/infrt_base.td
)
mlir_tablegen
(
${
td_base
}
.cpp.inc -gen-rewriters
)
add_public_tablegen_target
(
MLIR
${
td_base
}
IncGen
)
add_dependencies
(
mlir-headers MLIR
${
td_base
}
IncGen
)
endfunction
()
# Execute the mlir script with infrt-exec program.
# @name: name of the test
# @script: path to the mlir script file
function
(
infrt_exec_check name script
)
add_test
(
NAME
${
name
}
COMMAND
sh -c
"
${
CMAKE_BINARY_DIR
}
/paddle/infrt/host_context/infrt-exec -i
${
CMAKE_CURRENT_SOURCE_DIR
}
/
${
script
}
|
${
LLVM_PATH
}
/bin/FileCheck
${
CMAKE_CURRENT_SOURCE_DIR
}
/
${
script
}
"
)
endfunction
()
cmake/external/mkldnn.cmake
View file @
992bec46
# Copyright (c) 2017 PaddlePaddle Authors. All Rights Reserved.
# Copyright (c) 2017
-2023
PaddlePaddle Authors. All Rights Reserved.
#
#
# Licensed under the Apache License, Version 2.0 (the "License");
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# you may not use this file except in compliance with the License.
...
@@ -20,8 +20,7 @@ set(MKLDNN_INSTALL_DIR ${THIRD_PARTY_PATH}/install/mkldnn)
...
@@ -20,8 +20,7 @@ set(MKLDNN_INSTALL_DIR ${THIRD_PARTY_PATH}/install/mkldnn)
set
(
MKLDNN_INC_DIR
set
(
MKLDNN_INC_DIR
"
${
MKLDNN_INSTALL_DIR
}
/include"
"
${
MKLDNN_INSTALL_DIR
}
/include"
CACHE PATH
"mkldnn include directory."
FORCE
)
CACHE PATH
"mkldnn include directory."
FORCE
)
set
(
MKLDNN_REPOSITORY
${
GIT_URL
}
/oneapi-src/oneDNN.git
)
set
(
SOURCE_DIR
${
PADDLE_SOURCE_DIR
}
/third_party/mkldnn
)
set
(
MKLDNN_TAG 9b186765dded79066e0cd9c17eb70b680b76fb8e
)
# Introduce variables:
# Introduce variables:
# * CMAKE_INSTALL_LIBDIR
# * CMAKE_INSTALL_LIBDIR
...
@@ -69,9 +68,8 @@ endif()
...
@@ -69,9 +68,8 @@ endif()
ExternalProject_Add
(
ExternalProject_Add
(
${
MKLDNN_PROJECT
}
${
MKLDNN_PROJECT
}
${
EXTERNAL_PROJECT_LOG_ARGS
}
${
SHALLOW_CLONE
}
${
EXTERNAL_PROJECT_LOG_ARGS
}
GIT_REPOSITORY
${
MKLDNN_REPOSITORY
}
SOURCE_DIR
${
SOURCE_DIR
}
GIT_TAG
${
MKLDNN_TAG
}
DEPENDS
${
MKLDNN_DEPENDS
}
DEPENDS
${
MKLDNN_DEPENDS
}
PREFIX
${
MKLDNN_PREFIX_DIR
}
PREFIX
${
MKLDNN_PREFIX_DIR
}
UPDATE_COMMAND
""
UPDATE_COMMAND
""
...
@@ -93,7 +91,7 @@ ExternalProject_Add(
...
@@ -93,7 +91,7 @@ ExternalProject_Add(
BUILD_BYPRODUCTS
${
BUILD_BYPRODUCTS_ARGS
}
)
BUILD_BYPRODUCTS
${
BUILD_BYPRODUCTS_ARGS
}
)
message
(
STATUS
"MKLDNN library:
${
MKLDNN_LIB
}
"
)
message
(
STATUS
"MKLDNN library:
${
MKLDNN_LIB
}
"
)
add_definitions
(
-DPADDLE_WITH_
MKL
DNN
)
add_definitions
(
-DPADDLE_WITH_DNN
L
)
# copy the real so.0 lib to install dir
# copy the real so.0 lib to install dir
# it can be directly contained in wheel or capi
# it can be directly contained in wheel or capi
if
(
WIN32
)
if
(
WIN32
)
...
@@ -129,16 +127,12 @@ if(WIN32)
...
@@ -129,16 +127,12 @@ if(WIN32)
VERBATIM
)
VERBATIM
)
add_custom_target
(
mkldnn_cmd ALL DEPENDS
${
MKLDNN_LIB
}
)
add_custom_target
(
mkldnn_cmd ALL DEPENDS
${
MKLDNN_LIB
}
)
else
()
else
()
set
(
MKLDNN_SHARED_LIB
${
MKLDNN_INSTALL_DIR
}
/libmkldnn.so.0
)
set
(
MKLDNN_SHARED_LIB
${
MKLDNN_INSTALL_DIR
}
/libdnnl.so.3
)
set
(
MKLDNN_SHARED_LIB_1
${
MKLDNN_INSTALL_DIR
}
/libdnnl.so.1
)
set
(
MKLDNN_SHARED_LIB_2
${
MKLDNN_INSTALL_DIR
}
/libdnnl.so.2
)
add_custom_command
(
add_custom_command
(
OUTPUT
${
MKLDNN_SHARED_LIB
_2
}
OUTPUT
${
MKLDNN_SHARED_LIB
}
COMMAND
${
CMAKE_COMMAND
}
-E copy
${
MKLDNN_LIB
}
${
MKLDNN_SHARED_LIB
}
COMMAND
${
CMAKE_COMMAND
}
-E copy
${
MKLDNN_LIB
}
${
MKLDNN_SHARED_LIB
}
COMMAND
${
CMAKE_COMMAND
}
-E copy
${
MKLDNN_LIB
}
${
MKLDNN_SHARED_LIB_1
}
COMMAND
${
CMAKE_COMMAND
}
-E copy
${
MKLDNN_LIB
}
${
MKLDNN_SHARED_LIB_2
}
DEPENDS
${
MKLDNN_PROJECT
}
)
DEPENDS
${
MKLDNN_PROJECT
}
)
add_custom_target
(
mkldnn_cmd ALL DEPENDS
${
MKLDNN_SHARED_LIB
_2
}
)
add_custom_target
(
mkldnn_cmd ALL DEPENDS
${
MKLDNN_SHARED_LIB
}
)
endif
()
endif
()
# generate a static dummy target to track mkldnn dependencies
# generate a static dummy target to track mkldnn dependencies
...
...
cmake/external/mklml.cmake
View file @
992bec46
...
@@ -17,13 +17,15 @@ set(MKLML_INSTALL_DIR ${THIRD_PARTY_PATH}/install/mklml)
...
@@ -17,13 +17,15 @@ set(MKLML_INSTALL_DIR ${THIRD_PARTY_PATH}/install/mklml)
set
(
MKLML_INC_DIR
${
MKLML_INSTALL_DIR
}
/include
)
set
(
MKLML_INC_DIR
${
MKLML_INSTALL_DIR
}
/include
)
set
(
MKLML_LIB_DIR
${
MKLML_INSTALL_DIR
}
/lib
)
set
(
MKLML_LIB_DIR
${
MKLML_INSTALL_DIR
}
/lib
)
set
(
CMAKE_INSTALL_RPATH
"
${
CMAKE_INSTALL_RPATH
}
"
"
${
MKLML_LIB_DIR
}
"
)
set
(
CMAKE_INSTALL_RPATH
"
${
CMAKE_INSTALL_RPATH
}
"
"
${
MKLML_LIB_DIR
}
"
)
set
(
MKLML_DOWNLOAD_DIR
${
PADDLE_SOURCE_DIR
}
/third_party/mklml/
${
CMAKE_SYSTEM_NAME
}
)
if
(
WIN32
)
if
(
WIN32
)
set
(
MKLML_
VER
set
(
MKLML_
FILE
"mklml_win_2019.0.5.20190502"
"mklml_win_2019.0.5.20190502
.zip
"
CACHE STRING
""
FORCE
)
CACHE STRING
""
FORCE
)
set
(
MKLML_URL
set
(
MKLML_URL
"https://paddlepaddledeps.bj.bcebos.com/
${
MKLML_
VER
}
.zip
"
"https://paddlepaddledeps.bj.bcebos.com/
${
MKLML_
FILE
}
"
CACHE STRING
""
FORCE
)
CACHE STRING
""
FORCE
)
set
(
MKLML_URL_MD5 ff8c5237570f03eea37377ccfc95a08a
)
set
(
MKLML_URL_MD5 ff8c5237570f03eea37377ccfc95a08a
)
set
(
MKLML_LIB
${
MKLML_LIB_DIR
}
/mklml.lib
)
set
(
MKLML_LIB
${
MKLML_LIB_DIR
}
/mklml.lib
)
...
@@ -34,11 +36,11 @@ else()
...
@@ -34,11 +36,11 @@ else()
#TODO(intel-huying):
#TODO(intel-huying):
# Now enable csrmm function in mklml library temporarily,
# Now enable csrmm function in mklml library temporarily,
# it will be updated as offical version later.
# it will be updated as offical version later.
set
(
MKLML_
VER
set
(
MKLML_
FILE
"csrmm_mklml_lnx_2019.0.5"
"csrmm_mklml_lnx_2019.0.5
.tgz
"
CACHE STRING
""
FORCE
)
CACHE STRING
""
FORCE
)
set
(
MKLML_URL
set
(
MKLML_URL
"http://paddlepaddledeps.bj.bcebos.com/
${
MKLML_
VER
}
.tgz
"
"http://paddlepaddledeps.bj.bcebos.com/
${
MKLML_
FILE
}
"
CACHE STRING
""
FORCE
)
CACHE STRING
""
FORCE
)
set
(
MKLML_URL_MD5 bc6a7faea6a2a9ad31752386f3ae87da
)
set
(
MKLML_URL_MD5 bc6a7faea6a2a9ad31752386f3ae87da
)
set
(
MKLML_LIB
${
MKLML_LIB_DIR
}
/libmklml_intel.so
)
set
(
MKLML_LIB
${
MKLML_LIB_DIR
}
/libmklml_intel.so
)
...
@@ -48,9 +50,39 @@ else()
...
@@ -48,9 +50,39 @@ else()
endif
()
endif
()
set
(
MKLML_PROJECT
"extern_mklml"
)
set
(
MKLML_PROJECT
"extern_mklml"
)
message
(
STATUS
"MKLML_
VER
:
${
MKLML_
VER
}
, MKLML_URL:
${
MKLML_URL
}
"
)
message
(
STATUS
"MKLML_
FILE
:
${
MKLML_
FILE
}
, MKLML_URL:
${
MKLML_URL
}
"
)
set
(
MKLML_PREFIX_DIR
${
THIRD_PARTY_PATH
}
/mklml
)
set
(
MKLML_PREFIX_DIR
${
THIRD_PARTY_PATH
}
/mklml
)
set
(
MKLML_SOURCE_DIR
${
THIRD_PARTY_PATH
}
/mklml/src/extern_mklml
)
function
(
download_mklml
)
message
(
STATUS
"Downloading
${
MKLML_URL
}
to
${
MKLML_DOWNLOAD_DIR
}
/
${
MKLML_FILE
}
"
)
# NOTE: If the version is updated, consider emptying the folder; maybe add timeout
file
(
DOWNLOAD
${
MKLML_URL
}
${
MKLML_DOWNLOAD_DIR
}
/
${
MKLML_FILE
}
EXPECTED_MD5
${
MKLML_URL_MD5
}
STATUS ERR
)
if
(
ERR EQUAL 0
)
message
(
STATUS
"Download
${
MKLML_FILE
}
success"
)
else
()
message
(
FATAL_ERROR
"Download failed, error:
${
ERR
}
\n
You can try downloading
${
MKLML_FILE
}
again"
)
endif
()
endfunction
()
# Download and check mklml.
if
(
EXISTS
${
MKLML_DOWNLOAD_DIR
}
/
${
MKLML_FILE
}
)
file
(
MD5
${
MKLML_DOWNLOAD_DIR
}
/
${
MKLML_FILE
}
MKLML_MD5
)
if
(
NOT MKLML_MD5 STREQUAL MKLML_URL_MD5
)
# clean build file
file
(
REMOVE_RECURSE
${
MKLML_PREFIX_DIR
}
)
file
(
REMOVE_RECURSE
${
MKLML_INSTALL_DIR
}
)
download_mklml
()
endif
()
else
()
download_mklml
()
endif
()
# Ninja Generator can not establish the correct dependency relationship
# Ninja Generator can not establish the correct dependency relationship
# between the imported library with target, the product file
# between the imported library with target, the product file
...
@@ -60,17 +92,15 @@ set(MKLML_SOURCE_DIR ${THIRD_PARTY_PATH}/mklml/src/extern_mklml)
...
@@ -60,17 +92,15 @@ set(MKLML_SOURCE_DIR ${THIRD_PARTY_PATH}/mklml/src/extern_mklml)
ExternalProject_Add
(
ExternalProject_Add
(
${
MKLML_PROJECT
}
${
MKLML_PROJECT
}
${
EXTERNAL_PROJECT_LOG_ARGS
}
${
EXTERNAL_PROJECT_LOG_ARGS
}
URL
${
MKLML_
URL
}
URL
${
MKLML_
DOWNLOAD_DIR
}
/
${
MKLML_FILE
}
URL_MD5
${
MKLML_URL_MD5
}
URL_MD5
${
MKLML_URL_MD5
}
DOWNLOAD_DIR
${
MKLML_DOWNLOAD_DIR
}
SOURCE_DIR
${
MKLML_INSTALL_DIR
}
PREFIX
${
MKLML_PREFIX_DIR
}
PREFIX
${
MKLML_PREFIX_DIR
}
DOWNLOAD_NO_PROGRESS 1
CONFIGURE_COMMAND
""
CONFIGURE_COMMAND
""
BUILD_COMMAND
""
BUILD_COMMAND
""
UPDATE_COMMAND
""
UPDATE_COMMAND
""
INSTALL_COMMAND
INSTALL_COMMAND
""
${
CMAKE_COMMAND
}
-E copy_directory
${
MKLML_SOURCE_DIR
}
/include
${
MKLML_INC_DIR
}
&&
${
CMAKE_COMMAND
}
-E copy_directory
${
MKLML_SOURCE_DIR
}
/lib
${
MKLML_LIB_DIR
}
BUILD_BYPRODUCTS
${
MKLML_LIB
}
BUILD_BYPRODUCTS
${
MKLML_LIB
}
BUILD_BYPRODUCTS
${
MKLML_IOMP_LIB
}
)
BUILD_BYPRODUCTS
${
MKLML_IOMP_LIB
}
)
...
...
cmake/external/onnxruntime.cmake
View file @
992bec46
...
@@ -39,20 +39,32 @@ set(ONNXRUNTIME_LIB_DIR
...
@@ -39,20 +39,32 @@ set(ONNXRUNTIME_LIB_DIR
CACHE PATH
"onnxruntime lib directory."
FORCE
)
CACHE PATH
"onnxruntime lib directory."
FORCE
)
set
(
CMAKE_BUILD_RPATH
"
${
CMAKE_BUILD_RPATH
}
"
"
${
ONNXRUNTIME_LIB_DIR
}
"
)
set
(
CMAKE_BUILD_RPATH
"
${
CMAKE_BUILD_RPATH
}
"
"
${
ONNXRUNTIME_LIB_DIR
}
"
)
set
(
ONNXRUNTIME_DOWNLOAD_DIR
${
PADDLE_SOURCE_DIR
}
/third_party/onnxruntime/
${
CMAKE_SYSTEM_NAME
}
)
if
(
WIN32
)
if
(
WIN32
)
set
(
ONNXRUNTIME_URL
set
(
ONNXRUNTIME_URL
"https://github.com/microsoft/onnxruntime/releases/download/v
${
ONNXRUNTIME_VERSION
}
/onnxruntime-win-x64-
${
ONNXRUNTIME_VERSION
}
.zip"
"https://github.com/microsoft/onnxruntime/releases/download/v
${
ONNXRUNTIME_VERSION
}
/onnxruntime-win-x64-
${
ONNXRUNTIME_VERSION
}
.zip"
)
)
set
(
ONNXRUNTIME_URL_MD5 f21d6bd1feef15935a5f4e1007797593
)
set
(
ONNXRUNTIME_CACHE_EXTENSION
"zip"
)
elseif
(
APPLE
)
elseif
(
APPLE
)
set
(
ONNXRUNTIME_URL
set
(
ONNXRUNTIME_URL
"https://github.com/microsoft/onnxruntime/releases/download/v
${
ONNXRUNTIME_VERSION
}
/onnxruntime-osx-x86_64-
${
ONNXRUNTIME_VERSION
}
.tgz"
"https://github.com/microsoft/onnxruntime/releases/download/v
${
ONNXRUNTIME_VERSION
}
/onnxruntime-osx-x86_64-
${
ONNXRUNTIME_VERSION
}
.tgz"
)
)
set
(
ONNXRUNTIME_URL_MD5 6a6f6b7df97587da59976042f475d3f4
)
set
(
ONNXRUNTIME_CACHE_EXTENSION
"tgz"
)
else
()
else
()
set
(
ONNXRUNTIME_URL
set
(
ONNXRUNTIME_URL
"https://github.com/microsoft/onnxruntime/releases/download/v
${
ONNXRUNTIME_VERSION
}
/onnxruntime-linux-x64-
${
ONNXRUNTIME_VERSION
}
.tgz"
"https://github.com/microsoft/onnxruntime/releases/download/v
${
ONNXRUNTIME_VERSION
}
/onnxruntime-linux-x64-
${
ONNXRUNTIME_VERSION
}
.tgz"
)
)
set
(
ONNXRUNTIME_URL_MD5 ce3f2376854b3da4b483d6989666995a
)
set
(
ONNXRUNTIME_CACHE_EXTENSION
"tgz"
)
endif
()
endif
()
set
(
ONNXRUNTIME_CACHE_FILENAME
"
${
ONNXRUNTIME_VERSION
}
.
${
ONNXRUNTIME_CACHE_EXTENSION
}
"
)
# For ONNXRUNTIME code to include internal headers.
# For ONNXRUNTIME code to include internal headers.
include_directories
(
${
ONNXRUNTIME_INC_DIR
}
)
include_directories
(
${
ONNXRUNTIME_INC_DIR
}
)
...
@@ -96,38 +108,69 @@ else()
...
@@ -96,38 +108,69 @@ else()
CACHE FILEPATH
"ONNXRUNTIME shared library."
FORCE
)
CACHE FILEPATH
"ONNXRUNTIME shared library."
FORCE
)
endif
()
endif
()
function
(
download_onnxruntime
)
message
(
STATUS
"Downloading
${
ONNXRUNTIME_URL
}
to
${
ONNXRUNTIME_DOWNLOAD_DIR
}
/
${
ONNXRUNTIME_CACHE_FILENAME
}
"
)
# NOTE: If the version is updated, consider emptying the folder; maybe add timeout
file
(
DOWNLOAD
${
ONNXRUNTIME_URL
}
${
ONNXRUNTIME_DOWNLOAD_DIR
}
/
${
ONNXRUNTIME_CACHE_FILENAME
}
EXPECTED_MD5
${
ONNXRUNTIME_URL_MD5
}
STATUS ERR
)
if
(
ERR EQUAL 0
)
message
(
STATUS
"Download
${
ONNXRUNTIME_CACHE_FILENAME
}
success"
)
else
()
message
(
FATAL_ERROR
"Download failed, error:
${
ERR
}
\n
You can try downloading
${
ONNXRUNTIME_CACHE_FILENAME
}
again"
)
endif
()
endfunction
()
if
(
EXISTS
${
ONNXRUNTIME_DOWNLOAD_DIR
}
/
${
ONNXRUNTIME_CACHE_FILENAME
}
)
file
(
MD5
${
ONNXRUNTIME_DOWNLOAD_DIR
}
/
${
ONNXRUNTIME_CACHE_FILENAME
}
ONNXRUNTIME_MD5
)
if
(
NOT ONNXRUNTIME_MD5 STREQUAL ONNXRUNTIME_URL_MD5
)
# clean build file
file
(
REMOVE_RECURSE
${
ONNXRUNTIME_PREFIX_DIR
}
)
file
(
REMOVE_RECURSE
${
ONNXRUNTIME_INSTALL_DIR
}
)
download_onnxruntime
()
endif
()
else
()
download_onnxruntime
()
endif
()
if
(
WIN32
)
if
(
WIN32
)
ExternalProject_Add
(
ExternalProject_Add
(
${
ONNXRUNTIME_PROJECT
}
${
ONNXRUNTIME_PROJECT
}
${
EXTERNAL_PROJECT_LOG_ARGS
}
${
EXTERNAL_PROJECT_LOG_ARGS
}
URL
${
ONNXRUNTIME_URL
}
URL
${
ONNXRUNTIME_DOWNLOAD_DIR
}
/
${
ONNXRUNTIME_CACHE_FILENAME
}
URL_MD5
${
ONNXRUNTIME_URL_MD5
}
PREFIX
${
ONNXRUNTIME_PREFIX_DIR
}
PREFIX
${
ONNXRUNTIME_PREFIX_DIR
}
DOWNLOAD_NO_PROGRESS 1
DOWNLOAD_NO_PROGRESS 1
DOWNLOAD_DIR
${
ONNXRUNTIME_DOWNLOAD_DIR
}
SOURCE_DIR
${
ONNXRUNTIME_INSTALL_DIR
}
CONFIGURE_COMMAND
""
CONFIGURE_COMMAND
""
BUILD_COMMAND
""
BUILD_COMMAND
""
UPDATE_COMMAND
""
UPDATE_COMMAND
""
INSTALL_COMMAND
INSTALL_COMMAND
""
${
CMAKE_COMMAND
}
-E copy
${
ONNXRUNTIME_SOURCE_LIB
}
${
ONNXRUNTIME_SHARED_LIB
}
&&
${
CMAKE_COMMAND
}
-E copy
${
ONNXRUNTIME_SOURCE_DIR
}
/lib/onnxruntime.lib
${
ONNXRUNTIME_LIB
}
&&
${
CMAKE_COMMAND
}
-E copy_directory
${
ONNXRUNTIME_SOURCE_DIR
}
/include
${
ONNXRUNTIME_INC_DIR
}
BUILD_BYPRODUCTS
${
ONNXRUNTIME_LIB
}
)
BUILD_BYPRODUCTS
${
ONNXRUNTIME_LIB
}
)
else
()
else
()
ExternalProject_Add
(
ExternalProject_Add
(
${
ONNXRUNTIME_PROJECT
}
${
ONNXRUNTIME_PROJECT
}
${
EXTERNAL_PROJECT_LOG_ARGS
}
${
EXTERNAL_PROJECT_LOG_ARGS
}
URL
${
ONNXRUNTIME_URL
}
URL
${
ONNXRUNTIME_DOWNLOAD_DIR
}
/
${
ONNXRUNTIME_CACHE_FILENAME
}
URL_MD5
${
ONNXRUNTIME_URL_MD5
}
PREFIX
${
ONNXRUNTIME_PREFIX_DIR
}
PREFIX
${
ONNXRUNTIME_PREFIX_DIR
}
DOWNLOAD_NO_PROGRESS 1
DOWNLOAD_NO_PROGRESS 1
DOWNLOAD_DIR
${
ONNXRUNTIME_DOWNLOAD_DIR
}
SOURCE_DIR
${
ONNXRUNTIME_INSTALL_DIR
}
CONFIGURE_COMMAND
""
CONFIGURE_COMMAND
""
BUILD_COMMAND
""
BUILD_COMMAND
""
UPDATE_COMMAND
""
UPDATE_COMMAND
""
INSTALL_COMMAND
INSTALL_COMMAND
""
${
CMAKE_COMMAND
}
-E copy
${
ONNXRUNTIME_SOURCE_LIB
}
${
ONNXRUNTIME_LIB
}
&&
${
CMAKE_COMMAND
}
-E copy_directory
${
ONNXRUNTIME_SOURCE_DIR
}
/include
${
ONNXRUNTIME_INC_DIR
}
&&
${
CMAKE_COMMAND
}
-E create_symlink
${
ONNXRUNTIME_LIB_NAME
}
${
ONNXRUNTIME_LIB_DIR
}
/
${
ONNXRUNTIME_LIB_NEW_NAME
}
BUILD_BYPRODUCTS
${
ONNXRUNTIME_LIB
}
)
BUILD_BYPRODUCTS
${
ONNXRUNTIME_LIB
}
)
endif
()
endif
()
...
...
cmake/external/openblas.cmake
View file @
992bec46
...
@@ -16,8 +16,21 @@ include(ExternalProject)
...
@@ -16,8 +16,21 @@ include(ExternalProject)
set
(
CBLAS_PREFIX_DIR
${
THIRD_PARTY_PATH
}
/openblas
)
set
(
CBLAS_PREFIX_DIR
${
THIRD_PARTY_PATH
}
/openblas
)
set
(
CBLAS_INSTALL_DIR
${
THIRD_PARTY_PATH
}
/install/openblas
)
set
(
CBLAS_INSTALL_DIR
${
THIRD_PARTY_PATH
}
/install/openblas
)
set
(
CBLAS_
REPOSITORY
${
GIT_URL
}
/xianyi/OpenBLAS.git
)
set
(
CBLAS_
SOURCE_DIR
${
PADDLE_SOURCE_DIR
}
/third_party/openblas
)
set
(
CBLAS_TAG v0.3.7
)
set
(
CBLAS_TAG v0.3.7
)
# Why use v0.3.18? The IDG business line encountered a random openblas error,
# which can be resolved after upgrading openblas.
# And why compile when gcc>8.2? Please refer to
# https://github.com/spack/spack/issues/19932#issuecomment-733452619
# v0.3.18 only support gcc>=8.3 or gcc>=7.4
if
((
CMAKE_CXX_COMPILER_ID STREQUAL
"GNU"
)
AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 8.2
AND NOT WITH_XPU
)
# We only compile with openblas 0.3.18 when gcc >= 8.3
set
(
CBLAS_TAG v0.3.18
)
endif
()
if
(
APPLE AND WITH_ARM
)
if
(
APPLE AND WITH_ARM
)
set
(
CBLAS_TAG v0.3.13
)
set
(
CBLAS_TAG v0.3.13
)
endif
()
endif
()
...
@@ -26,6 +39,31 @@ if(WITH_MIPS)
...
@@ -26,6 +39,31 @@ if(WITH_MIPS)
set
(
CBLAS_TAG v0.3.13
)
set
(
CBLAS_TAG v0.3.13
)
endif
()
endif
()
if
(
WITH_LOONGARCH
)
set
(
CBLAS_TAG v0.3.18
)
endif
()
file
(
GLOB CBLAS_SOURCE_FILE_LIST
${
CBLAS_SOURCE_DIR
}
)
list
(
LENGTH CBLAS_SOURCE_FILE_LIST RES_LEN
)
if
(
RES_LEN EQUAL 0
)
execute_process
(
COMMAND
${
GIT_EXECUTABLE
}
clone -b
${
CBLAS_TAG
}
"https://github.com/xianyi/OpenBLAS.git"
${
CBLAS_SOURCE_DIR
}
)
else
()
# check git tag
execute_process
(
COMMAND
${
GIT_EXECUTABLE
}
describe --abbrev=6 --always --tags
OUTPUT_VARIABLE VERSION
OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET
WORKING_DIRECTORY
${
CBLAS_SOURCE_DIR
}
)
if
(
NOT
${
VERSION
}
STREQUAL
${
CBLAS_TAG
}
)
message
(
WARNING
"openblas version is not
${
VERSION
}
, checkout to
${
CBLAS_TAG
}
"
)
execute_process
(
COMMAND
${
GIT_EXECUTABLE
}
checkout
${
CBLAS_TAG
}
WORKING_DIRECTORY
${
CBLAS_SOURCE_DIR
}
)
endif
()
endif
()
if
(
NOT WIN32
)
if
(
NOT WIN32
)
set
(
CBLAS_LIBRARIES
set
(
CBLAS_LIBRARIES
"
${
CBLAS_INSTALL_DIR
}
/lib/
${
CMAKE_STATIC_LIBRARY_PREFIX
}
openblas
${
CMAKE_STATIC_LIBRARY_SUFFIX
}
"
"
${
CBLAS_INSTALL_DIR
}
/lib/
${
CMAKE_STATIC_LIBRARY_PREFIX
}
openblas
${
CMAKE_STATIC_LIBRARY_SUFFIX
}
"
...
@@ -44,16 +82,18 @@ if(NOT WIN32)
...
@@ -44,16 +82,18 @@ if(NOT WIN32)
set
(
OPTIONAL_ARGS DYNAMIC_ARCH=1 NUM_THREADS=64
)
set
(
OPTIONAL_ARGS DYNAMIC_ARCH=1 NUM_THREADS=64
)
endif
()
endif
()
if
(
WITH_ARM
)
set
(
ARM_ARGS TARGET=ARMV8
)
endif
()
set
(
COMMON_ARGS CC=
${
OPENBLAS_CC
}
NO_SHARED=1 NO_LAPACK=1 libs
)
set
(
COMMON_ARGS CC=
${
OPENBLAS_CC
}
NO_SHARED=1 NO_LAPACK=1 libs
)
ExternalProject_Add
(
ExternalProject_Add
(
extern_openblas
extern_openblas
${
EXTERNAL_PROJECT_LOG_ARGS
}
${
SHALLOW_CLONE
}
${
EXTERNAL_PROJECT_LOG_ARGS
}
GIT_REPOSITORY
${
CBLAS_REPOSITORY
}
SOURCE_DIR
${
CBLAS_SOURCE_DIR
}
GIT_TAG
${
CBLAS_TAG
}
PREFIX
${
CBLAS_PREFIX_DIR
}
PREFIX
${
CBLAS_PREFIX_DIR
}
INSTALL_DIR
${
CBLAS_INSTALL_DIR
}
INSTALL_DIR
${
CBLAS_INSTALL_DIR
}
BUILD_IN_SOURCE 1
BUILD_IN_SOURCE 1
BUILD_COMMAND make -j
${
NPROC
}
${
COMMON_ARGS
}
${
OPTIONAL_ARGS
}
BUILD_COMMAND make
${
ARM_ARGS
}
-j
${
NPROC
}
${
COMMON_ARGS
}
${
OPTIONAL_ARGS
}
INSTALL_COMMAND make install NO_SHARED=1 NO_LAPACK=1 PREFIX=<INSTALL_DIR>
INSTALL_COMMAND make install NO_SHARED=1 NO_LAPACK=1 PREFIX=<INSTALL_DIR>
UPDATE_COMMAND
""
UPDATE_COMMAND
""
CONFIGURE_COMMAND
""
CONFIGURE_COMMAND
""
...
@@ -68,8 +108,7 @@ else()
...
@@ -68,8 +108,7 @@ else()
ExternalProject_Add
(
ExternalProject_Add
(
extern_openblas
extern_openblas
${
EXTERNAL_PROJECT_LOG_ARGS
}
${
EXTERNAL_PROJECT_LOG_ARGS
}
GIT_REPOSITORY
${
CBLAS_REPOSITORY
}
SOURCE_DIR
${
CBLAS_SOURCE_DIR
}
GIT_TAG
${
CBLAS_TAG
}
PREFIX
${
CBLAS_PREFIX_DIR
}
PREFIX
${
CBLAS_PREFIX_DIR
}
INSTALL_DIR
${
CBLAS_INSTALL_DIR
}
INSTALL_DIR
${
CBLAS_INSTALL_DIR
}
BUILD_IN_SOURCE 0
BUILD_IN_SOURCE 0
...
...
cmake/external/paddle2onnx.cmake
View file @
992bec46
...
@@ -36,6 +36,8 @@ set(PADDLE2ONNX_LIB_DIR
...
@@ -36,6 +36,8 @@ set(PADDLE2ONNX_LIB_DIR
"
${
PADDLE2ONNX_INSTALL_DIR
}
/lib"
"
${
PADDLE2ONNX_INSTALL_DIR
}
/lib"
CACHE PATH
"onnxruntime lib directory."
FORCE
)
CACHE PATH
"onnxruntime lib directory."
FORCE
)
set
(
CMAKE_BUILD_RPATH
"
${
CMAKE_BUILD_RPATH
}
"
"
${
PADDLE2ONNX_LIB_DIR
}
"
)
set
(
CMAKE_BUILD_RPATH
"
${
CMAKE_BUILD_RPATH
}
"
"
${
PADDLE2ONNX_LIB_DIR
}
"
)
set
(
PADDLE2ONNX_DOWNLOAD_DIR
${
PADDLE_SOURCE_DIR
}
/third_party/paddle2onnx/
${
CMAKE_SYSTEM_NAME
}
)
# For PADDLE2ONNX code to include internal headers.
# For PADDLE2ONNX code to include internal headers.
include_directories
(
${
PADDLE2ONNX_INC_DIR
}
)
include_directories
(
${
PADDLE2ONNX_INC_DIR
}
)
...
@@ -71,47 +73,85 @@ if(WIN32)
...
@@ -71,47 +73,85 @@ if(WIN32)
set
(
PADDLE2ONNX_URL
set
(
PADDLE2ONNX_URL
"https://github.com/PaddlePaddle/Paddle2ONNX/releases/download/v
${
PADDLE2ONNX_VERSION
}
/paddle2onnx-win-x64-
${
PADDLE2ONNX_VERSION
}
.zip"
"https://github.com/PaddlePaddle/Paddle2ONNX/releases/download/v
${
PADDLE2ONNX_VERSION
}
/paddle2onnx-win-x64-
${
PADDLE2ONNX_VERSION
}
.zip"
)
)
set
(
PADDLE2ONNX_URL_MD5
"122b864cb57338191a7e9ef5f607c4ba"
)
set
(
PADDLE2ONNX_CACHE_EXTENSION
"zip"
)
elseif
(
APPLE
)
elseif
(
APPLE
)
set
(
PADDLE2ONNX_URL
set
(
PADDLE2ONNX_URL
"https://github.com/PaddlePaddle/Paddle2ONNX/releases/download/v
${
PADDLE2ONNX_VERSION
}
/paddle2onnx-osx-x86_64-
${
PADDLE2ONNX_VERSION
}
.tgz"
"https://github.com/PaddlePaddle/Paddle2ONNX/releases/download/v
${
PADDLE2ONNX_VERSION
}
/paddle2onnx-osx-x86_64-
${
PADDLE2ONNX_VERSION
}
.tgz"
)
)
set
(
PADDLE2ONNX_URL_MD5
"32a4381ff8441b69d58ef0fd6fd919eb"
)
set
(
PADDLE2ONNX_CACHE_EXTENSION
"tgz"
)
else
()
else
()
set
(
PADDLE2ONNX_URL
set
(
PADDLE2ONNX_URL
"https://github.com/PaddlePaddle/Paddle2ONNX/releases/download/v
${
PADDLE2ONNX_VERSION
}
/paddle2onnx-linux-x64-
${
PADDLE2ONNX_VERSION
}
.tgz"
"https://github.com/PaddlePaddle/Paddle2ONNX/releases/download/v
${
PADDLE2ONNX_VERSION
}
/paddle2onnx-linux-x64-
${
PADDLE2ONNX_VERSION
}
.tgz"
)
)
set
(
PADDLE2ONNX_URL_MD5
"3fbb074987ba241327797f76514e937f"
)
set
(
PADDLE2ONNX_CACHE_EXTENSION
"tgz"
)
endif
()
set
(
PADDLE2ONNX_CACHE_FILENAME
"
${
PADDLE2ONNX_VERSION
}
.
${
PADDLE2ONNX_CACHE_EXTENSION
}
"
)
function
(
download_paddle2onnx
)
message
(
STATUS
"Downloading
${
PADDLE2ONNX_URL
}
to
${
PADDLE2ONNX_DOWNLOAD_DIR
}
/
${
PADDLE2ONNX_CACHE_FILENAME
}
"
)
# NOTE: If the version is updated, consider emptying the folder; maybe add timeout
file
(
DOWNLOAD
${
PADDLE2ONNX_URL
}
${
PADDLE2ONNX_DOWNLOAD_DIR
}
/
${
PADDLE2ONNX_CACHE_FILENAME
}
EXPECTED_MD5
${
PADDLE2ONNX_URL_MD5
}
STATUS ERR
)
if
(
ERR EQUAL 0
)
message
(
STATUS
"Download
${
PADDLE2ONNX_CACHE_FILENAME
}
success"
)
else
()
message
(
FATAL_ERROR
"Download failed, error:
${
ERR
}
\n
You can try downloading
${
PADDLE2ONNX_CACHE_FILENAME
}
again"
)
endif
()
endfunction
()
if
(
EXISTS
${
PADDLE2ONNX_DOWNLOAD_DIR
}
/
${
PADDLE2ONNX_CACHE_FILENAME
}
)
file
(
MD5
${
PADDLE2ONNX_DOWNLOAD_DIR
}
/
${
PADDLE2ONNX_CACHE_FILENAME
}
PADDLE2ONNX_MD5
)
if
(
NOT PADDLE2ONNX_MD5 STREQUAL PADDLE2ONNX_URL_MD5
)
download_paddle2onnx
()
endif
()
else
()
download_paddle2onnx
()
endif
()
endif
()
if
(
WIN32
)
if
(
WIN32
)
ExternalProject_Add
(
ExternalProject_Add
(
${
PADDLE2ONNX_PROJECT
}
${
PADDLE2ONNX_PROJECT
}
${
EXTERNAL_PROJECT_LOG_ARGS
}
${
EXTERNAL_PROJECT_LOG_ARGS
}
URL
${
PADDLE2ONNX_URL
}
URL
${
PADDLE2ONNX_DOWNLOAD_DIR
}
/
${
PADDLE2ONNX_CACHE_FILENAME
}
URL_MD5
${
PADDLE2ONNX_URL_MD5
}
PREFIX
${
PADDLE2ONNX_PREFIX_DIR
}
PREFIX
${
PADDLE2ONNX_PREFIX_DIR
}
DOWNLOAD_NO_PROGRESS 1
DOWNLOAD_NO_PROGRESS 1
DOWNLOAD_DIR
${
PADDLE2ONNX_DOWNLOAD_DIR
}
SOURCE_DIR
${
PADDLE2ONNX_INSTALL_DIR
}
CONFIGURE_COMMAND
""
CONFIGURE_COMMAND
""
BUILD_COMMAND
""
BUILD_COMMAND
""
UPDATE_COMMAND
""
UPDATE_COMMAND
""
INSTALL_COMMAND
INSTALL_COMMAND
""
${
CMAKE_COMMAND
}
-E copy_directory
${
PADDLE2ONNX_SOURCE_DIR
}
/lib
${
PADDLE2ONNX_LIB_DIR
}
&&
${
CMAKE_COMMAND
}
-E copy_directory
${
PADDLE2ONNX_SOURCE_DIR
}
/include
${
PADDLE2ONNX_INC_DIR
}
BUILD_BYPRODUCTS
${
PADDLE2ONNX_COMPILE_LIB
}
)
BUILD_BYPRODUCTS
${
PADDLE2ONNX_COMPILE_LIB
}
)
else
()
else
()
ExternalProject_Add
(
ExternalProject_Add
(
${
PADDLE2ONNX_PROJECT
}
${
PADDLE2ONNX_PROJECT
}
${
EXTERNAL_PROJECT_LOG_ARGS
}
${
EXTERNAL_PROJECT_LOG_ARGS
}
URL
${
PADDLE2ONNX_URL
}
URL
${
PADDLE2ONNX_DOWNLOAD_DIR
}
/
${
PADDLE2ONNX_CACHE_FILENAME
}
URL_MD5
${
PADDLE2ONNX_URL_MD5
}
PREFIX
${
PADDLE2ONNX_PREFIX_DIR
}
PREFIX
${
PADDLE2ONNX_PREFIX_DIR
}
DOWNLOAD_NO_PROGRESS 1
DOWNLOAD_NO_PROGRESS 1
DOWNLOAD_DIR
${
PADDLE2ONNX_DOWNLOAD_DIR
}
SOURCE_DIR
${
PADDLE2ONNX_INSTALL_DIR
}
CONFIGURE_COMMAND
""
CONFIGURE_COMMAND
""
BUILD_COMMAND
""
BUILD_COMMAND
""
UPDATE_COMMAND
""
UPDATE_COMMAND
""
INSTALL_COMMAND
INSTALL_COMMAND
""
${
CMAKE_COMMAND
}
-E copy
${
PADDLE2ONNX_SOURCE_LIB
}
${
PADDLE2ONNX_COMPILE_LIB
}
&&
${
CMAKE_COMMAND
}
-E copy_directory
${
PADDLE2ONNX_SOURCE_DIR
}
/include
${
PADDLE2ONNX_INC_DIR
}
&&
${
CMAKE_COMMAND
}
-E create_symlink
${
PADDLE2ONNX_LIB_NAME
}
${
PADDLE2ONNX_LIB_DIR
}
/
${
PADDLE2ONNX_LIB_NEW_NAME
}
BUILD_BYPRODUCTS
${
PADDLE2ONNX_COMPILE_LIB
}
)
BUILD_BYPRODUCTS
${
PADDLE2ONNX_COMPILE_LIB
}
)
endif
()
endif
()
...
...
cmake/external/pocketfft.cmake
View file @
992bec46
...
@@ -19,22 +19,36 @@ set(POCKETFFT_PATH
...
@@ -19,22 +19,36 @@ set(POCKETFFT_PATH
CACHE STRING
"A path setting for external_pocketfft path."
)
CACHE STRING
"A path setting for external_pocketfft path."
)
set
(
POCKETFFT_PREFIX_DIR
${
POCKETFFT_PATH
}
)
set
(
POCKETFFT_PREFIX_DIR
${
POCKETFFT_PATH
}
)
set
(
POCKETFFT_REPOSITORY https://gitlab.mpcdf.mpg.de/mtr/pocketfft.git
)
set
(
POCKETFFT_TAG release_for_eigen
)
set
(
POCKETFFT_INCLUDE_DIR
${
POCKETFFT_PREFIX_DIR
}
/src
)
set
(
POCKETFFT_INCLUDE_DIR
${
POCKETFFT_PREFIX_DIR
}
/src
)
set
(
POCKETFFT_SOURCE_DIR
${
POCKETFFT_PREFIX_DIR
}
/src/extern_pocketfft
)
message
(
"POCKETFFT_INCLUDE_DIR is
${
POCKETFFT_INCLUDE_DIR
}
"
)
message
(
"POCKETFFT_INCLUDE_DIR is
${
POCKETFFT_INCLUDE_DIR
}
"
)
include_directories
(
${
POCKETFFT_INCLUDE_DIR
}
)
include_directories
(
${
POCKETFFT_INCLUDE_DIR
}
)
set
(
POCKETFFT_TAG release_for_eigen
)
set
(
SOURCE_DIR
${
PADDLE_SOURCE_DIR
}
/third_party/pocketfft
)
if
(
APPLE
)
file
(
TO_NATIVE_PATH
${
PADDLE_SOURCE_DIR
}
/patches/pocketfft/pocketfft_hdronly.h.patch
native_dst
)
set
(
POCKETFFT_PATCH_COMMAND
git checkout -- . && git checkout
${
POCKETFFT_TAG
}
&& patch -Nd
${
SOURCE_DIR
}
<
${
native_dst
}
)
endif
()
ExternalProject_Add
(
ExternalProject_Add
(
extern_pocketfft
extern_pocketfft
${
EXTERNAL_PROJECT_LOG_ARGS
}
${
SHALLOW_CLONE
}
${
EXTERNAL_PROJECT_LOG_ARGS
}
GIT_REPOSITORY
${
POCKETFFT_REPOSITORY
}
SOURCE_DIR
${
SOURCE_DIR
}
GIT_TAG
${
POCKETFFT_TAG
}
PREFIX
${
POCKETFFT_PREFIX_DIR
}
PREFIX
${
POCKETFFT_PREFIX_DIR
}
PATCH_COMMAND
${
POCKETFFT_PATCH_COMMAND
}
UPDATE_COMMAND
""
UPDATE_COMMAND
""
CONFIGURE_COMMAND
""
CONFIGURE_COMMAND
""
BUILD_COMMAND
""
BUILD_COMMAND
COMMAND
${
CMAKE_COMMAND
}
-E remove_directory
${
POCKETFFT_SOURCE_DIR
}
COMMAND
${
CMAKE_COMMAND
}
-E make_directory
${
POCKETFFT_SOURCE_DIR
}
COMMAND
${
CMAKE_COMMAND
}
-E copy_directory
${
SOURCE_DIR
}
${
POCKETFFT_SOURCE_DIR
}
INSTALL_COMMAND
""
INSTALL_COMMAND
""
TEST_COMMAND
""
)
TEST_COMMAND
""
)
...
...
cmake/external/protobuf.cmake
View file @
992bec46
...
@@ -75,8 +75,8 @@ function(protobuf_generate_python SRCS)
...
@@ -75,8 +75,8 @@ function(protobuf_generate_python SRCS)
list
(
APPEND
${
SRCS
}
"
${
CMAKE_CURRENT_BINARY_DIR
}
/
${
FIL_WE
}
_pb2.py"
)
list
(
APPEND
${
SRCS
}
"
${
CMAKE_CURRENT_BINARY_DIR
}
/
${
FIL_WE
}
_pb2.py"
)
add_custom_command
(
add_custom_command
(
OUTPUT
"
${
CMAKE_CURRENT_BINARY_DIR
}
/
${
FIL_WE
}
_pb2.py"
OUTPUT
"
${
CMAKE_CURRENT_BINARY_DIR
}
/
${
FIL_WE
}
_pb2.py"
COMMAND
${
PROTOBUF_PROTOC_EXECUTABLE
}
--python_out
COMMAND
${
PROTOBUF_PROTOC_EXECUTABLE
}
--python_out
${
PADDLE_BINARY_DIR
}
${
CMAKE_CURRENT_BINARY_DIR
}
${
_protobuf_include_path
}
${
ABS_FIL
}
-I
${
PADDLE_SOURCE_DIR
}
${
ABS_FIL
}
DEPENDS
${
ABS_FIL
}
${
PROTOBUF_PROTOC_EXECUTABLE
}
DEPENDS
${
ABS_FIL
}
${
PROTOBUF_PROTOC_EXECUTABLE
}
COMMENT
"Running Python protocol buffer compiler on
${
FIL
}
"
COMMENT
"Running Python protocol buffer compiler on
${
FIL
}
"
VERBATIM
)
VERBATIM
)
...
@@ -188,6 +188,7 @@ function(build_protobuf TARGET_NAME BUILD_FOR_HOST)
...
@@ -188,6 +188,7 @@ function(build_protobuf TARGET_NAME BUILD_FOR_HOST)
set
(
PROTOBUF_SOURCE_DIR
set
(
PROTOBUF_SOURCE_DIR
${
THIRD_PARTY_PATH
}
/
${
TARGET_DIR_NAME
}
/src/
${
TARGET_NAME
}
)
${
THIRD_PARTY_PATH
}
/
${
TARGET_DIR_NAME
}
/src/
${
TARGET_NAME
}
)
set
(
PROTOBUF_INSTALL_DIR
${
THIRD_PARTY_PATH
}
/install/
${
TARGET_DIR_NAME
}
)
set
(
PROTOBUF_INSTALL_DIR
${
THIRD_PARTY_PATH
}
/install/
${
TARGET_DIR_NAME
}
)
set
(
SOURCE_DIR
${
PADDLE_SOURCE_DIR
}
/third_party/
${
TARGET_DIR_NAME
}
)
set
(
${
TARGET_NAME
}
_INCLUDE_DIR
set
(
${
TARGET_NAME
}
_INCLUDE_DIR
"
${
PROTOBUF_INSTALL_DIR
}
/include"
"
${
PROTOBUF_INSTALL_DIR
}
/include"
...
@@ -234,26 +235,25 @@ function(build_protobuf TARGET_NAME BUILD_FOR_HOST)
...
@@ -234,26 +235,25 @@ function(build_protobuf TARGET_NAME BUILD_FOR_HOST)
"-Dprotobuf_MSVC_STATIC_RUNTIME=
${
MSVC_STATIC_CRT
}
"
)
"-Dprotobuf_MSVC_STATIC_RUNTIME=
${
MSVC_STATIC_CRT
}
"
)
endif
()
endif
()
if
(
WITH_ASCEND AND NOT WITH_ASCEND_CXX11
)
if
(
WITH_IPU
)
set
(
PROTOBUF_REPOSITORY https://gitee.com/tianjianhe/protobuf.git
)
set
(
PROTOBUF_TAG v3.8.0
)
elseif
(
WITH_ASCEND_CL AND NOT WITH_ASCEND_CXX11
)
set
(
PROTOBUF_REPOSITORY https://gitee.com/tianjianhe/protobuf.git
)
set
(
PROTOBUF_TAG v3.8.0
)
elseif
(
WITH_IPU
)
set
(
PROTOBUF_REPOSITORY
${
GIT_URL
}
/protocolbuffers/protobuf.git
)
set
(
PROTOBUF_REPOSITORY
${
GIT_URL
}
/protocolbuffers/protobuf.git
)
set
(
PROTOBUF_TAG
d750fbf648256c7c631f51ffdbf67d7c18b0114e
)
set
(
PROTOBUF_TAG
v21.12
)
elseif
(
WIN32
)
elseif
(
WIN32
)
set
(
PROTOBUF_REPOSITORY
${
GIT_URL
}
/protocolbuffers/protobuf.git
)
set
(
PROTOBUF_REPOSITORY
${
GIT_URL
}
/protocolbuffers/protobuf.git
)
# Change the tag to support building with vs2019
# Change the tag to support building with vs2019
set
(
PROTOBUF_TAG 01a05a53f40ca2ac5f0af10c6cc0810bee39b792
)
set
(
PROTOBUF_TAG 01a05a53f40ca2ac5f0af10c6cc0810bee39b792
)
else
()
else
()
set
(
PROTOBUF_REPOSITORY
${
GIT_URL
}
/protocolbuffers/protobuf.git
)
if
(
WITH_PSLIB
)
set
(
PROTOBUF_TAG 9f75c5aa851cd877fb0d93ccc31b8567a6706546
)
set
(
PROTOBUF_REPOSITORY
"https://github.com/google/protobuf.git"
)
set
(
PROTOBUF_TAG
"9f75c5aa851cd877fb0d93ccc31b8567a6706546"
)
else
()
set
(
PROTOBUF_REPOSITORY
${
GIT_URL
}
/protocolbuffers/protobuf.git
)
set
(
PROTOBUF_TAG v21.12
)
endif
()
if
(
WITH_GPU
)
if
(
WITH_GPU
)
if
(
${
CMAKE_CUDA_COMPILER_VERSION
}
LESS 12.0
if
(
${
CMAKE_CUDA_COMPILER_VERSION
}
LESS 12.0
AND
${
CMAKE_CXX_COMPILER_VERSION
}
VERSION_GREATER 12.0
)
AND
${
CMAKE_CXX_COMPILER_VERSION
}
VERSION_GREATER 12.0
)
set
(
PROTOBUF_TAG
2dc747c574b68a808ea4699d26942c8132fe2b09
)
set
(
PROTOBUF_TAG
v21.12
)
endif
()
endif
()
endif
()
endif
()
endif
()
endif
()
...
@@ -290,15 +290,16 @@ function(build_protobuf TARGET_NAME BUILD_FOR_HOST)
...
@@ -290,15 +290,16 @@ function(build_protobuf TARGET_NAME BUILD_FOR_HOST)
else
()
else
()
ExternalProject_Add
(
ExternalProject_Add
(
${
TARGET_NAME
}
${
TARGET_NAME
}
${
EXTERNAL_PROJECT_LOG_ARGS
}
${
SHALLOW_CLONE
}
${
EXTERNAL_PROJECT_LOG_ARGS
}
GIT_REPOSITORY
${
PROTOBUF_REPOSITORY
}
GIT_TAG
${
PROTOBUF_TAG
}
PREFIX
${
PROTOBUF_PREFIX_DIR
}
PREFIX
${
PROTOBUF_PREFIX_DIR
}
SOURCE_DIR
${
SOURCE_DIR
}
UPDATE_COMMAND
""
UPDATE_COMMAND
""
PATCH_COMMAND
COMMAND cd
${
SOURCE_DIR
}
&& git checkout
${
PROTOBUF_TAG
}
DEPENDS zlib
DEPENDS zlib
CONFIGURE_COMMAND
CONFIGURE_COMMAND
${
CMAKE_COMMAND
}
${
PROTOBUF_
SOURCE_DIR
}
/cmake
${
OPTIONAL_ARGS
}
${
CMAKE_COMMAND
}
${
SOURCE_DIR
}
/cmake
${
OPTIONAL_ARGS
}
-Dprotobuf_BUILD_TESTS=OFF -DCMAKE_SKIP_RPATH=ON
-G
${
CMAKE_GENERATOR
}
-Dprotobuf_BUILD_TESTS=OFF -DCMAKE_SKIP_RPATH=ON
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
-DCMAKE_BUILD_TYPE=
${
THIRD_PARTY_BUILD_TYPE
}
-DCMAKE_BUILD_TYPE=
${
THIRD_PARTY_BUILD_TYPE
}
-DCMAKE_INSTALL_PREFIX=
${
PROTOBUF_INSTALL_DIR
}
-DCMAKE_INSTALL_PREFIX=
${
PROTOBUF_INSTALL_DIR
}
...
@@ -320,18 +321,19 @@ function(build_protobuf TARGET_NAME BUILD_FOR_HOST)
...
@@ -320,18 +321,19 @@ function(build_protobuf TARGET_NAME BUILD_FOR_HOST)
endif
()
endif
()
endfunction
()
endfunction
()
if
(
WITH_ASCEND OR WITH_ASCEND_CL
)
if
(
WITH_IPU
)
set
(
PROTOBUF_VERSION 3.8.0
)
set
(
PROTOBUF_VERSION 21.12
)
elseif
(
WITH_IPU
)
set
(
PROTOBUF_VERSION 3.6.1
)
elseif
(
WITH_ARM_BRPC
)
elseif
(
WITH_ARM_BRPC
)
set
(
PROTOBUF_VERSION 3.7.1-baidu-ee-common
)
set
(
PROTOBUF_VERSION 21.12-baidu-ee-common
)
elseif
(
WIN32
)
#Lower version prootbuf is used for widows
set
(
PROTOBUF_VERSION 3.2
)
else
()
else
()
set
(
PROTOBUF_VERSION
3.1.0
)
set
(
PROTOBUF_VERSION
21.12
)
if
(
WITH_GPU
)
if
(
WITH_GPU
)
if
(
${
CMAKE_CUDA_COMPILER_VERSION
}
LESS 12.0
if
(
${
CMAKE_CUDA_COMPILER_VERSION
}
LESS 12.0
AND
${
CMAKE_CXX_COMPILER_VERSION
}
VERSION_GREATER 12.0
)
AND
${
CMAKE_CXX_COMPILER_VERSION
}
VERSION_GREATER 12.0
)
set
(
PROTOBUF_VERSION
3.16.0
)
set
(
PROTOBUF_VERSION
21.12
)
endif
()
endif
()
endif
()
endif
()
endif
()
endif
()
...
...
cmake/external/pslib.cmake
View file @
992bec46
...
@@ -23,9 +23,15 @@ if((NOT DEFINED PSLIB_VER) OR (NOT DEFINED PSLIB_URL))
...
@@ -23,9 +23,15 @@ if((NOT DEFINED PSLIB_VER) OR (NOT DEFINED PSLIB_URL))
set
(
PSLIB_NAME
set
(
PSLIB_NAME
"pslib"
"pslib"
CACHE STRING
""
FORCE
)
CACHE STRING
""
FORCE
)
set
(
PSLIB_URL
if
(
NOT WITH_HETERPS
)
"https://pslib.bj.bcebos.com/pslib.tar.gz"
set
(
PSLIB_URL
CACHE STRING
""
FORCE
)
"https://pslib.bj.bcebos.com/pslib.tar.gz"
CACHE STRING
""
FORCE
)
else
()
set
(
PSLIB_URL
"https://pslib.bj.bcebos.com/pslib_3631b2/pslib.tar.gz"
CACHE STRING
""
FORCE
)
endif
()
endif
()
endif
()
message
(
STATUS
"PSLIB_NAME:
${
PSLIB_NAME
}
, PSLIB_URL:
${
PSLIB_URL
}
"
)
message
(
STATUS
"PSLIB_NAME:
${
PSLIB_NAME
}
, PSLIB_URL:
${
PSLIB_URL
}
"
)
set
(
PSLIB_PREFIX_DIR
"
${
THIRD_PARTY_PATH
}
/pslib"
)
set
(
PSLIB_PREFIX_DIR
"
${
THIRD_PARTY_PATH
}
/pslib"
)
...
@@ -37,6 +43,7 @@ set(PSLIB_ROOT ${PSLIB_INSTALL_DIR})
...
@@ -37,6 +43,7 @@ set(PSLIB_ROOT ${PSLIB_INSTALL_DIR})
set
(
PSLIB_INC_DIR
${
PSLIB_ROOT
}
/include
)
set
(
PSLIB_INC_DIR
${
PSLIB_ROOT
}
/include
)
set
(
PSLIB_LIB_DIR
${
PSLIB_ROOT
}
/lib
)
set
(
PSLIB_LIB_DIR
${
PSLIB_ROOT
}
/lib
)
set
(
PSLIB_LIB
${
PSLIB_LIB_DIR
}
/libps.so
)
set
(
PSLIB_LIB
${
PSLIB_LIB_DIR
}
/libps.so
)
set
(
JVM_LIB
${
PSLIB_LIB_DIR
}
/libjvm.so
)
set
(
PSLIB_VERSION_PY
${
PSLIB_DOWNLOAD_DIR
}
/pslib/version.py
)
set
(
PSLIB_VERSION_PY
${
PSLIB_DOWNLOAD_DIR
}
/pslib/version.py
)
set
(
PSLIB_IOMP_LIB
${
PSLIB_LIB_DIR
}
/libiomp5.so
)
#todo what is this
set
(
PSLIB_IOMP_LIB
${
PSLIB_LIB_DIR
}
/libiomp5.so
)
#todo what is this
set
(
CMAKE_INSTALL_RPATH
"
${
CMAKE_INSTALL_RPATH
}
"
"
${
PSLIB_ROOT
}
/lib"
)
set
(
CMAKE_INSTALL_RPATH
"
${
CMAKE_INSTALL_RPATH
}
"
"
${
PSLIB_ROOT
}
/lib"
)
...
@@ -67,3 +74,4 @@ ExternalProject_Add(
...
@@ -67,3 +74,4 @@ ExternalProject_Add(
add_library
(
pslib SHARED IMPORTED GLOBAL
)
add_library
(
pslib SHARED IMPORTED GLOBAL
)
set_property
(
TARGET pslib PROPERTY IMPORTED_LOCATION
${
PSLIB_LIB
}
)
set_property
(
TARGET pslib PROPERTY IMPORTED_LOCATION
${
PSLIB_LIB
}
)
add_dependencies
(
pslib
${
PSLIB_PROJECT
}
)
add_dependencies
(
pslib
${
PSLIB_PROJECT
}
)
target_link_libraries
(
pslib INTERFACE
${
PSLIB_LIB_DIR
}
/libjvm.so
)
cmake/external/pybind11.cmake
View file @
992bec46
...
@@ -15,17 +15,31 @@
...
@@ -15,17 +15,31 @@
include
(
ExternalProject
)
include
(
ExternalProject
)
set
(
PYBIND_PREFIX_DIR
${
THIRD_PARTY_PATH
}
/pybind
)
set
(
PYBIND_PREFIX_DIR
${
THIRD_PARTY_PATH
}
/pybind
)
set
(
PYBIND_REPOSITORY
${
GIT_URL
}
/pybind/pybind11.git
)
set
(
PYBIND_SOURCE_DIR
${
PYBIND_PREFIX_DIR
}
/src/extern_pybind
)
set
(
PYBIND_TAG v2.4.3
)
set
(
PYBIND_INCLUDE_DIR
${
PYBIND_SOURCE_DIR
}
/include
)
set
(
PYBIND_TAG v2.10.3
)
set
(
SOURCE_DIR
${
PADDLE_SOURCE_DIR
}
/third_party/pybind
)
set
(
SOURCE_INCLUDE_DIR
${
SOURCE_DIR
}
/include
)
set
(
PYBIND_INCLUDE_DIR
${
THIRD_PARTY_PATH
}
/pybind/src/extern_pybind/include
)
include_directories
(
${
PYBIND_INCLUDE_DIR
}
)
include_directories
(
${
PYBIND_INCLUDE_DIR
}
)
set
(
PYBIND_PATCH_COMMAND
""
)
if
(
NOT WIN32
)
file
(
TO_NATIVE_PATH
${
PADDLE_SOURCE_DIR
}
/patches/pybind/cast.h.patch
native_dst
)
# Note: [Why calling some `git` commands before `patch`?]
# Paddle's CI uses cache to accelarate the make process. However, error might raise when patch codes in two scenarios:
# 1. Patch to the wrong version: the tag version of CI's cache falls behind PYBIND_TAG, use `git checkout ${PYBIND_TAG}` to solve this.
# 2. Patch twice: the tag version of cache == PYBIND_TAG, but patch has already applied to cache.
set
(
PYBIND_PATCH_COMMAND
git checkout -- . && git checkout
${
PYBIND_TAG
}
&& patch -Nd
${
SOURCE_INCLUDE_DIR
}
/pybind11 <
${
native_dst
}
)
endif
()
ExternalProject_Add
(
ExternalProject_Add
(
extern_pybind
extern_pybind
${
EXTERNAL_PROJECT_LOG_ARGS
}
${
SHALLOW_CLONE
}
${
EXTERNAL_PROJECT_LOG_ARGS
}
${
SHALLOW_CLONE
}
GIT_REPOSITORY
${
PYBIND_REPOSITORY
}
SOURCE_DIR
${
SOURCE_DIR
}
GIT_TAG
${
PYBIND_TAG
}
PREFIX
${
PYBIND_PREFIX_DIR
}
PREFIX
${
PYBIND_PREFIX_DIR
}
# If we explicitly leave the `UPDATE_COMMAND` of the ExternalProject_Add
# If we explicitly leave the `UPDATE_COMMAND` of the ExternalProject_Add
# function in CMakeLists blank, it will cause another parameter GIT_TAG
# function in CMakeLists blank, it will cause another parameter GIT_TAG
...
@@ -33,8 +47,16 @@ ExternalProject_Add(
...
@@ -33,8 +47,16 @@ ExternalProject_Add(
# third-party library version changes cannot be incorporated.
# third-party library version changes cannot be incorporated.
# reference: https://cmake.org/cmake/help/latest/module/ExternalProject.html
# reference: https://cmake.org/cmake/help/latest/module/ExternalProject.html
UPDATE_COMMAND
""
UPDATE_COMMAND
""
PATCH_COMMAND
${
PYBIND_PATCH_COMMAND
}
CONFIGURE_COMMAND
""
CONFIGURE_COMMAND
""
BUILD_COMMAND
""
# I intentionally preserved an extern_pybind/include/pybind11 directory
# to site-packages, so that you could discern that you intended to
# employ not only python, but also CPP and were ready to incorporate header files.
BUILD_COMMAND
COMMAND
${
CMAKE_COMMAND
}
-E remove_directory
${
PYBIND_SOURCE_DIR
}
COMMAND
${
CMAKE_COMMAND
}
-E make_directory
${
PYBIND_SOURCE_DIR
}
COMMAND
${
CMAKE_COMMAND
}
-E copy_directory
${
SOURCE_INCLUDE_DIR
}
${
PYBIND_INCLUDE_DIR
}
INSTALL_COMMAND
""
INSTALL_COMMAND
""
TEST_COMMAND
""
)
TEST_COMMAND
""
)
...
...
cmake/external/python.cmake
View file @
992bec46
...
@@ -14,6 +14,9 @@
...
@@ -14,6 +14,9 @@
include
(
python_module
)
include
(
python_module
)
check_py_version
(
${
PY_VERSION
}
)
# Find Python with mnimum PY_VERSION specified or will raise error!
find_package
(
PythonInterp
${
PY_VERSION
}
REQUIRED
)
find_package
(
PythonInterp
${
PY_VERSION
}
REQUIRED
)
find_package
(
PythonLibs
${
PY_VERSION
}
REQUIRED
)
find_package
(
PythonLibs
${
PY_VERSION
}
REQUIRED
)
...
@@ -79,5 +82,6 @@ if(PYTHONINTERP_FOUND)
...
@@ -79,5 +82,6 @@ if(PYTHONINTERP_FOUND)
"please use pip to upgrade protobuf. pip install -U protobuf"
)
"please use pip to upgrade protobuf. pip install -U protobuf"
)
endif
()
endif
()
endif
(
PYTHONINTERP_FOUND
)
endif
(
PYTHONINTERP_FOUND
)
include_directories
(
${
PYTHON_INCLUDE_DIR
}
)
include_directories
(
${
PYTHON_INCLUDE_DIR
}
)
include_directories
(
${
PYTHON_NUMPY_INCLUDE_DIR
}
)
include_directories
(
${
PYTHON_NUMPY_INCLUDE_DIR
}
)
cmake/external/rocksdb.cmake
View file @
992bec46
...
@@ -14,6 +14,16 @@
...
@@ -14,6 +14,16 @@
include
(
ExternalProject
)
include
(
ExternalProject
)
# find_package(jemalloc REQUIRED)
set
(
ROCKSDB_SOURCE_DIR
${
PADDLE_SOURCE_DIR
}
/third_party/rocksdb
)
set
(
ROCKSDB_TAG 6.19.fb
)
set
(
JEMALLOC_INCLUDE_DIR
${
THIRD_PARTY_PATH
}
/install/jemalloc/include
)
set
(
JEMALLOC_LIBRARIES
${
THIRD_PARTY_PATH
}
/install/jemalloc/lib/libjemalloc_pic.a
)
message
(
STATUS
"rocksdb jemalloc:"
${
JEMALLOC_LIBRARIES
}
)
set
(
ROCKSDB_PREFIX_DIR
${
THIRD_PARTY_PATH
}
/rocksdb
)
set
(
ROCKSDB_PREFIX_DIR
${
THIRD_PARTY_PATH
}
/rocksdb
)
set
(
ROCKSDB_INSTALL_DIR
${
THIRD_PARTY_PATH
}
/install/rocksdb
)
set
(
ROCKSDB_INSTALL_DIR
${
THIRD_PARTY_PATH
}
/install/rocksdb
)
set
(
ROCKSDB_INCLUDE_DIR
set
(
ROCKSDB_INCLUDE_DIR
...
@@ -22,35 +32,64 @@ set(ROCKSDB_INCLUDE_DIR
...
@@ -22,35 +32,64 @@ set(ROCKSDB_INCLUDE_DIR
set
(
ROCKSDB_LIBRARIES
set
(
ROCKSDB_LIBRARIES
"
${
ROCKSDB_INSTALL_DIR
}
/lib/librocksdb.a"
"
${
ROCKSDB_INSTALL_DIR
}
/lib/librocksdb.a"
CACHE FILEPATH
"rocksdb library."
FORCE
)
CACHE FILEPATH
"rocksdb library."
FORCE
)
set
(
ROCKSDB_CMAKE_CXX_FLAGS
"
${
CMAKE_CXX_FLAGS
}
-fPIC"
)
set
(
ROCKSDB_COMMON_FLAGS
"-g -pipe -O2 -W -Wall -Wno-unused-parameter -fPIC -fno-builtin-memcmp -fno-omit-frame-pointer"
)
set
(
ROCKSDB_FLAGS
"-DNDEBUG -DROCKSDB_JEMALLOC -DJEMALLOC_NO_DEMANGLE -DROCKSDB_PLATFORM_POSIX -DROCKSDB_LIB_IO_POSIX -DOS_LINUX -DROCKSDB_FALLOCATE_PRESENT -DHAVE_PCLMUL -DZLIB -DROCKSDB_MALLOC_USABLE_SIZE -DROCKSDB_PTHREAD_ADAPTIVE_MUTEX -DROCKSDB_BACKTRACE -DROCKSDB_SUPPORT_THREAD_LOCAL -DROCKSDB_USE_RTTI -DROCKSDB_SCHED_GETCPU_PRESENT -DROCKSDB_RANGESYNC_PRESENT -DROCKSDB_AUXV_GETAUXVAL_PRESENT"
)
set
(
ROCKSDB_CMAKE_CXX_FLAGS
"
${
ROCKSDB_COMMON_FLAGS
}
-DROCKSDB_LIBAIO_PRESENT
${
ROCKSDB_FLAGS
}
-fPIC -I
${
JEMALLOC_INCLUDE_DIR
}
-Wl,--no-as-needed -lz -ldl"
)
if
(
NOT WITH_ARM
)
set
(
ROCKSDB_FLAGS
"
${
ROCKSDB_FLAGS
}
-DHAVE_SSE42"
)
set
(
ROCKSDB_CMAKE_CXX_FLAGS
"
${
ROCKSDB_CMAKE_CXX_FLAGS
}
-msse -msse4.2 -mpclmul"
)
endif
()
set
(
ROCKSDB_CMAKE_C_FLAGS
"
${
ROCKSDB_COMMON_FLAGS
}
${
ROCKSDB_FLAGS
}
-DROCKSDB_LIBAIO_PRESENT -fPIC -I
${
JEMALLOC_INCLUDE_DIR
}
"
)
include_directories
(
${
ROCKSDB_INCLUDE_DIR
}
)
include_directories
(
${
ROCKSDB_INCLUDE_DIR
}
)
set
(
CMAKE_CXX_LINK_EXECUTABLE
"
${
CMAKE_CXX_LINK_EXECUTABLE
}
-pthread -Wl,--no-as-needed -ldl -lrt -lz"
)
if
(
WITH_ARM
)
file
(
TO_NATIVE_PATH
${
PADDLE_SOURCE_DIR
}
/patches/rocksdb/libaio.h.patch
native_src
)
set
(
ROCKSDB_PATCH_COMMAND
git checkout -- . && git checkout
${
ROCKSDB_TAG
}
&& patch -Nd
${
PADDLE_SOURCE_DIR
}
/third_party/rocksdb/env/ <
${
native_src
}
)
endif
()
ExternalProject_Add
(
ExternalProject_Add
(
extern_rocksdb
extern_rocksdb
${
EXTERNAL_PROJECT_LOG_ARGS
}
${
EXTERNAL_PROJECT_LOG_ARGS
}
PREFIX
${
ROCKSDB_PREFIX_DIR
}
PREFIX
${
ROCKSDB_PREFIX_DIR
}
GIT_REPOSITORY
"https://github.com/facebook/rocksdb"
SOURCE_DIR
${
ROCKSDB_SOURCE_DIR
}
GIT_TAG v6.10.1
UPDATE_COMMAND
""
UPDATE_COMMAND
""
PATCH_COMMAND
${
ROCKSDB_PATCH_COMMAND
}
CMAKE_ARGS -DCMAKE_CXX_COMPILER=
${
CMAKE_CXX_COMPILER
}
CMAKE_ARGS -DCMAKE_CXX_COMPILER=
${
CMAKE_CXX_COMPILER
}
-DCMAKE_C_COMPILER=
${
CMAKE_C_COMPILER
}
-DCMAKE_C_COMPILER=
${
CMAKE_C_COMPILER
}
-DWITH_BZ2=OFF
-DWITH_BZ2=OFF
-DPORTABLE=1
-DPORTABLE=1
-DWITH_GFLAGS=OFF
-DWITH_GFLAGS=OFF
-DWITH_TESTS=OFF
-DWITH_JEMALLOC=ON
-DWITH_BENCHMARK_TOOLS=OFF
-DJeMalloc_LIBRARIES=
${
JEMALLOC_LIBRARIES
}
-DJeMalloc_INCLUDE_DIRS=
${
JEMALLOC_INCLUDE_DIR
}
-DCMAKE_CXX_FLAGS=
${
ROCKSDB_CMAKE_CXX_FLAGS
}
-DCMAKE_CXX_FLAGS=
${
ROCKSDB_CMAKE_CXX_FLAGS
}
-DCMAKE_C_FLAGS=
${
CMAKE_C_FLAGS
}
-DCMAKE_C_FLAGS=
${
CMAKE_C_FLAGS
}
# BUILD_BYPRODUCTS ${ROCKSDB_PREFIX_DIR}/src/extern_rocksdb/librocksdb.a
INSTALL_COMMAND
INSTALL_COMMAND
mkdir -p
${
ROCKSDB_INSTALL_DIR
}
/lib/ && cp
mkdir -p
${
ROCKSDB_INSTALL_DIR
}
/lib/ && cp
${
ROCKSDB_PREFIX_DIR
}
/src/extern_rocksdb/librocksdb.a
${
ROCKSDB_LIBRARIES
}
${
ROCKSDB_PREFIX_DIR
}
/src/extern_rocksdb
-build
/librocksdb.a
&& cp -r
${
ROCKSDB_PREFIX_DIR
}
/src/extern_rocksdb
/include
${
ROCKSDB_LIBRARIES
}
&& cp -r
${
ROCKSDB_SOURCE_DIR
}
/include
${
ROCKSDB_INSTALL_DIR
}
/
${
ROCKSDB_INSTALL_DIR
}
/
BUILD_IN_SOURCE 1
BUILD_BYPRODUCTS
${
ROCKSDB_LIBRARIES
}
)
BYPRODUCTS
${
ROCKSDB_LIBRARIES
}
)
add_dependencies
(
extern_rocksdb snappy
)
add_library
(
rocksdb STATIC IMPORTED GLOBAL
)
add_library
(
rocksdb STATIC IMPORTED GLOBAL
)
add_dependencies
(
extern_rocksdb snappy
)
add_dependencies
(
extern_rocksdb extern_jemalloc
)
set_property
(
TARGET rocksdb PROPERTY IMPORTED_LOCATION
${
ROCKSDB_LIBRARIES
}
)
set_property
(
TARGET rocksdb PROPERTY IMPORTED_LOCATION
${
ROCKSDB_LIBRARIES
}
)
add_dependencies
(
rocksdb extern_rocksdb
)
add_dependencies
(
rocksdb extern_rocksdb
)
...
...
cmake/external/snappy.cmake
View file @
992bec46
...
@@ -11,7 +11,6 @@
...
@@ -11,7 +11,6 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# See the License for the specific language governing permissions and
# limitations under the License.
# limitations under the License.
include
(
ExternalProject
)
include
(
ExternalProject
)
# NOTE: snappy is needed when linking with recordio
# NOTE: snappy is needed when linking with recordio
...
@@ -21,7 +20,7 @@ set(SNAPPY_INSTALL_DIR ${THIRD_PARTY_PATH}/install/snappy)
...
@@ -21,7 +20,7 @@ set(SNAPPY_INSTALL_DIR ${THIRD_PARTY_PATH}/install/snappy)
set
(
SNAPPY_INCLUDE_DIR
set
(
SNAPPY_INCLUDE_DIR
"
${
SNAPPY_INSTALL_DIR
}
/include"
"
${
SNAPPY_INSTALL_DIR
}
/include"
CACHE PATH
"snappy include directory."
FORCE
)
CACHE PATH
"snappy include directory."
FORCE
)
set
(
SOURCE_DIR
${
PADDLE_SOURCE_DIR
}
/third_party/snappy
)
if
(
WIN32
)
if
(
WIN32
)
set
(
SNAPPY_CMAKE_CXX_FLAGS
"
${
CMAKE_CXX_FLAGS
}
/wd4244 /wd4267"
)
set
(
SNAPPY_CMAKE_CXX_FLAGS
"
${
CMAKE_CXX_FLAGS
}
/wd4244 /wd4267"
)
if
(
NOT EXISTS
"
${
SNAPPY_INSTALL_DIR
}
/lib/libsnappy.lib"
)
if
(
NOT EXISTS
"
${
SNAPPY_INSTALL_DIR
}
/lib/libsnappy.lib"
)
...
@@ -39,8 +38,7 @@ endif()
...
@@ -39,8 +38,7 @@ endif()
ExternalProject_Add
(
ExternalProject_Add
(
extern_snappy
extern_snappy
GIT_REPOSITORY
"https://github.com/google/snappy"
SOURCE_DIR
${
SOURCE_DIR
}
GIT_TAG
"1.1.7"
PREFIX
${
SNAPPY_PREFIX_DIR
}
PREFIX
${
SNAPPY_PREFIX_DIR
}
UPDATE_COMMAND
""
UPDATE_COMMAND
""
CMAKE_ARGS -DCMAKE_CXX_COMPILER=
${
CMAKE_CXX_COMPILER
}
CMAKE_ARGS -DCMAKE_CXX_COMPILER=
${
CMAKE_CXX_COMPILER
}
...
@@ -64,9 +62,7 @@ ExternalProject_Add(
...
@@ -64,9 +62,7 @@ ExternalProject_Add(
-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON
-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON
-DCMAKE_BUILD_TYPE:STRING=
${
THIRD_PARTY_BUILD_TYPE
}
-DCMAKE_BUILD_TYPE:STRING=
${
THIRD_PARTY_BUILD_TYPE
}
BUILD_BYPRODUCTS
${
SNAPPY_LIBRARIES
}
)
BUILD_BYPRODUCTS
${
SNAPPY_LIBRARIES
}
)
add_library
(
snappy STATIC IMPORTED GLOBAL
)
add_library
(
snappy STATIC IMPORTED GLOBAL
)
set_property
(
TARGET snappy PROPERTY IMPORTED_LOCATION
${
SNAPPY_LIBRARIES
}
)
set_property
(
TARGET snappy PROPERTY IMPORTED_LOCATION
${
SNAPPY_LIBRARIES
}
)
include_directories
(
${
SNAPPY_INCLUDE_DIR
}
)
include_directories
(
${
SNAPPY_INCLUDE_DIR
}
)
add_dependencies
(
snappy extern_snappy
)
add_dependencies
(
snappy extern_snappy
)
cmake/external/threadpool.cmake
View file @
992bec46
...
@@ -15,21 +15,15 @@
...
@@ -15,21 +15,15 @@
include
(
ExternalProject
)
include
(
ExternalProject
)
set
(
THREADPOOL_PREFIX_DIR
${
THIRD_PARTY_PATH
}
/threadpool
)
set
(
THREADPOOL_PREFIX_DIR
${
THIRD_PARTY_PATH
}
/threadpool
)
if
(
WITH_ASCEND OR WITH_ASCEND_CL
)
set
(
THREADPOOL_REPOSITORY https://gitee.com/tianjianhe/ThreadPool.git
)
else
()
set
(
THREADPOOL_REPOSITORY
${
GIT_URL
}
/progschj/ThreadPool.git
)
endif
()
set
(
THREADPOOL_TAG 9a42ec1329f259a5f4881a291db1dcb8f2ad9040
)
set
(
THREADPOOL_TAG 9a42ec1329f259a5f4881a291db1dcb8f2ad9040
)
set
(
SOURCE_DIR
${
PADDLE_SOURCE_DIR
}
/third_party/threadpool
)
set
(
THREADPOOL_INCLUDE_DIR
${
THIRD_PARTY_PATH
}
/threadpool/src/extern_threadpool
)
set
(
THREADPOOL_INCLUDE_DIR
${
SOURCE_DIR
}
)
include_directories
(
${
THREADPOOL_INCLUDE_DIR
}
)
include_directories
(
${
THREADPOOL_INCLUDE_DIR
}
)
ExternalProject_Add
(
ExternalProject_Add
(
extern_threadpool
extern_threadpool
${
EXTERNAL_PROJECT_LOG_ARGS
}
${
SHALLOW_CLONE
}
${
EXTERNAL_PROJECT_LOG_ARGS
}
GIT_REPOSITORY
${
THREADPOOL_REPOSITORY
}
SOURCE_DIR
${
SOURCE_DIR
}
GIT_TAG
${
THREADPOOL_TAG
}
PREFIX
${
THREADPOOL_PREFIX_DIR
}
PREFIX
${
THREADPOOL_PREFIX_DIR
}
UPDATE_COMMAND
""
UPDATE_COMMAND
""
CONFIGURE_COMMAND
""
CONFIGURE_COMMAND
""
...
...
cmake/external/utf8proc.cmake
View file @
992bec46
...
@@ -17,9 +17,8 @@ include(ExternalProject)
...
@@ -17,9 +17,8 @@ include(ExternalProject)
set
(
UTF8PROC_PREFIX_DIR
${
THIRD_PARTY_PATH
}
/utf8proc
)
set
(
UTF8PROC_PREFIX_DIR
${
THIRD_PARTY_PATH
}
/utf8proc
)
set
(
UTF8PROC_INSTALL_DIR
${
THIRD_PARTY_PATH
}
/install/utf8proc
)
set
(
UTF8PROC_INSTALL_DIR
${
THIRD_PARTY_PATH
}
/install/utf8proc
)
# As we add extra features for utf8proc, we use the non-official repo
# As we add extra features for utf8proc, we use the non-official repo
set
(
UTF8PROC_REPOSITORY
${
GIT_URL
}
/JuliaStrings/utf8proc.git
)
set
(
UTF8PROC_TAG v2.6.1
)
set
(
UTF8PROC_TAG v2.6.1
)
set
(
SOURCE_DIR
${
PADDLE_SOURCE_DIR
}
/third_party/utf8proc
)
if
(
WIN32
)
if
(
WIN32
)
set
(
UTF8PROC_LIBRARIES
"
${
UTF8PROC_INSTALL_DIR
}
/lib/utf8proc_static.lib"
)
set
(
UTF8PROC_LIBRARIES
"
${
UTF8PROC_INSTALL_DIR
}
/lib/utf8proc_static.lib"
)
add_definitions
(
-DUTF8PROC_STATIC
)
add_definitions
(
-DUTF8PROC_STATIC
)
...
@@ -31,9 +30,8 @@ include_directories(${UTF8PROC_INSTALL_DIR}/include)
...
@@ -31,9 +30,8 @@ include_directories(${UTF8PROC_INSTALL_DIR}/include)
ExternalProject_Add
(
ExternalProject_Add
(
extern_utf8proc
extern_utf8proc
${
EXTERNAL_PROJECT_LOG_ARGS
}
${
SHALLOW_CLONE
}
${
EXTERNAL_PROJECT_LOG_ARGS
}
GIT_REPOSITORY
${
UTF8PROC_REPOSITORY
}
SOURCE_DIR
${
SOURCE_DIR
}
GIT_TAG
${
UTF8PROC_TAG
}
PREFIX
${
UTF8PROC_PREFIX_DIR
}
PREFIX
${
UTF8PROC_PREFIX_DIR
}
UPDATE_COMMAND
""
UPDATE_COMMAND
""
CMAKE_ARGS -DCMAKE_C_FLAGS=
${
CMAKE_C_FLAGS
}
CMAKE_ARGS -DCMAKE_C_FLAGS=
${
CMAKE_C_FLAGS
}
...
...
cmake/external/warpctc.cmake
View file @
992bec46
...
@@ -22,10 +22,8 @@ set(WARPCTC_PREFIX_DIR ${THIRD_PARTY_PATH}/warpctc)
...
@@ -22,10 +22,8 @@ set(WARPCTC_PREFIX_DIR ${THIRD_PARTY_PATH}/warpctc)
set
(
WARPCTC_INSTALL_DIR
${
THIRD_PARTY_PATH
}
/install/warpctc
)
set
(
WARPCTC_INSTALL_DIR
${
THIRD_PARTY_PATH
}
/install/warpctc
)
# in case of low internet speed
# in case of low internet speed
#set(WARPCTC_REPOSITORY https://gitee.com/tianjianhe/warp-ctc.git)
#set(WARPCTC_REPOSITORY https://gitee.com/tianjianhe/warp-ctc.git)
set
(
WARPCTC_REPOSITORY
${
GIT_URL
}
/baidu-research/warp-ctc.git
)
set
(
WARPCTC_TAG bdc2b4550453e0ef2d3b5190f9c6103a84eff184
)
set
(
WARPCTC_TAG 37ece0e1bbe8a0019a63ac7e6462c36591c66a5b
)
set
(
SOURCE_DIR
${
PADDLE_SOURCE_DIR
}
/third_party/warpctc
)
set
(
WARPCTC_SOURCE_DIR
${
THIRD_PARTY_PATH
}
/warpctc/src/extern_warpctc
)
set
(
WARPCTC_PATCH_COMMAND
""
)
set
(
WARPCTC_PATCH_COMMAND
""
)
set
(
WARPCTC_CCBIN_OPTION
""
)
set
(
WARPCTC_CCBIN_OPTION
""
)
if
(
NOT WIN32 AND WITH_GPU
)
if
(
NOT WIN32 AND WITH_GPU
)
...
@@ -33,7 +31,7 @@ if(NOT WIN32 AND WITH_GPU)
...
@@ -33,7 +31,7 @@ if(NOT WIN32 AND WITH_GPU)
VERSION_GREATER 12.0
)
VERSION_GREATER 12.0
)
file
(
TO_NATIVE_PATH
file
(
TO_NATIVE_PATH
${
PADDLE_SOURCE_DIR
}
/patches/warpctc/CMakeLists.txt.patch native_src
)
${
PADDLE_SOURCE_DIR
}
/patches/warpctc/CMakeLists.txt.patch native_src
)
set
(
WARPCTC_PATCH_COMMAND patch -d
${
WARPCTC_
SOURCE_DIR
}
<
${
native_src
}
)
set
(
WARPCTC_PATCH_COMMAND patch -d
${
SOURCE_DIR
}
<
${
native_src
}
)
set
(
WARPCTC_CCBIN_OPTION -DCCBIN_COMPILER=
${
CCBIN_COMPILER
}
)
set
(
WARPCTC_CCBIN_OPTION -DCCBIN_COMPILER=
${
CCBIN_COMPILER
}
)
endif
()
endif
()
endif
()
endif
()
...
@@ -64,102 +62,64 @@ else()
...
@@ -64,102 +62,64 @@ else()
set
(
USE_OMP ON
)
set
(
USE_OMP ON
)
endif
()
endif
()
if
(
WITH_ASCEND OR WITH_ASCEND_CL
)
if
(
WIN32
)
ExternalProject_Add
(
set
(
WARPCTC_C_FLAGS $<FILTER:
${
CMAKE_C_FLAGS
}
,EXCLUDE,/Zc:inline>
)
extern_warpctc
set
(
WARPCTC_C_FLAGS_DEBUG $<FILTER:
${
CMAKE_C_FLAGS_DEBUG
}
,EXCLUDE,/Zc:inline>
)
${
EXTERNAL_PROJECT_LOG_ARGS
}
${
SHALLOW_CLONE
}
set
(
WARPCTC_C_FLAGS_RELEASE
GIT_REPOSITORY
${
WARPCTC_REPOSITORY
}
$<FILTER:
${
CMAKE_C_FLAGS_RELEASE
}
,EXCLUDE,/Zc:inline>
)
GIT_TAG
${
WARPCTC_TAG
}
set
(
WARPCTC_CXX_FLAGS $<FILTER:
${
CMAKE_CXX_FLAGS
}
,EXCLUDE,/Zc:inline>
)
PREFIX
${
WARPCTC_PREFIX_DIR
}
set
(
WARPCTC_CXX_FLAGS_RELEASE
#UPDATE_COMMAND ""
$<FILTER:
${
CMAKE_CXX_FLAGS_RELEASE
}
,EXCLUDE,/Zc:inline>
)
PATCH_COMMAND
""
set
(
WARPCTC_CXX_FLAGS_DEBUG
BUILD_ALWAYS 1
$<FILTER:
${
CMAKE_CXX_FLAGS_DEBUG
}
,EXCLUDE,/Zc:inline>
)
CMAKE_ARGS -DCMAKE_CXX_COMPILER=
${
CMAKE_CXX_COMPILER
}
-DCMAKE_C_COMPILER=
${
CMAKE_C_COMPILER
}
-DCMAKE_C_FLAGS=
${
CMAKE_C_FLAGS
}
-DCMAKE_C_FLAGS_DEBUG=
${
CMAKE_C_FLAGS_DEBUG
}
-DCMAKE_C_FLAGS_RELEASE=
${
CMAKE_C_FLAGS_RELEASE
}
-DCMAKE_CXX_FLAGS=
${
CMAKE_CXX_FLAGS
}
-DCMAKE_CXX_FLAGS_RELEASE=
${
CMAKE_CXX_FLAGS_RELEASE
}
-DCMAKE_CXX_FLAGS_DEBUG=
${
CMAKE_CXX_FLAGS_DEBUG
}
-DCMAKE_INSTALL_PREFIX=
${
WARPCTC_INSTALL_DIR
}
-DWITH_GPU=
${
WITH_GPU
}
-DWITH_ROCM=
${
WITH_ROCM
}
-DWITH_OMP=
${
USE_OMP
}
-DWITH_TORCH=OFF
-DCMAKE_DISABLE_FIND_PACKAGE_Torch=ON
-DBUILD_SHARED=ON
-DBUILD_TESTS=OFF
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
-DCMAKE_BUILD_TYPE=
${
THIRD_PARTY_BUILD_TYPE
}
${
EXTERNAL_OPTIONAL_ARGS
}
CMAKE_CACHE_ARGS
-DCMAKE_BUILD_TYPE:STRING=
${
THIRD_PARTY_BUILD_TYPE
}
-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON
-DCMAKE_INSTALL_PREFIX:PATH=
${
WARPCTC_INSTALL_DIR
}
BUILD_BYPRODUCTS
${
WARPCTC_LIBRARIES
}
)
else
()
else
()
if
(
WIN32
)
set
(
WARPCTC_C_FLAGS
${
CMAKE_C_FLAGS
}
)
set
(
WARPCTC_C_FLAGS $<FILTER:
${
CMAKE_C_FLAGS
}
,EXCLUDE,/Zc:inline>
)
set
(
WARPCTC_C_FLAGS_DEBUG
${
CMAKE_C_FLAGS_DEBUG
}
)
set
(
WARPCTC_C_FLAGS_DEBUG
set
(
WARPCTC_C_FLAGS_RELEASE
${
CMAKE_C_FLAGS_RELEASE
}
)
$<FILTER:
${
CMAKE_C_FLAGS_DEBUG
}
,EXCLUDE,/Zc:inline>
)
set
(
WARPCTC_CXX_FLAGS
${
CMAKE_CXX_FLAGS
}
)
set
(
WARPCTC_C_FLAGS_RELEASE
set
(
WARPCTC_CXX_FLAGS_RELEASE
${
CMAKE_CXX_FLAGS_RELEASE
}
)
$<FILTER:
${
CMAKE_C_FLAGS_RELEASE
}
,EXCLUDE,/Zc:inline>
)
set
(
WARPCTC_CXX_FLAGS_DEBUG
${
CMAKE_CXX_FLAGS_DEBUG
}
)
set
(
WARPCTC_CXX_FLAGS $<FILTER:
${
CMAKE_CXX_FLAGS
}
,EXCLUDE,/Zc:inline>
)
set
(
WARPCTC_CXX_FLAGS_RELEASE
$<FILTER:
${
CMAKE_CXX_FLAGS_RELEASE
}
,EXCLUDE,/Zc:inline>
)
set
(
WARPCTC_CXX_FLAGS_DEBUG
$<FILTER:
${
CMAKE_CXX_FLAGS_DEBUG
}
,EXCLUDE,/Zc:inline>
)
else
()
set
(
WARPCTC_C_FLAGS
${
CMAKE_C_FLAGS
}
)
set
(
WARPCTC_C_FLAGS_DEBUG
${
CMAKE_C_FLAGS_DEBUG
}
)
set
(
WARPCTC_C_FLAGS_RELEASE
${
CMAKE_C_FLAGS_RELEASE
}
)
set
(
WARPCTC_CXX_FLAGS
${
CMAKE_CXX_FLAGS
}
)
set
(
WARPCTC_CXX_FLAGS_RELEASE
${
CMAKE_CXX_FLAGS_RELEASE
}
)
set
(
WARPCTC_CXX_FLAGS_DEBUG
${
CMAKE_CXX_FLAGS_DEBUG
}
)
endif
()
ExternalProject_Add
(
extern_warpctc
${
EXTERNAL_PROJECT_LOG_ARGS
}
${
SHALLOW_CLONE
}
GIT_REPOSITORY
${
WARPCTC_REPOSITORY
}
GIT_TAG
${
WARPCTC_TAG
}
PREFIX
${
WARPCTC_PREFIX_DIR
}
UPDATE_COMMAND
""
PATCH_COMMAND
${
WARPCTC_PATCH_COMMAND
}
#BUILD_ALWAYS 1
CMAKE_ARGS -DCMAKE_CXX_COMPILER=
${
CMAKE_CXX_COMPILER
}
-DCMAKE_C_COMPILER=
${
CMAKE_C_COMPILER
}
-DCMAKE_C_FLAGS=
${
WARPCTC_C_FLAGS
}
-DCMAKE_C_FLAGS_DEBUG=
${
WARPCTC_C_FLAGS_DEBUG
}
-DCMAKE_C_FLAGS_RELEASE=
${
WARPCTC_C_FLAGS_RELEASE
}
-DCMAKE_CXX_FLAGS=
${
WARPCTC_CXX_FLAGS
}
-DCMAKE_CXX_FLAGS_RELEASE=
${
WARPCTC_CXX_FLAGS_RELEASE
}
-DCMAKE_CXX_FLAGS_DEBUG=
${
WARPCTC_CXX_FLAGS_DEBUG
}
-DCMAKE_INSTALL_PREFIX=
${
WARPCTC_INSTALL_DIR
}
-DWITH_GPU=
${
WITH_GPU
}
-DWITH_ROCM=
${
WITH_ROCM
}
-DWITH_OMP=
${
USE_OMP
}
-DWITH_TORCH=OFF
-DCMAKE_DISABLE_FIND_PACKAGE_Torch=ON
-DBUILD_SHARED=ON
-DBUILD_TESTS=OFF
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
-DCMAKE_BUILD_TYPE=
${
THIRD_PARTY_BUILD_TYPE
}
-DCUDA_TOOLKIT_ROOT_DIR=
${
CUDA_TOOLKIT_ROOT_DIR
}
${
EXTERNAL_OPTIONAL_ARGS
}
${
WARPCTC_CCBIN_OPTION
}
CMAKE_CACHE_ARGS
-DCMAKE_BUILD_TYPE:STRING=
${
THIRD_PARTY_BUILD_TYPE
}
-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON
-DCMAKE_INSTALL_PREFIX:PATH=
${
WARPCTC_INSTALL_DIR
}
BUILD_BYPRODUCTS
${
WARPCTC_LIBRARIES
}
)
endif
()
endif
()
ExternalProject_Add
(
extern_warpctc
${
EXTERNAL_PROJECT_LOG_ARGS
}
SOURCE_DIR
${
SOURCE_DIR
}
PREFIX
${
WARPCTC_PREFIX_DIR
}
UPDATE_COMMAND
""
PATCH_COMMAND
${
WARPCTC_PATCH_COMMAND
}
#BUILD_ALWAYS 1
CMAKE_ARGS -DCMAKE_CXX_COMPILER=
${
CMAKE_CXX_COMPILER
}
-DCMAKE_C_COMPILER=
${
CMAKE_C_COMPILER
}
-DCMAKE_C_FLAGS=
${
WARPCTC_C_FLAGS
}
-DCMAKE_C_FLAGS_DEBUG=
${
WARPCTC_C_FLAGS_DEBUG
}
-DCMAKE_C_FLAGS_RELEASE=
${
WARPCTC_C_FLAGS_RELEASE
}
-DCMAKE_CXX_FLAGS=
${
WARPCTC_CXX_FLAGS
}
-DCMAKE_CXX_FLAGS_RELEASE=
${
WARPCTC_CXX_FLAGS_RELEASE
}
-DCMAKE_CXX_FLAGS_DEBUG=
${
WARPCTC_CXX_FLAGS_DEBUG
}
-DCMAKE_INSTALL_PREFIX=
${
WARPCTC_INSTALL_DIR
}
-DWITH_GPU=
${
WITH_GPU
}
-DWITH_ROCM=
${
WITH_ROCM
}
-DWITH_OMP=
${
USE_OMP
}
-DWITH_TORCH=OFF
-DCMAKE_DISABLE_FIND_PACKAGE_Torch=ON
-DBUILD_SHARED=ON
-DBUILD_TESTS=OFF
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
-DCMAKE_BUILD_TYPE=
${
THIRD_PARTY_BUILD_TYPE
}
-DCUDA_TOOLKIT_ROOT_DIR=
${
CUDA_TOOLKIT_ROOT_DIR
}
${
EXTERNAL_OPTIONAL_ARGS
}
${
WARPCTC_CCBIN_OPTION
}
CMAKE_CACHE_ARGS
-DCMAKE_BUILD_TYPE:STRING=
${
THIRD_PARTY_BUILD_TYPE
}
-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON
-DCMAKE_INSTALL_PREFIX:PATH=
${
WARPCTC_INSTALL_DIR
}
BUILD_BYPRODUCTS
${
WARPCTC_LIBRARIES
}
)
message
(
STATUS
"warp-ctc library:
${
WARPCTC_LIBRARIES
}
"
)
message
(
STATUS
"warp-ctc library:
${
WARPCTC_LIBRARIES
}
"
)
get_filename_component
(
WARPCTC_LIBRARY_PATH
${
WARPCTC_LIBRARIES
}
DIRECTORY
)
get_filename_component
(
WARPCTC_LIBRARY_PATH
${
WARPCTC_LIBRARIES
}
DIRECTORY
)
include_directories
(
${
WARPCTC_INCLUDE_DIR
}
include_directories
(
${
WARPCTC_INCLUDE_DIR
}
)
# For warpctc code to include its headers.
)
# For warpctc code to include its headers.
add_library
(
warpctc SHARED IMPORTED GLOBAL
)
add_library
(
warpctc INTERFACE
)
set_property
(
TARGET warpctc PROPERTY IMPORTED_LOCATION
${
WARPCTC_LIBRARIES
}
)
add_dependencies
(
warpctc extern_warpctc
)
add_dependencies
(
warpctc extern_warpctc
)
cmake/external/warprnnt.cmake
0 → 100644
View file @
992bec46
# Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
include
(
ExternalProject
)
if
(
WITH_ROCM
)
add_definitions
(
-DWARPRNNT_WITH_HIP
)
endif
()
set
(
WARPRNNT_PREFIX_DIR
${
THIRD_PARTY_PATH
}
/warprnnt
)
set
(
WARPRNNT_INSTALL_DIR
${
THIRD_PARTY_PATH
}
/install/warprnnt
)
set
(
WARPRNNT_TAG 7ea6bfe748779c245a0fcaa5dd9383826273eff2
)
set
(
SOURCE_DIR
${
PADDLE_SOURCE_DIR
}
/third_party/warprnnt
)
set
(
WARPRNNT_PATCH_COMMAND
""
)
set
(
WARPRNNT_CCBIN_OPTION
""
)
if
(
NOT WIN32 AND WITH_GPU
)
if
(
${
CMAKE_CUDA_COMPILER_VERSION
}
LESS 12.0 AND
${
CMAKE_CXX_COMPILER_VERSION
}
VERSION_GREATER 12.0
)
file
(
TO_NATIVE_PATH
${
PADDLE_SOURCE_DIR
}
/patches/warprnnt/CMakeLists.txt.patch native_src
)
set
(
WARPRNNT_PATCH_COMMAND patch -d
${
SOURCE_DIR
}
<
${
native_src
}
)
set
(
WARPRNNT_CCBIN_OPTION -DCCBIN_COMPILER=
${
CCBIN_COMPILER
}
)
endif
()
endif
()
set
(
WARPRNNT_INCLUDE_DIR
"
${
WARPRNNT_INSTALL_DIR
}
/include"
CACHE PATH
"Warp-rnnt Directory"
FORCE
)
# Used in unit test test_WarpCTCLayer
set
(
WARPRNNT_LIB_DIR
"
${
WARPRNNT_INSTALL_DIR
}
/lib"
CACHE PATH
"Warp-rnnt Library Directory"
FORCE
)
if
(
WIN32
)
set
(
WARPRNNT_LIBRARIES
"
${
WARPRNNT_INSTALL_DIR
}
/bin/warprnnt
${
CMAKE_SHARED_LIBRARY_SUFFIX
}
"
CACHE FILEPATH
"Warp-rnnt Library"
FORCE
)
else
()
set
(
WARPRNNT_LIBRARIES
"
${
WARPRNNT_INSTALL_DIR
}
/lib/libwarprnnt
${
CMAKE_SHARED_LIBRARY_SUFFIX
}
"
CACHE FILEPATH
"Warp-rnnt Library"
FORCE
)
endif
()
if
(
CMAKE_CXX_COMPILER_ID STREQUAL
"Clang"
OR CMAKE_CXX_COMPILER_ID STREQUAL
"AppleClang"
OR WIN32
)
set
(
USE_OMP OFF
)
else
()
set
(
USE_OMP ON
)
endif
()
if
(
WIN32
)
set
(
WARPRNNT_C_FLAGS $<FILTER:
${
CMAKE_C_FLAGS
}
,EXCLUDE,/Zc:inline>
)
set
(
WARPRNNT_C_FLAGS_DEBUG
$<FILTER:
${
CMAKE_C_FLAGS_DEBUG
}
,EXCLUDE,/Zc:inline>
)
set
(
WARPRNNT_C_FLAGS_RELEASE
$<FILTER:
${
CMAKE_C_FLAGS_RELEASE
}
,EXCLUDE,/Zc:inline>
)
set
(
WARPRNNT_CXX_FLAGS $<FILTER:
${
CMAKE_CXX_FLAGS
}
,EXCLUDE,/Zc:inline>
)
set
(
WARPRNNT_CXX_FLAGS_RELEASE
$<FILTER:
${
CMAKE_CXX_FLAGS_RELEASE
}
,EXCLUDE,/Zc:inline>
)
set
(
WARPRNNT_CXX_FLAGS_DEBUG
$<FILTER:
${
CMAKE_CXX_FLAGS_DEBUG
}
,EXCLUDE,/Zc:inline>
)
else
()
set
(
WARPRNNT_C_FLAGS
${
CMAKE_C_FLAGS
}
)
set
(
WARPRNNT_C_FLAGS_DEBUG
${
CMAKE_C_FLAGS_DEBUG
}
)
set
(
WARPRNNT_C_FLAGS_RELEASE
${
CMAKE_C_FLAGS_RELEASE
}
)
set
(
WARPRNNT_CXX_FLAGS
${
CMAKE_CXX_FLAGS
}
)
set
(
WARPRNNT_CXX_FLAGS_RELEASE
${
CMAKE_CXX_FLAGS_RELEASE
}
)
set
(
WARPRNNT_CXX_FLAGS_DEBUG
${
CMAKE_CXX_FLAGS_DEBUG
}
)
endif
()
ExternalProject_Add
(
extern_warprnnt
${
EXTERNAL_PROJECT_LOG_ARGS
}
SOURCE_DIR
${
SOURCE_DIR
}
PREFIX
${
WARPRNNT_PREFIX_DIR
}
UPDATE_COMMAND
""
PATCH_COMMAND
""
#BUILD_ALWAYS 1
CMAKE_ARGS -DCMAKE_CXX_COMPILER=
${
CMAKE_CXX_COMPILER
}
-DCMAKE_C_COMPILER=
${
CMAKE_C_COMPILER
}
-DCMAKE_C_FLAGS=
${
WARPRNNT_C_FLAGS
}
-DCMAKE_C_FLAGS_DEBUG=
${
WARPRNNT_C_FLAGS_DEBUG
}
-DCMAKE_C_FLAGS_RELEASE=
${
WARPRNNT_C_FLAGS_RELEASE
}
-DCMAKE_CXX_FLAGS=
${
WARPRNNT_CXX_FLAGS
}
-DCMAKE_CXX_FLAGS_RELEASE=
${
WARPRNNT_CXX_FLAGS_RELEASE
}
-DCMAKE_CXX_FLAGS_DEBUG=
${
WARPRNNT_CXX_FLAGS_DEBUG
}
-DCMAKE_INSTALL_PREFIX=
${
WARPRNNT_INSTALL_DIR
}
-DWITH_GPU=
${
WITH_GPU
}
-DWITH_ROCM=
${
WITH_ROCM
}
-DWITH_OMP=
${
USE_OMP
}
-DBUILD_SHARED=ON
-DBUILD_TESTS=OFF
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
-DCMAKE_BUILD_TYPE=
${
THIRD_PARTY_BUILD_TYPE
}
${
EXTERNAL_OPTIONAL_ARGS
}
${
WARPCTC_CCBIN_OPTION
}
CMAKE_CACHE_ARGS
-DCMAKE_BUILD_TYPE:STRING=
${
THIRD_PARTY_BUILD_TYPE
}
-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON
-DCMAKE_INSTALL_PREFIX:PATH=
${
WARPRNNT_INSTALL_DIR
}
BUILD_BYPRODUCTS
${
WARPRNNT_LIBRARIES
}
)
message
(
STATUS
"warp-rnnt library:
${
WARPRNNT_LIBRARIES
}
"
)
get_filename_component
(
WARPRNNT_LIBRARY_PATH
${
WARPRNNT_LIBRARIES
}
DIRECTORY
)
include_directories
(
${
WARPRNNT_INCLUDE_DIR
}
)
# For warprnnt code to include its headers.
add_library
(
warprnnt INTERFACE
)
# set_property(TARGET warprnnt PROPERTY IMPORTED_LOCATION ${WARPRNNT_LIBRARIES})
add_dependencies
(
warprnnt extern_warprnnt
)
cmake/external/xbyak.cmake
View file @
992bec46
...
@@ -20,6 +20,7 @@ set(XBYAK_INSTALL_ROOT ${THIRD_PARTY_PATH}/install/xbyak)
...
@@ -20,6 +20,7 @@ set(XBYAK_INSTALL_ROOT ${THIRD_PARTY_PATH}/install/xbyak)
set
(
XBYAK_INC_DIR
${
XBYAK_INSTALL_ROOT
}
/include
)
set
(
XBYAK_INC_DIR
${
XBYAK_INSTALL_ROOT
}
/include
)
set
(
XBYAK_REPOSITORY
${
GIT_URL
}
/herumi/xbyak.git
)
set
(
XBYAK_REPOSITORY
${
GIT_URL
}
/herumi/xbyak.git
)
set
(
XBYAK_TAG v5.81
)
# Dec 19, 2019
set
(
XBYAK_TAG v5.81
)
# Dec 19, 2019
set
(
SOURCE_DIR
${
PADDLE_SOURCE_DIR
}
/third_party/xbyak
)
include_directories
(
${
XBYAK_INC_DIR
}
)
include_directories
(
${
XBYAK_INC_DIR
}
)
include_directories
(
${
XBYAK_INC_DIR
}
/xbyak
)
include_directories
(
${
XBYAK_INC_DIR
}
/xbyak
)
...
@@ -33,15 +34,12 @@ add_definitions(-DXBYAK_NO_OP_NAMES)
...
@@ -33,15 +34,12 @@ add_definitions(-DXBYAK_NO_OP_NAMES)
ExternalProject_Add
(
ExternalProject_Add
(
${
XBYAK_PROJECT
}
${
XBYAK_PROJECT
}
${
EXTERNAL_PROJECT_LOG_ARGS
}
${
SHALLOW_CLONE
}
${
EXTERNAL_PROJECT_LOG_ARGS
}
${
SHALLOW_CLONE
}
GIT_REPOSITORY
${
XBYAK_REPOSITORY
}
SOURCE_DIR
${
SOURCE_DIR
}
GIT_TAG
${
XBYAK_TAG
}
DEPENDS
""
DEPENDS
""
PREFIX
${
XBYAK_PREFIX_DIR
}
PREFIX
${
XBYAK_PREFIX_DIR
}
UPDATE_COMMAND
""
UPDATE_COMMAND
""
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=
${
XBYAK_INSTALL_ROOT
}
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=
${
XBYAK_INSTALL_ROOT
}
-DCMAKE_BUILD_TYPE=
${
THIRD_PARTY_BUILD_TYPE
}
CMAKE_CACHE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=
${
XBYAK_INSTALL_ROOT
}
)
CMAKE_CACHE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=
${
XBYAK_INSTALL_ROOT
}
-DCMAKE_BUILD_TYPE=
${
THIRD_PARTY_BUILD_TYPE
}
)
add_library
(
xbyak INTERFACE
)
add_library
(
xbyak INTERFACE
)
...
...
Prev
1
2
3
4
5
6
7
8
…
18
Next
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment