Skip to content

Commit 587d99a

Browse files
authored
update compilation with C++14 (#31815)
* update compilation with C++14, test=develop * fix compilation error in eigen, test=develop
1 parent b09c1ce commit 587d99a

File tree

4 files changed

+17
-22
lines changed

4 files changed

+17
-22
lines changed

cmake/cuda.cmake

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -208,14 +208,11 @@ select_nvcc_arch_flags(NVCC_FLAGS_EXTRA)
208208
set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} ${NVCC_FLAGS_EXTRA}")
209209
message(STATUS "NVCC_FLAGS_EXTRA: ${NVCC_FLAGS_EXTRA}")
210210

211-
# Set C++11 support
211+
# Set C++14 support
212212
set(CUDA_PROPAGATE_HOST_FLAGS OFF)
213213
# Release/Debug flags set by cmake. Such as -O3 -g -DNDEBUG etc.
214214
# So, don't set these flags here.
215-
if (NOT WIN32) # windows msvc2015 support c++11 natively.
216-
# -std=c++11 -fPIC not recoginize by msvc, -Xcompiler will be added by cmake.
217-
set(CMAKE_CUDA_STANDARD 11)
218-
endif(NOT WIN32)
215+
set(CMAKE_CUDA_STANDARD 14)
219216

220217
# (Note) For windows, if delete /W[1-4], /W1 will be added defaultly and conflic with -w
221218
# So replace /W[1-4] with /W0

cmake/flags.cmake

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@ include(CheckCCompilerFlag)
44
include(CheckCXXSymbolExists)
55
include(CheckTypeSize)
66

7-
function(CheckCompilerCXX11Flag)
7+
function(CheckCompilerCXX14Flag)
88
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
9-
if(${CMAKE_CXX_COMPILER_VERSION} VERSION_LESS 4.8)
10-
message(FATAL_ERROR "Unsupported GCC version. GCC >= 4.8 required.")
9+
if(${CMAKE_CXX_COMPILER_VERSION} VERSION_LESS 5.4)
10+
message(FATAL_ERROR "Unsupported GCC version. GCC >= 5.4 required.")
1111
elseif(${CMAKE_CXX_COMPILER_VERSION} VERSION_GREATER 8.2)
1212
message(WARNING "Found GCC ${CMAKE_CXX_COMPILER_VERSION} which is too high, recommended to use GCC 8.2")
1313
endif()
@@ -20,23 +20,15 @@ function(CheckCompilerCXX11Flag)
2020
message(FATAL_ERROR "Unsupported AppleClang version. AppleClang >= 5.1 required.")
2121
endif()
2222
else()
23-
if (${CMAKE_CXX_COMPILER_VERSION} VERSION_LESS 3.3)
24-
message(FATAL_ERROR "Unsupported Clang version. Clang >= 3.3 required.")
23+
if (${CMAKE_CXX_COMPILER_VERSION} VERSION_LESS 3.4)
24+
message(FATAL_ERROR "Unsupported Clang version. Clang >= 3.4 required.")
2525
endif()
2626
endif()
2727
endif()
2828
endfunction()
2929

30-
CheckCompilerCXX11Flag()
31-
if (WITH_GPU)
32-
if (${CMAKE_CUDA_COMPILER_VERSION} GREATER_EQUAL 11.0)
33-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
34-
else()
35-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
36-
endif()
37-
else()
38-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
39-
endif()
30+
CheckCompilerCXX14Flag()
31+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
4032
# safe_set_flag
4133
#
4234
# Set a compile flag only if compiler is support

paddle/fluid/operators/jit/benchmark.cc

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -330,7 +330,10 @@ void BenchKernelSgd() {
330330
for (int i = 0; i < n; ++i) {
331331
all.push_back(i);
332332
}
333-
std::random_shuffle(all.begin(), all.end());
333+
std::random_device rnd;
334+
int64_t seed_tmp = rnd();
335+
std::default_random_engine rng(seed_tmp);
336+
std::shuffle(all.begin(), all.end(), rng);
334337
out.insert(out.begin(), all.begin(), all.begin() + n);
335338
return out;
336339
};

paddle/fluid/operators/jit/test.cc

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -861,7 +861,10 @@ void TestKernelSgd() {
861861
for (int i = 0; i < n; ++i) {
862862
all.push_back(i);
863863
}
864-
std::random_shuffle(all.begin(), all.end());
864+
std::random_device rnd;
865+
int64_t seed_tmp = rnd();
866+
std::default_random_engine rng(seed_tmp);
867+
std::shuffle(all.begin(), all.end(), rng);
865868
out.insert(out.begin(), all.begin(), all.begin() + n);
866869
return out;
867870
};

0 commit comments

Comments
 (0)