Skip to content

Commit 6dd52c5

Browse files
authored
Ascend rc (#30483)
1 parent 715d862 commit 6dd52c5

30 files changed

+1904
-24
lines changed

CMakeLists.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,13 @@ option(WITH_GPU "Compile PaddlePaddle with NVIDIA GPU" ${CUDA_F
3131
option(WITH_TENSORRT "Compile PaddlePaddle with NVIDIA TensorRT" OFF)
3232
option(WITH_XPU "Compile PaddlePaddle with BAIDU KUNLUN XPU" OFF)
3333
option(WITH_WIN_DUMP_DBG "Compile with windows core dump debug mode" OFF)
34+
option(WITH_ASCEND "Compile PaddlePaddle with ASCEND" OFF)
3435
if (WITH_GPU AND WITH_XPU)
3536
message(FATAL_ERROR "Error when compile GPU and XPU at the same time")
3637
endif()
38+
if (WITH_GPU AND WITH_ASCEND)
39+
message(FATAL_ERROR "Error when compile GPU and ASCEND at the same time")
40+
endif()
3741
# cmake 3.12, 3.13, 3.14 will append gcc link options to nvcc, and nvcc doesn't recognize them.
3842
if(WITH_GPU AND (${CMAKE_VERSION} VERSION_GREATER_EQUAL 3.12) AND (${CMAKE_VERSION} VERSION_LESS 3.15))
3943
message(FATAL_ERROR "cmake ${CMAKE_VERSION} is not supported when WITH_GPU=ON because of bug https://cmake.org/pipermail/cmake/2018-September/068195.html. "
@@ -322,6 +326,7 @@ set(PADDLE_PYTHON_BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}/python/build")
322326

323327
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O3 -g -DNDEBUG")
324328
set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O3 -g -DNDEBUG")
329+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_GLIBCXX_USE_CXX11_ABI=0")
325330

326331
if(ON_INFER)
327332
# you can trun off the paddle fluid and inference lib by set ON_INFER=OFF

cmake/configure.cmake

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,10 @@ if(WITH_BOX_PS)
7878
add_definitions(-DPADDLE_WITH_BOX_PS)
7979
endif()
8080

81+
if(WITH_ASCEND)
82+
add_definitions(-DPADDLE_WITH_ASCEND)
83+
endif()
84+
8185
if(WITH_XPU)
8286
message(STATUS "Compile with XPU!")
8387
add_definitions(-DPADDLE_WITH_XPU)

cmake/external/ascend.cmake

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
# Copyright (c) 2021 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+
INCLUDE(ExternalProject)
16+
17+
SET(ASCEND_PROJECT "extern_ascend")
18+
IF((NOT DEFINED ASCEND_VER) OR (NOT DEFINED ASCEND_URL))
19+
MESSAGE(STATUS "use pre defined download url")
20+
SET(ASCEND_VER "0.1.1" CACHE STRING "" FORCE)
21+
SET(ASCEND_NAME "ascend" CACHE STRING "" FORCE)
22+
SET(ASCEND_URL "http://paddle-ascend.bj.bcebos.com/ascend.tar.gz" CACHE STRING "" FORCE)
23+
ENDIF()
24+
MESSAGE(STATUS "ASCEND_NAME: ${ASCEND_NAME}, ASCEND_URL: ${ASCEND_URL}")
25+
SET(ASCEND_SOURCE_DIR "${THIRD_PARTY_PATH}/ascend")
26+
SET(ASCEND_DOWNLOAD_DIR "${ASCEND_SOURCE_DIR}/src/${ASCEND_PROJECT}")
27+
SET(ASCEND_DST_DIR "ascend")
28+
SET(ASCEND_INSTALL_ROOT "${THIRD_PARTY_PATH}/install")
29+
SET(ASCEND_INSTALL_DIR ${ASCEND_INSTALL_ROOT}/${ASCEND_DST_DIR})
30+
SET(ASCEND_ROOT ${ASCEND_INSTALL_DIR})
31+
SET(ASCEND_INC_DIR ${ASCEND_ROOT}/include)
32+
SET(ASCEND_LIB_DIR ${ASCEND_ROOT}/lib)
33+
SET(ASCEND_LIB ${ASCEND_LIB_DIR}/libge_runner.so)
34+
SET(ASCEND_GRAPH_LIB ${ASCEND_LIB_DIR}/libgraph.so)
35+
SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_RPATH}" "${ASCEND_ROOT}/lib")
36+
37+
INCLUDE_DIRECTORIES(${ASCEND_INC_DIR})
38+
FILE(WRITE ${ASCEND_DOWNLOAD_DIR}/CMakeLists.txt
39+
"PROJECT(ASCEND)\n"
40+
"cmake_minimum_required(VERSION 3.0)\n"
41+
"install(DIRECTORY ${ASCEND_NAME}/include ${ASCEND_NAME}/lib \n"
42+
" DESTINATION ${ASCEND_DST_DIR})\n")
43+
ExternalProject_Add(
44+
${ASCEND_PROJECT}
45+
${EXTERNAL_PROJECT_LOG_ARGS}
46+
PREFIX ${ASCEND_SOURCE_DIR}
47+
DOWNLOAD_DIR ${ASCEND_DOWNLOAD_DIR}
48+
DOWNLOAD_COMMAND wget --no-check-certificate ${ASCEND_URL} -c -q -O ${ASCEND_NAME}.tar.gz
49+
&& tar zxvf ${ASCEND_NAME}.tar.gz
50+
DOWNLOAD_NO_PROGRESS 1
51+
UPDATE_COMMAND ""
52+
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${ASCEND_INSTALL_ROOT}
53+
CMAKE_CACHE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=${ASCEND_INSTALL_ROOT}
54+
)
55+
ADD_LIBRARY(ascend SHARED IMPORTED GLOBAL)
56+
SET_PROPERTY(TARGET ascend PROPERTY IMPORTED_LOCATION ${ASCEND_LIB})
57+
58+
ADD_LIBRARY(ascend_graph SHARED IMPORTED GLOBAL)
59+
SET_PROPERTY(TARGET ascend_graph PROPERTY IMPORTED_LOCATION ${ASCEND_GRAPH_LIB})
60+
ADD_DEPENDENCIES(ascend ascend_graph ${ASCEND_PROJECT})
61+

cmake/external/cryptopp.cmake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ INCLUDE(ExternalProject)
1717
SET(CRYPTOPP_PREFIX_DIR ${THIRD_PARTY_PATH}/cryptopp)
1818
SET(CRYPTOPP_INSTALL_DIR ${THIRD_PARTY_PATH}/install/cryptopp)
1919
SET(CRYPTOPP_INCLUDE_DIR "${CRYPTOPP_INSTALL_DIR}/include" CACHE PATH "cryptopp include directory." FORCE)
20-
SET(CRYPTOPP_REPOSITORY ${GIT_URL}/weidai11/cryptopp.git)
20+
SET(CRYPTOPP_REPOSITORY https://gitee.com/tianjianhe/cryptopp.git)
2121
SET(CRYPTOPP_TAG CRYPTOPP_8_2_0)
2222

2323
IF(WIN32)
@@ -33,7 +33,7 @@ set(CRYPTOPP_CMAKE_ARGS ${COMMON_CMAKE_ARGS}
3333
-DCMAKE_INSTALL_LIBDIR=${CRYPTOPP_INSTALL_DIR}/lib
3434
-DCMAKE_INSTALL_PREFIX=${CRYPTOPP_INSTALL_DIR}
3535
-DCMAKE_BUILD_TYPE=${THIRD_PARTY_BUILD_TYPE}
36-
-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
36+
"-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS} -D_GLIBCXX_USE_CXX11_ABI=0"
3737
-DCMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE}
3838
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
3939
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}

cmake/external/dlpack.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ include(ExternalProject)
1717
set(DLPACK_PREFIX_DIR ${THIRD_PARTY_PATH}/dlpack)
1818
set(DLPACK_SOURCE_DIR ${THIRD_PARTY_PATH}/dlpack/src/extern_dlpack)
1919

20-
set(DLPACK_REPOSITORY ${GIT_URL}/dmlc/dlpack.git)
20+
set(DLPACK_REPOSITORY https://gitee.com/tianjianhe/dlpack.git)
2121
set(DLPACK_TAG v0.2)
2222

2323
cache_third_party(extern_dlpack

cmake/external/gflags.cmake

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ SET(GFLAGS_PREFIX_DIR ${THIRD_PARTY_PATH}/gflags)
1818
SET(GFLAGS_SOURCE_DIR ${THIRD_PARTY_PATH}/gflags/src/extern_gflags)
1919
SET(GFLAGS_INSTALL_DIR ${THIRD_PARTY_PATH}/install/gflags)
2020
SET(GFLAGS_INCLUDE_DIR "${GFLAGS_INSTALL_DIR}/include" CACHE PATH "gflags include directory." FORCE)
21-
set(GFLAGS_REPOSITORY ${GIT_URL}/gflags/gflags.git)
22-
set(GFLAGS_TAG "v2.2.2")
21+
set(GFLAGS_REPOSITORY https://gitee.com/tianjianhe/gflags.git)
22+
set(GFLAGS_TAG 77592648e3f3be87d6c7123eb81cbad75f9aef5a)
2323
IF(WIN32)
2424
set(GFLAGS_LIBRARIES "${GFLAGS_INSTALL_DIR}/lib/gflags_static.lib" CACHE FILEPATH "GFLAGS_LIBRARIES" FORCE)
2525
ELSE(WIN32)
@@ -48,7 +48,7 @@ ExternalProject_Add(
4848
INSTALL_COMMAND ${INSTALL_COMMAND}
4949
CMAKE_ARGS -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
5050
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
51-
-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
51+
"-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS} -D_GLIBCXX_USE_CXX11_ABI=0"
5252
-DCMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE}
5353
-DCMAKE_CXX_FLAGS_DEBUG=${CMAKE_CXX_FLAGS_DEBUG}
5454
-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}

cmake/external/glog.cmake

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ SET(GLOG_PREFIX_DIR ${THIRD_PARTY_PATH}/glog)
1818
SET(GLOG_SOURCE_DIR ${THIRD_PARTY_PATH}/glog/src/extern_glog)
1919
SET(GLOG_INSTALL_DIR ${THIRD_PARTY_PATH}/install/glog)
2020
SET(GLOG_INCLUDE_DIR "${GLOG_INSTALL_DIR}/include" CACHE PATH "glog include directory." FORCE)
21-
SET(GLOG_REPOSITORY ${GIT_URL}/google/glog.git)
22-
SET(GLOG_TAG v0.4.0)
21+
SET(GLOG_REPOSITORY https://gitee.com/tianjianhe/glog.git)
22+
SET(GLOG_TAG v0.3.5)
2323

2424
IF(WIN32)
2525
SET(GLOG_LIBRARIES "${GLOG_INSTALL_DIR}/lib/glog.lib" CACHE FILEPATH "glog library." FORCE)
@@ -47,7 +47,7 @@ ExternalProject_Add(
4747
SOURCE_DIR ${GLOG_SOURCE_DIR}
4848
CMAKE_ARGS -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
4949
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
50-
-DCMAKE_CXX_FLAGS=${GLOG_CMAKE_CXX_FLAGS}
50+
"-DCMAKE_CXX_FLAGS=${GLOG_CMAKE_CXX_FLAGS} -D_GLIBCXX_USE_CXX11_ABI=0"
5151
-DCMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE}
5252
-DCMAKE_CXX_FLAGS_DEBUG=${CMAKE_CXX_FLAGS_DEBUG}
5353
-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}

cmake/external/grpc.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ IF(APPLE)
2828
SET(GRPC_INSTALL_CMD make prefix=${GRPC_INSTALL_DIR} install)
2929
ELSE()
3030
SET(GRPC_CFLAGS "-Wno-error -std=c11 ${CLFAGS}")
31-
SET(GRPC_CXXFLAGS "-Wno-error -std=c++11 ${CXXFLAGS}")
31+
SET(GRPC_CXXFLAGS "-Wno-error -std=c++11 ${CXXFLAGS} -D_GLIBCXX_USE_CXX11_ABI=0")
3232
SET(BUILD_CMD make CFLAGS=${GRPC_CFLAGS} CXXFLAGS=${GRPC_CXXFLAGS} HAS_SYSTEM_PROTOBUF=false -s -j ${NUM_OF_PROCESSOR} static grpc_cpp_plugin)
3333
SET(GRPC_INSTALL_CMD make prefix=${GRPC_INSTALL_DIR} install CFLAGS=${GRPC_CFLAGS} CXXFLAGS=${GRPC_CXXFLAGS})
3434
ENDIF()

cmake/external/openblas.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ INCLUDE(ExternalProject)
1717
SET(CBLAS_PREFIX_DIR ${THIRD_PARTY_PATH}/openblas)
1818
SET(CBLAS_SOURCE_DIR ${THIRD_PARTY_PATH}/openblas/src/extern_openblas)
1919
SET(CBLAS_INSTALL_DIR ${THIRD_PARTY_PATH}/install/openblas)
20-
SET(CBLAS_REPOSITORY ${GIT_URL}/xianyi/OpenBLAS.git)
20+
SET(CBLAS_REPOSITORY https://gitee.com/tianjianhe/OpenBLAS.git)
2121
SET(CBLAS_TAG v0.3.7)
2222
if(WITH_MIPS)
2323
SET(CBLAS_TAG v0.3.13)

cmake/external/protobuf.cmake

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@ FUNCTION(build_protobuf TARGET_NAME BUILD_FOR_HOST)
183183
"-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}"
184184
"-DCMAKE_C_FLAGS_DEBUG=${CMAKE_C_FLAGS_DEBUG}"
185185
"-DCMAKE_C_FLAGS_RELEASE=${CMAKE_C_FLAGS_RELEASE}"
186-
"-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}"
186+
"-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS} -D_GLIBCXX_USE_CXX11_ABI=0"
187187
"-DCMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE}"
188188
"-DCMAKE_CXX_FLAGS_DEBUG=${CMAKE_CXX_FLAGS_DEBUG}"
189189
"-Dprotobuf_WITH_ZLIB=ON"
@@ -198,8 +198,8 @@ FUNCTION(build_protobuf TARGET_NAME BUILD_FOR_HOST)
198198
"-Dprotobuf_MSVC_STATIC_RUNTIME=${MSVC_STATIC_CRT}")
199199
ENDIF()
200200

201-
SET(PROTOBUF_REPOSITORY ${GIT_URL}/protocolbuffers/protobuf.git)
202-
SET(PROTOBUF_TAG 9f75c5aa851cd877fb0d93ccc31b8567a6706546)
201+
SET(PROTOBUF_REPOSITORY https://gitee.com/tianjianhe/protobuf.git)
202+
SET(PROTOBUF_TAG v3.8.0)
203203

204204
cache_third_party(${TARGET_NAME}
205205
REPOSITORY ${PROTOBUF_REPOSITORY}
@@ -234,7 +234,7 @@ FUNCTION(build_protobuf TARGET_NAME BUILD_FOR_HOST)
234234
)
235235
ENDFUNCTION()
236236

237-
SET(PROTOBUF_VERSION 3.1.0)
237+
# SET(PROTOBUF_VERSION 3.1.0)
238238

239239
IF(NOT PROTOBUF_FOUND)
240240
build_protobuf(extern_protobuf FALSE)

0 commit comments

Comments
 (0)