1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-12-31 05:41:08 +00:00

New port: misc/xgboost: Scalable, Portable and Distributed Gradient Boosting (GBDT, GBRT, GBM)

This commit is contained in:
Yuri Victorovich 2019-12-14 21:37:35 +00:00
parent 284a16829f
commit e5b3f48e26
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=520144
9 changed files with 179 additions and 0 deletions

View File

@ -535,6 +535,7 @@
SUBDIR += xfce4-weather-plugin
SUBDIR += xfce4-wm-themes
SUBDIR += xgas
SUBDIR += xgboost
SUBDIR += xless
SUBDIR += xosd
SUBDIR += xtail

35
misc/xgboost/Makefile Normal file
View File

@ -0,0 +1,35 @@
# $FreeBSD$
PORTNAME= xgboost
DISTVERSIONPREFIX= v
DISTVERSION= 0.90-235
DISTVERSIONSUFFIX= -gad4a1c73
CATEGORIES= misc # machine-learning
MAINTAINER= yuri@FreeBSD.org
COMMENT= Scalable, Portable and Distributed Gradient Boosting (GBDT, GBRT, GBM)
LICENSE= APACHE20
LICENSE_FILE= ${WRKSRC}/LICENSE
LIB_DEPENDS= libdmlc.so:devel/dmlc-core
USES= cmake compiler:c++11-lang localbase
USE_GITHUB= yes
GH_ACCOUNT= dmlc
GH_TUPLE= dmlc:rabit:2f25347:rabit/rabit \
NVlabs:cub:b20808b:cub/cub
USE_LDCONFIG= yes
LDFLAGS+= ${LOCALBASE}/lib/libdmlc.so -lexecinfo
OPTIONS_DEFINE= OPENMP
OPENMP_CMAKE_BOOL= USE_OPENMP
OPENMP_LIB_DEPENDS= libomp.so:devel/openmp
OPENMP_BROKEN= error: unsupported argument 'libomp -I/usr/local/include -L/usr/local/lib' to option 'fopenmp='
post-patch: # https://github.com/dmlc/rabit/issues/131
@${FIND} ${WRKSRC} -name "*.h" -o -name "*.cc" | ${XARGS} ${REINPLACE_CMD} -i '' -e 's| _assert(| _xassert(|; s| _assert)| _xassert)|'
.include <bsd.port.mk>

7
misc/xgboost/distinfo Normal file
View File

@ -0,0 +1,7 @@
TIMESTAMP = 1576356559
SHA256 (dmlc-xgboost-v0.90-235-gad4a1c73_GH0.tar.gz) = c5fd4f9c152ba56961a43b677397251f20f78e534571926247f8d24275f9642b
SIZE (dmlc-xgboost-v0.90-235-gad4a1c73_GH0.tar.gz) = 1131611
SHA256 (dmlc-rabit-2f25347_GH0.tar.gz) = 9a9f9b754d1f8f8f0949faded75859e791cc56c75c38928467649fc227bee7e0
SIZE (dmlc-rabit-2f25347_GH0.tar.gz) = 90555
SHA256 (NVlabs-cub-b20808b_GH0.tar.gz) = 5d613bf9c4bd3f60803720b982291c585e5e9cce83a93b5ef576bd3ce6d141e4
SIZE (NVlabs-cub-b20808b_GH0.tar.gz) = 390976

View File

@ -0,0 +1,26 @@
--- CMakeLists.txt.orig 2019-12-14 20:50:22 UTC
+++ CMakeLists.txt
@@ -101,16 +101,16 @@ endif (USE_CUDA)
# dmlc-core
msvc_use_static_runtime()
-add_subdirectory(${xgboost_SOURCE_DIR}/dmlc-core)
-set_target_properties(dmlc PROPERTIES
- CXX_STANDARD 11
- CXX_STANDARD_REQUIRED ON
- POSITION_INDEPENDENT_CODE ON)
-list(APPEND LINKED_LIBRARIES_PRIVATE dmlc)
+#add_subdirectory(${xgboost_SOURCE_DIR}/dmlc-core)
+#set_target_properties(dmlc PROPERTIES
+# CXX_STANDARD 11
+# CXX_STANDARD_REQUIRED ON
+# POSITION_INDEPENDENT_CODE ON)
+#list(APPEND LINKED_LIBRARIES_PRIVATE dmlc)
# rabit
set(RABIT_BUILD_DMLC OFF)
-set(DMLC_ROOT ${xgboost_SOURCE_DIR}/dmlc-core)
+set(DMLC_ROOT ${CMAKE_INSTALL_PREFIX})
set(RABIT_WITH_R_LIB ${R_LIB})
add_subdirectory(rabit)

View File

@ -0,0 +1,34 @@
--- rabit/CMakeLists.txt.orig 2019-12-14 20:43:47 UTC
+++ rabit/CMakeLists.txt
@@ -13,7 +13,7 @@ set(DMLC_ROOT ${CMAKE_CURRENT_LIST_DIR}/../dmlc-core)
# moved from xgboost build
if(R_LIB OR MINGW OR WIN32)
- add_library(rabit src/engine_empty.cc src/c_api.cc)
+ add_library(rabit SHARED src/engine_empty.cc src/c_api.cc)
set(rabit_libs rabit)
set_target_properties(rabit
PROPERTIES CXX_STANDARD 11
@@ -21,10 +21,10 @@ if(R_LIB OR MINGW OR WIN32)
POSITION_INDEPENDENT_CODE ON)
else()
find_package(Threads REQUIRED)
- add_library(rabit_empty src/engine_empty.cc src/c_api.cc)
- add_library(rabit_base src/allreduce_base.cc src/engine_base.cc src/c_api.cc)
+ add_library(rabit_empty SHARED src/engine_empty.cc src/c_api.cc)
+ add_library(rabit_base SHARED src/allreduce_base.cc src/engine_base.cc src/c_api.cc)
- add_library(rabit src/allreduce_base.cc src/allreduce_robust.cc src/engine.cc src/c_api.cc)
+ add_library(rabit SHARED src/allreduce_base.cc src/allreduce_robust.cc src/engine.cc src/c_api.cc)
add_library(rabit_mock_static src/allreduce_base.cc src/allreduce_robust.cc src/engine_mock.cc src/c_api.cc)
add_library(rabit_mock SHARED src/allreduce_base.cc src/allreduce_robust.cc src/engine_mock.cc src/c_api.cc)
target_link_libraries(rabit Threads::Threads)
@@ -43,7 +43,7 @@ if(RABIT_BUILD_MPI)
if (NOT MPI_CXX_FOUND)
message(FATAL_ERROR "CXX Interface for MPI is required for building MPI backend.")
endif (NOT MPI_CXX_FOUND)
- add_library(rabit_mpi src/engine_mpi.cc ${MPI_INCLUDE_PATH})
+ add_library(rabit_mpi SHARED src/engine_mpi.cc ${MPI_INCLUDE_PATH})
target_link_libraries(rabit_mpi ${MPI_CXX_LIBRARIES})
list(APPEND rabit_libs rabit_mpi)
endif()

View File

@ -0,0 +1,11 @@
--- src/common/json.cc.orig 2019-12-14 20:32:28 UTC
+++ src/common/json.cc
@@ -630,7 +630,7 @@ Json JsonReader::ParseNumber() {
// multiply zero by inf which gives nan.
if (f != 0.0) {
// Only use exp10 from libc on gcc+linux
-#if !defined(__GNUC__) || defined(_WIN32) || defined(__APPLE__)
+#if !defined(__GNUC__) || defined(_WIN32) || defined(__APPLE__) || defined(__FreeBSD__)
#define exp10(val) std::pow(10, (val))
#endif // !defined(__GNUC__) || defined(_WIN32) || defined(__APPLE__)
f *= exp10(exponent);

View File

@ -0,0 +1,14 @@
--- src/common/timer.cc.orig 2019-12-14 20:35:26 UTC
+++ src/common/timer.cc
@@ -44,8 +44,9 @@ std::vector<Monitor::StatMap> Monitor::CollectFromOthe
statistic[kv.first] = Object();
auto& j_pair = statistic[kv.first];
j_pair["count"] = Integer(kv.second.count);
- j_pair["elapsed"] = Integer(std::chrono::duration_cast<std::chrono::microseconds>(
- kv.second.timer.elapsed).count());
+ // https://github.com/dmlc/xgboost/issues/5117
+ j_pair["elapsed"] = 1; //Integer(std::chrono::duration_cast<std::chrono::microseconds>(
+ //kv.second.timer.elapsed).count());
}
std::stringstream ss;

5
misc/xgboost/pkg-descr Normal file
View File

@ -0,0 +1,5 @@
Scalable, Portable and Distributed Gradient Boosting (GBDT, GBRT or GBM)
Library, for Python, R, Java, Scala, C++ and more. Runs on single machine,
Hadoop, Spark, Flink and DataFlow.
WWW: https://xgboost.ai/

46
misc/xgboost/pkg-plist Normal file
View File

@ -0,0 +1,46 @@
bin/xgboost
include/rabit/c_api.h
include/rabit/internal/engine.h
include/rabit/internal/io.h
include/rabit/internal/rabit-inl.h
include/rabit/internal/socket.h
include/rabit/internal/thread_local.h
include/rabit/internal/timer.h
include/rabit/internal/utils.h
include/rabit/rabit.h
include/rabit/serializable.h
include/xgboost/base.h
include/xgboost/c_api.h
include/xgboost/data.h
include/xgboost/feature_map.h
include/xgboost/gbm.h
include/xgboost/generic_parameters.h
include/xgboost/host_device_vector.h
include/xgboost/json.h
include/xgboost/json_io.h
include/xgboost/learner.h
include/xgboost/linear_updater.h
include/xgboost/logging.h
include/xgboost/metric.h
include/xgboost/model.h
include/xgboost/objective.h
include/xgboost/parameter.h
include/xgboost/predictor.h
include/xgboost/span.h
include/xgboost/tree_model.h
include/xgboost/tree_updater.h
include/xgboost/version_config.h
lib/cmake/rabit/rabitConfig.cmake
lib/cmake/rabit/rabitConfigVersion.cmake
lib/cmake/rabit/rabitTargets-%%CMAKE_BUILD_TYPE%%.cmake
lib/cmake/rabit/rabitTargets.cmake
lib/cmake/xgboost/XGBoostTargets-%%CMAKE_BUILD_TYPE%%.cmake
lib/cmake/xgboost/XGBoostTargets.cmake
lib/cmake/xgboost/xgboost-config-version.cmake
lib/cmake/xgboost/xgboost-config.cmake
lib/librabit.so
lib/librabit_base.so
lib/librabit_empty.so
lib/librabit_mock.so
lib/librabit_mock_static.a
lib/libxgboost.so