Skip to content

Commit ba68ce1

Browse files
committed
Merge branch 'develop' into stride
2 parents c1738e2 + 3133c09 commit ba68ce1

Some content is hidden

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

41 files changed

+920
-260
lines changed

CMakeLists.txt

Lines changed: 28 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,19 +12,26 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License
1414

15-
cmake_minimum_required(VERSION 3.0)
16-
17-
project(paddle CXX C)
18-
1915
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake")
2016
set(PROJ_ROOT ${CMAKE_SOURCE_DIR})
2117

18+
include(system)
19+
20+
if(ANDROID)
21+
cmake_minimum_required(VERSION 3.7)
22+
else()
23+
cmake_minimum_required(VERSION 3.0)
24+
endif()
25+
26+
project(paddle CXX C)
27+
2228
find_package(Sphinx)
23-
find_package(CUDA QUIET)
29+
if(NOT CMAKE_CROSSCOMPILING)
30+
find_package(CUDA QUIET)
31+
endif(NOT CMAKE_CROSSCOMPILING)
2432
find_package(Git REQUIRED)
2533
find_package(Threads REQUIRED)
2634

27-
include(system)
2835
include(simd)
2936

3037
################################ Configurations #######################################
@@ -51,6 +58,21 @@ if(NOT CMAKE_BUILD_TYPE)
5158
FORCE)
5259
endif()
5360

61+
if(ANDROID)
62+
if(${CMAKE_SYSTEM_VERSION} VERSION_LESS "21")
63+
message(FATAL_ERROR "Unsupport standalone toolchains with Android API level lower than 21")
64+
endif()
65+
66+
set(WITH_GPU OFF CACHE STRING
67+
"Disable GPU when cross-compiling for Android" FORCE)
68+
set(WITH_AVX OFF CACHE STRING
69+
"Disable AVX when cross-compiling for Android" FORCE)
70+
set(WITH_PYTHON OFF CACHE STRING
71+
"Disable PYTHON when cross-compiling for Android" FORCE)
72+
set(WITH_RDMA OFF CACHE STRING
73+
"Disable RDMA when cross-compiling for Android" FORCE)
74+
endif(ANDROID)
75+
5476
set(THIRD_PARTY_PATH "${PROJ_ROOT}/third_party" CACHE STRING
5577
"A path setting third party libraries download & build directories.")
5678
########################################################################################
@@ -75,7 +97,6 @@ include(flags) # set paddle compile flags
7597
include(cudnn) # set cudnn libraries
7698
include(version) # set PADDLE_VERSION
7799
include(coveralls) # set code coverage
78-
79100
include(configure) # add paddle env configuration
80101

81102
include_directories("${PROJ_ROOT}")

cmake/cblas.cmake

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ set(CBLAS_FOUND OFF)
1919
set(INTEL_ROOT "/opt/intel" CACHE PATH "Folder contains intel libs")
2020
set(MKL_ROOT ${INTEL_ROOT}/mkl CACHE PATH "Folder contains MKL")
2121

22-
find_path(MKL_INCLUDE_DIR mkl.h PATHS
22+
find_path(MKL_INC_DIR mkl.h PATHS
2323
${MKL_ROOT}/include)
24-
find_path(MKL_INCLUDE_DIR mkl_lapacke.h PATHS
24+
find_path(MKL_LAPACK_INC_DIR mkl_lapacke.h PATHS
2525
${MKL_ROOT}/include)
2626
find_library(MKL_CORE_LIB NAMES mkl_core PATHS
2727
${MKL_ROOT}/lib
@@ -34,15 +34,19 @@ find_library(MKL_INTEL_LP64 NAMES mkl_intel_lp64 PATHS
3434
${MKL_ROOT}/lib/intel64)
3535

3636

37-
if(MKL_INCLUDE_DIR AND MKL_CORE_LIB AND MKL_SEQUENTIAL_LIB AND MKL_INTEL_LP64)
37+
if(MKL_INC_DIR AND MKL_CORE_LIB AND MKL_SEQUENTIAL_LIB AND MKL_INTEL_LP64)
3838
set(CBLAS_PROVIDER MKL)
39-
set(CBLAS_INC_DIR ${MKL_INCLUDE_DIR})
39+
set(CBLAS_INC_DIR ${MKL_INC_DIR})
4040
set(CBLAS_LIBRARIES ${MKL_INTEL_LP64}
4141
${MKL_SEQUENTIAL_LIB}
4242
${MKL_CORE_LIB})
4343
add_definitions(-DPADDLE_USE_MKL)
4444
message(STATUS "Found MKL (include: ${CBLAS_INC_DIR}, library: ${CBLAS_LIBRARIES})")
4545
set(CBLAS_FOUND ON)
46+
if(${MKL_LAPACK_INC_DIR})
47+
add_definitions(-DPADDLE_USE_LAPACK)
48+
message(STATUS "Found lapack in MKL (include: ${MKL_LAPACK_INC_DIR})")
49+
endif()
4650
return() # return file.
4751
endif()
4852

@@ -68,13 +72,17 @@ find_library(ATLAS_CBLAS_LIB NAMES cblas libcblas.so.3
6872
find_library(ATLAS_LIB NAMES lapack_atlas liblapack_atlas.so.3
6973
PATHS ${ATLAS_LIB_SEARCH_PATHS})
7074

71-
if(ATLAS_INC_DIR AND ATLAS_CBLAS_LIB AND ATLAS_LIB)
75+
if(ATLAS_INC_DIR AND ATLAS_CBLAS_LIB AND ATLAS_LIB AND NOT CBLAS_FOUND)
7276
set(CBLAS_PROVIDER ATLAS)
73-
set(CBLAS_INC_DIR ${ATLAS_INC_DIR} ${ATLAS_CLAPACK_INC_DIR})
77+
set(CBLAS_INC_DIR ${ATLAS_INC_DIR})
7478
set(CBLAS_LIBRARIES ${ATLAS_LIB} ${ATLAS_CBLAS_LIB})
7579
add_definitions(-DPADDLE_USE_ATLAS)
76-
message(STATUS "Found Atlas (include: ${CBLAS_INC_DIR}, library: ${CBLAS_LIBRARIES})")
80+
message(STATUS "Found ATLAS (include: ${CBLAS_INC_DIR}, library: ${CBLAS_LIBRARIES})")
7781
set(CBLAS_FOUND ON)
82+
if(ATLAS_CLAPACK_INC_DIR)
83+
add_definitions(-DPADDLE_USE_LAPACK)
84+
message(STATUS "Found lapack in ATLAS (include: ${ATLAS_CLAPACK_INC_DIR})")
85+
endif()
7886
return()
7987
endif()
8088

@@ -103,8 +111,12 @@ if(OPENBLAS_INC_DIR AND OPENBLAS_LIB)
103111
set(CBLAS_PROVIDER OPENBLAS)
104112
set(CBLAS_INC_DIR ${OPENBLAS_INC_DIR})
105113
set(CBLAS_LIBRARIES ${OPENBLAS_LIB})
106-
message(STATUS "Found OpenBlas (include: ${CBLAS_INC_DIR}, library: ${CBLAS_LIBRARIES})")
114+
message(STATUS "Found OpenBLAS (include: ${CBLAS_INC_DIR}, library: ${CBLAS_LIBRARIES})")
107115
set(CBLAS_FOUND ON)
116+
if(OPENBLAS_LAPACKE_INC_DIR)
117+
add_definitions(-DPADDLE_USE_LAPACK)
118+
message(STATUS "Found lapack in OpenBLAS (include: ${OPENBLAS_LAPACKE_INC_DIR})")
119+
endif()
108120
return()
109121
endif()
110122

cmake/configure.cmake

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,14 @@ if(NOT WITH_PROFILER)
3232
add_definitions(-DPADDLE_DISABLE_PROFILER)
3333
endif(NOT WITH_PROFILER)
3434

35+
if(NOT CMAKE_CROSSCOMPILING)
36+
if(WITH_AVX AND AVX_FOUND)
37+
set(SIMD_FLAG ${AVX_FLAG})
38+
elseif(SSE3_FOUND)
39+
set(SIMD_FLAG ${SSE3_FLAG})
40+
endif()
41+
endif()
42+
3543
if(NOT WITH_GPU)
3644
add_definitions(-DPADDLE_ONLY_CPU)
3745
add_definitions(-DHPPL_STUB_FUNC)
@@ -48,21 +56,12 @@ else()
4856
message(FATAL_ERROR "Paddle need cudnn to compile")
4957
endif()
5058

51-
if(WITH_AVX)
52-
set(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS} "-Xcompiler ${AVX_FLAG}")
53-
else(WITH_AVX)
54-
set(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS} "-Xcompiler ${SSE3_FLAG}")
55-
endif(WITH_AVX)
59+
set(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS} "-Xcompiler ${SIMD_FLAG}")
5660

5761
# Include cuda and cudnn
5862
include_directories(${CUDNN_INCLUDE_DIR})
5963
include_directories(${CUDA_TOOLKIT_INCLUDE})
6064
endif(NOT WITH_GPU)
6165

62-
if(WITH_AVX)
63-
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${AVX_FLAG}")
64-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${AVX_FLAG}")
65-
else(WITH_AVX)
66-
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${SSE3_FLAG}")
67-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SSE3_FLAG}")
68-
endif(WITH_AVX)
66+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${SIMD_FLAG}")
67+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SIMD_FLAG}")

cmake/cudnn.cmake

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
if(NOT WITH_GPU)
2+
return()
3+
endif()
4+
15
set(CUDNN_ROOT "" CACHE PATH "CUDNN ROOT")
26
find_path(CUDNN_INCLUDE_DIR cudnn.h
37
PATHS ${CUDNN_ROOT} ${CUDNN_ROOT}/include

cmake/external/gflags.cmake

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ ExternalProject_Add(
3333
UPDATE_COMMAND ""
3434
CMAKE_ARGS -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
3535
CMAKE_ARGS -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
36+
CMAKE_ARGS -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
37+
CMAKE_ARGS -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
3638
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${GFLAGS_INSTALL_DIR}
3739
CMAKE_ARGS -DCMAKE_POSITION_INDEPENDENT_CODE=ON
3840
CMAKE_ARGS -DBUILD_TESTING=OFF

cmake/external/glog.cmake

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ ExternalProject_Add(
3535
UPDATE_COMMAND ""
3636
CMAKE_ARGS -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
3737
CMAKE_ARGS -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
38+
CMAKE_ARGS -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
39+
CMAKE_ARGS -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
3840
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${GLOG_INSTALL_DIR}
3941
CMAKE_ARGS -DCMAKE_POSITION_INDEPENDENT_CODE=ON
4042
CMAKE_ARGS -DWITH_GFLAGS=ON

cmake/external/gtest.cmake

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@ IF(WITH_TESTING)
4343
UPDATE_COMMAND ""
4444
CMAKE_ARGS -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
4545
CMAKE_ARGS -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
46+
CMAKE_ARGS -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
47+
CMAKE_ARGS -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
4648
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${GTEST_INSTALL_DIR}
4749
CMAKE_ARGS -DCMAKE_POSITION_INDEPENDENT_CODE=ON
4850
CMAKE_ARGS -DBUILD_GMOCK=ON

cmake/external/openblas.cmake

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,8 @@ IF(NOT ${CBLAS_FOUND})
5454
"you need to set gfortran compiler: cmake .. -DCMAKE_Fortran_COMPILER=...")
5555
ENDIF(NOT CMAKE_Fortran_COMPILER)
5656

57+
ADD_DEFINITIONS(-DPADDLE_USE_LAPACK)
58+
5759
ExternalProject_Add(
5860
openblas
5961
${EXTERNAL_PROJECT_LOG_ARGS}

cmake/external/python.cmake

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -219,9 +219,9 @@ ELSE(PYTHONLIBS_FOUND AND PYTHONINTERP_FOUND)
219219

220220
ENDIF(PYTHONLIBS_FOUND AND PYTHONINTERP_FOUND)
221221

222-
INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_DIR})
223-
INCLUDE_DIRECTORIES(${PYTHON_NUMPY_INCLUDE_DIR})
224-
225-
IF(NOT WITH_PYTHON)
222+
IF(WITH_PYTHON)
223+
INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_DIR})
224+
INCLUDE_DIRECTORIES(${PYTHON_NUMPY_INCLUDE_DIR})
225+
ELSE()
226226
SET(PYTHON_LIBRARIES "")
227227
ENDIF()

cmake/external/warpctc.cmake

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@ ExternalProject_Add(
5050
UPDATE_COMMAND ""
5151
CMAKE_ARGS -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
5252
CMAKE_ARGS -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
53+
CMAKE_ARGS -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
54+
CMAKE_ARGS -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
5355
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${WARPCTC_INSTALL_DIR}
5456
CMAKE_ARGS -DWITH_GPU=${WITH_GPU}
5557
CMAKE_ARGS -DWITH_OMP=${USE_OMP}

0 commit comments

Comments
 (0)