This PR replaces the original RABIT implementation with a new one, which has already been partially merged into XGBoost. The new one features: - Federated learning for both CPU and GPU. - NCCL. - More data types. - A unified interface for all the underlying implementations. - Improved timeout handling for both tracker and workers. - Exhausted tests with metrics (fixed a couple of bugs along the way). - A reusable tracker for Python and JVM packages.
135 lines
4.6 KiB
Plaintext
135 lines
4.6 KiB
Plaintext
# package root
|
|
PKGROOT=../../
|
|
ENABLE_STD_THREAD=0
|
|
# _*_ mode: Makefile; _*_
|
|
|
|
CXX_STD = CXX17
|
|
|
|
XGB_RFLAGS = \
|
|
-DXGBOOST_STRICT_R_MODE=1 \
|
|
-DDMLC_LOG_BEFORE_THROW=0 \
|
|
-DDMLC_ENABLE_STD_THREAD=$(ENABLE_STD_THREAD) \
|
|
-DDMLC_DISABLE_STDIN=1 \
|
|
-DDMLC_LOG_CUSTOMIZE=1
|
|
|
|
# disable the use of thread_local for 32 bit windows:
|
|
ifeq ($(R_OSTYPE)$(WIN),windows)
|
|
XGB_RFLAGS += -DDMLC_CXX11_THREAD_LOCAL=0
|
|
endif
|
|
$(foreach v, $(XGB_RFLAGS), $(warning $(v)))
|
|
|
|
PKG_CPPFLAGS = \
|
|
-I$(PKGROOT)/include \
|
|
-I$(PKGROOT)/dmlc-core/include \
|
|
-I$(PKGROOT)/rabit/include \
|
|
-I$(PKGROOT) \
|
|
$(XGB_RFLAGS)
|
|
|
|
PKG_CXXFLAGS = \
|
|
$(SHLIB_OPENMP_CXXFLAGS) \
|
|
-DDMLC_CMAKE_LITTLE_ENDIAN=1 \
|
|
$(SHLIB_PTHREAD_FLAGS) \
|
|
$(CXX_VISIBILITY)
|
|
|
|
PKG_LIBS = \
|
|
$(SHLIB_OPENMP_CXXFLAGS) \
|
|
-DDMLC_CMAKE_LITTLE_ENDIAN=1 \
|
|
$(SHLIB_PTHREAD_FLAGS) \
|
|
-lwsock32 \
|
|
-lws2_32
|
|
|
|
OBJECTS= \
|
|
./xgboost_R.o \
|
|
./xgboost_custom.o \
|
|
./init.o \
|
|
$(PKGROOT)/src/metric/metric.o \
|
|
$(PKGROOT)/src/metric/elementwise_metric.o \
|
|
$(PKGROOT)/src/metric/multiclass_metric.o \
|
|
$(PKGROOT)/src/metric/rank_metric.o \
|
|
$(PKGROOT)/src/metric/auc.o \
|
|
$(PKGROOT)/src/metric/survival_metric.o \
|
|
$(PKGROOT)/src/objective/objective.o \
|
|
$(PKGROOT)/src/objective/regression_obj.o \
|
|
$(PKGROOT)/src/objective/multiclass_obj.o \
|
|
$(PKGROOT)/src/objective/lambdarank_obj.o \
|
|
$(PKGROOT)/src/objective/hinge.o \
|
|
$(PKGROOT)/src/objective/aft_obj.o \
|
|
$(PKGROOT)/src/objective/adaptive.o \
|
|
$(PKGROOT)/src/objective/init_estimation.o \
|
|
$(PKGROOT)/src/objective/quantile_obj.o \
|
|
$(PKGROOT)/src/gbm/gbm.o \
|
|
$(PKGROOT)/src/gbm/gbtree.o \
|
|
$(PKGROOT)/src/gbm/gbtree_model.o \
|
|
$(PKGROOT)/src/gbm/gblinear.o \
|
|
$(PKGROOT)/src/gbm/gblinear_model.o \
|
|
$(PKGROOT)/src/data/adapter.o \
|
|
$(PKGROOT)/src/data/array_interface.o \
|
|
$(PKGROOT)/src/data/simple_dmatrix.o \
|
|
$(PKGROOT)/src/data/data.o \
|
|
$(PKGROOT)/src/data/sparse_page_raw_format.o \
|
|
$(PKGROOT)/src/data/ellpack_page.o \
|
|
$(PKGROOT)/src/data/file_iterator.o \
|
|
$(PKGROOT)/src/data/gradient_index.o \
|
|
$(PKGROOT)/src/data/gradient_index_page_source.o \
|
|
$(PKGROOT)/src/data/gradient_index_format.o \
|
|
$(PKGROOT)/src/data/sparse_page_dmatrix.o \
|
|
$(PKGROOT)/src/data/proxy_dmatrix.o \
|
|
$(PKGROOT)/src/data/iterative_dmatrix.o \
|
|
$(PKGROOT)/src/predictor/predictor.o \
|
|
$(PKGROOT)/src/predictor/cpu_predictor.o \
|
|
$(PKGROOT)/src/predictor/cpu_treeshap.o \
|
|
$(PKGROOT)/src/tree/constraints.o \
|
|
$(PKGROOT)/src/tree/param.o \
|
|
$(PKGROOT)/src/tree/fit_stump.o \
|
|
$(PKGROOT)/src/tree/tree_model.o \
|
|
$(PKGROOT)/src/tree/multi_target_tree_model.o \
|
|
$(PKGROOT)/src/tree/tree_updater.o \
|
|
$(PKGROOT)/src/tree/updater_approx.o \
|
|
$(PKGROOT)/src/tree/updater_colmaker.o \
|
|
$(PKGROOT)/src/tree/updater_prune.o \
|
|
$(PKGROOT)/src/tree/updater_quantile_hist.o \
|
|
$(PKGROOT)/src/tree/updater_refresh.o \
|
|
$(PKGROOT)/src/tree/updater_sync.o \
|
|
$(PKGROOT)/src/tree/hist/param.o \
|
|
$(PKGROOT)/src/tree/hist/histogram.o \
|
|
$(PKGROOT)/src/linear/linear_updater.o \
|
|
$(PKGROOT)/src/linear/updater_coordinate.o \
|
|
$(PKGROOT)/src/linear/updater_shotgun.o \
|
|
$(PKGROOT)/src/learner.o \
|
|
$(PKGROOT)/src/context.o \
|
|
$(PKGROOT)/src/logging.o \
|
|
$(PKGROOT)/src/global_config.o \
|
|
$(PKGROOT)/src/collective/result.o \
|
|
$(PKGROOT)/src/collective/allgather.o \
|
|
$(PKGROOT)/src/collective/allreduce.o \
|
|
$(PKGROOT)/src/collective/broadcast.o \
|
|
$(PKGROOT)/src/collective/comm.o \
|
|
$(PKGROOT)/src/collective/comm_group.o \
|
|
$(PKGROOT)/src/collective/coll.o \
|
|
$(PKGROOT)/src/collective/tracker.o \
|
|
$(PKGROOT)/src/collective/in_memory_handler.o \
|
|
$(PKGROOT)/src/collective/loop.o \
|
|
$(PKGROOT)/src/collective/socket.o \
|
|
$(PKGROOT)/src/common/charconv.o \
|
|
$(PKGROOT)/src/common/column_matrix.o \
|
|
$(PKGROOT)/src/common/common.o \
|
|
$(PKGROOT)/src/common/error_msg.o \
|
|
$(PKGROOT)/src/common/hist_util.o \
|
|
$(PKGROOT)/src/common/host_device_vector.o \
|
|
$(PKGROOT)/src/common/io.o \
|
|
$(PKGROOT)/src/common/json.o \
|
|
$(PKGROOT)/src/common/numeric.o \
|
|
$(PKGROOT)/src/common/pseudo_huber.o \
|
|
$(PKGROOT)/src/common/quantile.o \
|
|
$(PKGROOT)/src/common/random.o \
|
|
$(PKGROOT)/src/common/stats.o \
|
|
$(PKGROOT)/src/common/survival_util.o \
|
|
$(PKGROOT)/src/common/threading_utils.o \
|
|
$(PKGROOT)/src/common/ranking_utils.o \
|
|
$(PKGROOT)/src/common/quantile_loss_utils.o \
|
|
$(PKGROOT)/src/common/timer.o \
|
|
$(PKGROOT)/src/common/version.o \
|
|
$(PKGROOT)/src/c_api/c_api.o \
|
|
$(PKGROOT)/src/c_api/c_api_error.o \
|
|
$(PKGROOT)/amalgamation/dmlc-minimum0.o
|