C++14 for xgboost (#5664)

This commit is contained in:
Andy Adinets 2020-05-21 02:26:40 +02:00 committed by GitHub
parent 60511a3222
commit 646def51e0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 22 additions and 16 deletions

View File

@ -112,7 +112,7 @@ endif (USE_OPENMP)
msvc_use_static_runtime() msvc_use_static_runtime()
add_subdirectory(${xgboost_SOURCE_DIR}/dmlc-core) add_subdirectory(${xgboost_SOURCE_DIR}/dmlc-core)
set_target_properties(dmlc PROPERTIES set_target_properties(dmlc PROPERTIES
CXX_STANDARD 11 CXX_STANDARD 14
CXX_STANDARD_REQUIRED ON CXX_STANDARD_REQUIRED ON
POSITION_INDEPENDENT_CODE ON) POSITION_INDEPENDENT_CODE ON)
list(APPEND LINKED_LIBRARIES_PRIVATE dmlc) list(APPEND LINKED_LIBRARIES_PRIVATE dmlc)
@ -195,7 +195,7 @@ target_link_libraries(runxgboost PRIVATE ${LINKED_LIBRARIES_PRIVATE})
set_target_properties( set_target_properties(
runxgboost PROPERTIES runxgboost PROPERTIES
OUTPUT_NAME xgboost OUTPUT_NAME xgboost
CXX_STANDARD 11 CXX_STANDARD 14
CXX_STANDARD_REQUIRED ON) CXX_STANDARD_REQUIRED ON)
#-- End CLI for xgboost #-- End CLI for xgboost

View File

@ -44,7 +44,7 @@ export CXX = g++
endif endif
endif endif
export CFLAGS= -DDMLC_LOG_CUSTOMIZE=1 -std=c++11 -Wall -Wno-unknown-pragmas -Iinclude $(ADD_CFLAGS) export CFLAGS= -DDMLC_LOG_CUSTOMIZE=1 -std=c++14 -Wall -Wno-unknown-pragmas -Iinclude $(ADD_CFLAGS)
CFLAGS += -I$(DMLC_CORE)/include -I$(RABIT)/include -I$(GTEST_PATH)/include CFLAGS += -I$(DMLC_CORE)/include -I$(RABIT)/include -I$(GTEST_PATH)/include
ifeq ($(TEST_COVER), 1) ifeq ($(TEST_COVER), 1)

View File

@ -25,7 +25,7 @@ target_include_directories(xgboost-r
${PROJECT_SOURCE_DIR}/rabit/include) ${PROJECT_SOURCE_DIR}/rabit/include)
set_target_properties( set_target_properties(
xgboost-r PROPERTIES xgboost-r PROPERTIES
CXX_STANDARD 11 CXX_STANDARD 14
CXX_STANDARD_REQUIRED ON CXX_STANDARD_REQUIRED ON
POSITION_INDEPENDENT_CODE ON) POSITION_INDEPENDENT_CODE ON)

View File

@ -64,4 +64,4 @@ Imports:
magrittr (>= 1.5), magrittr (>= 1.5),
stringi (>= 0.5.2) stringi (>= 0.5.2)
RoxygenNote: 7.1.0 RoxygenNote: 7.1.0
SystemRequirements: GNU make, C++11 SystemRequirements: GNU make, C++14

View File

@ -3,7 +3,7 @@ PKGROOT=../../
ENABLE_STD_THREAD=1 ENABLE_STD_THREAD=1
# _*_ mode: Makefile; _*_ # _*_ mode: Makefile; _*_
CXX_STD = CXX11 CXX_STD = CXX14
XGB_RFLAGS = -DXGBOOST_STRICT_R_MODE=1 -DDMLC_LOG_BEFORE_THROW=0\ XGB_RFLAGS = -DXGBOOST_STRICT_R_MODE=1 -DDMLC_LOG_BEFORE_THROW=0\
-DDMLC_ENABLE_STD_THREAD=$(ENABLE_STD_THREAD) -DDMLC_DISABLE_STDIN=1\ -DDMLC_ENABLE_STD_THREAD=$(ENABLE_STD_THREAD) -DDMLC_DISABLE_STDIN=1\

View File

@ -15,7 +15,7 @@ xgblib:
cp -r ../../include . cp -r ../../include .
cp -r ../../amalgamation . cp -r ../../amalgamation .
CXX_STD = CXX11 CXX_STD = CXX14
XGB_RFLAGS = -DXGBOOST_STRICT_R_MODE=1 -DDMLC_LOG_BEFORE_THROW=0\ XGB_RFLAGS = -DXGBOOST_STRICT_R_MODE=1 -DDMLC_LOG_BEFORE_THROW=0\
-DDMLC_ENABLE_STD_THREAD=$(ENABLE_STD_THREAD) -DDMLC_DISABLE_STDIN=1\ -DDMLC_ENABLE_STD_THREAD=$(ENABLE_STD_THREAD) -DDMLC_DISABLE_STDIN=1\

View File

@ -14,7 +14,7 @@ target_include_directories(xgboost4j
set_output_directory(xgboost4j ${PROJECT_SOURCE_DIR}/lib) set_output_directory(xgboost4j ${PROJECT_SOURCE_DIR}/lib)
set_target_properties( set_target_properties(
xgboost4j PROPERTIES xgboost4j PROPERTIES
CXX_STANDARD 11 CXX_STANDARD 14
CXX_STANDARD_REQUIRED ON) CXX_STANDARD_REQUIRED ON)
target_link_libraries(xgboost4j target_link_libraries(xgboost4j
PRIVATE PRIVATE

View File

@ -14,7 +14,6 @@ if (USE_CUDA)
$<$<COMPILE_LANGUAGE:CUDA>:--expt-extended-lambda> $<$<COMPILE_LANGUAGE:CUDA>:--expt-extended-lambda>
$<$<COMPILE_LANGUAGE:CUDA>:--expt-relaxed-constexpr> $<$<COMPILE_LANGUAGE:CUDA>:--expt-relaxed-constexpr>
$<$<COMPILE_LANGUAGE:CUDA>:-lineinfo> $<$<COMPILE_LANGUAGE:CUDA>:-lineinfo>
$<$<AND:$<NOT:$<CXX_COMPILER_ID:MSVC>>,$<COMPILE_LANGUAGE:CUDA>>:--std=c++11>
$<$<COMPILE_LANGUAGE:CUDA>:${GEN_CODE}>) $<$<COMPILE_LANGUAGE:CUDA>:${GEN_CODE}>)
if (USE_NCCL) if (USE_NCCL)
@ -45,6 +44,8 @@ if (USE_CUDA)
endif (HIDE_CXX_SYMBOLS) endif (HIDE_CXX_SYMBOLS)
set_target_properties(objxgboost PROPERTIES set_target_properties(objxgboost PROPERTIES
CUDA_STANDARD 14
CUDA_STANDARD_REQUIRED ON
CUDA_SEPARABLE_COMPILATION OFF) CUDA_SEPARABLE_COMPILATION OFF)
else (USE_CUDA) else (USE_CUDA)
add_library(objxgboost OBJECT ${CPU_SOURCES} ${PLUGINS_SOURCES}) add_library(objxgboost OBJECT ${CPU_SOURCES} ${PLUGINS_SOURCES})
@ -71,7 +72,7 @@ endif (MSVC)
set_target_properties(objxgboost PROPERTIES set_target_properties(objxgboost PROPERTIES
POSITION_INDEPENDENT_CODE ON POSITION_INDEPENDENT_CODE ON
CXX_STANDARD 11 CXX_STANDARD 14
CXX_STANDARD_REQUIRED ON) CXX_STANDARD_REQUIRED ON)
target_compile_definitions(objxgboost target_compile_definitions(objxgboost
PRIVATE PRIVATE

View File

@ -35,6 +35,8 @@ class Column {
index_(index), index_(index),
index_base_(index_base) {} index_base_(index_base) {}
virtual ~Column() = default;
uint32_t GetGlobalBinIdx(size_t idx) const { uint32_t GetGlobalBinIdx(size_t idx) const {
return index_base_ + static_cast<uint32_t>(index_[idx]); return index_base_ + static_cast<uint32_t>(index_[idx]);
} }

View File

@ -314,7 +314,7 @@ class NDCGLambdaWeightComputer
for (size_t i = 0; i < sorted_list.size(); ++i) { for (size_t i = 0; i < sorted_list.size(); ++i) {
labels[i] = sorted_list[i].label; labels[i] = sorted_list[i].label;
} }
std::stable_sort(labels.begin(), labels.end(), std::greater<bst_float>()); std::stable_sort(labels.begin(), labels.end(), std::greater<>());
IDCG = ComputeGroupDCGWeight(&labels[0], labels.size()); IDCG = ComputeGroupDCGWeight(&labels[0], labels.size());
} }
if (IDCG == 0.0) { if (IDCG == 0.0) {

View File

@ -699,7 +699,7 @@ class GlobalProposalHistMaker: public CQHistMaker {
this->work_set_.insert(this->work_set_.end(), this->fsplit_set_.begin(), this->work_set_.insert(this->work_set_.end(), this->fsplit_set_.begin(),
this->fsplit_set_.end()); this->fsplit_set_.end());
XGBOOST_PARALLEL_SORT(this->work_set_.begin(), this->work_set_.end(), XGBOOST_PARALLEL_SORT(this->work_set_.begin(), this->work_set_.end(),
std::less<decltype(this->work_set_)::value_type>{}); std::less<>{});
this->work_set_.resize( this->work_set_.resize(
std::unique(this->work_set_.begin(), this->work_set_.end()) - this->work_set_.begin()); std::unique(this->work_set_.begin(), this->work_set_.end()) - this->work_set_.begin());

View File

@ -124,8 +124,8 @@ class ClangTidy(object):
if pos != -1: if pos != -1:
converted_components.append( converted_components.append(
'--cuda-gpu-arch=sm_' + capability) '--cuda-gpu-arch=sm_' + capability)
elif components[i].find('--std=c++11') != -1: elif components[i].find('--std=c++14') != -1:
converted_components.append('-std=c++11') converted_components.append('-std=c++14')
elif components[i].startswith('-isystem='): elif components[i].startswith('-isystem='):
converted_components.extend(components[i].split('=')) converted_components.extend(components[i].split('='))
else: else:

View File

@ -24,7 +24,6 @@ if (USE_CUDA)
$<$<COMPILE_LANGUAGE:CUDA>:--expt-extended-lambda> $<$<COMPILE_LANGUAGE:CUDA>:--expt-extended-lambda>
$<$<COMPILE_LANGUAGE:CUDA>:--expt-relaxed-constexpr> $<$<COMPILE_LANGUAGE:CUDA>:--expt-relaxed-constexpr>
$<$<COMPILE_LANGUAGE:CUDA>:-lineinfo> $<$<COMPILE_LANGUAGE:CUDA>:-lineinfo>
$<$<AND:$<NOT:$<CXX_COMPILER_ID:MSVC>>,$<COMPILE_LANGUAGE:CUDA>>:--std=c++11>
$<$<COMPILE_LANGUAGE:CUDA>:-Xcompiler=${OpenMP_CXX_FLAGS}> $<$<COMPILE_LANGUAGE:CUDA>:-Xcompiler=${OpenMP_CXX_FLAGS}>
$<$<COMPILE_LANGUAGE:CUDA>:${GEN_CODE}>) $<$<COMPILE_LANGUAGE:CUDA>:${GEN_CODE}>)
target_compile_definitions(testxgboost target_compile_definitions(testxgboost
@ -48,6 +47,10 @@ if (USE_CUDA)
$<$<COMPILE_LANGUAGE:CUDA>:-Xcompiler=/utf-8> $<$<COMPILE_LANGUAGE:CUDA>:-Xcompiler=/utf-8>
) )
endif (MSVC) endif (MSVC)
set_target_properties(testxgboost PROPERTIES
CUDA_STANDARD 14
CUDA_STANDARD_REQUIRED ON)
endif (USE_CUDA) endif (USE_CUDA)
if (MSVC) if (MSVC)
@ -64,7 +67,7 @@ target_include_directories(testxgboost
${xgboost_SOURCE_DIR}/rabit/include) ${xgboost_SOURCE_DIR}/rabit/include)
set_target_properties( set_target_properties(
testxgboost PROPERTIES testxgboost PROPERTIES
CXX_STANDARD 11 CXX_STANDARD 14
CXX_STANDARD_REQUIRED ON) CXX_STANDARD_REQUIRED ON)
target_link_libraries(testxgboost target_link_libraries(testxgboost
PRIVATE PRIVATE