Skip to content

Commit 9ddf5e8

Browse files
Merge pull request #6 from PaddlePaddle/develop
update
2 parents 8c8717f + 20b9be6 commit 9ddf5e8

Some content is hidden

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

66 files changed

+1931
-388
lines changed

CMakeLists.txt

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,13 @@ set(PADDLE_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR})
2020

2121
include(system)
2222

23+
# Note(zhouwei): Ninja Generator will set CMAKE_BUILD_TYPE to Debug
24+
if(NOT CMAKE_BUILD_TYPE)
25+
set(CMAKE_BUILD_TYPE "Release" CACHE STRING
26+
"Choose the type of build, options are: Debug Release RelWithDebInfo MinSizeRel"
27+
FORCE)
28+
endif()
29+
2330
project(paddle CXX C)
2431

2532
# enable language CUDA
@@ -213,12 +220,6 @@ if(NOT PY_VERSION)
213220
endif()
214221
set(PYBIND11_PYTHON_VERSION ${PY_VERSION})
215222

216-
# CMAKE_BUILD_TYPE
217-
if(NOT CMAKE_BUILD_TYPE)
218-
set(CMAKE_BUILD_TYPE "Release" CACHE STRING
219-
"Choose the type of build, options are: Debug Release RelWithDebInfo MinSizeRel"
220-
FORCE)
221-
endif()
222223

223224
# the type of sanitizer, options are: Address, Leak, Memory, Thread, Undefined. Default: OFF
224225
if(SANITIZER_TYPE AND NOT "${SANITIZER_TYPE}" MATCHES "^(Address|Leak|Memory|Thread|Undefined)$")

cmake/cuda.cmake

Lines changed: 10 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -205,23 +205,16 @@ set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} --expt-extended-lambda")
205205
if(WIN32)
206206
set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Xcompiler \"/wd4244 /wd4267 /wd4819 \"")
207207
set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Xcompiler /bigobj")
208-
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
209-
# match the cl's _ITERATOR_DEBUG_LEVEL
210-
set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Xcompiler \"-g -G -D_DEBUG\"")
211-
if(MSVC_STATIC_CRT)
212-
set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Xcompiler /MTd")
213-
else()
214-
set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Xcompiler /MDd")
215-
endif()
216-
elseif(CMAKE_BUILD_TYPE STREQUAL "Release")
217-
set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Xcompiler \"-DNDEBUG\"")
218-
if(MSVC_STATIC_CRT)
219-
set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Xcompiler /MT")
220-
else()
221-
set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Xcompiler /MD")
222-
endif()
223-
else()
224-
message(FATAL "Windows only support Release or Debug build now. Please set visual studio build type to Release/Debug, x64 build.")
208+
if(MSVC_STATIC_CRT)
209+
set(CMAKE_CUDA_FLAGS_DEBUG "${CMAKE_CUDA_FLAGS_DEBUG} -Xcompiler /MTd")
210+
set(CMAKE_CUDA_FLAGS_RELEASE "${CMAKE_CUDA_FLAGS_RELEASE} -Xcompiler /MT")
211+
foreach(flag_var
212+
CMAKE_CUDA_FLAGS CMAKE_CUDA_FLAGS_DEBUG CMAKE_CUDA_FLAGS_RELEASE
213+
CMAKE_CUDA_FLAGS_MINSIZEREL CMAKE_CUDA_FLAGS_RELWITHDEBINFO)
214+
if(${flag_var} MATCHES "-MD")
215+
string(REGEX REPLACE "-MD" "-MT" ${flag_var} "${${flag_var}}")
216+
endif()
217+
endforeach(flag_var)
225218
endif()
226219
endif()
227220

cmake/external/mkldnn.cmake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,8 @@ ExternalProject_Add(
6060
DEPENDS ${MKLDNN_DEPENDS}
6161
PREFIX ${MKLDNN_PREFIX_DIR}
6262
SOURCE_DIR ${MKLDNN_SOURCE_DIR}
63-
BUILD_ALWAYS 1
64-
# UPDATE_COMMAND ""
63+
UPDATE_COMMAND ""
64+
#BUILD_ALWAYS 1
6565
CMAKE_ARGS -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
6666
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
6767
-DCMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE}

cmake/external/warpctc.cmake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,9 +100,9 @@ else()
100100
"${WARPCTC_DOWNLOAD_CMD}"
101101
PREFIX ${WARPCTC_PREFIX_DIR}
102102
SOURCE_DIR ${WARPCTC_SOURCE_DIR}
103-
#UPDATE_COMMAND ""
103+
UPDATE_COMMAND ""
104104
PATCH_COMMAND ""
105-
BUILD_ALWAYS 1
105+
#BUILD_ALWAYS 1
106106
CMAKE_ARGS -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
107107
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
108108
-DCMAKE_C_FLAGS=${WARPCTC_C_FLAGS}

cmake/flags.cmake

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,12 @@ function(CheckCompilerCXX14Flag)
2828
endfunction()
2929

3030
CheckCompilerCXX14Flag()
31-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
31+
if(NOT WIN32)
32+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
33+
else()
34+
set(CMAKE_CXX_STANDARD 14)
35+
endif()
36+
3237
# safe_set_flag
3338
#
3439
# Set a compile flag only if compiler is support

cmake/generic.cmake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,15 +92,15 @@ include_directories(${CMAKE_CURRENT_BINARY_DIR})
9292
# including io directory for inference lib paddle_api.h
9393
include_directories("${PADDLE_SOURCE_DIR}/paddle/fluid/framework/io")
9494

95-
if(NOT APPLE)
95+
if(NOT APPLE AND NOT WIN32)
9696
find_package(Threads REQUIRED)
9797
link_libraries(${CMAKE_THREAD_LIBS_INIT})
9898
if(WITH_PSLIB OR WITH_DISTRIBUTE)
9999
set(CMAKE_CXX_LINK_EXECUTABLE "${CMAKE_CXX_LINK_EXECUTABLE} -pthread -ldl -lrt -lz -lssl")
100100
else()
101101
set(CMAKE_CXX_LINK_EXECUTABLE "${CMAKE_CXX_LINK_EXECUTABLE} -pthread -ldl -lrt")
102102
endif()
103-
endif(NOT APPLE)
103+
endif()
104104

105105
set_property(GLOBAL PROPERTY FLUID_MODULES "")
106106
# find all fluid modules is used for paddle fluid static library

cmake/init.cmake

Lines changed: 22 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -17,27 +17,34 @@ if(NOT WIN32)
1717
set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG")
1818
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g -DNDEBUG")
1919
set(CMAKE_CXX_FLAGS_MINSIZEREL "-Os -DNDEBUG")
20+
21+
if(WITH_GPU)
22+
set(CMAKE_CUDA_FLAGS_DEBUG "-g")
23+
set(CMAKE_CUDA_FLAGS_RELEASE "-O3 -DNDEBUG")
24+
set(CMAKE_CUDA_FLAGS_RELWITHDEBINFO "-O2 -g -DNDEBUG")
25+
set(CMAKE_CUDA_FLAGS_MINSIZEREL "-O1 -DNDEBUG")
26+
endif()
2027
else()
21-
set(CMAKE_C_FLAGS_DEBUG "/Zi /DEBUG")
22-
set(CMAKE_C_FLAGS_RELEASE "/O2 /DNDEBUG")
23-
set(CMAKE_C_FLAGS_RELWITHDEBINFO "/O2 /DNDEBUG")
24-
set(CMAKE_C_FLAGS_MINSIZEREL "/Os /DNDEBUG")
28+
set(CMAKE_C_FLAGS_DEBUG "/MDd /Zi /Ob0 /Od /RTC1")
29+
set(CMAKE_C_FLAGS_RELEASE "/MD /O2 /Ob2 /DNDEBUG")
30+
set(CMAKE_C_FLAGS_RELWITHDEBINFO "/MD /Zi /O2 /Ob1 /DNDEBUG")
31+
set(CMAKE_C_FLAGS_MINSIZEREL "/MD /O1 /Ob1 /DNDEBUG")
2532

26-
set(CMAKE_CXX_FLAGS_DEBUG "/Zi /DEBUG")
27-
set(CMAKE_CXX_FLAGS_RELEASE "/O2 /DNDEBUG")
28-
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "/O2 /DNDEBUG")
29-
set(CMAKE_CXX_FLAGS_MINSIZEREL "/Os /DNDEBUG")
33+
set(CMAKE_CXX_FLAGS_DEBUG "/MDd /Zi /Ob0 /Od /RTC1")
34+
set(CMAKE_CXX_FLAGS_RELEASE "/MD /O2 /Ob2 /DNDEBUG")
35+
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "/MD /Zi /O2 /Ob1 /DNDEBUG")
36+
set(CMAKE_CXX_FLAGS_MINSIZEREL "/MD /O1 /Ob1 /DNDEBUG")
37+
38+
if(WITH_GPU)
39+
set(CMAKE_CUDA_FLAGS_DEBUG "-Xcompiler=\"-MDd -Zi -Ob0 -Od /RTC1\"")
40+
set(CMAKE_CUDA_FLAGS_RELEASE "-Xcompiler=\"-MD -O2 -Ob2\" -DNDEBUG")
41+
set(CMAKE_CUDA_FLAGS_RELWITHDEBINFO "-Xcompiler=\"-MD -Zi -O2 -Ob1\" -DNDEBUG")
42+
set(CMAKE_CUDA_FLAGS_MINSIZEREL "-Xcompiler=\"-MD -O1 -Ob1\" -DNDEBUG")
43+
endif()
3044

3145
# It can specify CUDA compile flag manualy,
3246
# its use is to remvoe /Zi to reduce GPU static library size. But it's dangerous
3347
# because CUDA will update by nvidia, then error will occur.
3448
# Now, it's only used in VS2015 + CUDA:[10.0, 10.2]
3549
set(WIN_PROPS ${CMAKE_SOURCE_DIR}/cmake/paddle_win.props)
3650
endif()
37-
38-
if(WITH_GPU)
39-
set(CMAKE_CUDA_FLAGS_DEBUG "-g")
40-
set(CMAKE_CUDA_FLAGS_RELEASE "-O3 -DNDEBUG")
41-
set(CMAKE_CUDA_FLAGS_RELWITHDEBINFO "-O2 -g -DNDEBUG")
42-
set(CMAKE_CUDA_FLAGS_MINSIZEREL "-O1 -DNDEBUG")
43-
endif()

0 commit comments

Comments
 (0)