Skip to content

Commit a4e9177

Browse files
committed
fix ninja compilation bug on windows
1 parent f0b2f59 commit a4e9177

File tree

9 files changed

+53
-52
lines changed

9 files changed

+53
-52
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
@@ -59,8 +59,8 @@ ExternalProject_Add(
5959
DEPENDS ${MKLDNN_DEPENDS}
6060
PREFIX ${MKLDNN_PREFIX_DIR}
6161
SOURCE_DIR ${MKLDNN_SOURCE_DIR}
62-
BUILD_ALWAYS 1
63-
# UPDATE_COMMAND ""
62+
UPDATE_COMMAND ""
63+
#BUILD_ALWAYS 1
6464
CMAKE_ARGS -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
6565
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
6666
-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: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@ function(CheckCompilerCXX14Flag)
2828
endfunction()
2929

3030
CheckCompilerCXX14Flag()
31-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
31+
set(CMAKE_CXX_STANDARD 14)
32+
3233
# safe_set_flag
3334
#
3435
# 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()

paddle/scripts/paddle_build.bat

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ if not defined WITH_PYTHON set WITH_PYTHON=ON
6363
if not defined ON_INFER set ON_INFER=ON
6464
if not defined WITH_INFERENCE_API_TEST set WITH_INFERENCE_API_TEST=ON
6565
if not defined WITH_STATIC_LIB set WITH_STATIC_LIB=ON
66-
if not defined WITH_TPCACHE set WITH_TPCACHE=ON
66+
if not defined WITH_TPCACHE set WITH_TPCACHE=OFF
6767
if not defined WITH_CLCACHE set WITH_CLCACHE=OFF
6868
if not defined WITH_CACHE set WITH_CACHE=OFF
6969
if not defined WITH_UNITY_BUILD set WITH_UNITY_BUILD=OFF
@@ -329,14 +329,14 @@ if "%WITH_GPU%"=="ON" (
329329
)
330330

331331
:cmake_impl
332-
echo cmake .. -G %GENERATOR% -T host=x64 -DCMAKE_BUILD_TYPE=Release -DWITH_AVX=%WITH_AVX% -DWITH_GPU=%WITH_GPU% -DWITH_MKL=%WITH_MKL% ^
332+
echo cmake .. -G %GENERATOR% -DCMAKE_BUILD_TYPE=Release -DWITH_AVX=%WITH_AVX% -DWITH_GPU=%WITH_GPU% -DWITH_MKL=%WITH_MKL% ^
333333
-DWITH_TESTING=%WITH_TESTING% -DWITH_PYTHON=%WITH_PYTHON% -DPYTHON_EXECUTABLE=%PYTHON_EXECUTABLE% -DON_INFER=%ON_INFER% ^
334334
-DWITH_INFERENCE_API_TEST=%WITH_INFERENCE_API_TEST% -DTHIRD_PARTY_PATH=%THIRD_PARTY_PATH% ^
335335
-DINFERENCE_DEMO_INSTALL_DIR=%INFERENCE_DEMO_INSTALL_DIR% -DWITH_STATIC_LIB=%WITH_STATIC_LIB% ^
336336
-DWITH_TENSORRT=%WITH_TENSORRT% -DTENSORRT_ROOT="%TENSORRT_ROOT%" -DMSVC_STATIC_CRT=%MSVC_STATIC_CRT% ^
337337
-DWITH_UNITY_BUILD=%WITH_UNITY_BUILD% -DCUDA_ARCH_NAME=%CUDA_ARCH_NAME%
338338

339-
cmake .. -G %GENERATOR% -DCMAKE_BUILD_TYPE=Release -T host=x64 -DWITH_AVX=%WITH_AVX% -DWITH_GPU=%WITH_GPU% -DWITH_MKL=%WITH_MKL% ^
339+
cmake .. -G %GENERATOR% -DCMAKE_BUILD_TYPE=Release -DWITH_AVX=%WITH_AVX% -DWITH_GPU=%WITH_GPU% -DWITH_MKL=%WITH_MKL% ^
340340
-DWITH_TESTING=%WITH_TESTING% -DWITH_PYTHON=%WITH_PYTHON% -DPYTHON_EXECUTABLE=%PYTHON_EXECUTABLE% -DON_INFER=%ON_INFER% ^
341341
-DWITH_INFERENCE_API_TEST=%WITH_INFERENCE_API_TEST% -DTHIRD_PARTY_PATH=%THIRD_PARTY_PATH% ^
342342
-DINFERENCE_DEMO_INSTALL_DIR=%INFERENCE_DEMO_INSTALL_DIR% -DWITH_STATIC_LIB=%WITH_STATIC_LIB% ^
@@ -412,10 +412,10 @@ if "%WITH_TESTING%"=="ON" (
412412

413413
echo Build Paddle the %build_times% time:
414414
if %GENERATOR% == "Ninja" (
415-
ninja -j %PARALLEL_PROJECT_COUNT%
415+
ninja all
416416
) else (
417417
if "%WITH_CLCACHE%"=="OFF" (
418-
MSBuild /m:%PARALLEL_PROJECT_COUNT% /p:PreferredToolArchitecture=x64 /p:TrackFileAccess=false /p:Configuration=Release /verbosity:%LOG_LEVEL% ALL_BUILD.vcxproj
418+
MSBuild /m:%PARALLEL_PROJECT_COUNT% /p:PreferredToolArchitecture=x64 /p:Configuration=Release /verbosity:%LOG_LEVEL% ALL_BUILD.vcxproj
419419
) else (
420420
MSBuild /m:%PARALLEL_PROJECT_COUNT% /p:PreferredToolArchitecture=x64 /p:TrackFileAccess=false /p:CLToolExe=clcache.exe /p:CLToolPath=%PYTHON_ROOT%\Scripts /p:Configuration=Release /verbosity:%LOG_LEVEL% ALL_BUILD.vcxproj
421421
)
@@ -644,7 +644,7 @@ echo git fetch upstream $BRANCH # develop is not fetched>> check_change_of_
644644
echo fi>> check_change_of_unittest.sh
645645
echo git checkout -b origin_pr >> check_change_of_unittest.sh
646646
echo git checkout -f $BRANCH >> check_change_of_unittest.sh
647-
echo cmake .. -G %GENERATOR% -T host=x64 -DWITH_AVX=%WITH_AVX% -DWITH_GPU=%WITH_GPU% -DWITH_MKL=%WITH_MKL% ^
647+
echo cmake .. -G %GENERATOR% -DWITH_AVX=%WITH_AVX% -DWITH_GPU=%WITH_GPU% -DWITH_MKL=%WITH_MKL% ^
648648
-DWITH_TESTING=%WITH_TESTING% -DWITH_PYTHON=%WITH_PYTHON% -DPYTHON_EXECUTABLE=%PYTHON_EXECUTABLE% -DON_INFER=%ON_INFER% ^
649649
-DWITH_INFERENCE_API_TEST=%WITH_INFERENCE_API_TEST% -DTHIRD_PARTY_PATH=%THIRD_PARTY_PATH% ^
650650
-DINFERENCE_DEMO_INSTALL_DIR=%INFERENCE_DEMO_INSTALL_DIR% -DWITH_STATIC_LIB=%WITH_STATIC_LIB% ^

tools/parallel_UT_rule.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -649,7 +649,6 @@
649649
'test_collective_wait',
650650
'test_collective_split_row_linear',
651651
'test_collective_split_embedding',
652-
'test_custom_attrs_jit',
653652
'float16_gpu_test',
654653
'test_leaky_relu_grad_grad_functor',
655654
'test_complex_simplenet',

0 commit comments

Comments
 (0)