Showing preview only (9,835K chars total). Download the full file or copy to clipboard to get everything.
Repository: dmlc/xgboost
Branch: master
Commit: a1f9c111bef4
Files: 1414
Total size: 9.1 MB
Directory structure:
gitextract_kt5qph6q/
├── .clang-format
├── .clang-tidy
├── .editorconfig
├── .gitattributes
├── .github/
│ ├── FUNDING.yml
│ ├── ISSUE_TEMPLATE.md
│ ├── dependabot.yml
│ ├── lock.yml
│ ├── runs-on.yml
│ └── workflows/
│ ├── cccl_nightly.yml
│ ├── freebsd.yml
│ ├── jvm_tests.yml
│ ├── lint.yml
│ ├── main.yml
│ ├── misc.yml
│ ├── pre-commit.yml
│ ├── python_tests.yml
│ ├── python_wheels_variants.yml
│ ├── python_wheels_winarm64.yml
│ ├── r_nold.yml
│ ├── r_tests.yml
│ ├── scorecards.yml
│ ├── sycl_tests.yml
│ └── windows.yml
├── .gitignore
├── .gitmodules
├── .pre-commit-config.yaml
├── .readthedocs.yaml
├── CITATION
├── CMakeLists.txt
├── CONTRIBUTORS.md
├── LICENSE
├── NEWS.md
├── R-package/
│ ├── .Rbuildignore
│ ├── .gitignore
│ ├── CMakeLists.txt
│ ├── DESCRIPTION
│ ├── NAMESPACE
│ ├── R/
│ │ ├── callbacks.R
│ │ ├── utils.R
│ │ ├── xgb.Booster.R
│ │ ├── xgb.DMatrix.R
│ │ ├── xgb.DMatrix.save.R
│ │ ├── xgb.config.R
│ │ ├── xgb.create.features.R
│ │ ├── xgb.cv.R
│ │ ├── xgb.dump.R
│ │ ├── xgb.ggplot.R
│ │ ├── xgb.importance.R
│ │ ├── xgb.load.R
│ │ ├── xgb.load.raw.R
│ │ ├── xgb.model.dt.tree.R
│ │ ├── xgb.plot.deepness.R
│ │ ├── xgb.plot.importance.R
│ │ ├── xgb.plot.multi.trees.R
│ │ ├── xgb.plot.shap.R
│ │ ├── xgb.plot.tree.R
│ │ ├── xgb.save.R
│ │ ├── xgb.save.raw.R
│ │ ├── xgb.train.R
│ │ └── xgboost.R
│ ├── README.md
│ ├── bootstrap.R
│ ├── cleanup
│ ├── configure
│ ├── configure.ac
│ ├── configure.win
│ ├── data/
│ │ ├── agaricus.test.rda
│ │ └── agaricus.train.rda
│ ├── inst/
│ │ └── make-r-def.R
│ ├── man/
│ │ ├── a-compatibility-note-for-saveRDS-save.Rd
│ │ ├── agaricus.test.Rd
│ │ ├── agaricus.train.Rd
│ │ ├── coef.xgb.Booster.Rd
│ │ ├── dim.xgb.DMatrix.Rd
│ │ ├── dimnames.xgb.DMatrix.Rd
│ │ ├── getinfo.Rd
│ │ ├── predict.xgb.Booster.Rd
│ │ ├── predict.xgboost.Rd
│ │ ├── print.xgb.Booster.Rd
│ │ ├── print.xgb.DMatrix.Rd
│ │ ├── print.xgb.cv.Rd
│ │ ├── print.xgboost.Rd
│ │ ├── variable.names.xgb.Booster.Rd
│ │ ├── xgb.Callback.Rd
│ │ ├── xgb.DMatrix.Rd
│ │ ├── xgb.DMatrix.hasinfo.Rd
│ │ ├── xgb.DMatrix.save.Rd
│ │ ├── xgb.DataBatch.Rd
│ │ ├── xgb.DataIter.Rd
│ │ ├── xgb.ExtMemDMatrix.Rd
│ │ ├── xgb.QuantileDMatrix.from_iterator.Rd
│ │ ├── xgb.attr.Rd
│ │ ├── xgb.cb.cv.predict.Rd
│ │ ├── xgb.cb.early.stop.Rd
│ │ ├── xgb.cb.evaluation.log.Rd
│ │ ├── xgb.cb.gblinear.history.Rd
│ │ ├── xgb.cb.print.evaluation.Rd
│ │ ├── xgb.cb.reset.parameters.Rd
│ │ ├── xgb.cb.save.model.Rd
│ │ ├── xgb.config.Rd
│ │ ├── xgb.copy.Booster.Rd
│ │ ├── xgb.create.features.Rd
│ │ ├── xgb.cv.Rd
│ │ ├── xgb.dump.Rd
│ │ ├── xgb.gblinear.history.Rd
│ │ ├── xgb.get.DMatrix.data.Rd
│ │ ├── xgb.get.DMatrix.num.non.missing.Rd
│ │ ├── xgb.get.DMatrix.qcut.Rd
│ │ ├── xgb.get.num.boosted.rounds.Rd
│ │ ├── xgb.importance.Rd
│ │ ├── xgb.is.same.Booster.Rd
│ │ ├── xgb.load.Rd
│ │ ├── xgb.load.raw.Rd
│ │ ├── xgb.model.dt.tree.Rd
│ │ ├── xgb.model.parameters.Rd
│ │ ├── xgb.params.Rd
│ │ ├── xgb.plot.deepness.Rd
│ │ ├── xgb.plot.importance.Rd
│ │ ├── xgb.plot.multi.trees.Rd
│ │ ├── xgb.plot.shap.Rd
│ │ ├── xgb.plot.shap.summary.Rd
│ │ ├── xgb.plot.tree.Rd
│ │ ├── xgb.save.Rd
│ │ ├── xgb.save.raw.Rd
│ │ ├── xgb.slice.Booster.Rd
│ │ ├── xgb.slice.DMatrix.Rd
│ │ ├── xgb.train.Rd
│ │ ├── xgbConfig.Rd
│ │ ├── xgboost-options.Rd
│ │ └── xgboost.Rd
│ ├── pkgdown/
│ │ └── _pkgdown.yml
│ ├── remove_warning_suppression_pragma.sh
│ ├── src/
│ │ ├── Makevars.in
│ │ ├── Makevars.win.in
│ │ ├── config.h.in
│ │ ├── init.c
│ │ ├── xgboost-win.def
│ │ ├── xgboost_R.cc
│ │ ├── xgboost_R.h
│ │ └── xgboost_custom.cc
│ ├── tests/
│ │ ├── helper_scripts/
│ │ │ ├── generate_models.R
│ │ │ ├── install_deps.R
│ │ │ └── run-examples.R
│ │ ├── testthat/
│ │ │ ├── helper_model.R
│ │ │ ├── test_basic.R
│ │ │ ├── test_booster_slicing.R
│ │ │ ├── test_callbacks.R
│ │ │ ├── test_config.R
│ │ │ ├── test_custom_objective.R
│ │ │ ├── test_dmatrix.R
│ │ │ ├── test_feature_weights.R
│ │ │ ├── test_glm.R
│ │ │ ├── test_helpers.R
│ │ │ ├── test_interaction_constraints.R
│ │ │ ├── test_interactions.R
│ │ │ ├── test_io.R
│ │ │ ├── test_model_compatibility.R
│ │ │ ├── test_monotone.R
│ │ │ ├── test_parameter_exposure.R
│ │ │ ├── test_poisson_regression.R
│ │ │ ├── test_ranking.R
│ │ │ ├── test_unicode.R
│ │ │ ├── test_update.R
│ │ │ └── test_xgboost.R
│ │ └── testthat.R
│ └── vignettes/
│ ├── xgboost_introduction.Rmd
│ └── xgboostfromJSON.Rmd
├── README.md
├── SECURITY.md
├── amalgamation/
│ └── dmlc-minimum0.cc
├── cmake/
│ ├── Doc.cmake
│ ├── FindOpenMPMacOS.cmake
│ ├── PrefetchIntrinsics.cmake
│ ├── RPackageInstall.cmake.in
│ ├── RPackageInstallTargetSetup.cmake
│ ├── Sanitizer.cmake
│ ├── Utils.cmake
│ ├── Version.cmake
│ ├── modules/
│ │ ├── FindASan.cmake
│ │ ├── FindLSan.cmake
│ │ ├── FindLibR.cmake
│ │ ├── FindNVML.cmake
│ │ ├── FindNccl.cmake
│ │ ├── FindTSan.cmake
│ │ └── FindUBSan.cmake
│ ├── version_config.h.in
│ ├── xgboost-config.cmake.in
│ └── xgboost.pc.in
├── demo/
│ ├── .gitignore
│ ├── README.md
│ ├── aft_survival/
│ │ ├── README.rst
│ │ ├── aft_survival_demo.py
│ │ ├── aft_survival_demo_with_optuna.py
│ │ └── aft_survival_viz_demo.py
│ ├── c-api/
│ │ ├── .gitignore
│ │ ├── basic/
│ │ │ ├── Makefile
│ │ │ ├── README.md
│ │ │ └── c-api-demo.c
│ │ ├── external-memory/
│ │ │ ├── README.md
│ │ │ └── external_memory.c
│ │ └── inference/
│ │ └── inference.c
│ ├── dask/
│ │ ├── README.rst
│ │ ├── cpu_survival.py
│ │ ├── cpu_training.py
│ │ ├── dask_callbacks.py
│ │ ├── dask_learning_to_rank.py
│ │ ├── forward_logging.py
│ │ ├── gpu_training.py
│ │ ├── sklearn_cpu_training.py
│ │ └── sklearn_gpu_training.py
│ ├── data/
│ │ ├── README.md
│ │ ├── gen_autoclaims.R
│ │ └── regression/
│ │ ├── README.md
│ │ ├── machine.names
│ │ ├── mapfeat.py
│ │ └── mknfold.py
│ ├── guide-python/
│ │ ├── README.rst
│ │ ├── basic_walkthrough.py
│ │ ├── boost_from_prediction.py
│ │ ├── callbacks.py
│ │ ├── cat_in_the_dat.py
│ │ ├── cat_pipeline.py
│ │ ├── categorical.py
│ │ ├── continuation.py
│ │ ├── cover_type.py
│ │ ├── cross_validation.py
│ │ ├── custom_rmsle.py
│ │ ├── custom_softmax.py
│ │ ├── distributed_extmem_basic.py
│ │ ├── evals_result.py
│ │ ├── external_memory.py
│ │ ├── feature_weights.py
│ │ ├── gamma_regression.py
│ │ ├── generalized_linear_model.py
│ │ ├── gpu_tree_shap.py
│ │ ├── individual_trees.py
│ │ ├── learning_to_rank.py
│ │ ├── model_parser.py
│ │ ├── multioutput_reduced_gradient.py
│ │ ├── multioutput_regression.py
│ │ ├── predict_first_ntree.py
│ │ ├── predict_leaf_indices.py
│ │ ├── quantile_data_iterator.py
│ │ ├── quantile_regression.py
│ │ ├── sklearn_evals_result.py
│ │ ├── sklearn_examples.py
│ │ ├── sklearn_parallel.py
│ │ ├── spark_estimator_examples.py
│ │ └── update_process.py
│ ├── kaggle-higgs/
│ │ ├── README.md
│ │ ├── higgs-cv.py
│ │ ├── higgs-numpy.py
│ │ ├── higgs-pred.R
│ │ ├── higgs-pred.py
│ │ ├── higgs-train.R
│ │ ├── run.sh
│ │ ├── speedtest.R
│ │ └── speedtest.py
│ ├── kaggle-otto/
│ │ ├── README.MD
│ │ ├── otto_train_pred.R
│ │ └── understandingXGBoostModel.Rmd
│ ├── multiclass_classification/
│ │ ├── README.md
│ │ ├── runexp.sh
│ │ ├── train.R
│ │ └── train.py
│ ├── nvflare/
│ │ ├── .gitignore
│ │ ├── README.md
│ │ ├── config/
│ │ │ ├── config_fed_client.json
│ │ │ └── config_fed_server.json
│ │ ├── horizontal/
│ │ │ ├── README.md
│ │ │ ├── custom/
│ │ │ │ ├── controller.py
│ │ │ │ └── trainer.py
│ │ │ └── prepare_data.sh
│ │ └── vertical/
│ │ ├── README.md
│ │ ├── custom/
│ │ │ ├── controller.py
│ │ │ └── trainer.py
│ │ └── prepare_data.sh
│ └── rmm_plugin/
│ ├── README.rst
│ ├── rmm_mgpu_with_dask.py
│ └── rmm_singlegpu.py
├── dev/
│ ├── prepare_jvm_release.py
│ └── query_contributors.py
├── doc/
│ ├── .gitignore
│ ├── Doxyfile.in
│ ├── Makefile
│ ├── R-package/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── adding_parameters.rst
│ │ ├── index.rst
│ │ ├── index_base.rst
│ │ ├── migration_guide.rst
│ │ └── r_docs/
│ │ └── index.rst
│ ├── README
│ ├── build.rst
│ ├── c++.rst
│ ├── c.rst
│ ├── changes/
│ │ ├── index.rst
│ │ ├── v2.1.0.rst
│ │ ├── v3.0.0.rst
│ │ ├── v3.1.0.rst
│ │ └── v3.2.0.rst
│ ├── conf.py
│ ├── contrib/
│ │ ├── ci.rst
│ │ ├── coding_guide.rst
│ │ ├── community.rst
│ │ ├── consistency.rst
│ │ ├── docs.rst
│ │ ├── donate.rst
│ │ ├── featuremap.rst
│ │ ├── git_guide.rst
│ │ ├── index.rst
│ │ ├── python_packaging.rst
│ │ ├── release.rst
│ │ └── unit_tests.rst
│ ├── dump.schema
│ ├── faq.rst
│ ├── get_started.rst
│ ├── gpu/
│ │ └── index.rst
│ ├── index.rst
│ ├── install.rst
│ ├── julia.rst
│ ├── jvm/
│ │ ├── api.rst
│ │ ├── index.rst
│ │ ├── java_intro.rst
│ │ ├── javadocs/
│ │ │ └── index.rst
│ │ ├── scaladocs/
│ │ │ ├── xgboost4j/
│ │ │ │ └── index.rst
│ │ │ ├── xgboost4j-flink/
│ │ │ │ └── index.rst
│ │ │ └── xgboost4j-spark/
│ │ │ └── index.rst
│ │ ├── xgboost4j_spark_gpu_tutorial.rst
│ │ ├── xgboost4j_spark_tutorial.rst
│ │ └── xgboost_spark_migration.rst
│ ├── parameter.rst
│ ├── prediction.rst
│ ├── python/
│ │ ├── .gitignore
│ │ ├── callbacks.rst
│ │ ├── data_input.rst
│ │ ├── index.rst
│ │ ├── python_api.rst
│ │ ├── python_intro.rst
│ │ └── sklearn_estimator.rst
│ ├── requirements.txt
│ ├── sphinx_util.py
│ ├── treemethod.rst
│ ├── tutorials/
│ │ ├── advanced_custom_obj.rst
│ │ ├── aft_survival_analysis.rst
│ │ ├── c_api_tutorial.rst
│ │ ├── categorical.rst
│ │ ├── custom_metric_obj.rst
│ │ ├── dart.rst
│ │ ├── dask.rst
│ │ ├── external_memory.rst
│ │ ├── feature_interaction_constraint.rst
│ │ ├── index.rst
│ │ ├── input_format.rst
│ │ ├── intercept.rst
│ │ ├── kubernetes.rst
│ │ ├── learning_to_rank.rst
│ │ ├── model.rst
│ │ ├── monotonic.rst
│ │ ├── multioutput.rst
│ │ ├── param_tuning.rst
│ │ ├── privacy_preserving.rst
│ │ ├── ray.rst
│ │ ├── rf.rst
│ │ ├── saving_model.rst
│ │ ├── slicing_model.rst
│ │ └── spark_estimator.rst
│ └── xgboost_doc.yml
├── include/
│ └── xgboost/
│ ├── base.h
│ ├── byteswap.h
│ ├── c_api.h
│ ├── cache.h
│ ├── collective/
│ │ ├── poll_utils.h
│ │ ├── result.h
│ │ └── socket.h
│ ├── context.h
│ ├── data.h
│ ├── feature_map.h
│ ├── gbm.h
│ ├── global_config.h
│ ├── gradient.h
│ ├── host_device_vector.h
│ ├── intrusive_ptr.h
│ ├── json.h
│ ├── json_io.h
│ ├── learner.h
│ ├── linalg.h
│ ├── linear_updater.h
│ ├── logging.h
│ ├── metric.h
│ ├── model.h
│ ├── multi_target_tree_model.h
│ ├── objective.h
│ ├── parameter.h
│ ├── predictor.h
│ ├── span.h
│ ├── string_view.h
│ ├── task.h
│ ├── tree_model.h
│ ├── tree_updater.h
│ ├── version_config.h
│ └── windefs.h
├── jvm-packages/
│ ├── .gitignore
│ ├── CMakeLists.txt
│ ├── README.md
│ ├── checkstyle-suppressions.xml
│ ├── checkstyle.xml
│ ├── create_jni.py
│ ├── pom.xml
│ ├── scalastyle-config.xml
│ ├── xgboost4j/
│ │ ├── LICENSE
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── ml/
│ │ │ │ └── dmlc/
│ │ │ │ └── xgboost4j/
│ │ │ │ ├── LabeledPoint.java
│ │ │ │ └── java/
│ │ │ │ ├── Booster.java
│ │ │ │ ├── Column.java
│ │ │ │ ├── ColumnBatch.java
│ │ │ │ ├── Communicator.java
│ │ │ │ ├── ConfigContext.java
│ │ │ │ ├── DMatrix.java
│ │ │ │ ├── DataBatch.java
│ │ │ │ ├── ExternalCheckpointManager.java
│ │ │ │ ├── IEvaluation.java
│ │ │ │ ├── IObjective.java
│ │ │ │ ├── ITracker.java
│ │ │ │ ├── NativeLibLoader.java
│ │ │ │ ├── RabitTracker.java
│ │ │ │ ├── XGBoost.java
│ │ │ │ ├── XGBoostError.java
│ │ │ │ ├── XGBoostJNI.java
│ │ │ │ └── util/
│ │ │ │ ├── BigDenseMatrix.java
│ │ │ │ └── UtilUnsafe.java
│ │ │ ├── resources/
│ │ │ │ └── xgboost4j-version.properties
│ │ │ └── scala/
│ │ │ └── ml/
│ │ │ └── dmlc/
│ │ │ └── xgboost4j/
│ │ │ └── scala/
│ │ │ ├── Booster.scala
│ │ │ ├── DMatrix.scala
│ │ │ ├── EvalTrait.scala
│ │ │ ├── ExternalCheckpointManager.scala
│ │ │ ├── ObjectiveTrait.scala
│ │ │ └── XGBoost.scala
│ │ ├── native/
│ │ │ ├── jvm_utils.h
│ │ │ ├── xgboost4j-gpu.cpp
│ │ │ ├── xgboost4j-gpu.cu
│ │ │ ├── xgboost4j.cpp
│ │ │ └── xgboost4j.h
│ │ └── test/
│ │ ├── java/
│ │ │ └── ml/
│ │ │ └── dmlc/
│ │ │ └── xgboost4j/
│ │ │ └── java/
│ │ │ ├── ArchDetectionTest.java
│ │ │ ├── BoosterImplTest.java
│ │ │ ├── ConfigContextTest.java
│ │ │ ├── DMatrixTest.java
│ │ │ ├── LibraryPathProviderTest.java
│ │ │ ├── OsDetectionTest.java
│ │ │ └── XGBoostTest.java
│ │ └── scala/
│ │ └── ml/
│ │ └── dmlc/
│ │ └── xgboost4j/
│ │ └── scala/
│ │ ├── DMatrixSuite.scala
│ │ └── ScalaBoosterImplSuite.scala
│ ├── xgboost4j-example/
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── ml/
│ │ │ │ └── dmlc/
│ │ │ │ └── xgboost4j/
│ │ │ │ └── java/
│ │ │ │ └── example/
│ │ │ │ ├── BasicWalkThrough.java
│ │ │ │ ├── BoostFromPrediction.java
│ │ │ │ ├── CrossValidation.java
│ │ │ │ ├── CustomObjective.java
│ │ │ │ ├── EarlyStopping.java
│ │ │ │ ├── GeneralizedLinearModel.java
│ │ │ │ ├── PredictFirstNtree.java
│ │ │ │ ├── PredictLeafIndices.java
│ │ │ │ ├── flink/
│ │ │ │ │ └── DistTrainWithFlinkExample.java
│ │ │ │ └── util/
│ │ │ │ ├── CustomEval.java
│ │ │ │ └── DataLoader.java
│ │ │ └── scala/
│ │ │ └── ml/
│ │ │ └── dmlc/
│ │ │ └── xgboost4j/
│ │ │ └── scala/
│ │ │ └── example/
│ │ │ ├── BasicWalkThrough.scala
│ │ │ ├── BoostFromPrediction.scala
│ │ │ ├── CrossValidation.scala
│ │ │ ├── CustomObjective.scala
│ │ │ ├── GeneralizedLinearModel.scala
│ │ │ ├── PredictFirstNTree.scala
│ │ │ ├── PredictLeafIndices.scala
│ │ │ ├── flink/
│ │ │ │ └── DistTrainWithFlink.scala
│ │ │ ├── spark/
│ │ │ │ ├── SparkMLlibPipeline.scala
│ │ │ │ └── SparkTraining.scala
│ │ │ └── util/
│ │ │ └── CustomEval.scala
│ │ └── test/
│ │ ├── java/
│ │ │ └── ml/
│ │ │ └── dmlc/
│ │ │ └── xgboost4j/
│ │ │ └── java/
│ │ │ └── example/
│ │ │ └── JavaExamplesTest.java
│ │ └── scala/
│ │ └── ml/
│ │ └── dmlc/
│ │ └── xgboost4j/
│ │ ├── java/
│ │ │ └── example/
│ │ │ └── flink/
│ │ │ └── DistTrainWithFlinkExampleTest.scala
│ │ └── scala/
│ │ └── example/
│ │ ├── ScalaExamplesTest.scala
│ │ ├── flink/
│ │ │ └── DistTrainWithFlinkSuite.scala
│ │ └── spark/
│ │ └── SparkExamplesTest.scala
│ ├── xgboost4j-flink/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── ml/
│ │ └── dmlc/
│ │ └── xgboost4j/
│ │ └── java/
│ │ └── flink/
│ │ ├── XGBoost.java
│ │ └── XGBoostModel.java
│ ├── xgboost4j-spark/
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ └── scala/
│ │ │ ├── ml/
│ │ │ │ └── dmlc/
│ │ │ │ └── xgboost4j/
│ │ │ │ └── scala/
│ │ │ │ └── spark/
│ │ │ │ ├── Utils.scala
│ │ │ │ ├── XGBoost.scala
│ │ │ │ ├── XGBoostClassifier.scala
│ │ │ │ ├── XGBoostEstimator.scala
│ │ │ │ ├── XGBoostPlugin.scala
│ │ │ │ ├── XGBoostRanker.scala
│ │ │ │ ├── XGBoostRegressor.scala
│ │ │ │ ├── XGBoostTrainingSummary.scala
│ │ │ │ ├── package.scala
│ │ │ │ └── params/
│ │ │ │ ├── CustomParams.scala
│ │ │ │ ├── DartBoosterParams.scala
│ │ │ │ ├── GeneralParams.scala
│ │ │ │ ├── LearningTaskParams.scala
│ │ │ │ ├── ParamMapConversion.scala
│ │ │ │ ├── RabitParams.scala
│ │ │ │ ├── TreeBoosterParams.scala
│ │ │ │ └── XGBoostParams.scala
│ │ │ └── org/
│ │ │ └── apache/
│ │ │ └── spark/
│ │ │ └── ml/
│ │ │ └── xgboost/
│ │ │ └── SparkUtils.scala
│ │ └── test/
│ │ ├── resources/
│ │ │ ├── log4j.properties
│ │ │ ├── model/
│ │ │ │ └── 0.82/
│ │ │ │ └── model/
│ │ │ │ ├── data/
│ │ │ │ │ └── XGBoostClassificationModel
│ │ │ │ └── metadata/
│ │ │ │ ├── _SUCCESS
│ │ │ │ └── part-00000
│ │ │ └── rank.test.txt
│ │ └── scala/
│ │ └── ml/
│ │ └── dmlc/
│ │ └── xgboost4j/
│ │ └── scala/
│ │ └── spark/
│ │ ├── CommunicatorRobustnessSuite.scala
│ │ ├── CustomObj.scala
│ │ ├── EvalError.scala
│ │ ├── PerTest.scala
│ │ ├── TmpFolderPerSuite.scala
│ │ ├── TrainTestData.scala
│ │ ├── XGBoostClassifierSuite.scala
│ │ ├── XGBoostEstimatorSuite.scala
│ │ ├── XGBoostParamsSuite.scala
│ │ ├── XGBoostRankerSuite.scala
│ │ ├── XGBoostRegressorSuite.scala
│ │ └── XGBoostSuite.scala
│ └── xgboost4j-spark-gpu/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── ml/
│ │ │ └── dmlc/
│ │ │ └── xgboost4j/
│ │ │ └── java/
│ │ │ ├── CudfColumn.java
│ │ │ ├── CudfColumnBatch.java
│ │ │ ├── ExtMemQuantileDMatrix.java
│ │ │ └── QuantileDMatrix.java
│ │ ├── resources/
│ │ │ └── META-INF/
│ │ │ └── services/
│ │ │ └── ml.dmlc.xgboost4j.scala.spark.XGBoostPlugin
│ │ └── scala/
│ │ └── ml/
│ │ └── dmlc/
│ │ └── xgboost4j/
│ │ └── scala/
│ │ ├── ExtMemQuantileDMatrix.scala
│ │ ├── QuantileDMatrix.scala
│ │ └── spark/
│ │ ├── ExternalMemory.scala
│ │ └── GpuXGBoostPlugin.scala
│ └── test/
│ ├── java/
│ │ └── ml/
│ │ └── dmlc/
│ │ └── xgboost4j/
│ │ └── java/
│ │ ├── BoosterTest.java
│ │ └── DMatrixTest.java
│ ├── resources/
│ │ └── log4j.properties
│ └── scala/
│ ├── ml/
│ │ └── dmlc/
│ │ └── xgboost4j/
│ │ └── scala/
│ │ ├── ExtMemQuantileDMatrixSuite.scala
│ │ ├── QuantileDMatrixSuite.scala
│ │ └── spark/
│ │ ├── ExternalMemorySuite.scala
│ │ ├── GpuTestSuite.scala
│ │ ├── GpuXGBoostPluginSuite.scala
│ │ └── TrainTestData.scala
│ └── org/
│ └── apache/
│ └── spark/
│ └── GpuTestUtils.scala
├── ops/
│ ├── conda_env/
│ │ ├── aarch64_test.yml
│ │ ├── cpp_test.yml
│ │ ├── linux_cpu_test.yml
│ │ ├── linux_sycl_test.yml
│ │ ├── macos_cpu_test.yml
│ │ ├── minimal.yml
│ │ ├── python_lint.yml
│ │ ├── sdist_test.yml
│ │ └── win64_test.yml
│ ├── docker_run.py
│ ├── pipeline/
│ │ ├── audit-cuda-wheel.sh
│ │ ├── build-cpu.sh
│ │ ├── build-cuda-impl.sh
│ │ ├── build-cuda.sh
│ │ ├── build-gpu-rpkg.sh
│ │ ├── build-jvm-doc.sh
│ │ ├── build-jvm-gpu.sh
│ │ ├── build-jvm-macos.sh
│ │ ├── build-jvm-manylinux2014.sh
│ │ ├── build-python-wheels-arm64-impl.sh
│ │ ├── build-python-wheels-cpu.sh
│ │ ├── build-python-wheels-macos.sh
│ │ ├── build-r-docs.sh
│ │ ├── build-test-jvm-packages.sh
│ │ ├── build-test-sycl.sh
│ │ ├── build-variant-wheels-impl.sh
│ │ ├── build-variant-wheels.sh
│ │ ├── build-win64.ps1
│ │ ├── classify-git-branch.sh
│ │ ├── deploy-jvm-packages.sh
│ │ ├── enforce-ci.ps1
│ │ ├── enforce-ci.sh
│ │ ├── get-docker-registry-details.sh
│ │ ├── get-image-tag.sh
│ │ ├── login-docker-registry.sh
│ │ ├── manage-artifacts.py
│ │ ├── nightly-test-cccl-impl.sh
│ │ ├── nightly-test-cccl.sh
│ │ ├── nightly-test-rmm-impl.sh
│ │ ├── nightly-test-rmm.sh
│ │ ├── query-latest-cccl.sh
│ │ ├── query-latest-rmm.sh
│ │ ├── run-clang-tidy.sh
│ │ ├── test-c-api-demo.sh
│ │ ├── test-cpp-i386.sh
│ │ ├── test-freebsd.sh
│ │ ├── test-python-macos.sh
│ │ ├── test-python-sdist.sh
│ │ ├── test-python-wheel.sh
│ │ ├── test-python-with-sysprefix.sh
│ │ ├── test-win64-gpu.ps1
│ │ ├── trigger-rtd-impl.py
│ │ └── trigger-rtd.sh
│ └── script/
│ ├── change_scala_version.py
│ ├── change_version.py
│ ├── changelog.py
│ ├── format_wheel_meta.py
│ ├── inject_jvm_lib.sh
│ ├── lint_cpp.py
│ ├── lint_r.R
│ ├── pypi_variants.py
│ ├── release_artifacts.py
│ ├── run_clang_tidy.py
│ ├── setup_r_sccache.sh
│ ├── test_r_package.py
│ ├── test_tidy.cc
│ ├── test_utils.py
│ ├── type_check_python.py
│ └── verify_link.sh
├── plugin/
│ ├── CMakeLists.txt
│ ├── README.md
│ ├── example/
│ │ ├── README.md
│ │ └── custom_obj.cc
│ ├── federated/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── federated.proto
│ │ ├── federated_coll.cc
│ │ ├── federated_coll.cu
│ │ ├── federated_coll.cuh
│ │ ├── federated_coll.h
│ │ ├── federated_comm.cc
│ │ ├── federated_comm.cu
│ │ ├── federated_comm.cuh
│ │ ├── federated_comm.h
│ │ ├── federated_tracker.cc
│ │ └── federated_tracker.h
│ ├── sycl/
│ │ ├── README.md
│ │ ├── common/
│ │ │ ├── hist_util.cc
│ │ │ ├── hist_util.h
│ │ │ ├── host_device_vector.cc
│ │ │ ├── linalg_op.cc
│ │ │ ├── linalg_op.h
│ │ │ ├── optional_weight.cc
│ │ │ ├── partition_builder.h
│ │ │ ├── row_set.h
│ │ │ ├── stats.cc
│ │ │ └── transform.h
│ │ ├── context_helper.cc
│ │ ├── context_helper.h
│ │ ├── data/
│ │ │ ├── gradient_index.cc
│ │ │ └── gradient_index.h
│ │ ├── data.h
│ │ ├── device_manager.cc
│ │ ├── device_manager.h
│ │ ├── device_properties.h
│ │ ├── predictor/
│ │ │ ├── node.h
│ │ │ └── predictor.cc
│ │ └── tree/
│ │ ├── expand_entry.h
│ │ ├── hist_dispatcher.h
│ │ ├── hist_row_adder.h
│ │ ├── hist_synchronizer.h
│ │ ├── hist_updater.cc
│ │ ├── hist_updater.h
│ │ ├── param.h
│ │ ├── split_evaluator.h
│ │ ├── updater_quantile_hist.cc
│ │ └── updater_quantile_hist.h
│ └── updater_gpu/
│ └── README.md
├── python-package/
│ ├── .gitignore
│ ├── README.cpu.rst
│ ├── README.dft.rst
│ ├── README.rst
│ ├── README.stub.rst
│ ├── hatch_build.py
│ ├── packager/
│ │ ├── __init__.py
│ │ ├── build_config.py
│ │ ├── nativelib.py
│ │ ├── pep517.py
│ │ ├── sdist.py
│ │ └── util.py
│ ├── pyproject.toml
│ ├── pyproject.toml.in
│ ├── pyproject.toml.stub.in
│ └── xgboost/
│ ├── VERSION
│ ├── __init__.py
│ ├── _c_api.py
│ ├── _data_utils.py
│ ├── _typing.py
│ ├── callback.py
│ ├── collective.py
│ ├── compat.py
│ ├── config.py
│ ├── core.py
│ ├── dask/
│ │ ├── __init__.py
│ │ ├── data.py
│ │ └── utils.py
│ ├── data.py
│ ├── federated.py
│ ├── libpath.py
│ ├── objective.py
│ ├── plotting.py
│ ├── py.typed
│ ├── sklearn.py
│ ├── spark/
│ │ ├── __init__.py
│ │ ├── core.py
│ │ ├── data.py
│ │ ├── estimator.py
│ │ ├── params.py
│ │ ├── summary.py
│ │ └── utils.py
│ ├── testing/
│ │ ├── __init__.py
│ │ ├── basic_models.py
│ │ ├── callbacks.py
│ │ ├── collective.py
│ │ ├── continuation.py
│ │ ├── dask.py
│ │ ├── data.py
│ │ ├── data_iter.py
│ │ ├── federated.py
│ │ ├── interaction_constraints.py
│ │ ├── intercept.py
│ │ ├── metrics.py
│ │ ├── monotone_constraints.py
│ │ ├── multi_target.py
│ │ ├── ordinal.py
│ │ ├── params.py
│ │ ├── parse_tree.py
│ │ ├── plotting.py
│ │ ├── predict.py
│ │ ├── quantile_dmatrix.py
│ │ ├── ranking.py
│ │ ├── shared.py
│ │ ├── updater.py
│ │ ├── utils.py
│ │ └── with_skl.py
│ ├── tracker.py
│ └── training.py
├── src/
│ ├── CMakeLists.txt
│ ├── c_api/
│ │ ├── c_api.cc
│ │ ├── c_api.cu
│ │ ├── c_api_error.cc
│ │ ├── c_api_error.h
│ │ ├── c_api_utils.h
│ │ └── coll_c_api.cc
│ ├── collective/
│ │ ├── aggregator.cuh
│ │ ├── aggregator.h
│ │ ├── allgather.cc
│ │ ├── allgather.h
│ │ ├── allreduce.cc
│ │ ├── allreduce.h
│ │ ├── broadcast.cc
│ │ ├── broadcast.h
│ │ ├── coll.cc
│ │ ├── coll.cu
│ │ ├── coll.cuh
│ │ ├── coll.h
│ │ ├── comm.cc
│ │ ├── comm.cu
│ │ ├── comm.cuh
│ │ ├── comm.h
│ │ ├── comm_group.cc
│ │ ├── comm_group.h
│ │ ├── communicator-inl.h
│ │ ├── in_memory_communicator.h
│ │ ├── in_memory_handler.cc
│ │ ├── in_memory_handler.h
│ │ ├── loop.cc
│ │ ├── loop.h
│ │ ├── nccl_stub.cc
│ │ ├── nccl_stub.h
│ │ ├── protocol.h
│ │ ├── result.cc
│ │ ├── socket.cc
│ │ ├── topo.h
│ │ ├── tracker.cc
│ │ └── tracker.h
│ ├── common/
│ │ ├── algorithm.cuh
│ │ ├── algorithm.h
│ │ ├── api_entry.h
│ │ ├── base64.h
│ │ ├── bitfield.h
│ │ ├── cache_manager.cc
│ │ ├── cache_manager.h
│ │ ├── categorical.h
│ │ ├── charconv.cc
│ │ ├── charconv.h
│ │ ├── column_matrix.cc
│ │ ├── column_matrix.h
│ │ ├── common.cc
│ │ ├── common.cu
│ │ ├── common.h
│ │ ├── compressed_iterator.h
│ │ ├── cuda_context.cuh
│ │ ├── cuda_dr_utils.cc
│ │ ├── cuda_dr_utils.h
│ │ ├── cuda_pinned_allocator.cu
│ │ ├── cuda_pinned_allocator.h
│ │ ├── cuda_rt_utils.cc
│ │ ├── cuda_rt_utils.h
│ │ ├── cuda_stream.h
│ │ ├── cuda_stream_pool.h
│ │ ├── deterministic.cuh
│ │ ├── device_compression.cu
│ │ ├── device_compression.cuh
│ │ ├── device_compression.h
│ │ ├── device_debug.cuh
│ │ ├── device_helpers.cu
│ │ ├── device_helpers.cuh
│ │ ├── device_vector.cu
│ │ ├── device_vector.cuh
│ │ ├── error_msg.cc
│ │ ├── error_msg.h
│ │ ├── expectile_loss_utils.cc
│ │ ├── expectile_loss_utils.h
│ │ ├── group_data.h
│ │ ├── hist_util.cc
│ │ ├── hist_util.cu
│ │ ├── hist_util.cuh
│ │ ├── hist_util.h
│ │ ├── host_device_vector.cc
│ │ ├── host_device_vector.cu
│ │ ├── io.cc
│ │ ├── io.h
│ │ ├── json.cc
│ │ ├── json_utils.h
│ │ ├── linalg_op.cc
│ │ ├── linalg_op.cu
│ │ ├── linalg_op.cuh
│ │ ├── linalg_op.h
│ │ ├── math.h
│ │ ├── numa_topo.cc
│ │ ├── numa_topo.h
│ │ ├── numeric.cc
│ │ ├── numeric.cu
│ │ ├── numeric.h
│ │ ├── nvtx_utils.h
│ │ ├── observer.h
│ │ ├── optional_weight.cc
│ │ ├── optional_weight.cu
│ │ ├── optional_weight.h
│ │ ├── param_array.cc
│ │ ├── param_array.h
│ │ ├── partition_builder.h
│ │ ├── probability_distribution.h
│ │ ├── pseudo_huber.cc
│ │ ├── pseudo_huber.h
│ │ ├── quantile.cc
│ │ ├── quantile.cu
│ │ ├── quantile.cuh
│ │ ├── quantile.h
│ │ ├── quantile_loss_utils.cc
│ │ ├── quantile_loss_utils.h
│ │ ├── random.cc
│ │ ├── random.cu
│ │ ├── random.h
│ │ ├── ranking_utils.cc
│ │ ├── ranking_utils.cu
│ │ ├── ranking_utils.cuh
│ │ ├── ranking_utils.h
│ │ ├── ref_resource_view.cuh
│ │ ├── ref_resource_view.h
│ │ ├── resource.cu
│ │ ├── resource.cuh
│ │ ├── row_set.h
│ │ ├── stats.cc
│ │ ├── stats.cu
│ │ ├── stats.cuh
│ │ ├── stats.h
│ │ ├── survival_util.cc
│ │ ├── survival_util.h
│ │ ├── threading_utils.cc
│ │ ├── threading_utils.cuh
│ │ ├── threading_utils.h
│ │ ├── threadpool.h
│ │ ├── timer.cc
│ │ ├── timer.h
│ │ ├── transform.h
│ │ ├── transform_iterator.h
│ │ ├── type.h
│ │ ├── utils.h
│ │ ├── version.cc
│ │ └── version.h
│ ├── context.cc
│ ├── context.cu
│ ├── data/
│ │ ├── adapter.cc
│ │ ├── adapter.h
│ │ ├── array_interface.cc
│ │ ├── array_interface.cu
│ │ ├── array_interface.h
│ │ ├── batch_utils.cc
│ │ ├── batch_utils.h
│ │ ├── cat_container.cc
│ │ ├── cat_container.cu
│ │ ├── cat_container.cuh
│ │ ├── cat_container.h
│ │ ├── columnar.h
│ │ ├── data.cc
│ │ ├── data.cu
│ │ ├── device_adapter.cu
│ │ ├── device_adapter.cuh
│ │ ├── ellpack_page.cc
│ │ ├── ellpack_page.cu
│ │ ├── ellpack_page.cuh
│ │ ├── ellpack_page.h
│ │ ├── ellpack_page_raw_format.cu
│ │ ├── ellpack_page_raw_format.h
│ │ ├── ellpack_page_source.cu
│ │ ├── ellpack_page_source.h
│ │ ├── entry.h
│ │ ├── extmem_quantile_dmatrix.cc
│ │ ├── extmem_quantile_dmatrix.cu
│ │ ├── extmem_quantile_dmatrix.h
│ │ ├── file_iterator.cc
│ │ ├── file_iterator.h
│ │ ├── gradient_index.cc
│ │ ├── gradient_index.cu
│ │ ├── gradient_index.h
│ │ ├── gradient_index_format.cc
│ │ ├── gradient_index_format.h
│ │ ├── gradient_index_page_source.cc
│ │ ├── gradient_index_page_source.h
│ │ ├── iterative_dmatrix.cc
│ │ ├── iterative_dmatrix.cu
│ │ ├── iterative_dmatrix.h
│ │ ├── metainfo.cc
│ │ ├── metainfo.cu
│ │ ├── metainfo.h
│ │ ├── proxy_dmatrix.cc
│ │ ├── proxy_dmatrix.cu
│ │ ├── proxy_dmatrix.cuh
│ │ ├── proxy_dmatrix.h
│ │ ├── quantile_dmatrix.cc
│ │ ├── quantile_dmatrix.cu
│ │ ├── quantile_dmatrix.h
│ │ ├── simple_batch_iterator.h
│ │ ├── simple_dmatrix.cc
│ │ ├── simple_dmatrix.cu
│ │ ├── simple_dmatrix.cuh
│ │ ├── simple_dmatrix.h
│ │ ├── sparse_page_dmatrix.cc
│ │ ├── sparse_page_dmatrix.cu
│ │ ├── sparse_page_dmatrix.h
│ │ ├── sparse_page_raw_format.cc
│ │ ├── sparse_page_source.cc
│ │ ├── sparse_page_source.cu
│ │ ├── sparse_page_source.h
│ │ └── sparse_page_writer.h
│ ├── encoder/
│ │ ├── ordinal.cuh
│ │ ├── ordinal.h
│ │ └── types.h
│ ├── gbm/
│ │ ├── gblinear.cc
│ │ ├── gblinear_model.cc
│ │ ├── gblinear_model.h
│ │ ├── gbm.cc
│ │ ├── gbtree.cc
│ │ ├── gbtree.cu
│ │ ├── gbtree.h
│ │ ├── gbtree_model.cc
│ │ └── gbtree_model.h
│ ├── global_config.cc
│ ├── learner.cc
│ ├── linear/
│ │ ├── coordinate_common.h
│ │ ├── linear_updater.cc
│ │ ├── param.h
│ │ ├── updater_coordinate.cc
│ │ ├── updater_gpu_coordinate.cu
│ │ └── updater_shotgun.cc
│ ├── logging.cc
│ ├── metric/
│ │ ├── auc.cc
│ │ ├── auc.cu
│ │ ├── auc.h
│ │ ├── elementwise_metric.cc
│ │ ├── elementwise_metric.cu
│ │ ├── metric.cc
│ │ ├── metric_common.h
│ │ ├── multiclass_metric.cc
│ │ ├── multiclass_metric.cu
│ │ ├── rank_metric.cc
│ │ ├── rank_metric.cu
│ │ ├── rank_metric.h
│ │ ├── survival_metric.cc
│ │ └── survival_metric.cu
│ ├── objective/
│ │ ├── adaptive.cc
│ │ ├── adaptive.cu
│ │ ├── adaptive.h
│ │ ├── aft_obj.cc
│ │ ├── aft_obj.cu
│ │ ├── hinge.cc
│ │ ├── hinge.cu
│ │ ├── init_estimation.cc
│ │ ├── init_estimation.h
│ │ ├── lambdarank_obj.cc
│ │ ├── lambdarank_obj.cu
│ │ ├── lambdarank_obj.cuh
│ │ ├── lambdarank_obj.h
│ │ ├── multiclass_obj.cc
│ │ ├── multiclass_obj.cu
│ │ ├── multiclass_param.h
│ │ ├── objective.cc
│ │ ├── quantile_obj.cc
│ │ ├── quantile_obj.cu
│ │ ├── regression_loss.h
│ │ ├── regression_obj.cc
│ │ ├── regression_obj.cu
│ │ └── regression_param.h
│ ├── predictor/
│ │ ├── array_tree_layout.h
│ │ ├── cpu_predictor.cc
│ │ ├── data_accessor.h
│ │ ├── gbtree_view.h
│ │ ├── gpu_data_accessor.cuh
│ │ ├── gpu_predictor.cu
│ │ ├── interpretability/
│ │ │ ├── shap.cc
│ │ │ ├── shap.cu
│ │ │ └── shap.h
│ │ ├── predict_fn.h
│ │ ├── predictor.cc
│ │ ├── predictor.cu
│ │ ├── treeshap.cc
│ │ ├── treeshap.h
│ │ └── utils.h
│ └── tree/
│ ├── common_row_partitioner.h
│ ├── constraints.cc
│ ├── constraints.cu
│ ├── constraints.cuh
│ ├── constraints.h
│ ├── driver.h
│ ├── fit_stump.cc
│ ├── fit_stump.cu
│ ├── fit_stump.h
│ ├── gpu_hist/
│ │ ├── evaluate_splits.cu
│ │ ├── evaluate_splits.cuh
│ │ ├── evaluator.cu
│ │ ├── expand_entry.cu
│ │ ├── expand_entry.cuh
│ │ ├── feature_groups.cu
│ │ ├── feature_groups.cuh
│ │ ├── histogram.cu
│ │ ├── histogram.cuh
│ │ ├── leaf_sum.cu
│ │ ├── leaf_sum.cuh
│ │ ├── multi_evaluate_splits.cu
│ │ ├── multi_evaluate_splits.cuh
│ │ ├── quantiser.cu
│ │ ├── quantiser.cuh
│ │ ├── row_partitioner.cu
│ │ ├── row_partitioner.cuh
│ │ ├── sampler.cu
│ │ └── sampler.cuh
│ ├── hist/
│ │ ├── evaluate_splits.h
│ │ ├── expand_entry.h
│ │ ├── hist_cache.h
│ │ ├── hist_param.cc
│ │ ├── hist_param.h
│ │ ├── histogram.cc
│ │ ├── histogram.h
│ │ ├── sampler.cc
│ │ └── sampler.h
│ ├── io_utils.h
│ ├── multi_target_tree_model.cc
│ ├── param.cc
│ ├── param.h
│ ├── sample_position.h
│ ├── split_evaluator.h
│ ├── tree_model.cc
│ ├── tree_updater.cc
│ ├── tree_view.cc
│ ├── tree_view.h
│ ├── updater_approx.cc
│ ├── updater_colmaker.cc
│ ├── updater_gpu_common.cuh
│ ├── updater_gpu_hist.cu
│ ├── updater_gpu_hist.cuh
│ ├── updater_prune.cc
│ ├── updater_quantile_hist.cc
│ ├── updater_refresh.cc
│ └── updater_sync.cc
└── tests/
├── README.md
├── cpp/
│ ├── CMakeLists.txt
│ ├── c_api/
│ │ └── test_c_api.cc
│ ├── categorical_helpers.h
│ ├── collective/
│ │ ├── test_allgather.cc
│ │ ├── test_allgather.cu
│ │ ├── test_allreduce.cc
│ │ ├── test_allreduce.cu
│ │ ├── test_broadcast.cc
│ │ ├── test_coll_c_api.cc
│ │ ├── test_comm.cc
│ │ ├── test_comm_group.cc
│ │ ├── test_loop.cc
│ │ ├── test_result.cc
│ │ ├── test_socket.cc
│ │ ├── test_tracker.cc
│ │ ├── test_worker.cuh
│ │ └── test_worker.h
│ ├── common/
│ │ ├── test_algorithm.cc
│ │ ├── test_algorithm.cu
│ │ ├── test_bitfield.cc
│ │ ├── test_bitfield.cu
│ │ ├── test_categorical.cc
│ │ ├── test_charconv.cc
│ │ ├── test_column_matrix.cc
│ │ ├── test_common.cc
│ │ ├── test_compressed_iterator.cc
│ │ ├── test_cuda_dr_utils.cc
│ │ ├── test_cuda_host_allocator.cu
│ │ ├── test_cuda_rt_utils.cu
│ │ ├── test_device_compression.cu
│ │ ├── test_device_helpers.cu
│ │ ├── test_device_vector.cu
│ │ ├── test_gpu_compressed_iterator.cu
│ │ ├── test_group_data.cc
│ │ ├── test_hist_util.cc
│ │ ├── test_hist_util.cu
│ │ ├── test_hist_util.h
│ │ ├── test_host_device_vector.cu
│ │ ├── test_intrusive_ptr.cc
│ │ ├── test_io.cc
│ │ ├── test_json.cc
│ │ ├── test_linalg.cc
│ │ ├── test_linalg.cu
│ │ ├── test_linalg.h
│ │ ├── test_math.cc
│ │ ├── test_monitor.cc
│ │ ├── test_numa_topo.cc
│ │ ├── test_numeric.cc
│ │ ├── test_optional_weight.cc
│ │ ├── test_param_array.cc
│ │ ├── test_parameter.cc
│ │ ├── test_partition_builder.cc
│ │ ├── test_probability_distribution.cc
│ │ ├── test_quantile.cc
│ │ ├── test_quantile.cu
│ │ ├── test_quantile.h
│ │ ├── test_quantile_utils.cc
│ │ ├── test_random.cc
│ │ ├── test_ranking_utils.cc
│ │ ├── test_ranking_utils.cu
│ │ ├── test_ranking_utils.h
│ │ ├── test_ref_resource_view.cc
│ │ ├── test_ref_resource_view.cu
│ │ ├── test_span.cc
│ │ ├── test_span.cu
│ │ ├── test_span.h
│ │ ├── test_stats.cc
│ │ ├── test_stats.cu
│ │ ├── test_string_view.cc
│ │ ├── test_survival_util.cc
│ │ ├── test_threading_utils.cc
│ │ ├── test_threading_utils.cu
│ │ ├── test_threadpool.cc
│ │ ├── test_transform_iterator.cc
│ │ ├── test_transform_range.cc
│ │ ├── test_transform_range.cu
│ │ └── test_version.cc
│ ├── data/
│ │ ├── test_adapter.cc
│ │ ├── test_array_interface.cc
│ │ ├── test_array_interface.cu
│ │ ├── test_array_interface.h
│ │ ├── test_batch_utils.cu
│ │ ├── test_cat_container.cc
│ │ ├── test_cat_container.cu
│ │ ├── test_cat_container.h
│ │ ├── test_data.cc
│ │ ├── test_device_adapter.cu
│ │ ├── test_ellpack_page.cu
│ │ ├── test_ellpack_page_raw_format.cu
│ │ ├── test_extmem_quantile_dmatrix.cc
│ │ ├── test_extmem_quantile_dmatrix.cu
│ │ ├── test_extmem_quantile_dmatrix.h
│ │ ├── test_file_iterator.cc
│ │ ├── test_gradient_index.cc
│ │ ├── test_gradient_index_page_raw_format.cc
│ │ ├── test_iterative_dmatrix.cc
│ │ ├── test_iterative_dmatrix.cu
│ │ ├── test_iterative_dmatrix.h
│ │ ├── test_metainfo.cc
│ │ ├── test_metainfo.cu
│ │ ├── test_metainfo.h
│ │ ├── test_proxy_dmatrix.cc
│ │ ├── test_proxy_dmatrix.cu
│ │ ├── test_simple_dmatrix.cc
│ │ ├── test_simple_dmatrix.cu
│ │ ├── test_sparse_page_dmatrix.cc
│ │ ├── test_sparse_page_dmatrix.cu
│ │ └── test_sparse_page_raw_format.cc
│ ├── encoder/
│ │ ├── df_mock.cuh
│ │ ├── df_mock.h
│ │ ├── test_ordinal.cc
│ │ ├── test_ordinal.cu
│ │ └── test_ordinal.h
│ ├── filesystem.cc
│ ├── filesystem.h
│ ├── gbm/
│ │ ├── test_gblinear.cc
│ │ ├── test_gblinear.cu
│ │ ├── test_gbtree.cc
│ │ └── test_gbtree.cu
│ ├── helpers.cc
│ ├── helpers.cu
│ ├── helpers.h
│ ├── histogram_helpers.cu
│ ├── histogram_helpers.h
│ ├── linear/
│ │ ├── test_json_io.h
│ │ ├── test_linear.cc
│ │ └── test_linear.cu
│ ├── metric/
│ │ ├── test_auc.h
│ │ ├── test_distributed_metric.cc
│ │ ├── test_elementwise_metric.h
│ │ ├── test_metric.cc
│ │ ├── test_multiclass_metric.h
│ │ ├── test_rank_metric.cc
│ │ ├── test_rank_metric.h
│ │ ├── test_survival_metric.cc
│ │ ├── test_survival_metric.cu
│ │ └── test_survival_metric.h
│ ├── objective/
│ │ ├── test_aft_obj.cc
│ │ ├── test_aft_obj.cu
│ │ ├── test_aft_obj.h
│ │ ├── test_aft_obj_cpu.cc
│ │ ├── test_hinge.cc
│ │ ├── test_hinge.cu
│ │ ├── test_hinge.h
│ │ ├── test_hinge_cpu.cc
│ │ ├── test_lambdarank_obj.cc
│ │ ├── test_lambdarank_obj.cu
│ │ ├── test_lambdarank_obj.h
│ │ ├── test_multiclass_obj.cc
│ │ ├── test_multiclass_obj.h
│ │ ├── test_multiclass_obj_cpu.cc
│ │ ├── test_multiclass_obj_gpu.cu
│ │ ├── test_objective.cc
│ │ ├── test_objective_helpers.h
│ │ ├── test_quantile_obj.cc
│ │ ├── test_quantile_obj.h
│ │ ├── test_quantile_obj_cpu.cc
│ │ ├── test_quantile_obj_gpu.cu
│ │ ├── test_regression_obj.cc
│ │ ├── test_regression_obj.h
│ │ ├── test_regression_obj_cpu.cc
│ │ └── test_regression_obj_gpu.cu
│ ├── objective_helpers.cc
│ ├── objective_helpers.h
│ ├── plugin/
│ │ ├── federated/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── test_federated_coll.cc
│ │ │ ├── test_federated_coll.cu
│ │ │ ├── test_federated_comm.cc
│ │ │ ├── test_federated_comm_group.cc
│ │ │ ├── test_federated_comm_group.cu
│ │ │ ├── test_federated_data.cc
│ │ │ ├── test_federated_learner.cc
│ │ │ ├── test_federated_tracker.cc
│ │ │ └── test_worker.h
│ │ ├── sycl_helpers.h
│ │ ├── test_example_objective.cc
│ │ ├── test_sycl_aft_obj.cc
│ │ ├── test_sycl_ghist_builder.cc
│ │ ├── test_sycl_gradient_index.cc
│ │ ├── test_sycl_hinge.cc
│ │ ├── test_sycl_hist_updater.cc
│ │ ├── test_sycl_host_device_vector.cc
│ │ ├── test_sycl_lambdarank_obj.cc
│ │ ├── test_sycl_linalg.cc
│ │ ├── test_sycl_multiclass_obj.cc
│ │ ├── test_sycl_partition_builder.cc
│ │ ├── test_sycl_prediction_cache.cc
│ │ ├── test_sycl_predictor.cc
│ │ ├── test_sycl_quantile_hist_builder.cc
│ │ ├── test_sycl_quantile_obj.cc
│ │ ├── test_sycl_regression_obj.cc
│ │ ├── test_sycl_row_set_collection.cc
│ │ ├── test_sycl_split_evaluator.cc
│ │ └── test_sycl_transform_range.cc
│ ├── predictor/
│ │ ├── test_cpu_predictor.cc
│ │ ├── test_gpu_predictor.cu
│ │ ├── test_predictor.cc
│ │ ├── test_predictor.h
│ │ ├── test_shap.cc
│ │ ├── test_shap.cu
│ │ └── test_shap.h
│ ├── test_cache.cc
│ ├── test_context.cc
│ ├── test_context.cu
│ ├── test_global_config.cc
│ ├── test_helpers.cc
│ ├── test_histogram_helpers.cu
│ ├── test_learner.cc
│ ├── test_learner.cu
│ ├── test_logging.cc
│ ├── test_main.cc
│ ├── test_multi_target.cc
│ ├── test_serialization.cc
│ ├── test_serialization.h
│ └── tree/
│ ├── gpu_hist/
│ │ ├── dummy_quantizer.cuh
│ │ ├── test_driver.cu
│ │ ├── test_evaluate_splits.cu
│ │ ├── test_expand_entry.cu
│ │ ├── test_histogram.cu
│ │ ├── test_leaf_sum.cu
│ │ ├── test_multi_evaluate_splits.cu
│ │ ├── test_multi_histogram.cu
│ │ ├── test_row_partitioner.cu
│ │ └── test_sampler.cu
│ ├── hist/
│ │ ├── test_evaluate_splits.cc
│ │ ├── test_expand_entry.cc
│ │ ├── test_histogram.cc
│ │ └── test_sampler.cc
│ ├── test_approx.cc
│ ├── test_column_split.cc
│ ├── test_column_split.h
│ ├── test_common_partitioner.cc
│ ├── test_constraints.cc
│ ├── test_constraints.cu
│ ├── test_evaluate_splits.h
│ ├── test_fit_stump.cc
│ ├── test_gpu_approx.cu
│ ├── test_gpu_hist.cu
│ ├── test_multi_target_tree_model.cc
│ ├── test_multi_target_tree_model.h
│ ├── test_node_partition.cc
│ ├── test_param.cc
│ ├── test_partitioner.h
│ ├── test_prediction_cache.cc
│ ├── test_prediction_cache.h
│ ├── test_prune.cc
│ ├── test_quantile_hist.cc
│ ├── test_refresh.cc
│ ├── test_regen.cc
│ ├── test_sampler.h
│ ├── test_tree_model.cc
│ ├── test_tree_policy.cc
│ └── test_tree_stat.cc
├── cross-platform/
│ └── test_cross_platform_model.py
├── pytest.ini
├── python/
│ ├── generate_models.py
│ ├── test_basic.py
│ ├── test_basic_models.py
│ ├── test_callback.py
│ ├── test_collective.py
│ ├── test_config.py
│ ├── test_data_iterator.py
│ ├── test_demos.py
│ ├── test_dmatrix.py
│ ├── test_early_stopping.py
│ ├── test_eval_metrics.py
│ ├── test_interaction_constraints.py
│ ├── test_intercept.py
│ ├── test_linear.py
│ ├── test_model_compatibility.py
│ ├── test_model_io.py
│ ├── test_monotone_constraints.py
│ ├── test_multi_target.py
│ ├── test_openmp.py
│ ├── test_ordinal.py
│ ├── test_parse_tree.py
│ ├── test_pickling.py
│ ├── test_plotting.py
│ ├── test_predict.py
│ ├── test_quantile_dmatrix.py
│ ├── test_ranking.py
│ ├── test_shap.py
│ ├── test_survival.py
│ ├── test_tracker.py
│ ├── test_training_continuation.py
│ ├── test_tree_regularization.py
│ ├── test_updaters.py
│ ├── test_with_arrow.py
│ ├── test_with_modin.py
│ ├── test_with_pandas.py
│ ├── test_with_polars.py
│ ├── test_with_scipy.py
│ ├── test_with_shap.py
│ ├── test_with_sklearn.py
│ └── with_omp_limit.py
├── python-gpu/
│ ├── conftest.py
│ ├── load_pickle.py
│ ├── test_device_quantile_dmatrix.py
│ ├── test_from_cudf.py
│ ├── test_from_cupy.py
│ ├── test_gpu_basic_models.py
│ ├── test_gpu_callbacks.py
│ ├── test_gpu_data_iterator.py
│ ├── test_gpu_demos.py
│ ├── test_gpu_eval_metrics.py
│ ├── test_gpu_interaction_constraints.py
│ ├── test_gpu_intercept.py
│ ├── test_gpu_linear.py
│ ├── test_gpu_multi_target.py
│ ├── test_gpu_ordinal.py
│ ├── test_gpu_parse_tree.py
│ ├── test_gpu_pickling.py
│ ├── test_gpu_plotting.py
│ ├── test_gpu_prediction.py
│ ├── test_gpu_ranking.py
│ ├── test_gpu_training_continuation.py
│ ├── test_gpu_updaters.py
│ ├── test_gpu_with_sklearn.py
│ ├── test_large_input.py
│ └── test_monotonic_constraints.py
├── python-sycl/
│ ├── test_sycl_prediction.py
│ ├── test_sycl_simple_dask.py
│ ├── test_sycl_training_continuation.py
│ ├── test_sycl_updaters.py
│ └── test_sycl_with_sklearn.py
└── test_distributed/
├── __init__.py
├── test_federated/
│ └── test_federated.py
├── test_gpu_federated/
│ └── test_gpu_federated.py
├── test_gpu_with_dask/
│ ├── __init__.py
│ ├── conftest.py
│ ├── test_gpu_demos.py
│ ├── test_gpu_external_memory.py
│ ├── test_gpu_ranking.py
│ └── test_gpu_with_dask.py
├── test_with_dask/
│ ├── __init__.py
│ ├── conftest.py
│ ├── test_demos.py
│ ├── test_external_memory.py
│ ├── test_ranking.py
│ └── test_with_dask.py
└── test_with_spark/
├── __init__.py
├── discover_gpu.sh
├── test_data.py
├── test_spark.py
└── utils.py
================================================
FILE CONTENTS
================================================
================================================
FILE: .clang-format
================================================
---
Language: Cpp
# BasedOnStyle: Google
AccessModifierOffset: -1
AlignAfterOpenBracket: Align
AlignArrayOfStructures: None
AlignConsecutiveMacros: None
AlignConsecutiveAssignments: None
AlignConsecutiveBitFields: None
AlignConsecutiveDeclarations: None
AlignEscapedNewlines: Left
AlignOperands: Align
AlignTrailingComments: true
AllowAllArgumentsOnNextLine: true
AllowAllParametersOfDeclarationOnNextLine: true
AllowShortEnumsOnASingleLine: true
AllowShortBlocksOnASingleLine: Never
AllowShortCaseLabelsOnASingleLine: false
AllowShortFunctionsOnASingleLine: All
AllowShortLambdasOnASingleLine: Inline
AllowShortIfStatementsOnASingleLine: WithoutElse
AllowShortLoopsOnASingleLine: true
AlwaysBreakAfterDefinitionReturnType: None
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: true
AlwaysBreakTemplateDeclarations: Yes
AttributeMacros:
- __capability
BinPackArguments: true
BinPackParameters: true
BraceWrapping:
AfterCaseLabel: false
AfterClass: false
AfterControlStatement: Never
AfterEnum: false
AfterFunction: false
AfterNamespace: false
AfterObjCDeclaration: false
AfterStruct: false
AfterUnion: false
AfterExternBlock: false
BeforeCatch: false
BeforeElse: false
BeforeLambdaBody: false
BeforeWhile: false
IndentBraces: false
SplitEmptyFunction: true
SplitEmptyRecord: true
SplitEmptyNamespace: true
BreakBeforeBinaryOperators: None
BreakBeforeConceptDeclarations: true
BreakBeforeBraces: Attach
BreakBeforeInheritanceComma: false
BreakInheritanceList: BeforeColon
BreakBeforeTernaryOperators: true
BreakConstructorInitializersBeforeComma: false
BreakConstructorInitializers: BeforeColon
BreakAfterJavaFieldAnnotations: false
BreakStringLiterals: true
ColumnLimit: 100
CommentPragmas: '^ IWYU pragma:'
QualifierAlignment: Leave
CompactNamespaces: false
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 4
Cpp11BracedListStyle: true
DeriveLineEnding: true
DerivePointerAlignment: true
DisableFormat: false
EmptyLineAfterAccessModifier: Never
EmptyLineBeforeAccessModifier: LogicalBlock
ExperimentalAutoDetectBinPacking: false
PackConstructorInitializers: NextLine
BasedOnStyle: ''
ConstructorInitializerAllOnOneLineOrOnePerLine: false
AllowAllConstructorInitializersOnNextLine: true
FixNamespaceComments: true
ForEachMacros:
- foreach
- Q_FOREACH
- BOOST_FOREACH
IfMacros:
- KJ_IF_MAYBE
IncludeBlocks: Regroup
IncludeCategories:
- Regex: '^<ext/.*\.h>'
Priority: 2
SortPriority: 0
CaseSensitive: false
- Regex: '^<.*\.h>'
Priority: 1
SortPriority: 0
CaseSensitive: false
- Regex: '^<.*'
Priority: 2
SortPriority: 0
CaseSensitive: false
- Regex: '.*'
Priority: 3
SortPriority: 0
CaseSensitive: false
IncludeIsMainRegex: '([-_](test|unittest))?$'
IncludeIsMainSourceRegex: ''
IndentAccessModifiers: false
IndentCaseLabels: true
IndentCaseBlocks: false
IndentGotoLabels: true
IndentPPDirectives: None
IndentExternBlock: AfterExternBlock
IndentRequires: false
IndentWidth: 2
IndentWrappedFunctionNames: false
InsertTrailingCommas: None
JavaScriptQuotes: Leave
JavaScriptWrapImports: true
KeepEmptyLinesAtTheStartOfBlocks: false
LambdaBodyIndentation: Signature
MacroBlockBegin: ''
MacroBlockEnd: ''
MaxEmptyLinesToKeep: 1
NamespaceIndentation: None
ObjCBinPackProtocolList: Never
ObjCBlockIndentWidth: 2
ObjCBreakBeforeNestedBlockParam: true
ObjCSpaceAfterProperty: false
ObjCSpaceBeforeProtocolList: true
PenaltyBreakAssignment: 2
PenaltyBreakBeforeFirstCallParameter: 1
PenaltyBreakComment: 300
PenaltyBreakFirstLessLess: 120
PenaltyBreakString: 1000
PenaltyBreakTemplateDeclaration: 10
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 200
PenaltyIndentedWhitespace: 0
PointerAlignment: Left
PPIndentWidth: -1
RawStringFormats:
- Language: Cpp
Delimiters:
- cc
- CC
- cpp
- Cpp
- CPP
- 'c++'
- 'C++'
CanonicalDelimiter: ''
BasedOnStyle: google
- Language: TextProto
Delimiters:
- pb
- PB
- proto
- PROTO
EnclosingFunctions:
- EqualsProto
- EquivToProto
- PARSE_PARTIAL_TEXT_PROTO
- PARSE_TEST_PROTO
- PARSE_TEXT_PROTO
- ParseTextOrDie
- ParseTextProtoOrDie
- ParseTestProto
- ParsePartialTestProto
CanonicalDelimiter: pb
BasedOnStyle: google
ReferenceAlignment: Pointer
ReflowComments: false
ShortNamespaceLines: 1
SortIncludes: CaseSensitive
SortJavaStaticImport: Before
SortUsingDeclarations: true
SpaceAfterCStyleCast: false
SpaceAfterLogicalNot: false
SpaceAfterTemplateKeyword: true
SpaceBeforeAssignmentOperators: true
SpaceBeforeCaseColon: false
SpaceBeforeCpp11BracedList: false
SpaceBeforeCtorInitializerColon: true
SpaceBeforeInheritanceColon: true
SpaceBeforeParens: ControlStatements
SpaceAroundPointerQualifiers: Default
SpaceBeforeRangeBasedForLoopColon: true
SpaceInEmptyBlock: false
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 2
SpacesInAngles: Never
SpacesInConditionalStatement: false
SpacesInContainerLiterals: true
SpacesInCStyleCastParentheses: false
SpacesInLineCommentPrefix:
Minimum: 1
Maximum: -1
SpacesInParentheses: false
SpacesInSquareBrackets: false
SpaceBeforeSquareBrackets: false
BitFieldColonSpacing: Both
Standard: Auto
StatementAttributeLikeMacros:
- Q_EMIT
StatementMacros:
- Q_UNUSED
- QT_REQUIRE_VERSION
TabWidth: 8
UseCRLF: false
UseTab: Never
WhitespaceSensitiveMacros:
- STRINGIZE
- PP_STRINGIZE
- BOOST_PP_STRINGIZE
- NS_SWIFT_NAME
- CF_SWIFT_NAME
...
================================================
FILE: .clang-tidy
================================================
Checks: 'modernize-*,-modernize-use-nodiscard,-modernize-concat-nested-namespaces,-modernize-make-*,-modernize-use-auto,-modernize-raw-string-literal,-modernize-avoid-c-arrays,-modernize-use-trailing-return-type,google-*,-google-default-arguments,-clang-diagnostic-#pragma-messages,readability-identifier-naming'
CheckOptions:
- { key: readability-identifier-naming.ClassCase, value: CamelCase }
- { key: readability-identifier-naming.StructCase, value: CamelCase }
- { key: readability-identifier-naming.TypeAliasCase, value: CamelCase }
- { key: readability-identifier-naming.TypedefCase, value: CamelCase }
- { key: readability-identifier-naming.TypeTemplateParameterCase, value: CamelCase }
- { key: readability-identifier-naming.MemberCase, value: lower_case }
- { key: readability-identifier-naming.PrivateMemberSuffix, value: '_' }
- { key: readability-identifier-naming.ProtectedMemberSuffix, value: '_' }
- { key: readability-identifier-naming.EnumCase, value: CamelCase }
- { key: readability-identifier-naming.EnumConstant, value: CamelCase }
- { key: readability-identifier-naming.EnumConstantPrefix, value: k }
- { key: readability-identifier-naming.GlobalConstantCase, value: CamelCase }
- { key: readability-identifier-naming.GlobalConstantPrefix, value: k }
- { key: readability-identifier-naming.StaticConstantCase, value: CamelCase }
- { key: readability-identifier-naming.StaticConstantPrefix, value: k }
- { key: readability-identifier-naming.ConstexprVariableCase, value: CamelCase }
- { key: readability-identifier-naming.ConstexprVariablePrefix, value: k }
- { key: readability-identifier-naming.FunctionCase, value: CamelCase }
- { key: readability-identifier-naming.NamespaceCase, value: lower_case }
================================================
FILE: .editorconfig
================================================
root = true
[*]
charset=utf-8
indent_style = space
indent_size = 2
insert_final_newline = true
[*.py]
indent_style = space
indent_size = 4
================================================
FILE: .gitattributes
================================================
* text=auto
*.c text eol=lf
*.h text eol=lf
*.cc text eol=lf
*.cuh text eol=lf
*.cu text eol=lf
*.py text eol=lf
*.txt text eol=lf
*.R text eol=lf
*.scala text eol=lf
*.java text eol=lf
*.sh text eol=lf
*.rst text eol=lf
*.md text eol=lf
*.csv text eol=lf
================================================
FILE: .github/FUNDING.yml
================================================
open_collective: xgboost
custom: https://xgboost.ai/sponsors
================================================
FILE: .github/ISSUE_TEMPLATE.md
================================================
Thanks for participating in the XGBoost community! The issue tracker is used for actionable items such as feature proposals discussion, roadmaps, and bug tracking.
Issues that are inactive for a period of time may get closed. We adopt this policy so that we won't lose track of actionable issues that may fall at the bottom of the pile. Feel free to reopen a new one if you feel there is an additional problem that needs attention when an old one gets closed.
For bug reports, to help the developer act on the issues, please include a description of your environment, preferably a minimum script to reproduce the problem.
For feature proposals, list clear, small actionable items so we can track the progress of the change.
================================================
FILE: .github/dependabot.yml
================================================
version: 2
updates:
- package-ecosystem: "github-actions"
directory: /
schedule:
interval: "weekly"
groups:
github-actions:
patterns:
- "*"
================================================
FILE: .github/lock.yml
================================================
# Configuration for lock-threads - https://github.com/dessant/lock-threads
# Number of days of inactivity before a closed issue or pull request is locked
daysUntilLock: 90
# Issues and pull requests with these labels will not be locked. Set to `[]` to disable
exemptLabels:
- feature-request
# Label to add before locking, such as `outdated`. Set to `false` to disable
lockLabel: false
# Comment to post before locking. Set to `false` to disable
lockComment: false
# Assign `resolved` as the reason for locking. Set to `false` to disable
setLockReason: true
# Limit to only `issues` or `pulls`
# only: issues
# Optionally, specify configuration settings just for `issues` or `pulls`
# issues:
# exemptLabels:
# - help-wanted
# lockLabel: outdated
# pulls:
# daysUntilLock: 30
# Repository to extend settings from
# _extends: repo
================================================
FILE: .github/runs-on.yml
================================================
# Custom images with CUDA toolkit installed
# See ops/packer for instructions for building the images
images:
linux-amd64:
platform: "linux"
arch: "x64"
owner: "492475357299" # XGBooost CI
name: "xgboost-ci-runs-on-linux-amd64-*"
linux-arm64:
platform: "linux"
arch: "arm64"
owner: "492475357299" # XGBooost CI
name: "xgboost-ci-runs-on-linux-arm64-*"
windows-amd64:
platform: "windows"
arch: "x64"
owner: "492475357299" # XGBooost CI
name: "xgboost-ci-runs-on-windows-*"
runners:
linux-amd64-cpu:
cpu: 16
family: ["c7i-flex", "c7i", "c7a", "c5", "c5a"]
image: linux-amd64
spot: "false"
linux-amd64-gpu:
family: ["g4dn.xlarge"]
image: linux-amd64
spot: "false"
linux-amd64-mgpu:
family: ["g4dn.12xlarge"]
image: linux-amd64
spot: "false"
linux-arm64-cpu:
cpu: 16
family: ["c6g", "c7g"]
image: linux-arm64
spot: "false"
linux-arm64-gpu:
family: ["g5g.xlarge"]
image: linux-arm64
spot: "false"
windows-gpu:
family: ["g4dn.2xlarge"]
image: windows-amd64
spot: "false"
windows-cpu:
cpu: 32
family: ["c7i-flex", "c7i", "c7a", "c5", "c5a"]
image: windows-amd64
spot: "false"
================================================
FILE: .github/workflows/cccl_nightly.yml
================================================
name: Test XGBoost with latest CCCL and RMM
on:
workflow_dispatch: # Can be manually triggered
schedule:
- cron: "0 7 * * *" # Run once daily
permissions:
contents: read
defaults:
run:
shell: bash -l {0}
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
jobs:
get-latest-cccl-version:
name: Query the latest version of CCCL
runs-on: ubuntu-latest
outputs:
cccl_version: ${{ steps.query_version_step.outputs.cccl_version }}
steps:
- uses: actions/checkout@v6.0.2
- id: query_version_step
name: Query version
run: |
source ops/pipeline/query-latest-cccl.sh
echo "cccl_version=${CCCL_VERSION}" >> "$GITHUB_OUTPUT"
test-latest-cccl:
name: Test building XGBoost with latest CCCL (RC included)
runs-on:
- runs-on=${{ github.run_id }}
- runner=linux-amd64-cpu
- tag=nightly-cccl
needs: get-latest-cccl-version
steps:
- uses: actions/checkout@v6.0.2
with:
submodules: "true"
- name: Log into Docker registry (AWS ECR)
run: bash ops/pipeline/login-docker-registry.sh
- name: Build XGBoost with latest CCCL
run: |
bash ops/pipeline/nightly-test-cccl.sh ${{ needs.get-latest-cccl-version.outputs.cccl_version }}
get-latest-rmm-version:
name: Query the latest version of RMM
runs-on: ubuntu-latest
outputs:
rmm_version: ${{ steps.query_version_step.outputs.rmm_version }}
steps:
- uses: actions/checkout@v6.0.2
- id: query_version_step
name: Query version
run: |
source ops/pipeline/query-latest-rmm.sh
echo "rmm_version=${RMM_VERSION}" >> "$GITHUB_OUTPUT"
test-latest-rmm:
name: Test building XGBoost with latest nightly version of RMM
# This job uses the stable CCCL used by RMM and rest of RAPIDS
runs-on:
- runs-on=${{ github.run_id }}
- runner=linux-amd64-cpu
- tag=nightly-rmm
needs: get-latest-rmm-version
steps:
- uses: actions/checkout@v6.0.2
with:
submodules: "true"
- name: Log into Docker registry (AWS ECR)
run: bash ops/pipeline/login-docker-registry.sh
- name: Build XGBoost with latest RMM
run: |
bash ops/pipeline/nightly-test-rmm.sh ${{ needs.get-latest-rmm-version.outputs.rmm_version }}
================================================
FILE: .github/workflows/freebsd.yml
================================================
name: FreeBSD
on:
push:
branches:
- master
- 'release_*'
pull_request:
permissions:
contents: read # to fetch code (actions/checkout)
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
test:
runs-on: ubuntu-latest
timeout-minutes: 20
name: A job to run test in FreeBSD
steps:
- uses: actions/checkout@v6.0.2
with:
submodules: 'true'
- name: Test in FreeBSD
id: test
uses: vmactions/freebsd-vm@v1.4.3
with:
usesh: true
prepare: |
pkg install -y cmake git ninja googletest bash
run: |
bash ops/pipeline/test-freebsd.sh
================================================
FILE: .github/workflows/jvm_tests.yml
================================================
name: JVM Tests
on:
push:
branches:
- master
- 'release_*'
pull_request:
permissions:
contents: read # to fetch code (actions/checkout)
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
env:
BRANCH_NAME: >-
${{ github.event.pull_request.number && 'PR-' }}${{ github.event.pull_request.number || github.ref_name }}
jobs:
ci-configure:
name: Configure variables for CI
runs-on:
- runs-on=${{ github.run_id }}
- runner=linux-amd64-cpu
- tag=jvm-tests-ci-configure
steps:
- name: Login to Amazon ECR
id: login-ecr
uses: aws-actions/amazon-ecr-login@v2.0.2
with:
mask-password: 'false'
registries: '492475357299'
- uses: actions/checkout@v6.0.2
- name: Get image tag
id: get-image-tag
run: |
source ops/pipeline/get-image-tag.sh
echo "Using image tag $IMAGE_TAG"
echo "image_tag=$IMAGE_TAG" >> "$GITHUB_OUTPUT"
outputs:
docker_registry: ${{ steps.login-ecr.outputs.registry }}
docker_username: ${{ steps.login-ecr.outputs.docker_username_492475357299_dkr_ecr_us_west_2_amazonaws_com }}
docker_password: ${{ steps.login-ecr.outputs.docker_password_492475357299_dkr_ecr_us_west_2_amazonaws_com }}
image_tag: ${{ steps.get-image-tag.outputs.image_tag }}
build-jvm-manylinux2014:
name: >-
Build libxgboost4j.so targeting glibc 2.17
(arch ${{ matrix.arch }}, runner ${{ matrix.runner }})
runs-on:
- runs-on
- runner=${{ matrix.runner }}
- run-id=${{ github.run_id }}
- tag=jvm-tests-build-jvm-manylinux2014-${{ matrix.arch }}
strategy:
fail-fast: false
matrix:
include:
- arch: aarch64
runner: linux-arm64-cpu
- arch: x86_64
runner: linux-amd64-cpu
steps:
- uses: actions/checkout@v6.0.2
with:
submodules: "true"
- name: Log into Docker registry (AWS ECR)
run: bash ops/pipeline/login-docker-registry.sh
- run: bash ops/pipeline/build-jvm-manylinux2014.sh ${{ matrix.arch }}
build-jvm-gpu:
name: Build libxgboost4j.so with CUDA
needs: ci-configure
runs-on:
- runs-on=${{ github.run_id }}
- runner=linux-amd64-cpu
- tag=jvm-tests-build-jvm-gpu
- extras=s3-cache
container:
image: ${{ needs.ci-configure.outputs.docker_registry }}/xgb-ci.jvm_gpu_build:${{ needs.ci-configure.outputs.image_tag }}
credentials:
username: ${{ needs.ci-configure.outputs.docker_username }}
password: ${{ needs.ci-configure.outputs.docker_password }}
steps:
- uses: runs-on/action@v2
- uses: actions/checkout@v6.0.2
with:
submodules: "true"
- uses: dmlc/xgboost-devops/actions/sccache@main
- name: Build libxgboost4j.so with CUDA
run: bash ops/pipeline/build-jvm-gpu.sh
- run: sccache --show-stats
- name: Stash files
run: |
python3 ops/pipeline/manage-artifacts.py upload \
--s3-bucket ${{ env.RUNS_ON_S3_BUCKET_CACHE }} \
--prefix cache/${{ github.run_id }}/build-jvm-gpu \
lib/libxgboost4j.so
build-jvm-mac:
name: "Build libxgboost4j.dylib for ${{ matrix.description }}"
runs-on: ${{ matrix.runner }}
strategy:
fail-fast: false
matrix:
include:
- description: "MacOS (Apple Silicon)"
libname: libxgboost4j_m1.dylib
runner: macos-14
- description: "MacOS (Intel)"
libname: libxgboost4j_intel.dylib
runner: macos-15-intel
steps:
- uses: actions/checkout@v6.0.2
with:
submodules: "true"
- uses: dmlc/xgboost-devops/actions/sccache@main
with:
cache-key-prefix: ${{ github.job }}-${{ matrix.runner }}
- run: bash ops/pipeline/build-jvm-macos.sh
- run: sccache --show-stats
- name: Upload libxgboost4j.dylib
if: github.ref == 'refs/heads/master' || contains(github.ref, 'refs/heads/release_')
run: |
mv -v lib/libxgboost4j.dylib ${{ matrix.libname }}
python3 ops/pipeline/manage-artifacts.py upload \
--s3-bucket xgboost-nightly-builds \
--prefix ${{ env.BRANCH_NAME }}/${{ github.sha }} --make-public \
${{ matrix.libname }}
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID_IAM_S3_UPLOADER }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY_IAM_S3_UPLOADER }}
build-test-jvm-packages-linux:
name: Build and test JVM packages (Linux, Scala ${{ matrix.scala_version }})
needs: ci-configure
runs-on:
- runs-on=${{ github.run_id }}
- runner=linux-amd64-cpu
- tag=jvm-tests-build-test-jvm-packages-scala${{ matrix.scala_version }}
strategy:
fail-fast: false
matrix:
scala_version: ["2.12", "2.13"]
container:
image: ${{ needs.ci-configure.outputs.docker_registry }}/xgb-ci.jvm:${{ needs.ci-configure.outputs.image_tag }}
credentials:
username: ${{ needs.ci-configure.outputs.docker_username }}
password: ${{ needs.ci-configure.outputs.docker_password }}
env:
SCALA_VERSION: ${{ matrix.scala_version }}
steps:
- uses: runs-on/action@v2
- uses: actions/checkout@v6.0.2
with:
submodules: "true"
- name: Build and test JVM packages (Scala ${{ matrix.scala_version }})
run: bash ops/pipeline/build-test-jvm-packages.sh
- name: Stash files
run: |
python3 ops/pipeline/manage-artifacts.py upload \
--s3-bucket ${{ env.RUNS_ON_S3_BUCKET_CACHE }} \
--prefix cache/${{ github.run_id }}/build-test-jvm-packages \
lib/libxgboost4j.so
if: matrix.scala_version == '2.13'
build-test-jvm-packages-other-os:
name: Build and test JVM packages (${{ matrix.os }})
timeout-minutes: 30
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [windows-latest, macos-15-intel]
steps:
- uses: actions/checkout@v6.0.2
with:
submodules: 'true'
- uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: '8'
- uses: dmlc/xgboost-devops/actions/miniforge-setup@main
with:
environment-name: minimal
environment-file: ops/conda_env/minimal.yml
- name: Cache Maven packages
uses: actions/cache@v5.0.3
with:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('/jvm-packages/pom.xml') }}
restore-keys: ${{ runner.os }}-m2-${{ hashFiles('/jvm-packages/pom.xml') }}
- name: Test XGBoost4J (Core) on macos
if: matrix.os == 'macos-15-intel'
run: |
cd jvm-packages
mvn test -B -pl :xgboost4j_2.12 -Duse.openmp=OFF
- name: Test XGBoost4J (Core) on windows
if: matrix.os == 'windows-latest'
run: |
cd jvm-packages
mvn test -B -pl :xgboost4j_2.12
- name: Publish artifact xgboost4j.dll to S3
run: |
python ops/pipeline/manage-artifacts.py upload `
--s3-bucket xgboost-nightly-builds `
--prefix ${{ env.BRANCH_NAME }}/${{ github.sha }} --make-public `
lib/xgboost4j.dll
if: |
(github.ref == 'refs/heads/master' || contains(github.ref, 'refs/heads/release_')) &&
matrix.os == 'windows-latest'
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID_IAM_S3_UPLOADER }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY_IAM_S3_UPLOADER }}
test-jvm-packages-gpu:
name: Test JVM packages with CUDA (Scala ${{ matrix.scala_version }})
needs: [ci-configure, build-jvm-gpu]
runs-on:
- runs-on=${{ github.run_id }}
- runner=linux-amd64-mgpu
- tag=jvm-tests-test-jvm-packages-gpu-scala${{ matrix.scala_version }}
strategy:
fail-fast: false
matrix:
scala_version: ["2.12", "2.13"]
container:
image: ${{ needs.ci-configure.outputs.docker_registry }}/xgb-ci.jvm_gpu_build:${{ needs.ci-configure.outputs.image_tag }}
credentials:
username: ${{ needs.ci-configure.outputs.docker_username }}
password: ${{ needs.ci-configure.outputs.docker_password }}
options: --gpus all --shm-size=4g --privileged
env:
SCALA_VERSION: ${{ matrix.scala_version }}
USE_CUDA: "1"
SKIP_NATIVE_BUILD: "1"
steps:
- uses: actions/checkout@v6.0.2
with:
submodules: "true"
- name: Unstash files
run: |
python3 ops/pipeline/manage-artifacts.py download \
--s3-bucket ${{ env.RUNS_ON_S3_BUCKET_CACHE }} \
--prefix cache/${{ github.run_id }}/build-jvm-gpu \
--dest-dir lib \
libxgboost4j.so
- name: Test JVM packages with CUDA
run: bash ops/pipeline/build-test-jvm-packages.sh
deploy-jvm-packages:
name: Deploy JVM packages to S3 (${{ matrix.variant.name }}, Scala ${{ matrix.scala_version }})
needs: [ci-configure, build-jvm-gpu, build-test-jvm-packages-linux, test-jvm-packages-gpu]
runs-on:
- runs-on=${{ github.run_id }}
- runner=linux-amd64-cpu
- tag=jvm-tests-deploy-jvm-packages-${{ matrix.variant.name }}-scala${{ matrix.scala_version }}
strategy:
fail-fast: false
matrix:
variant:
- name: cpu
image_repo: xgb-ci.jvm
artifact_from: build-test-jvm-packages
- name: gpu
image_repo: xgb-ci.jvm_gpu_build
artifact_from: build-jvm-gpu
scala_version: ['2.12', '2.13']
container:
image: ${{ needs.ci-configure.outputs.docker_registry }}/${{ matrix.variant.image_repo }}:${{ needs.ci-configure.outputs.image_tag }}
credentials:
username: ${{ needs.ci-configure.outputs.docker_username }}
password: ${{ needs.ci-configure.outputs.docker_password }}
steps:
- uses: actions/checkout@v6.0.2
with:
submodules: "true"
- name: Unstash files
run: |
python3 ops/pipeline/manage-artifacts.py download \
--s3-bucket ${{ env.RUNS_ON_S3_BUCKET_CACHE }} \
--prefix cache/${{ github.run_id }}/${{ matrix.variant.artifact_from }} \
--dest-dir lib \
libxgboost4j.so
ls -lh lib/libxgboost4j.so
- name: Deploy JVM packages to S3
run: bash ops/pipeline/deploy-jvm-packages.sh ${{ matrix.variant.name }} ${{ matrix.scala_version }}
if: github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/heads/release_')
================================================
FILE: .github/workflows/lint.yml
================================================
name: XGBoost CI (Lint)
on:
push:
branches:
- master
- 'release_*'
pull_request:
permissions:
contents: read # to fetch code (actions/checkout)
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
env:
BRANCH_NAME: >-
${{ github.event.pull_request.number && 'PR-' }}${{ github.event.pull_request.number || github.ref_name }}
jobs:
clang-tidy:
name: Run clang-tidy
runs-on:
- runs-on=${{ github.run_id }}
- runner=linux-amd64-cpu
- tag=lint-clang-tidy
steps:
- uses: actions/checkout@v6.0.2
with:
submodules: "true"
- name: Log into Docker registry (AWS ECR)
run: bash ops/pipeline/login-docker-registry.sh
- run: bash ops/pipeline/run-clang-tidy.sh
python-mypy:
runs-on: ubuntu-latest
name: Type checks for the Python package
steps:
- uses: actions/checkout@v6.0.2
with:
submodules: 'true'
- uses: dmlc/xgboost-devops/actions/miniforge-setup@main
with:
environment-name: python_lint
environment-file: ops/conda_env/python_lint.yml
- name: Run mypy
shell: bash -el {0}
run: |
python ops/script/type_check_python.py
================================================
FILE: .github/workflows/main.yml
================================================
name: XGBoost CI
on:
push:
branches:
- master
- 'release_*'
pull_request:
permissions:
contents: read # to fetch code (actions/checkout)
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
env:
BRANCH_NAME: >-
${{ github.event.pull_request.number && 'PR-' }}${{ github.event.pull_request.number || github.ref_name }}
jobs:
ci-configure:
name: Configure variables for CI
runs-on:
- runs-on=${{ github.run_id }}
- runner=linux-amd64-cpu
- tag=main-ci-configure
steps:
- name: Login to Amazon ECR
id: login-ecr
uses: aws-actions/amazon-ecr-login@v2.0.2
with:
mask-password: 'false'
registries: '492475357299'
- uses: actions/checkout@v6.0.2
- name: Get image tag
id: get-image-tag
run: |
source ops/pipeline/get-image-tag.sh
echo "Using image tag $IMAGE_TAG"
echo "image_tag=$IMAGE_TAG" >> "$GITHUB_OUTPUT"
outputs:
docker_registry: ${{ steps.login-ecr.outputs.registry }}
docker_username: ${{ steps.login-ecr.outputs.docker_username_492475357299_dkr_ecr_us_west_2_amazonaws_com }}
docker_password: ${{ steps.login-ecr.outputs.docker_password_492475357299_dkr_ecr_us_west_2_amazonaws_com }}
image_tag: ${{ steps.get-image-tag.outputs.image_tag }}
build-cpu:
name: Build CPU (${{ matrix.variant }})
needs: ci-configure
runs-on:
- runs-on=${{ github.run_id }}
- runner=linux-amd64-cpu
- tag=main-build-cpu-${{ matrix.variant }}
strategy:
fail-fast: false
matrix:
include:
- variant: default
build_suite: cpu
# Default build doesn't need privileged mode
# Using --init as harmless default (proper signal handling)
container_options: "--init"
- variant: sanitizer
build_suite: cpu-sanitizer
# Sanitizer needs privileged for: sysctl vm.mmap_rnd_bits=28
# See https://github.com/google/sanitizers/issues/1614
container_options: "--privileged"
container:
image: ${{ needs.ci-configure.outputs.docker_registry }}/xgb-ci.cpu:${{ needs.ci-configure.outputs.image_tag }}
credentials:
username: ${{ needs.ci-configure.outputs.docker_username }}
password: ${{ needs.ci-configure.outputs.docker_password }}
options: ${{ matrix.container_options }}
steps:
- uses: actions/checkout@v6.0.2
with:
submodules: "true"
# Remove default build config to ensure CMake-configured header is used
- name: Remove default build config
run: rm -fv dmlc-core/include/dmlc/build_config_default.h
- name: Configure the system for sanitizers
if: matrix.variant == 'sanitizer'
run: |
echo "ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer" >> $GITHUB_ENV
echo "ASAN_OPTIONS=symbolize=1" >> $GITHUB_ENV
echo "UBSAN_OPTIONS=print_stacktrace=1:log_path=ubsan_error.log" >> $GITHUB_ENV
# Work around https://github.com/google/sanitizers/issues/1614
sysctl vm.mmap_rnd_bits=28
- uses: dmlc/xgboost-devops/actions/sccache@main
with:
cache-key-prefix: ${{ github.job }}-${{ matrix.build_suite }}
- name: Build and test
run: bash ops/pipeline/build-cpu.sh ${{ matrix.build_suite }}
- run: sccache --show-stats
build-cuda:
name: Build CUDA ${{ matrix.cuda_version }} (${{ matrix.arch }})
needs: ci-configure
runs-on:
- runs-on=${{ github.run_id }}
- runner=${{ matrix.runner }}
- tag=main-build-cuda${{ matrix.cuda_version }}-${{ matrix.arch }}
- extras=s3-cache
strategy:
fail-fast: false
matrix:
include:
# CUDA 12
- cuda_version: 12
arch: aarch64
runner: linux-arm64-cpu
image_repo: xgb-ci.gpu_build_rockylinux8_aarch64
use_rmm: 0
use_federated: 1
- cuda_version: 12
arch: x86_64
runner: linux-amd64-cpu
image_repo: xgb-ci.gpu_build_rockylinux8
use_rmm: 0
use_federated: 1
# CUDA 13
- cuda_version: 13
arch: aarch64
runner: linux-arm64-cpu
image_repo: xgb-ci.gpu_build_cuda13_rockylinux8_aarch64
use_rmm: 0
use_federated: 0
- cuda_version: 13
arch: x86_64
runner: linux-amd64-cpu
image_repo: xgb-ci.gpu_build_cuda13_rockylinux8
use_rmm: 0
use_federated: 0
container:
image: ${{ needs.ci-configure.outputs.docker_registry }}/${{ matrix.image_repo }}:${{ needs.ci-configure.outputs.image_tag }}
credentials:
username: ${{ needs.ci-configure.outputs.docker_username }}
password: ${{ needs.ci-configure.outputs.docker_password }}
steps:
- uses: runs-on/action@v2
- uses: actions/checkout@v6.0.2
with:
submodules: "true"
- uses: dmlc/xgboost-devops/actions/sccache@main
with:
cache-key-prefix: ${{ github.job }}-${{ matrix.cuda_version }}
- run: >-
bash ops/pipeline/build-cuda.sh
--cuda-version ${{ matrix.cuda_version }}
--use-rmm ${{ matrix.use_rmm }}
--use-federated ${{ matrix.use_federated }}
- run: sccache --show-stats
- name: Stash files
run: |
python3 ops/pipeline/manage-artifacts.py upload \
--s3-bucket ${{ env.RUNS_ON_S3_BUCKET_CACHE }} \
--prefix cache/${{ github.run_id }}/build-cuda${{ matrix.cuda_version }}-${{ matrix.arch }} \
build/testxgboost python-package/dist/*.whl
audit-cuda-wheel:
name: Audit CUDA ${{ matrix.cuda_version }} wheel for manylinux_2_28_${{ matrix.arch }}
needs: [ci-configure, build-cuda]
runs-on:
- runs-on=${{ github.run_id }}
- runner=${{ matrix.runner }}
- tag=main-audit-cuda${{ matrix.cuda_version }}-wheel-${{ matrix.arch }}
strategy:
fail-fast: false
matrix:
include:
# CUDA 12
- cuda_version: 12
cuda_variant_flag: ""
arch: aarch64
runner: linux-arm64-cpu
- cuda_version: 12
cuda_variant_flag: ""
arch: x86_64
runner: linux-amd64-cpu
# CUDA 13
- cuda_version: 13
cuda_variant_flag: "--cuda-variant cuda13"
arch: aarch64
runner: linux-arm64-cpu
- cuda_version: 13
cuda_variant_flag: "--cuda-variant cuda13"
arch: x86_64
runner: linux-amd64-cpu
container:
image: ${{ needs.ci-configure.outputs.docker_registry }}/xgb-ci.manylinux_2_28_${{ matrix.arch }}:${{ needs.ci-configure.outputs.image_tag }}
credentials:
username: ${{ needs.ci-configure.outputs.docker_username }}
password: ${{ needs.ci-configure.outputs.docker_password }}
steps:
- uses: actions/checkout@v6.0.2
- name: Pick Python
run: |
export PATH=/opt/python/cp310-cp310/bin/:$PATH
echo ${PATH} >> $GITHUB_PATH
- name: Install dependencies
run: |
pip install awscli wheel auditwheel pydistcheck
- name: Unstash raw wheel
run: |
mkdir -p python-package/dist
python3 ops/pipeline/manage-artifacts.py download \
--s3-bucket ${{ env.RUNS_ON_S3_BUCKET_CACHE }} \
--prefix cache/${{ github.run_id }}/build-cuda${{ matrix.cuda_version }}-${{ matrix.arch }} \
--dest-dir python-package/dist \
*.whl
- run: bash ops/pipeline/audit-cuda-wheel.sh ${{ matrix.arch }} ${{ matrix.cuda_variant_flag }}
- name: Stash files
run: |
python3 ops/pipeline/manage-artifacts.py upload \
--s3-bucket ${{ env.RUNS_ON_S3_BUCKET_CACHE }} \
--prefix cache/${{ github.run_id }}/audit-cuda${{ matrix.cuda_version }}-wheel-${{ matrix.arch }} \
python-package/dist/*.whl
build-cuda-with-rmm:
name: Build CUDA with RMM
needs: ci-configure
runs-on:
- runs-on=${{ github.run_id }}
- runner=linux-amd64-cpu
- tag=main-build-cuda-with-rmm
- extras=s3-cache
container:
image: ${{ needs.ci-configure.outputs.docker_registry }}/xgb-ci.gpu_build_rockylinux8:${{ needs.ci-configure.outputs.image_tag }}
credentials:
username: ${{ needs.ci-configure.outputs.docker_username }}
password: ${{ needs.ci-configure.outputs.docker_password }}
steps:
- uses: runs-on/action@v2
- uses: actions/checkout@v6.0.2
with:
submodules: "true"
- uses: dmlc/xgboost-devops/actions/sccache@main
- run: >-
bash ops/pipeline/build-cuda.sh
--cuda-version 12
--use-rmm 1
--use-federated 1
- run: sccache --show-stats
- name: Stash files
run: |
python3 ops/pipeline/manage-artifacts.py upload \
--s3-bucket ${{ env.RUNS_ON_S3_BUCKET_CACHE }} \
--prefix cache/${{ github.run_id }}/build-cuda-with-rmm \
build/testxgboost
build-python-wheels-cpu:
name: Build CPU wheel (xgboost-cpu) for ${{ matrix.manylinux_target }}_${{ matrix.arch }}
runs-on:
- runs-on
- runner=${{ matrix.runner }}
- run-id=${{ github.run_id }}
- tag=main-build-python-wheels-cpu-${{ matrix.manylinux_target }}-${{ matrix.arch }}
strategy:
fail-fast: false
matrix:
include:
- manylinux_target: manylinux_2_28
arch: aarch64
runner: linux-arm64-cpu
- manylinux_target: manylinux_2_28
arch: x86_64
runner: linux-amd64-cpu
steps:
- uses: actions/checkout@v6.0.2
with:
submodules: "true"
- name: Log into Docker registry (AWS ECR)
run: bash ops/pipeline/login-docker-registry.sh
- run: |
bash ops/pipeline/build-python-wheels-cpu.sh \
${{ matrix.manylinux_target }} ${{ matrix.arch }}
build-gpu-rpkg:
name: Build GPU-enabled R package
needs: ci-configure
runs-on:
- runs-on=${{ github.run_id }}
- runner=linux-amd64-cpu
- tag=main-build-gpu-rpkg
- extras=s3-cache
container:
image: ${{ needs.ci-configure.outputs.docker_registry }}/xgb-ci.gpu_build_r_rockylinux8:${{ needs.ci-configure.outputs.image_tag }}
credentials:
username: ${{ needs.ci-configure.outputs.docker_username }}
password: ${{ needs.ci-configure.outputs.docker_password }}
steps:
- uses: runs-on/action@v2
- name: Trust git cloning project sources
run: |
git config --global --add safe.directory "${GITHUB_WORKSPACE}"
- uses: actions/checkout@v6.0.2
with:
submodules: "true"
- uses: dmlc/xgboost-devops/actions/sccache@main
with:
cache-key-prefix: ${{ github.job }}
- run: bash ops/pipeline/build-gpu-rpkg.sh
- run: sccache --show-stats
- name: Upload R package tarball
run: |
python3 ops/pipeline/manage-artifacts.py upload \
--s3-bucket xgboost-nightly-builds \
--prefix ${BRANCH_NAME}/${GITHUB_SHA} --make-public \
xgboost_r_gpu_linux.tar.gz
if: github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/heads/release_')
test-cpp-gpu:
name: >-
Google Test (C++) CUDA ${{ matrix.cuda_version }}
(${{ matrix.suite }}, ${{ matrix.runner }})
needs: [ci-configure, build-cuda, build-cuda-with-rmm]
runs-on:
- runs-on=${{ github.run_id }}
- runner=${{ matrix.runner }}
- tag=main-test-cpp-gpu-cuda${{ matrix.cuda_version }}-${{ matrix.suite }}-${{ matrix.arch }}
- extras=s3-cache
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
include:
# CUDA 12 tests
# Note: --gpus all provides GPU access; --privileged is not needed for basic GPU tests
- cuda_version: 12
suite: gpu
arch: x86_64
runner: linux-amd64-gpu
image_repo: xgb-ci.gpu
artifact_from: build-cuda12-x86_64
container_options: "--gpus all --privileged"
test_args: ""
- cuda_version: 12
suite: gpu
arch: aarch64
runner: linux-arm64-gpu
image_repo: xgb-ci.gpu_aarch64
artifact_from: build-cuda12-aarch64
container_options: "--gpus all --privileged"
test_args: ""
- cuda_version: 12
suite: gpu-rmm
arch: x86_64
runner: linux-amd64-gpu
image_repo: xgb-ci.gpu
artifact_from: build-cuda-with-rmm
container_options: "--gpus all --privileged"
test_args: "--use-rmm-pool"
- cuda_version: 12
suite: mgpu
arch: x86_64
runner: linux-amd64-mgpu
image_repo: xgb-ci.gpu
artifact_from: build-cuda12-x86_64
# mgpu needs --shm-size for NCCL shared memory communication
container_options: "--gpus all --shm-size=4g --privileged"
test_args: "--gtest_filter=*MGPU*"
# CUDA 13 tests
- cuda_version: 13
suite: gpu
arch: x86_64
runner: linux-amd64-gpu
image_repo: xgb-ci.gpu_build_cuda13_rockylinux8
artifact_from: build-cuda13-x86_64
container_options: "--gpus all --privileged"
test_args: ""
- cuda_version: 13
suite: gpu
arch: aarch64
runner: linux-arm64-gpu
image_repo: xgb-ci.gpu_build_cuda13_rockylinux8_aarch64
artifact_from: build-cuda13-aarch64
container_options: "--gpus all --privileged"
test_args: ""
container:
image: ${{ needs.ci-configure.outputs.docker_registry }}/${{ matrix.image_repo }}:${{ needs.ci-configure.outputs.image_tag }}
credentials:
username: ${{ needs.ci-configure.outputs.docker_username }}
password: ${{ needs.ci-configure.outputs.docker_password }}
options: ${{ matrix.container_options }}
steps:
- uses: runs-on/action@v2
- uses: actions/checkout@v6.0.2
- name: Unstash gtest
run: |
python3 ops/pipeline/manage-artifacts.py download \
--s3-bucket ${{ env.RUNS_ON_S3_BUCKET_CACHE }} \
--prefix cache/${{ github.run_id }}/${{ matrix.artifact_from }} \
--dest-dir build \
testxgboost
chmod +x build/testxgboost
- name: Run Google Tests (${{ matrix.suite }})
run: build/testxgboost ${{ matrix.test_args }}
test-python-wheel-gpu:
name: Python tests CUDA ${{ matrix.cuda_version }} (${{ matrix.description }})
needs: [ci-configure, audit-cuda-wheel]
runs-on:
- runs-on=${{ github.run_id }}
- runner=${{ matrix.runner }}
- tag=main-test-python-wheel-cuda${{ matrix.cuda_version }}-${{ matrix.description }}
- extras=s3-cache
timeout-minutes: 60
strategy:
fail-fast: false
matrix:
include:
# CUDA 12 tests
- cuda_version: 12
description: GPU-x86_64-CUDA-12
image_repo: xgb-ci.gpu
suite: gpu
runner: linux-amd64-gpu
artifact_from: audit-cuda12-wheel-x86_64
container_options: "--gpus all --privileged"
- cuda_version: 12
description: Multi-GPU-x86_64-CUDA-12
image_repo: xgb-ci.gpu
suite: mgpu
runner: linux-amd64-mgpu
artifact_from: audit-cuda12-wheel-x86_64
# mgpu needs --shm-size for NCCL shared memory communication
container_options: "--gpus all --shm-size=4g --privileged"
# CUDA 12 aarch64 tests
- cuda_version: 12
description: GPU-arm64-CUDA-12
image_repo: xgb-ci.gpu_aarch64
suite: gpu-arm64
runner: linux-arm64-gpu
artifact_from: audit-cuda12-wheel-aarch64
container_options: "--gpus all --privileged"
# CUDA 13 tests
- cuda_version: 13
description: GPU-x86_64-CUDA-13
image_repo: xgb-ci.gpu_build_cuda13_rockylinux8
suite: gpu
runner: linux-amd64-gpu
artifact_from: audit-cuda13-wheel-x86_64
container_options: "--gpus all --privileged"
- cuda_version: 13
description: GPU-arm64-CUDA-13
image_repo: xgb-ci.gpu_build_cuda13_rockylinux8_aarch64
suite: gpu-arm64
runner: linux-arm64-gpu
artifact_from: audit-cuda13-wheel-aarch64
container_options: "--gpus all --privileged"
container:
image: ${{ needs.ci-configure.outputs.docker_registry }}/${{ matrix.image_repo }}:${{ needs.ci-configure.outputs.image_tag }}
credentials:
username: ${{ needs.ci-configure.outputs.docker_username }}
password: ${{ needs.ci-configure.outputs.docker_password }}
options: ${{ matrix.container_options }}
steps:
- uses: runs-on/action@v2
- uses: actions/checkout@v6.0.2
- name: Unstash Python wheel
run: |
python3 ops/pipeline/manage-artifacts.py download \
--s3-bucket ${{ env.RUNS_ON_S3_BUCKET_CACHE }} \
--prefix cache/${{ github.run_id }}/${{ matrix.artifact_from }} \
--dest-dir wheelhouse \
*.whl
- name: Run Python tests (${{ matrix.description }})
run: >-
bash ops/pipeline/test-python-wheel.sh
--suite ${{ matrix.suite }}
--cuda-version ${{ matrix.cuda_version }}
# Train a model for cross-platform testing (only for CUDA 12 x86_64)
- name: Train cross-platform test model
if: matrix.cuda_version == 12 && matrix.suite == 'gpu'
shell: bash -l {0}
run: |
source activate gpu_test
python tests/cross-platform/test_cross_platform_model.py \
--train --model-path cross_platform_model.ubj
- name: Upload cross-platform model artifact
if: matrix.cuda_version == 12 && matrix.suite == 'gpu'
uses: actions/upload-artifact@v7.0.0
with:
name: cross-platform-model
path: |
cross_platform_model.ubj
cross_platform_model.pkl
retention-days: 1
test-python-wheel-cpu:
name: Python tests CPU (${{ matrix.description }})
needs: [ci-configure, audit-cuda-wheel]
runs-on:
- runs-on=${{ github.run_id }}
- runner=${{ matrix.runner }}
- tag=main-test-python-wheel-cpu-${{ matrix.description }}
- extras=s3-cache
timeout-minutes: 60
strategy:
fail-fast: false
# Uses the wheel from cuda12 for tests.
matrix:
include:
- description: CPU-amd64
image_repo: xgb-ci.cpu
suite: cpu
runner: linux-amd64-cpu
artifact_from: audit-cuda12-wheel-x86_64
container_options: "--init"
- description: CPU-arm64
image_repo: xgb-ci.cpu_aarch64
suite: cpu-arm64
runner: linux-arm64-cpu
artifact_from: audit-cuda12-wheel-aarch64
container_options: "--init"
container:
image: ${{ needs.ci-configure.outputs.docker_registry }}/${{ matrix.image_repo }}:${{ needs.ci-configure.outputs.image_tag }}
credentials:
username: ${{ needs.ci-configure.outputs.docker_username }}
password: ${{ needs.ci-configure.outputs.docker_password }}
options: ${{ matrix.container_options }}
steps:
- uses: runs-on/action@v2
- uses: actions/checkout@v6.0.2
- name: Unstash Python wheel
run: |
python3 ops/pipeline/manage-artifacts.py download \
--s3-bucket ${{ env.RUNS_ON_S3_BUCKET_CACHE }} \
--prefix cache/${{ github.run_id }}/${{ matrix.artifact_from }} \
--dest-dir wheelhouse \
*.whl
- name: Run Python tests (${{ matrix.description }})
run: bash ops/pipeline/test-python-wheel.sh --suite ${{ matrix.suite }}
python-wheels-macos:
name: Build macOS wheel (${{ matrix.platform_id }})
runs-on: ${{ matrix.os }}
defaults:
run:
shell: bash -l {0}
strategy:
fail-fast: false
matrix:
include:
- os: macos-15-intel
platform_id: macosx_x86_64
- os: macos-14
platform_id: macosx_arm64
steps:
- uses: actions/checkout@v6.0.2
with:
submodules: 'true'
- name: Set up homebrew
uses: Homebrew/actions/setup-homebrew@13341b4d5e459a98bbe0b122b12c11bf90518cc8
- name: Install libomp
run: brew install libomp
- uses: dmlc/xgboost-devops/actions/miniforge-setup@main
with:
environment-name: minimal
environment-file: ops/conda_env/minimal.yml
- name: Build wheels
run: bash ops/pipeline/build-python-wheels-macos.sh ${{ matrix.platform_id }} ${{ github.sha }}
- name: Verify wheel can be installed
run: |
python -m pip install -vvv wheelhouse/*.whl
- name: Upload wheel artifact
uses: actions/upload-artifact@v7.0.0
with:
name: python-wheel-${{ matrix.platform_id }}
path: wheelhouse/*.whl
retention-days: 1
- name: Upload Python wheel to S3
if: github.ref == 'refs/heads/master' || contains(github.ref, 'refs/heads/release_')
run: |
python ops/pipeline/manage-artifacts.py upload \
--s3-bucket xgboost-nightly-builds \
--prefix ${{ env.BRANCH_NAME }}/${{ github.sha }} --make-public \
wheelhouse/*.whl
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID_IAM_S3_UPLOADER }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY_IAM_S3_UPLOADER }}
test-cross-platform-inference:
name: Cross-platform inference test (macOS Apple Silicon)
needs: [test-python-wheel-gpu, python-wheels-macos]
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- os: macos-15-intel
platform_id: macosx_x86_64
- os: macos-14
platform_id: macosx_arm64
defaults:
run:
shell: bash -l {0}
steps:
- uses: actions/checkout@v6.0.2
- uses: dmlc/xgboost-devops/actions/miniforge-setup@main
with:
environment-name: macos_test
environment-file: ops/conda_env/minimal.yml
- run: conda install scikit-learn numpy -y
- name: Download macOS wheel artifact
uses: actions/download-artifact@v8.0.1
with:
name: python-wheel-${{ matrix.platform_id }}
path: wheelhouse
- name: Install XGBoost wheel
run: |
python -m pip install -v wheelhouse/*.whl
- name: Download cross-platform model artifact
uses: actions/download-artifact@v8.0.1
with:
name: cross-platform-model
path: .
- name: Run cross-platform inference test
run: |
python tests/cross-platform/test_cross_platform_model.py \
--inference --model-path cross_platform_model.ubj
================================================
FILE: .github/workflows/misc.yml
================================================
name: Miscellaneous
on:
push:
branches:
- master
- 'release_*'
pull_request:
permissions:
contents: read # to fetch code (actions/checkout)
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
env:
BRANCH_NAME: >-
${{ github.event.pull_request.number && 'PR-' }}${{ github.event.pull_request.number || github.ref_name }}
jobs:
ci-configure:
name: Configure variables for CI
runs-on:
- runs-on=${{ github.run_id }}
- runner=linux-amd64-cpu
- tag=misc-ci-configure
steps:
- name: Login to Amazon ECR
id: login-ecr
uses: aws-actions/amazon-ecr-login@v2.0.2
with:
mask-password: 'false'
registries: '492475357299'
- uses: actions/checkout@v6.0.2
- name: Get image tag
id: get-image-tag
run: |
source ops/pipeline/get-image-tag.sh
echo "Using image tag $IMAGE_TAG"
echo "image_tag=$IMAGE_TAG" >> "$GITHUB_OUTPUT"
outputs:
docker_registry: ${{ steps.login-ecr.outputs.registry }}
docker_username: ${{ steps.login-ecr.outputs.docker_username_492475357299_dkr_ecr_us_west_2_amazonaws_com }}
docker_password: ${{ steps.login-ecr.outputs.docker_password_492475357299_dkr_ecr_us_west_2_amazonaws_com }}
image_tag: ${{ steps.get-image-tag.outputs.image_tag }}
gtest-cpu-nonomp:
name: Test Google C++ unittest (CPU Non-OMP)
runs-on: ubuntu-latest
defaults:
run:
shell: bash -l {0}
steps:
- uses: actions/checkout@v6.0.2
with:
submodules: 'true'
- uses: dmlc/xgboost-devops/actions/miniforge-setup@main
with:
environment-name: cpp_test
environment-file: ops/conda_env/cpp_test.yml
- uses: dmlc/xgboost-devops/actions/sccache@main
- name: Build and test XGBoost
run: bash ops/pipeline/build-cpu.sh cpu-nonomp
- run: sccache --show-stats
c-api-demo:
name: Test installing XGBoost lib + building the C API demo
runs-on: ubuntu-latest
defaults:
run:
shell: bash -l {0}
steps:
- uses: actions/checkout@v6.0.2
with:
submodules: 'true'
- uses: dmlc/xgboost-devops/actions/miniforge-setup@main
with:
environment-name: cpp_test
environment-file: ops/conda_env/cpp_test.yml
- uses: dmlc/xgboost-devops/actions/sccache@main
- name: Build and run C API demo with shared
run: bash ops/pipeline/test-c-api-demo.sh
build-i386:
name: Build 32-bit (i386)
runs-on:
- runs-on=${{ github.run_id }}
- runner=linux-amd64-cpu
- tag=misc-build-i386
steps:
- uses: actions/checkout@v6.0.2
with:
submodules: "true"
- name: Log into Docker registry (AWS ECR)
run: bash ops/pipeline/login-docker-registry.sh
- run: bash ops/pipeline/test-cpp-i386.sh
build-jvm-docs:
name: Build docs for JVM packages
needs: ci-configure
runs-on:
- runs-on=${{ github.run_id }}
- runner=linux-amd64-cpu
- tag=misc-build-jvm-docs
container:
image: ${{ needs.ci-configure.outputs.docker_registry }}/xgb-ci.jvm_gpu_build:${{ needs.ci-configure.outputs.image_tag }}
credentials:
username: ${{ needs.ci-configure.outputs.docker_username }}
password: ${{ needs.ci-configure.outputs.docker_password }}
steps:
- uses: runs-on/action@v2
- uses: actions/checkout@v6.0.2
with:
submodules: "true"
- uses: dmlc/xgboost-devops/actions/sccache@main
- name: Build libxgboost4j.so with CUDA
run: bash ops/pipeline/build-jvm-gpu.sh
- run: sccache --show-stats
- name: Build JVM docs
run: bash ops/pipeline/build-jvm-doc.sh
- name: Upload JVM doc
run: |
python3 ops/pipeline/manage-artifacts.py upload \
--s3-bucket xgboost-docs \
--prefix ${BRANCH_NAME}/${{ github.event.pull_request.head.sha || github.sha }} --make-public \
jvm-packages/${BRANCH_NAME}.tar.bz2
build-r-docs:
name: Build docs for the R package
needs: ci-configure
runs-on:
- runs-on=${{ github.run_id }}
- runner=linux-amd64-cpu
- tag=misc-build-r-docs
container:
image: ${{ needs.ci-configure.outputs.docker_registry }}/xgb-ci.cpu_build_r_doc:${{ needs.ci-configure.outputs.image_tag }}
credentials:
username: ${{ needs.ci-configure.outputs.docker_username }}
password: ${{ needs.ci-configure.outputs.docker_password }}
steps:
- uses: actions/checkout@v6.0.2
with:
submodules: "true"
- uses: dmlc/xgboost-devops/actions/sccache@main
- run: bash ops/script/setup_r_sccache.sh
- name: Build R docs
run: bash ops/pipeline/build-r-docs.sh
- name: Upload R doc
run: |
python3 ops/pipeline/manage-artifacts.py upload \
--s3-bucket xgboost-docs \
--prefix ${BRANCH_NAME}/${{ github.event.pull_request.head.sha || github.sha }} --make-public \
r-docs-${BRANCH_NAME}.tar.bz2
trigger-rtd-build:
name: Trigger Read The Docs build
needs: [build-jvm-docs, build-r-docs]
runs-on:
- runs-on=${{ github.run_id }}
- runner=linux-amd64-cpu
- tag=misc-trigger-rtd-build
steps:
- uses: actions/checkout@v6.0.2
- name: Trigger RTD
run: bash ops/pipeline/trigger-rtd.sh
================================================
FILE: .github/workflows/pre-commit.yml
================================================
name: XGBoost CI (Pre-commit)
on:
push:
branches:
- master
- 'release_*'
pull_request:
permissions:
contents: read
jobs:
pre-commit:
name: Run pre-commit
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6.0.2
with:
fetch-depth: 0
- uses: actions/setup-python@v6.2.0
with:
python-version: "3.11"
- name: Install pre-commit
run: python -m pip install pre-commit
- name: Run pre-commit on updated files
shell: bash
run: |
if [ "${{ github.event_name }}" = "pull_request" ]; then
FROM_REF="${{ github.event.pull_request.base.sha }}"
TO_REF="${{ github.event.pull_request.head.sha }}"
else
FROM_REF="${{ github.event.before }}"
TO_REF="${{ github.sha }}"
fi
if [ "${FROM_REF}" = "0000000000000000000000000000000000000000" ]; then
FROM_REF="$(git hash-object -t tree /dev/null)"
fi
pre-commit run --from-ref "${FROM_REF}" --to-ref "${TO_REF}" --show-diff-on-failure
================================================
FILE: .github/workflows/python_tests.yml
================================================
name: Python tests
on:
push:
branches:
- master
- 'release_*'
pull_request:
permissions:
contents: read # to fetch code (actions/checkout)
defaults:
run:
shell: bash -l {0}
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
python-sdist-test:
runs-on: ${{ matrix.os }}
name: Test installing Python XGBoost from the source distribution (${{ matrix.os }})
strategy:
fail-fast: false
matrix:
os: [macos-15-intel, windows-latest, ubuntu-latest]
steps:
- uses: actions/checkout@v6.0.2
with:
submodules: 'true'
- uses: dmlc/xgboost-devops/actions/miniforge-setup@main
with:
environment-name: sdist_test
environment-file: ops/conda_env/sdist_test.yml
- name: Install extra package for MacOS
run: |
mamba install -c conda-forge llvm-openmp
if: matrix.os == 'macos-15-intel'
- name: Build and install XGBoost
run: bash ops/pipeline/test-python-sdist.sh
python-tests-on-macos:
name: Test XGBoost Python package on macos-15-intel
runs-on: macos-15-intel
timeout-minutes: 60
steps:
- uses: actions/checkout@v6.0.2
with:
submodules: 'true'
- uses: dmlc/xgboost-devops/actions/miniforge-setup@main
with:
environment-name: macos_cpu_test
environment-file: ops/conda_env/macos_cpu_test.yml
- run: bash ops/pipeline/test-python-macos.sh
python-system-installation-on-ubuntu:
name: Test XGBoost Python package System Installation on Ubuntu
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6.0.2
with:
submodules: 'true'
- name: Set up Python 3.10
uses: actions/setup-python@v6.2.0
with:
python-version: "3.10"
- run: bash ops/pipeline/test-python-with-sysprefix.sh
================================================
FILE: .github/workflows/python_wheels_variants.yml
================================================
name: Build Python wheels using Wheel Variant prototype (WheelNext)
on:
push:
branches:
- master
- 'release_*'
pull_request:
permissions:
contents: read # to fetch code (actions/checkout)
defaults:
run:
shell: bash -l {0}
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
env:
BRANCH_NAME: >-
${{ github.event.pull_request.number && 'PR-' }}${{ github.event.pull_request.number || github.ref_name }}
jobs:
ecr-login:
name: Login to AWS ECR
runs-on:
- runs-on=${{ github.run_id }}
- runner=linux-amd64-cpu
- tag=python-wheels-variants-ecr-login
steps:
- name: Login to Amazon ECR
id: login-ecr
uses: aws-actions/amazon-ecr-login@v2.0.2
with:
mask-password: 'false'
registries: '492475357299'
outputs:
docker_registry: ${{ steps.login-ecr.outputs.registry }}
docker_username: ${{ steps.login-ecr.outputs.docker_username_492475357299_dkr_ecr_us_west_2_amazonaws_com }}
docker_password: ${{ steps.login-ecr.outputs.docker_password_492475357299_dkr_ecr_us_west_2_amazonaws_com }}
build-variant-wheels:
name: Build raw wheel for variant
needs: ecr-login
runs-on:
- runs-on=${{ github.run_id }}
- runner=linux-amd64-cpu
- tag=python-wheels-variants-build
container:
image: ${{ needs.ecr-login.outputs.docker_registry }}/xgb-ci.gpu_build_rockylinux8:main
credentials:
username: ${{ needs.ecr-login.outputs.docker_username }}
password: ${{ needs.ecr-login.outputs.docker_password }}
steps:
- uses: actions/checkout@v6.0.2
with:
submodules: "true"
- uses: dmlc/xgboost-devops/actions/sccache@main
with:
cache-key-prefix: build-variant-wheels
- run: bash ops/pipeline/build-variant-wheels.sh
- run: sccache --show-stats
- name: Stash files
run: |
python3 ops/pipeline/manage-artifacts.py upload \
--s3-bucket ${{ env.RUNS_ON_S3_BUCKET_CACHE }} \
--prefix cache/${{ github.run_id }}/build-variant-wheels \
python-package/dist/*.whl
audit-variant-wheel:
name: Audit variant wheel for manylinux_2_28_x86_64
needs: [ecr-login, build-variant-wheels]
runs-on:
- runs-on=${{ github.run_id }}
- runner=linux-amd64-cpu
- tag=python-wheels-variants-audit
container:
image: ${{ needs.ecr-login.outputs.docker_registry }}/xgb-ci.manylinux_2_28_x86_64:main
credentials:
username: ${{ needs.ecr-login.outputs.docker_username }}
password: ${{ needs.ecr-login.outputs.docker_password }}
steps:
- uses: actions/checkout@v6.0.2
- name: Pick Python
run: |
export PATH=/opt/python/cp310-cp310/bin/:$PATH
echo ${PATH} >> $GITHUB_PATH
- name: Install dependencies
run: |
pip install awscli wheel auditwheel pydistcheck
- name: Unstash raw wheel
run: |
mkdir -p python-package/dist
python3 ops/pipeline/manage-artifacts.py download \
--s3-bucket ${{ env.RUNS_ON_S3_BUCKET_CACHE }} \
--prefix cache/${{ github.run_id }}/build-variant-wheels \
--dest-dir python-package/dist \
*.whl
- name: Audit wheel
run: |
WHEEL_TAG=manylinux_2_28_x86_64
echo "--- Audit binary wheel to ensure it's compliant with ${WHEEL_TAG} standard"
auditwheel repair --only-plat --plat ${WHEEL_TAG} python-package/dist/*.whl
python3 -m wheel tags --python-tag py3 --abi-tag none --platform ${WHEEL_TAG} --remove \
wheelhouse/*.whl
mv -v wheelhouse/*.whl python-package/dist/
- name: Stash files
run: |
python3 ops/pipeline/manage-artifacts.py upload \
--s3-bucket ${{ env.RUNS_ON_S3_BUCKET_CACHE }} \
--prefix cache/${{ github.run_id }}/audit-variant-wheel \
python-package/dist/*.whl
convert-variant-wheel:
name: Convert to variant wheel (WheelNext)
needs: [ecr-login, audit-variant-wheel]
runs-on:
- runs-on=${{ github.run_id }}
- runner=linux-amd64-cpu
- tag=python-wheels-variants-convert
container:
image: ${{ needs.ecr-login.outputs.docker_registry }}/xgb-ci.gpu_build_rockylinux8:main
credentials:
username: ${{ needs.ecr-login.outputs.docker_username }}
password: ${{ needs.ecr-login.outputs.docker_password }}
steps:
- uses: actions/checkout@v6.0.2
with:
submodules: "true"
- name: Unstash audited wheel
run: |
mkdir -p python-package/dist
python3 ops/pipeline/manage-artifacts.py download \
--s3-bucket ${{ env.RUNS_ON_S3_BUCKET_CACHE }} \
--prefix cache/${{ github.run_id }}/audit-variant-wheel \
--dest-dir python-package/dist \
*.whl
- name: Convert to variant wheel
run: bash ops/pipeline/build-variant-wheels-impl.sh
================================================
FILE: .github/workflows/python_wheels_winarm64.yml
================================================
name: Build Python wheels targeting Windows ARM64
on:
push:
branches:
- master
- 'release_*'
pull_request:
permissions:
contents: read # to fetch code (actions/checkout)
defaults:
run:
shell: pwsh
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
env:
BRANCH_NAME: >-
${{ github.event.pull_request.number && 'PR-' }}${{ github.event.pull_request.number || github.ref_name }}
jobs:
python-wheels-Win-ARM64:
name: Build wheel for Windows ARM64
runs-on: windows-11-arm
steps:
- uses: actions/checkout@v6.0.2
with:
submodules: 'true'
- name: Setup Python
uses: actions/setup-python@v6.2.0
with:
python-version: '3.11'
- name: Install build dependencies
run: |
python -m pip install --upgrade pip
python -m pip install wheel setuptools awscli packaging
- uses: dmlc/xgboost-devops/actions/msvc-dev-env@main
- uses: dmlc/xgboost-devops/actions/sccache@main
- name: Build XGBoost for Win-ARM64
run: |
mkdir build
cd build
cmake .. -G"Ninja" -DCMAKE_BUILD_TYPE=Release `
-DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache
cmake --build . -v
- run: sccache --show-stats
- name: Build Python wheel xgboost for Win-ARM64
run: |
cd python-package
mkdir -p wheelhouse
pip wheel --no-deps -v . --wheel-dir wheelhouse/
$wheelFile = Get-ChildItem wheelhouse/*.whl | Select-Object -First 1 -ExpandProperty FullName
python -m wheel tags --python-tag py3 --abi-tag none --platform win_arm64 --remove $wheelFile
- name: Upload Python wheel xgboost
if: github.ref == 'refs/heads/master' || contains(github.ref, 'refs/heads/release_')
run: |
$wheelFile = Get-ChildItem python-package/wheelhouse/*.whl | Select-Object -First 1 -ExpandProperty FullName
python ops/pipeline/manage-artifacts.py upload `
--s3-bucket xgboost-nightly-builds `
--prefix ${{ env.BRANCH_NAME }}/${{ github.sha }} --make-public `
$wheelFile
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID_IAM_S3_UPLOADER }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY_IAM_S3_UPLOADER }}
- name: Clean up
run: |
$wheelFile = Get-ChildItem python-package/wheelhouse/*.whl | Select-Object -First 1 -ExpandProperty FullName
Remove-Item -Path $wheelFile -Verbose
- name: Build Python wheel xgboost-cpu for Win-ARM64
run: |
# Patch to rename pkg to xgboost-cpu
python ops/script/pypi_variants.py --use-suffix=cpu --require-nccl-dep=na
cd python-package
pip wheel --no-deps -v . --wheel-dir wheelhouse/
$wheelFile = Get-ChildItem wheelhouse/*.whl | Select-Object -First 1 -ExpandProperty FullName
python -m wheel tags --python-tag py3 --abi-tag none --platform win_arm64 --remove $wheelFile
- name: Upload Python wheel xgboost-cpu
if: github.ref == 'refs/heads/master' || contains(github.ref, 'refs/heads/release_')
run: |
$wheelFile = Get-ChildItem python-package/wheelhouse/*.whl | Select-Object -First 1 -ExpandProperty FullName
python ops/pipeline/manage-artifacts.py upload `
--s3-bucket xgboost-nightly-builds `
--prefix ${{ env.BRANCH_NAME }}/${{ github.sha }} --make-public `
$wheelFile
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID_IAM_S3_UPLOADER }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY_IAM_S3_UPLOADER }}
================================================
FILE: .github/workflows/r_nold.yml
================================================
# Run expensive R tests with the help of rhub. Only triggered by a pull request review
# See discussion at https://github.com/dmlc/xgboost/pull/6378
name: XGBoost-R-noLD
on:
pull_request_review_comment:
types: [created]
permissions:
contents: read # to fetch code (actions/checkout)
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
test-R-noLD:
if: github.event.comment.body == '/gha run r-nold-test' && contains('OWNER,MEMBER,COLLABORATOR', github.event.comment.author_association)
timeout-minutes: 120
runs-on: ubuntu-latest
container:
image: rhub/debian-gcc-devel-nold
steps:
- name: Install git and system packages
shell: bash
run: |
apt update && apt install libcurl4-openssl-dev libssl-dev libssh2-1-dev libgit2-dev libglpk-dev libxml2-dev libharfbuzz-dev libfribidi-dev git -y
- uses: actions/checkout@v6.0.2
with:
submodules: 'true'
- name: Install dependencies
shell: bash -l {0}
run: |
/tmp/R-devel/bin/Rscript -e "source('./R-package/tests/helper_scripts/install_deps.R')"
- name: Run R tests
shell: bash
run: |
cd R-package && \
/tmp/R-devel/bin/R CMD INSTALL . && \
/tmp/R-devel/bin/R -q -e "library(testthat); setwd('tests'); source('testthat.R')"
================================================
FILE: .github/workflows/r_tests.yml
================================================
name: R Tests
on:
push:
branches:
- master
- 'release_*'
pull_request:
env:
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
permissions:
contents: read # to fetch code (actions/checkout)
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
test-Rpkg:
runs-on: ${{ matrix.os }}
name: Test R on OS ${{ matrix.os }}, R ${{ matrix.r }}, Compiler ${{ matrix.compiler }}, Build ${{ matrix.build }}
strategy:
fail-fast: false
matrix:
include:
- os: windows-latest
r: release
compiler: mingw
build: autotools
- os: ubuntu-latest
r: release
compiler: none
build: cmake
env:
R_REMOTES_NO_ERRORS_FROM_WARNINGS: true
steps:
- name: Install system dependencies
run: |
sudo apt update
sudo apt install libcurl4-openssl-dev libssl-dev libssh2-1-dev libgit2-dev libglpk-dev libxml2-dev libharfbuzz-dev libfribidi-dev librsvg2-dev librsvg2-2
if: matrix.os == 'ubuntu-latest'
- uses: actions/checkout@v6.0.2
with:
submodules: 'true'
- uses: r-lib/actions/setup-r@v2
with:
r-version: ${{ matrix.r }}
- uses: actions/setup-python@v6.2.0
with:
python-version: "3.10"
architecture: 'x64'
- uses: r-lib/actions/setup-tinytex@v2
- uses: dmlc/xgboost-devops/actions/sccache@main
if: matrix.os == 'ubuntu-latest'
- run: bash ops/script/setup_r_sccache.sh
if: matrix.os == 'ubuntu-latest'
- name: Install dependencies
shell: Rscript {0}
run: |
source("./R-package/tests/helper_scripts/install_deps.R")
- name: Test R
run: |
python ops/script/test_r_package.py --compiler='${{ matrix.compiler }}' --build-tool="${{ matrix.build }}" --task=check
if: matrix.compiler != 'none'
- name: Test R
run: |
python ops/script/test_r_package.py --build-tool="${{ matrix.build }}" --task=check
if: matrix.compiler == 'none'
- run: sccache --show-stats
if: matrix.os == 'ubuntu-latest'
test-R-on-Debian:
name: Test R package on Debian
runs-on: ubuntu-latest
container:
image: rhub/ubuntu-release # rhub uses ubuntu for debian tests.
steps:
- name: Install system dependencies
run: |
# Must run before checkout to have the latest git installed.
apt update && apt install libcurl4-openssl-dev libssl-dev libssh2-1-dev libgit2-dev libglpk-dev libxml2-dev libharfbuzz-dev libfribidi-dev git librsvg2-dev librsvg2-2 pandoc -y
- name: Trust git cloning project sources
run: |
git config --global --add safe.directory "${GITHUB_WORKSPACE}"
- uses: actions/checkout@v6.0.2
with:
submodules: 'true'
- uses: dmlc/xgboost-devops/actions/sccache@main
- run: bash ops/script/setup_r_sccache.sh
- name: Install dependencies
shell: bash -l {0}
run: |
Rscript -e "source('./R-package/tests/helper_scripts/install_deps.R')"
- name: Test R
shell: bash -l {0}
run: |
python3 ops/script/test_r_package.py --r=/opt/R/release/bin/R --build-tool=autotools --task=check
- uses: dorny/paths-filter@v4
# Run the document check if there are changes in the R package.
id: changes
with:
filters: |
r_package:
- 'R-package/**'
- name: Run document check
if: steps.changes.outputs.r_package == 'true'
run: |
python3 ops/script/test_r_package.py --r=/opt/R/release/bin/R --task=doc
- name: Run lintr
run: |
# Prevent the linter from checking generated R scripts.
if [ -d ./xgboost.Rcheck ] ; then
rm -rf ./xgboost.Rcheck
fi
MAKEFLAGS="-j$(nproc)" R CMD INSTALL R-package/
Rscript ops/script/lint_r.R $(pwd)
- run: sccache --show-stats
================================================
FILE: .github/workflows/scorecards.yml
================================================
name: Scorecards supply-chain security
on:
# Only the default branch is supported.
branch_protection_rule:
schedule:
- cron: '17 2 * * 6'
push:
branches: [ "master" ]
# Declare default permissions as read only.
permissions: read-all
jobs:
analysis:
name: Scorecards analysis
runs-on: ubuntu-latest
permissions:
# Needed to upload the results to code-scanning dashboard.
security-events: write
# Used to receive a badge.
id-token: write
steps:
- name: "Checkout code"
uses: actions/checkout@v6.0.2
with:
persist-credentials: false
- name: "Run analysis"
uses: ossf/scorecard-action@4eaacf0543bb3f2c246792bd56e8cdeffafb205a # v2.4.3
with:
results_file: results.sarif
results_format: sarif
# Publish the results for public repositories to enable scorecard badges. For more details, see
# https://github.com/ossf/scorecard-action#publishing-results.
# For private repositories, `publish_results` will automatically be set to `false`, regardless
# of the value entered here.
publish_results: true
# Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF
# format to the repository Actions tab.
- name: "Upload artifact"
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v4.4.3
with:
name: SARIF file
path: results.sarif
retention-days: 5
# Upload the results to GitHub's code scanning dashboard.
- name: "Upload to code-scanning"
uses: github/codeql-action/upload-sarif@83a02f7883b12e0e4e1a146174f5e2292a01e601 # v2.16.4
with:
sarif_file: results.sarif
================================================
FILE: .github/workflows/sycl_tests.yml
================================================
name: XGBoost CI (oneAPI)
on:
push:
branches:
- master
- 'release_*'
pull_request:
permissions:
contents: read # to fetch code (actions/checkout)
defaults:
run:
shell: bash -l {0}
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
env:
BRANCH_NAME: >-
${{ github.event.pull_request.number && 'PR-' }}${{ github.event.pull_request.number || github.ref_name }}
jobs:
gtest-cpu-sycl:
name: Test Google C++ unittest (CPU SYCL)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6.0.2
with:
submodules: 'true'
- uses: dmlc/xgboost-devops/actions/miniforge-setup@main
with:
environment-name: linux_sycl_test
environment-file: ops/conda_env/linux_sycl_test.yml
- name: Run gtest
run: bash ops/pipeline/build-test-sycl.sh gtest
python-sycl-tests-on-ubuntu:
name: Test XGBoost Python package with SYCL
runs-on: ubuntu-latest
timeout-minutes: 90
steps:
- uses: actions/checkout@v6.0.2
with:
submodules: 'true'
- uses: dmlc/xgboost-devops/actions/miniforge-setup@main
with:
environment-name: linux_sycl_test
environment-file: ops/conda_env/linux_sycl_test.yml
- name: Test Python package
run: bash ops/pipeline/build-test-sycl.sh pytest
================================================
FILE: .github/workflows/windows.yml
================================================
name: Windows
on:
push:
branches:
- master
- 'release_*'
pull_request:
permissions:
contents: read # to fetch code (actions/checkout)
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
defaults:
run:
shell: powershell
env:
BRANCH_NAME: >-
${{ github.event.pull_request.number && 'PR-' }}${{ github.event.pull_request.number || github.ref_name }}
jobs:
build-win64-gpu:
name: Build XGBoost for Windows with CUDA
runs-on:
- runs-on=${{ github.run_id }}
- runner=windows-cpu
- tag=windows-build-win64-gpu
steps:
- uses: actions/checkout@v6.0.2
with:
submodules: "true"
- uses: dmlc/xgboost-devops/actions/msvc-dev-env@main
- uses: dmlc/xgboost-devops/actions/sccache@main
- run: ops/pipeline/build-win64.ps1 -variant gpu
- run: sccache --show-stats
- name: Stash files
shell: powershell
run: |
conda activate
python ops/pipeline/manage-artifacts.py upload `
--s3-bucket ${{ env.RUNS_ON_S3_BUCKET_CACHE }} `
--prefix cache/${{ github.run_id }}/build-win64-gpu `
build/testxgboost.exe `
(Get-ChildItem python-package/dist/*.whl | Select-Object -Expand FullName)
build-win64-cpu:
name: Build XGBoost for Windows (minimal)
runs-on:
- runs-on=${{ github.run_id }}
- runner=windows-cpu
- tag=windows-build-win64-cpu
steps:
- uses: actions/checkout@v6.0.2
with:
submodules: "true"
- uses: dmlc/xgboost-devops/actions/msvc-dev-env@main
- uses: dmlc/xgboost-devops/actions/sccache@main
- run: ops/pipeline/build-win64.ps1 -variant cpu
- run: sccache --show-stats
test-win64-gpu:
name: Test XGBoost on Windows
needs: build-win64-gpu
runs-on:
- runs-on=${{ github.run_id }}
- runner=windows-gpu
- tag=windows-test-win64-gpu
steps:
- uses: actions/checkout@v6.0.2
with:
submodules: "true"
- name: Unstash files
shell: powershell
run: |
conda activate
python ops/pipeline/manage-artifacts.py download `
--s3-bucket ${{ env.RUNS_ON_S3_BUCKET_CACHE }} `
--prefix cache/${{ github.run_id }}/build-win64-gpu `
--dest-dir build `
*.whl testxgboost.exe
New-Item -ItemType Directory -Path python-package/dist/ -Force
Move-Item -Path (Get-ChildItem build/*.whl | Select-Object -Expand FullName) `
-Destination python-package/dist/
- run: powershell ops/pipeline/test-win64-gpu.ps1
================================================
FILE: .gitignore
================================================
# Compiled Object files
*.slo
*.lo
*.o
*.page
# Compiled Dynamic libraries
*.so
*.dylib
*.page
# Compiled Static libraries
*.lai
*.la
*.a
*~
*.Rcheck
*.rds
*.tar.gz
*.tar.bz2
*conf
*buffer
*.model
*pyc
*.train
*.test
*.tar
*group
*rar
*vali
*sdf
Release
*exe
*exp
ipch
*.filters
*.user
*log
rmm_log.txt
Debug
*suo
.Rhistory
*.dll
*i386
*x64
*dump
*save
*csv
.Rproj.user
*.cpage.col
*.cpage
*.Rproj
./xgboost.mpi
./xgboost.mock
*.bak
#.Rbuildignore
R-package.Rproj
R-package/build/*
*.cache*
.mypy_cache/
doxygen
# java
java/xgboost4j/target
java/xgboost4j/tmp
java/xgboost4j-demo/target
java/xgboost4j-demo/data/
java/xgboost4j-demo/tmp/
java/xgboost4j-demo/model/
nb-configuration*
*.xml.versionsBackup
# Eclipse
.project
.cproject
.classpath
.pydevproject
.settings/
/build
/build-gpu
/xgboost
*.data
build_plugin
recommonmark/
tags
TAGS
*.class
target
*.swp
# cpp tests and gcov generated files
*.gcov
*.gcda
*.gcno
*.ubj
build_tests
/tests/cpp/xgboost_test
.DS_Store
lib/
# spark
metastore_db
/include/xgboost/build_config.h
# files from R-package source install
**/config.status
R-package/config.h
R-package/src/Makevars
*.lib
# Visual Studio
.vs/
CMakeSettings.json
*.ilk
*.pdb
# IntelliJ/CLion
.idea
*.iml
/cmake-build-debug/
# GDB
.gdb_history
# Python joblib.Memory used in pytest.
cachedir/
# Files from local Dask work
dask-worker-space/
# Jupyter notebook checkpoints
.ipynb_checkpoints/
# credentials and key material
config
credentials
credentials.csv
*.env
*.pem
*.pub
*.rdp
*_rsa
# Visual Studio code + extensions
.vscode
.metals
.bloop
# python tests
*.bin
demo/**/*.txt
*.dmatrix
.hypothesis
__MACOSX/
model*.json
/tests/python/models/models/
# R tests
*.htm
*.html
*.libsvm
*.rds
Rplots.pdf
*.zip
# nsys
*.nsys-rep
rmm_log.dev*
================================================
FILE: .gitmodules
================================================
[submodule "dmlc-core"]
path = dmlc-core
url = https://github.com/dmlc/dmlc-core
branch = main
[submodule "gputreeshap"]
path = gputreeshap
url = https://github.com/rapidsai/gputreeshap.git
================================================
FILE: .pre-commit-config.yaml
================================================
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.6.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-merge-conflict
- id: check-case-conflict
- id: check-yaml
- id: check-toml
- id: check-json
- id: check-executables-have-shebangs
- id: check-shebang-scripts-are-executable
- id: mixed-line-ending
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.14.14
hooks:
- id: ruff-check
args:
- --fix
- --select=I
files: \.py$
exclude: (dmlc-core|gputreeshap)
- id: ruff-format
files: \.py$
exclude: (dmlc-core|gputreeshap)
- repo: https://github.com/pre-commit/mirrors-clang-format
rev: v21.1.8
hooks:
- id: clang-format
args: [--style=file]
files: \.(cc|c|cpp|h|cu|hpp)$
exclude: (dmlc-core|gputreeshap)
- repo: local
hooks:
- id: lint-cpp
name: C++ lint (cpplint)
entry: python ops/script/lint_cpp.py
language: python
types: [file]
files: \.(cc|c|cpp|h|cu|hpp)$
exclude: (dmlc-core|gputreeshap)
additional_dependencies:
- cpplint==1.6.1
- id: lint-cmake
name: CMake lint (cmakelint)
entry: cmakelint --linelength=120 --filter=-convention/filename,-package/stdargs,-readability/wonkycase
language: python
types: [file]
files: (CMakeLists\.txt$|^cmake/.*\.cmake$)
exclude: (dmlc-core|gputreeshap)
additional_dependencies:
- cmakelint
- id: pylint
name: Python lint (pylint)
entry: pylint
language: python
types: [file]
files: \.py$
exclude: (dmlc-core|gputreeshap|^ops/|^tests/)
args:
- --rcfile=python-package/pyproject.toml
additional_dependencies:
- pylint
================================================
FILE: .readthedocs.yaml
================================================
# .readthedocs.yaml
# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
# Required
version: 2
submodules:
include: all
# Set the version of Python and other tools you might need
build:
os: ubuntu-22.04
tools:
python: "3.10"
apt_packages:
- graphviz
- cmake
- g++
- doxygen
- ninja-build
# Build documentation in the docs/ directory with Sphinx
sphinx:
configuration: doc/conf.py
# If using Sphinx, optionally build your docs in additional formats such as PDF
formats:
- pdf
# Optionally declare the Python requirements required to build your docs
python:
install:
- requirements: doc/requirements.txt
================================================
FILE: CITATION
================================================
@inproceedings{Chen:2016:XST:2939672.2939785,
author = {Chen, Tianqi and Guestrin, Carlos},
title = {{XGBoost}: A Scalable Tree Boosting System},
booktitle = {Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining},
series = {KDD '16},
year = {2016},
isbn = {978-1-4503-4232-2},
location = {San Francisco, California, USA},
pages = {785--794},
numpages = {10},
url = {http://doi.acm.org/10.1145/2939672.2939785},
doi = {10.1145/2939672.2939785},
acmid = {2939785},
publisher = {ACM},
address = {New York, NY, USA},
keywords = {large-scale machine learning},
}
================================================
FILE: CMakeLists.txt
================================================
cmake_minimum_required(VERSION 3.18 FATAL_ERROR)
if(PLUGIN_SYCL)
string(REPLACE " -isystem ${CONDA_PREFIX}/include" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
endif()
project(xgboost LANGUAGES CXX C VERSION 3.3.0)
include(cmake/Utils.cmake)
list(APPEND CMAKE_MODULE_PATH "${xgboost_SOURCE_DIR}/cmake/modules")
# These policies are already set from 3.18 but we still need to set the policy
# default variables here for lower minimum versions in the submodules
set(CMAKE_POLICY_DEFAULT_CMP0063 NEW)
set(CMAKE_POLICY_DEFAULT_CMP0069 NEW)
set(CMAKE_POLICY_DEFAULT_CMP0076 NEW)
set(CMAKE_POLICY_DEFAULT_CMP0077 NEW)
set(CMAKE_POLICY_DEFAULT_CMP0079 NEW)
message(STATUS "CMake version ${CMAKE_VERSION}")
# Check compiler versions
# Use recent compilers to ensure that std::filesystem is available
if(MSVC)
if(MSVC_VERSION LESS 1920)
message(FATAL_ERROR "Need Visual Studio 2019 or newer to build XGBoost")
endif()
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "8.1")
message(FATAL_ERROR "Need GCC 8.1 or newer to build XGBoost")
endif()
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "11.0")
message(FATAL_ERROR "Need Xcode 11.0 (AppleClang 11.0) or newer to build XGBoost")
endif()
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "9.0")
message(FATAL_ERROR "Need Clang 9.0 or newer to build XGBoost")
endif()
endif()
include(${xgboost_SOURCE_DIR}/cmake/PrefetchIntrinsics.cmake)
find_prefetch_intrinsics()
include(${xgboost_SOURCE_DIR}/cmake/Version.cmake)
write_version()
set_default_configuration_release()
#-- Options
include(CMakeDependentOption)
## User options
option(BUILD_C_DOC "Build documentation for C APIs using Doxygen." OFF)
option(USE_OPENMP "Build with OpenMP support." ON)
option(BUILD_STATIC_LIB "Build static library" OFF)
option(BUILD_DEPRECATED_CLI "Build the deprecated command line interface" OFF)
option(FORCE_SHARED_CRT "Build with dynamic CRT on Windows (/MD)" OFF)
option(BUILD_WITH_GIT_HASH "Add a short git hash to the build info." OFF)
option(BUILD_WITH_SYSTEM_DMLC "Use system package for dmlc." OFF)
## Bindings
option(JVM_BINDINGS "Build JVM bindings" OFF)
option(R_LIB "Build shared library for R package" OFF)
## Dev
option(USE_DEBUG_OUTPUT "Dump internal training results like gradients and predictions to stdout.
Should only be used for debugging." OFF)
option(FORCE_COLORED_OUTPUT "Force colored output from compilers, useful when ninja is used instead of make." OFF)
option(ENABLE_ALL_WARNINGS "Enable all compiler warnings. Only effective for GCC/Clang" OFF)
option(LOG_CAPI_INVOCATION "Log all C API invocations for debugging" OFF)
option(GOOGLE_TEST "Build google tests" OFF)
option(USE_DMLC_GTEST "Use google tests bundled with dmlc-core submodule" OFF)
option(USE_DEVICE_DEBUG "Generate CUDA device debug info." OFF)
option(USE_NVTX "Build with cuda profiling annotations. Developers only." OFF)
set(NVTX_HEADER_DIR "" CACHE PATH "Path to the stand-alone nvtx header")
option(HIDE_CXX_SYMBOLS "Build shared library and hide all C++ symbols" OFF)
option(KEEP_BUILD_ARTIFACTS_IN_BINARY_DIR "Output build artifacts in CMake binary dir" OFF)
## CUDA
option(USE_CUDA "Build with GPU acceleration" OFF)
option(USE_NCCL "Build with NCCL to enable distributed GPU support." OFF)
option(USE_NVCOMP "Build with nvcomp to enable sparse data compression. (experimental)" OFF)
# This is specifically designed for PyPI binary release and should be disabled for most of the cases.
option(USE_DLOPEN_NCCL "Whether to load nccl dynamically." OFF)
option(BUILD_WITH_SHARED_NCCL "Build with shared NCCL library." OFF)
if(USE_CUDA)
if(NOT DEFINED CMAKE_CUDA_ARCHITECTURES AND NOT DEFINED ENV{CUDAARCHS})
set(GPU_COMPUTE_VER "" CACHE STRING
"Semicolon separated list of compute versions to be built against, e.g. '35;61'")
else()
# Clear any cached values from previous runs
unset(GPU_COMPUTE_VER)
unset(GPU_COMPUTE_VER CACHE)
endif()
endif()
# CUDA device LTO was introduced in CMake v3.25 and requires host LTO to also be enabled but can still
# be explicitly disabled allowing for LTO on host only, host and device, or neither, but device-only LTO
# is not a supproted configuration
cmake_dependent_option(USE_CUDA_LTO
"Enable link-time optimization for CUDA device code"
"${CMAKE_INTERPROCEDURAL_OPTIMIZATION}"
"CMAKE_VERSION VERSION_GREATER_EQUAL 3.25;USE_CUDA;CMAKE_INTERPROCEDURAL_OPTIMIZATION"
OFF)
## Sanitizers
option(USE_SANITIZER "Use santizer flags" OFF)
option(SANITIZER_PATH "Path to sanitizes.")
set(ENABLED_SANITIZERS "address" "leak" CACHE STRING
"Semicolon separated list of sanitizer names. E.g 'address;leak'. Supported sanitizers are
address, leak, undefined and thread.")
## Plugins
option(PLUGIN_RMM "Build with RAPIDS Memory Manager (RMM)" OFF)
option(PLUGIN_FEDERATED "Build with Federated Learning" OFF)
## TODO: 1. Add check if DPC++ compiler is used for building
option(PLUGIN_SYCL "SYCL plugin" OFF)
option(ADD_PKGCONFIG "Add xgboost.pc into system." ON)
#-- Checks for building XGBoost
if(USE_DEBUG_OUTPUT AND (NOT (CMAKE_BUILD_TYPE MATCHES Debug)))
message(SEND_ERROR "Do not enable `USE_DEBUG_OUTPUT' with release build.")
endif()
if(USE_NVTX AND (NOT USE_CUDA))
message(SEND_ERROR "`USE_NVTX` must be enabled with `USE_CUDA` flag.")
endif()
if(USE_NVTX)
if(CMAKE_VERSION VERSION_LESS "3.25.0")
# CUDA:nvtx3 target is added in 3.25
message("cmake >= 3.25 is required for NVTX.")
endif()
endif()
if(USE_NCCL AND (NOT USE_CUDA))
message(SEND_ERROR "`USE_NCCL` must be enabled with `USE_CUDA` flag.")
endif()
if(USE_NVCOMP AND (NOT USE_CUDA))
message(SEND_ERROR "`USE_NVCOMP` must be enabled with `USE_CUDA` flag.")
endif()
if(USE_DEVICE_DEBUG AND (NOT USE_CUDA))
message(SEND_ERROR "`USE_DEVICE_DEBUG` must be enabled with `USE_CUDA` flag.")
endif()
if(BUILD_WITH_SHARED_NCCL AND (NOT USE_NCCL))
message(SEND_ERROR "Build XGBoost with -DUSE_NCCL=ON to enable BUILD_WITH_SHARED_NCCL.")
endif()
if(USE_DLOPEN_NCCL AND (NOT USE_NCCL))
message(SEND_ERROR "Build XGBoost with -DUSE_NCCL=ON to enable USE_DLOPEN_NCCL.")
endif()
if(USE_DLOPEN_NCCL AND (NOT (CMAKE_SYSTEM_NAME STREQUAL "Linux")))
message(SEND_ERROR "`USE_DLOPEN_NCCL` supports only Linux at the moment.")
endif()
if(JVM_BINDINGS AND R_LIB)
message(SEND_ERROR "`R_LIB' is not compatible with `JVM_BINDINGS' as they both have customized configurations.")
endif()
if(R_LIB AND GOOGLE_TEST)
message(
WARNING
"Some C++ tests will fail with `R_LIB` enabled, as R package redirects some functions to R runtime implementation."
)
endif()
if(R_LIB AND USE_NCCL)
message(SEND_ERROR "`R_LIB` doesn't support distributed computing with NCCL yet.")
endif()
if(PLUGIN_RMM AND NOT (USE_CUDA))
message(SEND_ERROR "`PLUGIN_RMM` must be enabled with `USE_CUDA` flag.")
endif()
if(PLUGIN_RMM AND NOT ((CMAKE_CXX_COMPILER_ID STREQUAL "Clang") OR (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")))
message(SEND_ERROR "`PLUGIN_RMM` must be used with GCC or Clang compiler.")
endif()
if(PLUGIN_RMM AND NOT (CMAKE_SYSTEM_NAME STREQUAL "Linux"))
message(SEND_ERROR "`PLUGIN_RMM` must be used with Linux.")
endif()
if(ENABLE_ALL_WARNINGS)
if((NOT CMAKE_CXX_COMPILER_ID MATCHES "Clang") AND (NOT CMAKE_CXX_COMPILER_ID STREQUAL "GNU"))
message(SEND_ERROR "ENABLE_ALL_WARNINGS is only available for Clang and GCC.")
endif()
endif()
if(BUILD_STATIC_LIB AND (R_LIB OR JVM_BINDINGS))
message(SEND_ERROR "Cannot build a static library libxgboost.a when R or JVM packages are enabled.")
endif()
if(PLUGIN_FEDERATED)
if(CMAKE_CROSSCOMPILING)
message(SEND_ERROR "Cannot cross compile with federated learning support")
endif()
if(BUILD_STATIC_LIB)
message(SEND_ERROR "Cannot build static lib with federated learning support")
endif()
if(R_LIB OR JVM_BINDINGS)
message(SEND_ERROR "Cannot enable federated learning support when R or JVM packages are enabled.")
endif()
if(WIN32)
message(SEND_ERROR "Federated learning not supported for Windows platform")
endif()
endif()
#-- Removed options
if(USE_AVX)
message(SEND_ERROR "The option `USE_AVX` is deprecated as experimental AVX features have been removed from XGBoost.")
endif()
if(PLUGIN_LZ4)
message(SEND_ERROR "The option `PLUGIN_LZ4` is removed from XGBoost.")
endif()
if(RABIT_BUILD_MPI)
message(SEND_ERROR "The option `RABIT_BUILD_MPI` has been removed from XGBoost.")
endif()
if(USE_S3)
message(SEND_ERROR "The option `USE_S3` has been removed from XGBoost")
endif()
if(USE_AZURE)
message(SEND_ERROR "The option `USE_AZURE` has been removed from XGBoost")
endif()
if(USE_HDFS)
message(SEND_ERROR "The option `USE_HDFS` has been removed from XGBoost")
endif()
if(PLUGIN_DENSE_PARSER)
message(SEND_ERROR "The option `PLUGIN_DENSE_PARSER` has been removed from XGBoost.")
endif()
if(BUILD_DEPRECATED_CLI)
message(SEND_ERROR "The option `BUILD_DEPRECATED_CLI` is removed from XGBoost.")
endif()
#-- Sanitizer
if(USE_SANITIZER)
include(cmake/Sanitizer.cmake)
enable_sanitizers("${ENABLED_SANITIZERS}")
endif()
if(USE_CUDA)
set(USE_OPENMP ON CACHE BOOL "CUDA requires OpenMP" FORCE)
# `export CXX=' is ignored by CMake CUDA.
if(NOT DEFINED CMAKE_CUDA_HOST_COMPILER AND NOT DEFINED ENV{CUDAHOSTCXX})
set(CMAKE_CUDA_HOST_COMPILER ${CMAKE_CXX_COMPILER} CACHE FILEPATH
"The compiler executable to use when compiling host code for CUDA or HIP language files.")
mark_as_advanced(CMAKE_CUDA_HOST_COMPILER)
message(STATUS "Configured CUDA host compiler: ${CMAKE_CUDA_HOST_COMPILER}")
endif()
if(NOT DEFINED CMAKE_CUDA_RUNTIME_LIBRARY)
set(CMAKE_CUDA_RUNTIME_LIBRARY Static)
endif()
enable_language(CUDA)
if(${CMAKE_CUDA_COMPILER_VERSION} VERSION_LESS 12.9)
message(FATAL_ERROR "CUDA version must be at least 12.9!")
endif()
if(DEFINED GPU_COMPUTE_VER)
compute_cmake_cuda_archs("${GPU_COMPUTE_VER}")
endif()
find_package(CUDAToolkit 12.8 REQUIRED)
endif()
if(USE_NVCOMP)
find_package(nvcomp REQUIRED)
endif()
if(FORCE_COLORED_OUTPUT AND (CMAKE_GENERATOR STREQUAL "Ninja") AND
((CMAKE_CXX_COMPILER_ID STREQUAL "GNU") OR
(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")))
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fdiagnostics-color=always")
endif()
if(NOT (CMAKE_SYSTEM_NAME STREQUAL "Emscripten"))
find_package(Threads REQUIRED)
endif()
# -- OpenMP
include(cmake/FindOpenMPMacOS.cmake)
if(USE_OPENMP)
if(APPLE)
find_openmp_macos()
else()
find_package(OpenMP REQUIRED C CXX)
endif()
endif()
# Add for IBM i
if(${CMAKE_SYSTEM_NAME} MATCHES "OS400")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread")
set(CMAKE_CXX_ARCHIVE_CREATE "<CMAKE_AR> -X64 qc <TARGET> <OBJECTS>")
endif()
if(USE_NCCL)
find_package(Nccl REQUIRED)
endif()
if(MSVC)
if(FORCE_SHARED_CRT)
message(STATUS "XGBoost: Using dynamically linked MSVC runtime...")
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>DLL")
else()
message(STATUS "XGBoost: Using statically linked MSVC runtime...")
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
endif()
endif()
# dmlc-core
set(DMLC_FORCE_SHARED_CRT ${FORCE_SHARED_CRT})
if(BUILD_WITH_SYSTEM_DMLC)
find_package(dmlc REQUIRED)
else()
set(DMLC_FORCE_SHARED_CRT ${FORCE_SHARED_CRT})
add_subdirectory(${xgboost_SOURCE_DIR}/dmlc-core)
endif()
if(MSVC)
if(TARGET dmlc_unit_tests)
target_compile_options(
dmlc_unit_tests PRIVATE
-D_CRT_SECURE_NO_WARNINGS -D_CRT_SECURE_NO_DEPRECATE
)
endif()
endif()
# core xgboost
add_subdirectory(${xgboost_SOURCE_DIR}/src)
# dmlc-core
if(BUIILD_WTIH_SYSTEM_DMLC)
target_link_libraries(objxgboost PUBLIC ${dmlc-LIBRARIES})
else()
target_link_libraries(objxgboost PUBLIC dmlc)
endif()
# Link -lstdc++fs for GCC 8.x
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS "9.0")
target_link_libraries(objxgboost PUBLIC stdc++fs)
endif()
# Exports some R specific definitions and objects
if(R_LIB)
add_subdirectory(${xgboost_SOURCE_DIR}/R-package)
endif()
# This creates its own shared library `xgboost4j'.
if(JVM_BINDINGS)
add_subdirectory(${xgboost_SOURCE_DIR}/jvm-packages)
endif()
# Plugin
add_subdirectory(${xgboost_SOURCE_DIR}/plugin)
if(PLUGIN_RMM)
find_package(rmm REQUIRED)
# Patch the rmm targets so they reference the static cudart
# Remove this patch once RMM stops specifying cudart requirement
# (since RMM is a header-only library, it should not specify cudart in its CMake config)
get_target_property(rmm_link_libs rmm::rmm INTERFACE_LINK_LIBRARIES)
list(REMOVE_ITEM rmm_link_libs CUDA::cudart)
list(APPEND rmm_link_libs CUDA::cudart_static)
set_target_properties(rmm::rmm PROPERTIES INTERFACE_LINK_LIBRARIES "${rmm_link_libs}")
# Pick up patched CCCL from RMM
elseif(USE_CUDA)
# If using CUDA and not RMM, search for CCCL.
# Use HINTS to prioritize CCCL from the same CUDA toolkit as nvcc (e.g., in conda environments).
# CUDAToolkit_TARGET_DIR points to the target-specific directory (e.g., targets/x86_64-linux).
find_package(CCCL CONFIG
HINTS ${CUDAToolkit_TARGET_DIR}/lib/cmake ${CUDAToolkit_LIBRARY_DIR}/cmake)
if(CCCL_FOUND)
message(STATUS "Standalone CCCL found.")
else()
message(STATUS "Standalone CCCL not found. Attempting to use CCCL from CUDA Toolkit...")
find_package(CCCL CONFIG
HINTS ${CUDAToolkit_TARGET_DIR}/lib/cmake ${CUDAToolkit_LIBRARY_DIR}/cmake)
if(NOT CCCL_FOUND)
message(STATUS "Could not locate CCCL from CUDA Toolkit. Using Thrust and CUB from CUDA Toolkit...")
find_package(libcudacxx CONFIG REQUIRED
HINTS ${CUDAToolkit_TARGET_DIR}/lib/cmake ${CUDAToolkit_LIBRARY_DIR}/cmake)
find_package(CUB CONFIG REQUIRED
HINTS ${CUDAToolkit_TARGET_DIR}/lib/cmake ${CUDAToolkit_LIBRARY_DIR}/cmake)
find_package(Thrust CONFIG REQUIRED
HINTS ${CUDAToolkit_TARGET_DIR}/lib/cmake ${CUDAToolkit_LIBRARY_DIR}/cmake)
thrust_create_target(Thrust HOST CPP DEVICE CUDA)
add_library(CCCL::CCCL INTERFACE IMPORTED GLOBAL)
target_link_libraries(CCCL::CCCL INTERFACE libcudacxx::libcudacxx CUB::CUB Thrust)
endif()
endif()
# Define guard macros to prevent windows.h from conflicting with winsock2.h
if(WIN32)
target_compile_definitions(CCCL::CCCL INTERFACE NOMINMAX WIN32_LEAN_AND_MEAN _WINSOCKAPI_)
endif()
endif()
if(PLUGIN_SYCL)
set(CMAKE_CXX_LINK_EXECUTABLE
"icpx <FLAGS> <CMAKE_CXX_LINK_FLAGS> -qopenmp <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
set(CMAKE_CXX_CREATE_SHARED_LIBRARY
"icpx -shared <CMAKE_SHARED_LIBRARY_CXX_FLAGS> -qopenmp <LANGUAGE_COMPILE_FLAGS> \
<CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS> <SONAME_FLAG>,<TARGET_SONAME> \
-o <TARGET> <OBJECTS> <LINK_LIBRARIES>")
endif()
#-- library
if(BUILD_STATIC_LIB)
add_library(xgboost STATIC)
else()
# Provide versioned shared object
add_library(xgboost SHARED)
set_target_properties(xgboost PROPERTIES
VERSION ${PROJECT_VERSION}
SOVERSION ${PROJECT_VERSION_MAJOR})
endif()
target_link_libraries(xgboost PRIVATE objxgboost)
target_include_directories(xgboost
INTERFACE
$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>)
#-- End shared library
# Common setup for all targets
foreach(target xgboost objxgboost)
xgboost_target_properties(${target})
xgboost_target_link_libraries(${target})
xgboost_target_defs(${target})
endforeach()
if(NOT BUILD_WITH_SYSTEM_DMLC)
xgboost_target_properties(dmlc)
xgboost_target_link_libraries(dmlc)
xgboost_target_defs(dmlc)
endif()
if(JVM_BINDINGS)
xgboost_target_properties(xgboost4j)
xgboost_target_link_libraries(xgboost4j)
xgboost_target_defs(xgboost4j)
endif()
if(USE_OPENMP AND APPLE AND NOT BUILD_STATIC_LIB)
patch_openmp_path_macos(xgboost libxgboost)
endif()
if(KEEP_BUILD_ARTIFACTS_IN_BINARY_DIR)
set_output_directory(xgboost ${xgboost_BINARY_DIR}/lib)
else()
set_output_directory(xgboost ${xgboost_SOURCE_DIR}/lib)
endif()
#-- Installing XGBoost
if(R_LIB)
include(cmake/RPackageInstallTargetSetup.cmake)
set_target_properties(xgboost PROPERTIES PREFIX "")
if(APPLE)
set_target_properties(xgboost PROPERTIES SUFFIX ".so")
endif()
setup_rpackage_install_target(xgboost "${CMAKE_CURRENT_BINARY_DIR}/R-package-install")
set(CMAKE_INSTALL_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/dummy_inst")
endif()
if(MINGW)
set_target_properties(xgboost PROPERTIES PREFIX "")
endif()
if(BUILD_C_DOC)
include(cmake/Doc.cmake)
run_doxygen()
endif()
include(CPack)
include(GNUInstallDirs)
# Install all headers. Please note that currently the C++ headers does not form an "API".
install(DIRECTORY ${xgboost_SOURCE_DIR}/include/xgboost
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
# Install libraries. If `xgboost` is a static lib, specify `objxgboost` also, to avoid the
# following error:
#
# > install(EXPORT ...) includes target "xgboost" which requires target "objxgboost" that is not
# > in any export set.
#
# https://github.com/dmlc/xgboost/issues/6085
if(BUILD_STATIC_LIB)
set(INSTALL_TARGETS xgboost objxgboost dmlc)
else()
set(INSTALL_TARGETS xgboost)
endif()
install(TARGETS ${INSTALL_TARGETS}
EXPORT XGBoostTargets
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
INCLUDES DESTINATION ${LIBLEGACY_INCLUDE_DIRS})
install(EXPORT XGBoostTargets
FILE XGBoostTargets.cmake
NAMESPACE xgboost::
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/xgboost)
include(CMakePackageConfigHelpers)
configure_package_config_file(
${CMAKE_CURRENT_LIST_DIR}/cmake/xgboost-config.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/cmake/xgboost-config.cmake
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/xgboost)
write_basic_package_version_file(
${CMAKE_BINARY_DIR}/cmake/xgboost-config-version.cmake
VERSION ${XGBOOST_VERSION}
COMPATIBILITY AnyNewerVersion)
install(
FILES
${CMAKE_CURRENT_BINARY_DIR}/cmake/xgboost-config.cmake
${CMAKE_BINARY_DIR}/cmake/xgboost-config-version.cmake
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/xgboost)
#-- Test
if(GOOGLE_TEST)
enable_testing()
# Unittests.
add_executable(testxgboost)
target_link_libraries(testxgboost PRIVATE objxgboost)
xgboost_target_properties(testxgboost)
xgboost_target_link_libraries(testxgboost)
xgboost_target_defs(testxgboost)
add_subdirectory(${xgboost_SOURCE_DIR}/tests/cpp)
add_test(
NAME TestXGBoostLib
COMMAND testxgboost
WORKING_DIRECTORY ${xgboost_BINARY_DIR})
endif()
# Add xgboost.pc
if(ADD_PKGCONFIG)
configure_file(${xgboost_SOURCE_DIR}/cmake/xgboost.pc.in ${xgboost_BINARY_DIR}/xgboost.pc @ONLY)
install(
FILES ${xgboost_BINARY_DIR}/xgboost.pc
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
endif()
================================================
FILE: CONTRIBUTORS.md
================================================
Contributors of DMLC/XGBoost
============================
XGBoost has been developed and used by a group of active community. Everyone is more than welcomed to is a great way to make the project better and more accessible to more users.
Project Management Committee(PMC)
----------
The Project Management Committee(PMC) consists group of active committers that moderate the discussion, manage the project release, and proposes new committer/PMC members.
* [Tianqi Chen](https://github.com/tqchen), University of Washington
- Tianqi is a Ph.D. student working on large-scale machine learning. He is the creator of the project.
* [Michael Benesty](https://github.com/pommedeterresautee)
- Michael is a lawyer and data scientist in France. He is the creator of XGBoost interactive analysis module in R.
* [Yuan Tang](https://github.com/terrytangyuan), Red Hat
- Yuan is a Senior Principal Software Engineer at Red Hat AI. He contributed mostly in R and Python packages.
* [Nan Zhu](https://github.com/CodingCat), Uber
- Nan is a software engineer in Uber. He contributed mostly in JVM packages.
* [Jiaming Yuan](https://github.com/trivialfis)
- Jiaming contributed to the GPU algorithms. He has also introduced new abstractions to improve the quality of the C++ codebase.
* [Hyunsu Cho](http://hyunsu-cho.io/), NVIDIA
- Hyunsu is the maintainer of the XGBoost Python package. He also manages the Jenkins continuous integration system (https://xgboost-ci.net/). He is the initial author of the CPU 'hist' updater.
* [Rory Mitchell](https://github.com/RAMitchell), University of Waikato
- Rory is a Ph.D. student at University of Waikato. He is the original creator of the GPU training algorithms. He improved the CMake build system and continuous integration.
* [Hongliang Liu](https://github.com/phunterlau)
Committers
----------
Committers are people who have made substantial contribution to the project and granted write access to the project.
* [Tong He](https://github.com/hetong007), Amazon AI
- Tong is an applied scientist in Amazon AI. He is the maintainer of XGBoost R package.
* [Vadim Khotilovich](https://github.com/khotilov)
- Vadim contributes many improvements in R and core packages.
* [Bing Xu](https://github.com/antinucleon)
- Bing is the original creator of XGBoost Python package and currently the maintainer of [XGBoost.jl](https://github.com/antinucleon/XGBoost.jl).
* [Sergei Lebedev](https://github.com/superbobry), Criteo
- Sergei is a software engineer in Criteo. He contributed mostly in JVM packages.
* [Scott Lundberg](http://scottlundberg.com/), University of Washington
- Scott is a Ph.D. student at University of Washington. He is the creator of SHAP, a unified approach to explain the output of machine learning models such as decision tree ensembles. He also helps maintain the XGBoost Julia package.
* [Egor Smirnov](https://github.com/SmirnovEgorRu), Intel
- Egor has led a major effort to improve the performance of XGBoost on multi-core CPUs.
Become a Committer
------------------
XGBoost is an open source project and we are actively looking for new committers who are willing to help maintaining and lead the project.
Committers come from contributors who:
* Made substantial contribution to the project.
* Willing to spent time on maintaining and lead the project.
New committers will be proposed by current committer members, with support from more than two of current committers.
List of Contributors
--------------------
* [Full List of Contributors](https://github.com/dmlc/xgboost/graphs/contributors)
- To contributors: please add your name to the list when you submit a patch to the project:)
* [Kailong Chen](https://github.com/kalenhaha)
- Kailong is an early contributor of XGBoost, he is creator of ranking objectives in XGBoost.
* [Skipper Seabold](https://github.com/jseabold)
- Skipper is the major contributor to the scikit-learn module of XGBoost.
* [Zygmunt Zając](https://github.com/zygmuntz)
- Zygmunt is the master behind the early stopping feature frequently used by Kagglers.
* [Ajinkya Kale](https://github.com/ajkl)
* [Boliang Chen](https://github.com/cblsjtu)
* [Yangqing Men](https://github.com/yanqingmen)
- Yangqing is the creator of XGBoost java package.
* [Engpeng Yao](https://github.com/yepyao)
* [Giulio](https://github.com/giuliohome)
- Giulio is the creator of Windows project of XGBoost
* [Jamie Hall](https://github.com/nerdcha)
- Jamie is the initial creator of XGBoost scikit-learn module.
* [Yen-Ying Lee](https://github.com/white1033)
* [Masaaki Horikoshi](https://github.com/sinhrks)
- Masaaki is the initial creator of XGBoost Python plotting module.
* [daiyl0320](https://github.com/daiyl0320)
- daiyl0320 contributed patch to XGBoost distributed version more robust, and scales stably on TB scale datasets.
* [Huayi Zhang](https://github.com/irachex)
* [Johan Manders](https://github.com/johanmanders)
* [yoori](https://github.com/yoori)
* [Mathias Müller](https://github.com/far0n)
* [Sam Thomson](https://github.com/sammthomson)
* [ganesh-krishnan](https://github.com/ganesh-krishnan)
* [Damien Carol](https://github.com/damiencarol)
* [Alex Bain](https://github.com/convexquad)
* [Baltazar Bieniek](https://github.com/bbieniek)
* [Adam Pocock](https://github.com/Craigacp)
* [Gideon Whitehead](https://github.com/gaw89)
* [Yi-Lin Juang](https://github.com/frankyjuang)
* [Andrew Hannigan](https://github.com/andrewhannigan)
* [Andy Adinets](https://github.com/canonizer)
* [Henry Gouk](https://github.com/henrygouk)
* [Pierre de Sahb](https://github.com/pdesahb)
* [liuliang01](https://github.com/liuliang01)
- liuliang01 added support for the qid column for LIBSVM input format. This makes ranking task easier in distributed setting.
* [Andrew Thia](https://github.com/BlueTea88)
- Andrew Thia implemented feature interaction constraints
* [Wei Tian](https://github.com/weitian)
* [Chen Qin](https://github.com/chenqin)
* [Sam Wilkinson](https://samwilkinson.io)
* [Matthew Jones](https://github.com/mt-jones)
* [Jiaxiang Li](https://github.com/JiaxiangBU)
* [Bryan Woods](https://github.com/bryan-woods)
- Bryan added support for cross-validation for the ranking objective
* [Haoda Fu](https://github.com/fuhaoda)
* [Evan Kepner](https://github.com/EvanKepner)
- Evan Kepner added support for os.PathLike file paths in Python
================================================
FILE: LICENSE
================================================
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "{}"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright (c) 2019 by Contributors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
================================================
FILE: NEWS.md
================================================
XGBoost Change Log
==================
**Starting from 2.1.0, release note is recorded in the documentation.**
This file records the changes in xgboost library in reverse chronological order.
## 2.0.0 (2023 Aug 16)
We are excited to announce the release of XGBoost 2.0. This note will begin by covering some overall changes and then highlight specific updates to the package.
### Initial work on multi-target trees with vector-leaf outputs
We have been working on vector-leaf tree models for multi-target regression, multi-label classification, and multi-class classification in version 2.0. Previously, XGBoost would build a separate model for each target. However, with this new feature that's still being developed, XGBoost can build one tree for all targets. The feature has multiple benefits and trade-offs compared to the existing approach. It can help prevent overfitting, produce smaller models, and build trees that consider the correlation between targets. In addition, users can combine vector leaf and scalar leaf trees during a training session using a callback. Please note that the feature is still a working in progress, and many parts are not yet available. See #9043 for the current status. Related PRs: (#8538, #8697, #8902, #8884, #8895, #8898, #8612, #8652, #8698, #8908, #8928, #8968, #8616, #8922, #8890, #8872, #8889, #9509) Please note that, only the `hist` (default) tree method on CPU can be used for building vector leaf trees at the moment.
### New `device` parameter.
A new `device` parameter is set to replace the existing `gpu_id`, `gpu_hist`, `gpu_predictor`, `cpu_predictor`, `gpu_coord_descent`, and the PySpark specific parameter `use_gpu`. Onward, users need only the `device` parameter to select which device to run along with the ordinal of the device. For more information, please see our document page (https://xgboost.readthedocs.io/en/stable/parameter.html#general-parameters) . For example, with `device="cuda", tree_method="hist"`, XGBoost will run the `hist` tree method on GPU. (#9363, #8528, #8604, #9354, #9274, #9243, #8896, #9129, #9362, #9402, #9385, #9398, #9390, #9386, #9412, #9507, #9536). The old behavior of ``gpu_hist`` is preserved but deprecated. In addition, the `predictor` parameter is removed.
### `hist` is now the default tree method
Starting from 2.0, the `hist` tree method will be the default. In previous versions, XGBoost chooses `approx` or `exact` depending on the input data and training environment. The new default can help XGBoost train models more efficiently and consistently. (#9320, #9353)
### GPU-based approx tree method
There's initial support for using the `approx` tree method on GPU. The performance of the `approx` is not yet well optimized but is feature complete except for the JVM packages. It can be accessed through the use of the parameter combination `device="cuda", tree_method="approx"`. (#9414, #9399, #9478). Please note that the Scala-based Spark interface is not yet supported.
### Optimize and bound the size of the histogram on CPU, to control memory footprint
XGBoost has a new parameter `max_cached_hist_node` for users to limit the CPU cache size for histograms. It can help prevent XGBoost from caching histograms too aggressively. Without the cache, performance is likely to decrease. However, the size of the cache grows exponentially with the depth of the tree. The limit can be crucial when growing deep trees. In most cases, users need not configure this parameter as it does not affect the model's accuracy. (#9455, #9441, #9440, #9427, #9400).
Along with the cache limit, XGBoost also reduces the memory usage of the `hist` and `approx` tree method on distributed systems by cutting the size of the cache by half. (#9433)
### Improved external memory support
There is some exciting development around external memory support in XGBoost. It's still an experimental feature, but the performance has been significantly improved with the default `hist` tree method. We replaced the old file IO logic with memory map. In addition to performance, we have reduced CPU memory usage and added extensive documentation. Beginning from 2.0.0, we encourage users to try it with the `hist` tree method when the memory saving by `QuantileDMatrix` is not sufficient. (#9361, #9317, #9282, #9315, #8457)
### Learning to rank
We created a brand-new implementation for the learning-to-rank task. With the latest version, XGBoost gained a set of new features for ranking task including:
- A new parameter `lambdarank_pair_method` for choosing the pair construction strategy.
- A new parameter `lambdarank_num_pair_per_sample` for controlling the number of samples for each group.
- An experimental implementation of unbiased learning-to-rank, which can be accessed using the `lambdarank_unbiased` parameter.
- Support for custom gain function with `NDCG` using the `ndcg_exp_gain` parameter.
- Deterministic GPU computation for all objectives and metrics.
- `NDCG` is now the default objective function.
- Improved performance of metrics using caches.
- Support scikit-learn utilities for `XGBRanker`.
- Extensive documentation on how learning-to-rank works with XGBoost.
For more information, please see the [tutorial](https://xgboost.readthedocs.io/en/latest/tutorials/learning_to_rank.html). Related PRs: (#8771, #8692, #8783, #8789, #8790, #8859, #8887, #8893, #8906, #8931, #9075, #9015, #9381, #9336, #8822, #9222, #8984, #8785, #8786, #8768)
### Automatically estimated intercept
In the previous version, `base_score` was a constant that could be set as a training parameter. In the new version, XGBoost can automatically estimate this parameter based on input labels for optimal accuracy. (#8539, #8498, #8272, #8793, #8607)
### Quantile regression
The XGBoost algorithm now supports quantile regression, which involves minimizing the quantile loss (also called "pinball loss"). Furthermore, XGBoost allows for training with multiple target quantiles simultaneously with one tree per quantile. (#8775, #8761, #8760, #8758, #8750)
### L1 and Quantile regression now supports learning rate
Both objectives use adaptive trees due to the lack of proper Hessian values. In the new version, XGBoost can scale the leaf value with the learning rate accordingly. (#8866)
### Export cut value
Using the Python or the C package, users can export the quantile values (not to be confused with quantile regression) used for the `hist` tree method. (#9356)
### column-based split and federated learning
We made progress on column-based split for federated learning. In 2.0, both `approx`, `hist`, and `hist` with vector leaf can work with column-based data split, along with support for vertical federated learning. Work on GPU support is still on-going, stay tuned. (#8576, #8468, #8442, #8847, #8811, #8985, #8623, #8568, #8828, #8932, #9081, #9102, #9103, #9124, #9120, #9367, #9370, #9343, #9171, #9346, #9270, #9244, #8494, #8434, #8742, #8804, #8710, #8676, #9020, #9002, #9058, #9037, #9018, #9295, #9006, #9300, #8765, #9365, #9060)
### PySpark
After the initial introduction of the PySpark interface, it has gained some new features and optimizations in 2.0.
- GPU-based prediction. (#9292, #9542)
- Optimization for data initialization by avoiding the stack operation. (#9088)
- Support predict feature contribution. (#8633)
- Python typing support. (#9156, #9172, #9079, #8375)
- `use_gpu` is deprecated. The `device` parameter is preferred.
- Update eval_metric validation to support list of strings (#8826)
- Improved logs for training (#9449)
- Maintenance, including refactoring and document updates (#8324, #8465, #8605, #9202, #9460, #9302, #8385, #8630, #8525, #8496)
- Fix for GPU setup. (#9495)
### Other General New Features
Here's a list of new features that don't have their own section and yet are general to all language bindings.
- Use array interface for CSC matrix. This helps XGBoost to use a consistent number of threads and align the interface of the CSC matrix with other interfaces. In addition, memory usage is likely to decrease with CSC input thanks to on-the-fly type conversion. (#8672)
- CUDA compute 90 is now part of the default build.. (#9397)
### Other General Optimization
These optimizations are general to all language bindings. For language-specific optimization, please visit the corresponding sections.
- Performance for input with `array_interface` on CPU (like `numpy`) is significantly improved. (#9090)
- Some optimization with CUDA for data initialization. (#9199, #9209, #9144)
- Use the latest thrust policy to prevent synchronizing GPU devices. (#9212)
- XGBoost now uses a per-thread CUDA stream, which prevents synchronization with other streams. (#9416, #9396, #9413)
### Notable breaking change
Other than the aforementioned change with the `device` parameter, here's a list of breaking changes affecting all packages.
- Users must specify the format for text input (#9077). However, we suggest using third-party data structures such as `numpy.ndarray` instead of relying on text inputs. See https://github.com/dmlc/xgboost/issues/9472 for more info.
### Notable bug fixes
Some noteworthy bug fixes that are not related to specific language bindings are listed in this section.
- Some language environments use a different thread to perform garbage collection, which breaks the thread-local cache used in XGBoost. XGBoost 2.0 implements a new thread-safe cache using a light weight lock to replace the thread-local cache. (#8851)
- Fix model IO by clearing the prediction cache. (#8904)
- `inf` is checked during data construction. (#8911)
- Preserve order of saved updaters configuration. Usually, this is not an issue unless the `updater` parameter is used instead of the `tree_method` parameter (#9355)
- Fix GPU memory allocation issue with categorical splits. (#9529)
- Handle escape sequence like `\t\n` in feature names for JSON model dump. (#9474)
- Normalize file path for model IO and text input. This handles short paths on Windows and paths that contain `~` on Unix (#9463). In addition, all path inputs are required to be encoded in UTF-8 (#9448, #9443)
- Fix integer overflow on H100. (#9380)
- Fix weighted sketching on GPU with categorical features. (#9341)
- Fix metric serialization. The bug might cause some of the metrics to be dropped during evaluation. (#9405)
- Fixes compilation errors on MSVC x86 targets (#8823)
- Pick up the dmlc-core fix for the CSV parser. (#8897)
### Documentation
Aside from documents for new features, we have many smaller updates to improve user experience, from troubleshooting guides to typo fixes.
- Explain CPU/GPU interop. (#8450)
- Guide to troubleshoot NCCL errors. (#8943, #9206)
- Add a note for rabit port selection. (#8879)
- How to build the docs using conda (#9276)
- Explain how to obtain reproducible results on distributed systems. (#8903)
* Fixes and small updates to document and demonstration scripts. (#8626, #8436, #8995, #8907, #8923, #8926, #9358, #9232, #9201, #9469, #9462, #9458, #8543, #8597, #8401, #8784, #9213, #9098, #9008, #9223, #9333, #9434, #9435, #9415, #8773, #8752, #9291, #9549)
### Python package
* New Features and Improvements
- Support primitive types of pyarrow-backed pandas dataframe. (#8653)
- Warning messages emitted by XGBoost are now emitted using Python warnings. (#9387)
- User can now format the value printed near the bars on the `plot_importance` plot (#8540)
- XGBoost has improved half-type support (float16) with pandas, cupy, and cuDF. With GPU input, the handling is through CUDA `__half` type, and no data copy is made. (#8487, #9207, #8481)
- Support `Series` and Python primitive types in `inplace_predict` and `QuantileDMatrix` (#8547, #8542)
- Support all pandas' nullable integer types. (#8480)
- Custom metric with the scikit-learn interface now supports `sample_weight`. (#8706)
- Enable Installation of Python Package with System lib in a Virtual Environment (#9349)
- Raise if expected workers are not alive in `xgboost.dask.train` (#9421)
* Optimization
- Cache transformed data in `QuantileDMatrix` for efficiency. (#8666, #9445)
- Take datatable as row-major input. (#8472)
- Remove unnecessary conversions between data structures (#8546)
* Adopt modern Python packaging conventions (PEP 517, PEP 518, PEP 621)
- XGBoost adopted the modern Python packaging conventions. The old setup script `setup.py` is now replaced with the new configuration file `pyproject.toml`. Along with this, XGBoost now supports Python 3.11. (#9021, #9112, #9114, #9115) Consult the latest documentation for the updated instructions to build and install XGBoost.
* Fixes
- `DataIter` now accepts only keyword arguments. (#9431)
- Fix empty DMatrix with categorical features. (#8739)
- Convert ``DaskXGBClassifier.classes_`` to an array (#8452)
- Define `best_iteration` only if early stopping is used to be consistent with documented behavior. (#9403)
- Make feature validation immutable. (#9388)
* Breaking changes
- Discussed in the new `device` parameter section, the `predictor` parameter is now removed. (#9129)
- Remove support for single-string feature info. Feature type and names should be a sequence of strings (#9401)
- Remove parameters in the `save_model` call for the scikit-learn interface. (#8963)
- Remove the `ntree_limit` in the python package. This has been deprecated in previous versions. (#8345)
* Maintenance including formatting and refactoring along with type hints.
- More consistent use of `black` and `isort` for code formatting (#8420, #8748, #8867)
- Improved type support. Most of the type changes happen in the PySpark module; here, we list the remaining changes. (#8444, #8617, #9197, #9005)
- Set `enable_categorical` to True in predict. (#8592)
- Some refactoring and updates for tests (#8395, #8372, #8557, #8379, #8702, #9459, #9316, #8446, #8695, #8409, #8993, #9480)
* Documentation
- Add introduction and notes for the sklearn interface. (#8948)
- Demo for using dask for hyper-parameter optimization. (#8891)
- Document all supported Python input types. (#8643)
- Other documentation updates (#8944, #9304)
### R package
- Use the new data consumption interface for CSR and CSC. This provides better control for the number of threads and improves performance. (#8455, #8673)
- Accept multiple evaluation metrics during training. (#8657)
- Fix integer inputs with `NA`. (#9522)
- Some refactoring for the R package (#8545, #8430, #8614, #8624, #8613, #9457, #8689, #8563, #9461, #8647, #8564, #8565, #8736, #8610, #8609, #8599, #8704, #9456, #9450, #9476, #9477, #9481). Special thanks to @jameslamb.
- Document updates (#8886, #9323, #9437, #8998)
### JVM packages
Following are changes specific to various JVM-based packages.
- Stop using Rabit in prediction (#9054)
- Set feature_names and feature_types in jvm-packages. This is to prepare support for categorical features (#9364)
- Scala 2.13 support. (#9099)
- Change training stage from `ResultStage` to `ShuffleMapStage` (#9423)
- Automatically set the max/min direction for the best score during early stopping. (#9404)
* Revised support for `flink` (#9046)
* Breaking changes
- Scala-based tracker is removed. (#9078, #9045)
- Change `DeviceQuantileDmatrix` into `QuantileDMatrix` (#8461)
* Maintenance (#9253, #9166, #9395, #9389, #9224, #9233, #9351, #9479)
* CI bot PRs
We employed GitHub dependent bot to help us keep the dependencies up-to-date for JVM packages. With the help from the bot, we have cleared up all the dependencies that are lagging behind (#8501, #8507).
Here's a list of dependency update PRs including those made by dependent bots (#8456, #8560, #8571, #8561, #8562, #8600, #8594, #8524, #8509, #8548, #8549, #8533, #8521, #8534, #8532, #8516, #8503, #8531, #8530, #8518, #8512, #8515, #8517, #8506, #8504, #8502, #8629, #8815, #8813, #8814, #8877, #8876, #8875, #8874, #8873, #9049, #9070, #9073, #9039, #9083, #8917, #8952, #8980, #8973, #8962, #9252, #9208, #9131, #9136, #9219, #9160, #9158, #9163, #9184, #9192, #9265, #9268, #8882, #8837, #8662, #8661, #8390, #9056, #8508, #8925, #8920, #9149, #9230, #9097, #8648, #9203, #8593).
### Maintenance
Maintenance work includes refactoring, fixing small issues that don't affect end users. (#9256, #8627, #8756, #8735, #8966, #8864, #8747, #8892, #9057, #8921, #8949, #8941, #8942, #9108, #9125, #9155, #9153, #9176, #9447, #9444, #9436, #9438, #9430, #9200, #9210, #9055, #9014, #9004, #8999, #9154, #9148, #9283, #9246, #8888, #8900, #8871, #8861, #8858, #8791, #8807, #8751, #8703, #8696, #8693, #8677, #8686, #8665, #8660, #8386, #8371, #8410, #8578, #8574, #8483, #8443, #8454, #8733)
### CI
- Build pip wheel with RMM support (#9383)
- Other CI updates including updating dependencies and work on the CI infrastructure. (#9464, #9428, #8767, #9394, #9278, #9214, #9234, #9205, #9034, #9104, #8878, #9294, #8625, #8806, #8741, #8707, #8381, #8382, #8388, #8402, #8397, #8445, #8602, #8628, #8583, #8460, #9544)
## 1.7.6 (2023 Jun 16)
This is a patch release for bug fixes. The CRAN package for the R binding is kept at 1.7.5.
### Bug Fixes
* Fix distributed training with mixed dense and sparse partitions. (#9272)
* Fix monotone constraints on CPU with large trees. (#9122)
* [spark] Make the spark model have the same UID as its estimator (#9022)
* Optimize prediction with `QuantileDMatrix`. (#9096)
### Document
* Improve doxygen (#8959)
* Update the cuDF pip index URL. (#9106)
### Maintenance
* Fix tests with pandas 2.0. (#9014)
## 1.7.5 (2023 Mar 30)
This is a patch release for bug fixes.
* C++ requirement is updated to C++-17, along with which, CUDA 11.8 is used as the default CTK. (#8860, #8855, #8853)
* Fix import for pyspark ranker. (#8692)
* Fix Windows binary wheel to be compatible with Poetry (#8991)
* Fix GPU hist with column sampling. (#8850)
* Make sure iterative DMatrix is properly initialized. (#8997)
* [R] Update link in document. (#8998)
## 1.7.4 (2023 Feb 16)
This is a patch release for bug fixes.
* [R] Fix OpenMP detection on macOS. (#8684)
* [Python] Make sure input numpy array is aligned. (#8690)
* Fix feature interaction with column sampling in gpu_hist evaluator. (#8754)
* Fix GPU L1 error. (#8749)
* [PySpark] Fix feature types param (#8772)
* Fix ranking with quantile dmatrix and group weight. (#8762)
## 1.7.3 (2023 Jan 6)
This is a patch release for bug fixes.
* [Breaking] XGBoost Sklearn estimator method `get_params` no longer returns internally configured values. (#8634)
* Fix linalg iterator, which may crash the L1 error. (#8603)
* Fix loading pickled GPU model with a CPU-only XGBoost build. (#8632)
* Fix inference with unseen categories with categorical features. (#8591, #8602)
* CI fixes. (#8620, #8631, #8579)
## v1.7.2 (2022 Dec 8)
This is a patch release for bug fixes.
* Work with newer thrust and libcudacxx (#8432)
* Support null value in CUDA array interface namespace. (#8486)
* Use `getsockname` instead of `SO_DOMAIN` on AIX. (#8437)
* [pyspark] Make QDM optional based on a cuDF check (#8471)
* [pyspark] sort qid for SparkRanker. (#8497)
* [dask] Properly await async method client.wait_for_workers. (#8558)
* [R] Fix CRAN test notes. (#8428)
* [doc] Fix outdated document [skip ci]. (#8527)
* [CI] Fix github action mismatched glibcxx. (#8551)
## v1.7.1 (2022 Nov 3)
This is a patch release to incorporate the following hotfix:
* Add back xgboost.rabit for backwards compatibility (#8411)
## v1.7.0 (2022 Oct 20)
We are excited to announce the feature packed XGBoost 1.7 release. The release note will walk through some of the major new features first, then make a summary for other improvements and language-binding-specific changes.
### PySpark
XGBoost 1.7 features initial support for PySpark integration. The new interface is adapted from the existing PySpark XGBoost interface developed by databricks with additional features like `QuantileDMatrix` and the rapidsai plugin (GPU pipeline) support. The new Spark XGBoost Python estimators not only benefit from PySpark ml facilities for powerful distributed computing but also enjoy the rest of the Python ecosystem. Users can define a custom objective, callbacks, and metrics in Python and use them with this interface on distributed clusters. The support is labeled as experimental with more features to come in future releases. For a brief introduction please visit the tutorial on XGBoost's [document page](https://xgboost.readthedocs.io/en/latest/tutorials/spark_estimator.html). (#8355, #8344, #8335, #8284, #8271, #8283, #8250, #8231, #8219, #8245, #8217, #8200, #8173, #8172, #8145, #8117, #8131, #8088, #8082, #8085, #8066, #8068, #8067, #8020, #8385)
Due to its initial support status, the new interface has some limitations; categorical features and multi-output models are not yet supported.
### Development of categorical data support
More progress on the experimental support for categorical features. In 1.7, XGBoost can handle missing values in categorical features and features a new parameter `max_cat_threshold`, which limits the number of categories that can be used in the split evaluation. The parameter is enabled when the partitioning algorithm is used and helps prevent over-fitting. Also, the sklearn interface can now accept the `feature_types` parameter to use data types other than dataframe for categorical features. (#8280, #7821, #8285, #8080, #7948, #7858, #7853, #8212, #7957, #7937, #7934)
### Experimental support for federated learning and new communication collective
An exciting addition to XGBoost is the experimental federated learning support. The federated learning is implemented with a gRPC federated server that aggregates allreduce calls, and federated clients that train on local data and use existing tree methods (approx, hist, gpu_hist). Currently, this only supports horizontal federated learning (samples are split across participants, and each participant has all the features and labels). Future plans include vertical federated learning (features split across participants), and stronger privacy guarantees with homomorphic encryption and differential privacy. See [Demo with NVFlare integration](demo/nvflare/README.md) for example usage with nvflare.
As part of the work, XGBoost 1.7 has replaced the old rabit module with the new collective module as the network communication interface with added support for runtime backend selection. In previous versions, the backend is defined at compile time and can not be changed once built. In this new release, users can choose between `rabit` and `federated.` (#8029, #8351, #8350, #8342, #8340, #8325, #8279, #8181, #8027, #7958, #7831, #7879, #8257, #8316, #8242, #8057, #8203, #8038, #7965, #7930, #7911)
The feature is available in the public PyPI binary package for testing.
### Quantile DMatrix
Before 1.7, XGBoost has an internal data structure called `DeviceQuantileDMatrix` (and its distributed version). We now extend its support to CPU and renamed it to `QuantileDMatrix`. This data structure is used for optimizing memory usage for the `hist` and `gpu_hist` tree methods. The new feature helps reduce CPU memory usage significantly, especially for dense data. The new `QuantileDMatrix` can be initialized from both CPU and GPU data, and regardless of where the data comes from, the constructed instance can be used by both the CPU algorithm and GPU algorithm including training and prediction (with some overhead of conversion if the device of data and training algorithm doesn't match). Also, a new parameter `ref` is added to `QuantileDMatrix`, which can be used to construct validation/test datasets. Lastly, it's set as default in the scikit-learn interface when a supported tree method is specified by users. (#7889, #7923, #8136, #8215, #8284, #8268, #8220, #8346, #8327, #8130, #8116, #8103, #8094, #8086, #7898, #8060, #8019, #8045, #7901, #7912, #7922)
### Mean absolute error
The mean absolute error is a new member of the collection of objectives in XGBoost. It's noteworthy since MAE has zero hessian value, which is unusual to XGBoost as XGBoost relies on Newton optimization. Without valid Hessian values, the convergence speed can be slow. As part of the support for MAE, we added line searches into the XGBoost training algorithm to overcome the difficulty of training without valid Hessian values. In the future, we will extend the line search to other objectives where it's appropriate for faster convergence speed. (#8343, #8107, #7812, #8380)
### XGBoost on Browser
With the help of the [pyodide](https://github.com/pyodide/pyodide) project, you can now run XGBoost on browsers. (#7954, #8369)
### Experimental IPv6 Support for Dask
With the growing adaption of the new internet protocol, XGBoost joined the club. In the latest release, the Dask interface can be used on IPv6 clusters, see XGBoost's Dask tutorial for details. (#8225, #8234)
### Optimizations
We have new optimizations for both the `hist` and `gpu_hist` tree methods to make XGBoost's training even more efficient.
* Hist
Hist now supports optional by-column histogram build, which is automatically configured based on various conditions of input data. This helps the XGBoost CPU hist algorithm to scale better with different shapes of training datasets. (#8233, #8259). Also, the build histogram kernel now can better utilize CPU registers (#8218)
* GPU Hist
GPU hist performance is significantly improved for wide datasets. GPU hist now supports batched node build, which reduces kernel latency and increases throughput. The improvement is particularly significant when growing deep trees with the default ``depthwise`` policy. (#7919, #8073, #8051, #8118, #7867, #7964, #8026)
### Breaking Changes
Breaking changes made in the 1.7 release are summarized below.
- The `grow_local_histmaker` updater is removed. This updater is rarely used in practice and has no test. We decided to remove it and focus have XGBoot focus on other more efficient algorithms. (#7992, #8091)
- Single precision histogram is removed due to its lack of accuracy caused by significant floating point error. In some cases the error can be difficult to detect due to log-scale operations, which makes the parameter dangerous to use. (#7892, #7828)
- Deprecated CUDA architectures are no longer supported in the release binaries. (#7774)
- As part of the federated learning development, the `rabit` module is replaced with the new `collective` module. It's a drop-in replacement with added runtime backend selection, see the federated learning section for more details (#8257)
### General new features and improvements
Before diving into package-specific changes, some general new features other than those listed at the beginning are summarized here.
* Users of `DMatrix` and `QuantileDMatrix` can get the data from XGBoost. In previous versions, only getters for meta info like labels are available. The new method is available in Python (`DMatrix::get_data`) and C. (#8269, #8323)
* In previous versions, the GPU histogram tree method may generate phantom gradient for missing values due to floating point error. We fixed such an error in this release and XGBoost is much better equated to handle floating point errors when training on GPU. (#8274, #8246)
* Parameter validation is no longer experimental. (#8206)
* C pointer parameters and JSON parameters are vigorously checked. (#8254, #8254)
* Improved handling of JSON model input. (#7953, #7918)
* Support IBM i OS (#7920, #8178)
### Fixes
Some noteworthy bug fixes that are not related to specific language binding are listed in this section.
* Rename misspelled config parameter for pseudo-Huber (#7904)
* Fix feature weights with nested column sampling. (#8100)
* Fix loading DMatrix binary in distributed env. (#8149)
* Force auc.cc to be statically linked for unusual compiler platforms. (#8039)
* New logic for detecting libomp on macos (#8384).
### Python Package
* Python 3.8 is now the minimum required Python version. (#8071)
* More progress on type hint support. Except for the new PySpark interface, the XGBoost module is fully typed. (#7742, #7945, #8302, #7914, #8052)
* XGBoost now validates the feature names in `inplace_predict`, which also affects the predict function in scikit-learn estimators as it uses `inplace_predict` internally. (#8359)
* Users can now get the data from `DMatrix` using `DMatrix::get_data` or `QuantileDMatrix::get_data`.
* Show `libxgboost.so` path in build info. (#7893)
* Raise import error when using the sklearn module while scikit-learn is missing. (#8049)
* Use `config_context` in the sklearn interface. (#8141)
* Validate features for inplace prediction. (#8359)
* Pandas dataframe handling is refactored to reduce data fragmentation. (#7843)
* Support more pandas nullable types (#8262)
* Remove pyarrow workaround. (#7884)
* Binary wheel size
We aim to enable as many features as possible in XGBoost's default binary distribution on PyPI (package installed with pip), but there's a upper limit on the size of the binary wheel. In 1.7, XGBoost reduces the size of the wheel by pruning unused CUDA architectures. (#8179, #8152, #8150)
* Fixes
Some noteworthy fixes are listed here:
- Fix the Dask interface with the latest cupy. (#8210)
- Check cuDF lazily to avoid potential errors with cuda-python. (#8084)
* Fix potential error in DMatrix constructor on 32-bit platform. (#8369)
* Maintenance work
- Linter script is moved from dmlc-core to XGBoost with added support for formatting, mypy, and parallel run, along with some fixes (#7967, #8101, #8216)
- We now require the use of `isort` and `black` for selected files. (#8137, #8096)
- Code cleanups. (#7827)
- Deprecate `use_label_encoder` in XGBClassifier. The label encoder has already been deprecated and removed in the previous version. These changes only affect the indicator parameter (#7822)
- Remove the use of distutils. (#7770)
- Refactor and fixes for tests (#8077, #8064, #8078, #8076, #8013, #8010, #8244, #7833)
* Documents
- [dask] Fix potential error in demo. (#8079)
- Improved documentation for the ranker. (#8356, #8347)
- Indicate lack of py-xgboost-gpu on Windows (#8127)
- Clarification for feature importance. (#8151)
- Simplify Python getting started example (#8153)
### R Package
We summarize improvements for the R package briefly here:
* Feature info including names and types are now passed to DMatrix in preparation for categorical feature support. (#804)
* XGBoost 1.7 can now gracefully load old R models from RDS for better compatibility with 3-party tuning libraries (#7864)
* The R package now can be built with parallel compilation, along with fixes for warnings in CRAN tests. (#8330)
* Emit error early if DiagrammeR is missing (#8037)
* Fix R package Windows build. (#8065)
### JVM Packages
The consistency between JVM packages and other language bindings is greatly improved in 1.7, improvements range from model serialization format to the default value of hyper-parameters.
* Java package now supports feature names and feature types for DMatrix in preparation for categorical feature support. (#7966)
* Models trained by the JVM packages can now be safely used with other language bindings. (#7896, #7907)
* Users can specify the model format when saving models with a stream. (#7940, #7955)
* The default value for training parameters is now sourced from XGBoost directly, which helps JVM packages be consistent with other packages. (#7938)
* Set the correct objective if the user doesn't explicitly set it (#7781)
* Auto-detection of MUSL is replaced by system properties (#7921)
* Improved error message for launching tracker. (#7952, #7968)
* Fix a race condition in parameter configuration. (#8025)
* [Breaking] ` timeoutRequestWorkers` is now removed. With the support for barrier mode, this parameter is no longer needed. (#7839)
* Dependencies updates. (#7791, #8157, #7801, #8240)
### Documents
- Document for the C interface is greatly improved and is now displayed at the [sphinx document page](https://xgboost.readthedocs.io/en/latest/c.html). Thanks to the breathe project, you can view the C API just like the Python API. (#8300)
- We now avoid having XGBoost internal text parser in demos and recommend users use dedicated libraries for loading data whenever it's feasible. (#7753)
- Python survival training demos are now displayed at [sphinx gallery](https://xgboost.readthedocs.io/en/latest/python/survival-examples/index.html). (#8328)
- Some typos, links, format, and grammar fixes. (#7800, #7832, #7861, #8099, #8163, #8166, #8229, #8028, #8214, #7777, #7905, #8270, #8309, d70e59fef, #7806)
- Updated winning solution under readme.md (#7862)
- New security policy. (#8360)
- GPU document is overhauled as we consider CUDA support to be feature-complete. (#8378)
### Maintenance
* Code refactoring and cleanups. (#7850, #7826, #7910, #8332, #8204)
* Reduce compiler warnings. (#7768, #7916, #8046, #8059, #7974, #8031, #8022)
* Compiler workarounds. (#8211, #8314, #8226, #8093)
* Dependencies update. (#8001, #7876, #7973, #8298, #7816)
* Remove warnings emitted in previous versions. (#7815)
* Small fixes occurred during development. (#8008)
### CI and Tests
* We overhauled the CI infrastructure to reduce the CI cost and lift the maintenance burdens. Jenkins is replaced with buildkite for better automation, with which, finer control of test runs is implemented to reduce overall cost. Also, we refactored some of the existing tests to reduce their runtime, drooped the size of docker images, and removed multi-GPU C++ tests. Lastly, `pytest-timeout` is added as an optional dependency for running Python tests to keep the test time in check. (#7772, #8291, #8286, #8276, #8306, #8287, #8243, #8313, #8235, #8288, #8303, #8142, #8092, #8333, #8312, #8348)
* New documents for how to reproduce the CI environment (#7971, #8297)
* Improved automation for JVM release. (#7882)
* GitHub Action security-related updates. (#8263, #8267, #8360)
* Other fixes and maintenance work. (#8154, #7848, #8069, #7943)
* Small updates and fixes to GitHub action pipelines. (#8364, #8321, #8241, #7950, #8011)
## v1.6.1 (2022 May 9)
This is a patch release for bug fixes and Spark barrier mode support. The R package is unchanged.
### Experimental support for categorical data
- Fix segfault when the number of samples is smaller than the number of categories. (https://github.com/dmlc/xgboost/pull/7853)
- Enable partition-based split for all model types. (https://github.com/dmlc/xgboost/pull/7857)
### JVM packages
We replaced the old parallelism tracker with spark barrier mode to improve the robustness of the JVM package and fix the GPU training pipeline.
- Fix GPU training pipeline quantile synchronization. (#7823, #7834)
- Use barrier model in spark package. (https://github.com/dmlc/xgboost/pull/7836, https://github.com/dmlc/xgboost/pull/7840, https://github.com/dmlc/xgboost/pull/7845, https://github.com/dmlc/xgboost/pull/7846)
- Fix shared object loading on some platforms. (https://github.com/dmlc/xgboost/pull/7844)
## v1.6.0 (2022 Apr 16)
After a long period of development, XGBoost v1.6.0 is packed with many new features and
improvements. We summarize them in the following sections starting with an introduction to
some major new features, then moving on to language binding specific changes including new
features and notable bug fixes for that binding.
### Development of categorical data support
This version of XGBoost features new improvements and full coverage of experimental
categorical data support in Python and C package with tree model. Both `hist`, `approx`
and `gpu_hist` now support training with categorical data. Also, partition-based
categorical split is introduced in this release. This split type is first available in
LightGBM in the context of gradient boosting. The previous XGBoost release supported one-hot split where the splitting criteria is of form `x \in {c}`, i.e. the categorical feature `x` is tested against a single candidate. The new release allows for more expressive conditions: `x \in S` where the categorical feature `x` is tested against multiple candidates. Moreover, it is now possible to use any tree algorithms (`hist`, `approx`, `gpu_hist`) when creating categorical splits. For more
information, please see our tutorial on [categorical
data](https://xgboost.readthedocs.io/en/latest/tutorials/categorical.html), along with
examples linked on that page. (#7380, #7708, #7695, #7330, #7307, #7322, #7705,
#7652, #7592, #7666, #7576, #7569, #7529, #7575, #7393, #7465, #7385, #7371, #7745, #7810)
In the future, we will continue to improve categorical data support with new features and
optimizations. Also, we are looking forward to bringing the feature beyond Python binding,
contributions and feedback are welcomed! Lastly, as a result of experimental status, the
behavior might be subject to change, especially the default value of related
hyper-parameters.
### Experimental support for multi-output model
XGBoost 1.6 features initial support for the multi-output model, which includes
multi-output regression and multi-label classification. Along with this, the XGBoost
classifier has proper support for base margin without to need for the user to flatten the
input. In this initial support, XGBoost builds one model for each target similar to the
sklearn meta estimator, for more details, please see our [quick
introduction](https://xgboost.readthedocs.io/en/latest/tutorials/multioutput.html).
(#7365, #7736, #7607, #7574, #7521, #7514, #7456, #7453, #7455, #7434, #7429, #7405, #7381)
### External memory support
External memory support for both approx and hist tree method is considered feature
complete in XGBoost 1.6. Building upon the iterator-based interface introduced in the
previous version, now both `hist` and `approx` iterates over each batch of data during
training and prediction. In previous versions, `hist` concatenates all the batches into
an internal representation, which is removed in this version. As a result, users can
expect higher scalability in terms of data size but might experience lower performance due
to disk IO. (#7531, #7320, #7638, #7372)
### Rewritten approx
The `approx` tree method is rewritten based on the existing `hist` tree method. The
rewrite closes the feature gap between `approx` and `hist` and improves the performance.
Now the behavior of `approx` should be more aligned with `hist` and `gpu_hist`. Here is a
list of user-visible changes:
- Supports both `max_leaves` and `max_depth`.
- Supports `grow_policy`.
- Supports monotonic constraint.
- Supports feature weights.
- Use `max_bin` to replace `sketch_eps`.
- Supports categorical data.
- Faster performance for many of the datasets.
- Improved performance and robustness for distributed training.
- Supports prediction cache.
- Significantly better performance for external memory when `depthwise` policy is used.
### New serialization format
Based on the existing JSON serialization format, we introduce UBJSON support as a more
efficient alternative. Both formats will be available in the future and we plan to
gradually [phase out](https://github.com/dmlc/xgboost/issues/7547) support for the old
binary model format. Users can opt to use the different formats in the serialization
function by providing the file extension `json` or `ubj`. Also, the `save_raw` function in
all supported languages bindings gains a new parameter for exporting the model in different
formats, available options are `json`, `ubj`, and `deprecated`, see document for the
language binding you are using for details. Lastly, the default internal serialization
format is set to UBJSON, which affects Python pickle and R RDS. (#7572, #7570, #7358,
#7571, #7556, #7549, #7416)
### General new features and improvements
Aside from the major new features mentioned above, some others are summarized here:
* Users can now access the build information of XGBoost binary in Python and C
interface. (#7399, #7553)
* Auto-configuration of `seed_per_iteration` is removed, now distributed training should
generate closer results to single node training when sampling is used. (#7009)
* A new parameter `huber_slope` is introduced for the `Pseudo-Huber` objective.
* During source build, XGBoost can choose cub in the system path automatically. (#7579)
* XGBoost now honors the CPU counts from CFS, which is usually set in docker
environments. (#7654, #7704)
* The metric `aucpr` is rewritten for better performance and GPU support. (#7297, #7368)
* Metric calculation is now performed in double precision. (#7364)
* XGBoost no longer mutates the global OpenMP thread limit. (#7537, #7519, #7608, #7590,
#7589, #7588, #7687)
* The default behavior of `max_leave` and `max_depth` is now unified (#7302, #7551).
* CUDA fat binary is now compressed. (#7601)
* Deterministic result for evaluation metric and linear model. In previous versions of
XGBoost, evaluation results might differ slightly for each run due to parallel reduction
for floating-point values, which is now addressed. (#7362, #7303, #7316, #7349)
* XGBoost now uses double for GPU Hist node sum, which improves the accuracy of
`gpu_hist`. (#7507)
### Performance improvements
Most of the performance improvements are integrated into other refactors during feature
developments. The `approx` should see significant performance gain for many datasets as
mentioned in the previous section, while the `hist` tree method also enjoys improved
performance with the removal of the internal `pruner` along with some other
refactoring. Lastly, `gpu_hist` no longer synchronizes the device during training. (#7737)
### General bug fixes
This section lists bug fixes that are not specific to any language binding.
* The `num_parallel_tree` is now a model parameter instead of a training hyper-parameter,
which fixes model IO with random forest. (#7751)
* Fixes in CMake script for exporting configuration. (#7730)
* XGBoost can now handle unsorted sparse input. This includes text file formats like
libsvm and scipy sparse matrix where column index might not be sorted. (#7731)
* Fix tree param feature type, this affects inputs with the number of columns greater than
the maximum value of int32. (#7565)
* Fix external memory with gpu_hist and subsampling. (#7481)
* Check the number of trees in inplace predict, this avoids a potential segfault when an
incorrect value for `iteration_range` is provided. (#7409)
* Fix non-stable result in cox regression (#7756)
### Changes in the Python package
Other than the changes in Dask, the XGBoost Python package gained some new features and
improvements along with small bug fixes.
* Python 3.7 is required as the lowest Python version. (#7682)
* Pre-built binary wheel for Apple Silicon. (#7621, #7612, #7747) Apple Silicon users will
now be able to run `pip install xgboost` to install XGBoost.
* MacOS users no longer need to install `libomp` from Homebrew, as the XGBoost wheel now
bundles `libomp.dylib` library.
* There are new parameters for users to specify the custom metric with new
behavior. XGBoost can now output transformed prediction values when a custom objective is
not supplied. See our explanation in the
[tutorial](https://xgboost.readthedocs.io/en/latest/tutorials/custom_metric_obj.html#reverse-link-function)
for details.
* For the sklearn interface, following the estimator guideline from scikit-learn, all
parameters in `fit` that are not related to input data are moved into the constructor
and can be set by `set_params`. (#6751, #7420, #7375, #7369)
* Apache arrow format is now supported, which can bring better performance to users'
pipeline (#7512)
* Pandas nullable types are now supported (#7760)
* A new function `get_group` is introduced for `DMatrix` to allow users to get the group
information in the custom objective function. (#7564)
* More training parameters are exposed in the sklearn interface instead of relying on the
`**kwargs`. (#7629)
* A new attribute `feature_names_in_` is defined for all sklearn estimators like
`XGBRegressor` to follow the convention of sklearn. (#7526)
* More work on Python type hint. (#7432, #7348, #7338, #7513, #7707)
* Support the latest pandas Index type. (#7595)
* Fix for Feature shape mismatch error on s390x platform (#7715)
* Fix using feature names for constraints with multiple groups (#7711)
* We clarified the behavior of the callback function when it contains mutable
states. (#7685)
* Lastly, there are some code cleanups and maintenance work. (#7585, #7426, #7634, #7665,
#7667, #7377, #7360, #7498, #7438, #7667, #7752, #7749, #7751)
### Changes in the Dask interface
* Dask module now supports user-supplied host IP and port address of scheduler node.
Please see [introduction](https://xgboost.readthedocs.io/en/latest/tutorials/dask.html#troubleshooting) and
[API document](https://xgboost.readthedocs.io/en/latest/python/python_api.html#optional-dask-configuration)
for reference. (#7645, #7581)
* Internal `DMatrix` construction in dask now honers thread configuration. (#7337)
* A fix for `nthread` configuration using the Dask sklearn interface. (#7633)
* The Dask interface can now handle empty partitions. An empty partition is different
from an empty worker, the latter refers to the case when a worker has no partition of an
input dataset, while the former refers to some partitions on a worker that has zero
sizes. (#7644, #7510)
* Scipy sparse matrix is supported as Dask array partition. (#7457)
* Dask interface is no longer considered experimental. (#7509)
### Changes in the R package
This section summarizes the new features, improvements, and bug fixes to the R package.
* `load.raw` can optionally construct a booster as return. (#7686)
* Fix parsing decision stump, which affects both transforming text representation to data
table and plotting. (#7689)
* Implement feature weights. (#7660)
* Some improvements for complying the CRAN release policy. (#7672, #7661, #7763)
* Support CSR data for predictions (#7615)
* Document update (#7263, #7606)
* New maintainer for the CRAN package (#7691, #7649)
* Handle non-standard installation of toolchain on macos (#7759)
### Changes in JVM-packages
Some new features for JVM-packages are introduced for a more integrated GPU pipeline and
better compatibility with musl-based Linux. Aside from this, we have a few notable bug
fixes.
* User can specify the tracker IP address for training, which helps running XGBoost on
restricted network environments. (#7808)
* Add support for detecting musl-based Linux (#7624)
* Add `DeviceQuantileDMatrix` to Scala binding (#7459)
* Add Rapids plugin support, now more of the JVM pipeline can be accelerated by RAPIDS (#7491, #7779, #7793, #7806)
* The setters for CPU and GPU are more aligned (#7692, #7798)
* Control logging for early stopping (#7326)
* Do not repartition when nWorker = 1 (#7676)
* Fix the prediction issue for `multi:softmax` (#7694)
* Fix for serialization of custom objective and eval (#7274)
* Update documentation about Python tracker (#7396)
* Remove jackson from dependency, which fixes CVE-2020-36518. (#7791)
* Some refactoring to the training pipeline for better compatibility between CPU and
GPU. (#7440, #7401, #7789, #7784)
* Maintenance work. (#7550, #7335, #7641, #7523, #6792, #4676)
### Deprecation
Other than the changes in the Python package and serialization, we removed some deprecated
features in previous releases. Also, as mentioned in the previous section, we plan to
phase out the old binary format in future releases.
* Remove old warning in 1.3 (#7279)
* Remove label encoder deprecated in 1.3. (#7357)
* Remove old callback deprecated in 1.3. (#7280)
* Pre-built binary will no longer support deprecated CUDA architectures including sm35 and
sm50. Users can continue to use these platforms with source build. (#7767)
### Documentation
This section lists some of the general changes to XGBoost's document, for language binding
specific change please visit related sections.
* Document is overhauled to use the new RTD theme, along with integration of Python
examples using Sphinx gallery. Also, we replaced most of the hard-coded URLs with sphinx
references. (#7347, #7346, #7468, #7522, #7530)
* Small update along with fixes for broken links, typos, etc. (#7684, #7324, #7334, #7655,
#7628, #7623, #7487, #7532, #7500, #7341, #7648, #7311)
* Update document for GPU. [skip ci] (#7403)
* Document the status of RTD hosting. (#7353)
* Update document for building from source. (#7664)
* Add note about CRAN release [skip ci] (#7395)
### Maintenance
This is a summary of maintenance work that is not specific to any language binding.
* Add CMake option to use /MD runtime (#7277)
* Add clang-format configuration. (#7383)
* Code cleanups (#7539, #7536, #7466, #7499, #7533, #7735, #7722, #7668, #7304, #7293,
#7321, #7356, #7345, #7387, #7577, #7548, #7469, #7680, #7433, #7398)
* Improved tests with better coverage and latest dependency (#7573, #7446, #7650, #7520,
#7373, #7723, #7611, #7771)
* Improved automation of the release process. (#7278, #7332, #7470)
* Compiler workarounds (#7673)
* Change shebang used in CLI demo. (#7389)
* Update affiliation (#7289)
### CI
Some fixes and update to XGBoost's CI infrastructure. (#7739, #7701, #7382, #7662, #7646,
#7582, #7407, #7417, #7475, #7474, #7479, #7472, #7626)
## v1.5.0 (2021 Oct 11)
This release comes with many exciting new features and optimizations, along with some bug
fixes. We will describe the experimental categorical data support and the external memory
interface independently. Package-specific new features will be listed in respective
sections.
### Development on categorical data support
In version 1.3, XGBoost introduced an experimental feature for handling categorical data
natively, without one-hot encoding. XGBoost can fit categorical splits in decision
trees. (Currently, the generated splits will be of form `x \in {v}`, where the input is
compared to a single category value. A future version of XGBoost will generate splits that
compare the input against a list of multiple category values.)
Most of the other features, including prediction, SHAP value computation, feature
importance, and model plotting were revised to natively handle categorical splits. Also,
all Python interfaces including native interface with and without quantized `DMatrix`,
scikit-learn interface, and Dask interface now accept categorical data with a wide range
of data structures support including numpy/cupy array and cuDF/pandas/modin dataframe. In
practice, the following are required for enabling categorical data support during
training:
- Use Python package.
- Use `gpu_hist` to train the model.
- Use JSON model file format for saving the model.
Once the model is trained, it can be used with most of the features that are available on
the Python package. For a quick introduction, see
https://xgboost.readthedocs.io/en/latest/tutorials/categorical.html
Related PRs: (#7011, #7001, #7042, #7041, #7047, #7043, #7036, #7054, #7053, #7065, #7213, #7228, #7220, #7221, #7231, #7306)
* Next steps
- Revise the CPU training algorithm to handle categorical data natively and generate categorical splits
- Extend the CPU and GPU algorithms to generate categorical splits of form `x \in S`
where the input is compared with multiple category values. split. (#7081)
### External memory
This release features a brand-new interface and implementation for external memory (also
known as out-of-core training). (#6901, #7064, #7088, #7089, #7087, #7092, #7070,
#7216). The new implementation leverages the data iterator interface, which is currently
used to create `DeviceQuantileDMatrix`. For a quick introduction, see
https://xgboost.readthedocs.io/en/latest/tutorials/external_memory.html#data-iterator
. During the development of this new interface, `lz4` compression is removed. (#7076).
Please note that external memory support is still experimental and not ready for
production use yet. All future development will focus on this new interface and users are
advised to migrate. (You are using the old interface if you are using a URL suffix to use
external memory.)
### New features in Python package
* Support numpy array interface and all numeric types from numpy in `DMatrix`
construction and `inplace_predict` (#6998, #7003). Now XGBoost no longer makes data
copy when input is numpy array view.
* The early stopping callback in Python has a new `min_delta` parameter to control the
stopping behavior (#7137)
* Python package now supports calculating feature scores for the linear model, which is
also available on R package. (#7048)
* Python interface now supports configuring constraints using feature names instead of
feature indices.
* Typehint support for more Python code including scikit-learn interface and rabit
module. (#6799, #7240)
* Add tutorial for XGBoost-Ray (#6884)
### New features in R package
* In 1.4 we have a new prediction function in the C API which is used by the Python
package. This release revises the R package to use the new prediction function as well.
A new parameter `iteration_range` for the predict function is available, which can be
used for specifying the range of trees for running prediction. (#6819, #7126)
* R package now supports the `nthread` parameter in `DMatrix` construction. (#7127)
### New features in JVM packages
* Support GPU dataframe and `DeviceQuantileDMatrix` (#7195). Constructing `DMatrix`
with GPU data structures and the interface for quantized `DMatrix` were first
introduced in the Python package and are now available in the xgboost4j package.
* JVM packages now support saving and getting early stopping attributes. (#7095) Here is a
quick [example](https://github.com/dmlc/xgboost/jvm-packages/xgboost4j-example/src/main/java/ml/dmlc/xgboost4j/java/example/EarlyStopping.java "example") in JAVA (#7252).
### General new features
* We now have a pre-built binary package for R on Windows with GPU support. (#7185)
* CUDA compute capability 86 is now part of the default CMake build configuration with
newly added support for CUDA 11.4. (#7131, #7182, #7254)
* XGBoost can be compiled using system CUB provided by CUDA 11.x installation. (#7232)
### Optimizations
The performance for both `hist` and `gpu_hist` has been significantly improved in 1.5
with the following optimizations:
* GPU multi-class model training now supports prediction cache. (#6860)
* GPU histogram building is sped up and the overall training time is 2-3 times faster on
large datasets (#7180, #7198). In addition, we removed the parameter `deterministic_histogram` and now
the GPU algorithm is always deterministic.
* CPU hist has an optimized procedure for data sampling (#6922)
* More performance optimization in regression and binary classification objectives on
CPU (#7206)
* Tree model dump is now performed in parallel (#7040)
### Breaking changes
* `n_gpus` was deprecated in 1.0 release and is now removed.
* Feature grouping in CPU hist tree method is removed, which was disabled long
ago. (#7018)
* C API for Quantile DMatrix is changed to be consistent with the new external memory
implementation. (#7082)
### Notable general bug fixes
* XGBoost no long changes global CUDA device ordinal when `gpu_id` is specified (#6891,
#6987)
* Fix `gamma` negative likelihood evaluation metric. (#7275)
* Fix integer value of `verbose_eal` for `xgboost.cv` function in Python. (#7291)
* Remove extra sync in CPU hist for dense data, which can lead to incorrect tree node
statistics. (#7120, #7128)
* Fix a bug in GPU hist when data size is larger than `UINT32_MAX` with missing
values. (#7026)
* Fix a thread safety issue in prediction with the `softmax` objective. (#7104)
* Fix a thread safety issue in CPU SHAP value computation. (#7050) Please note that all
prediction functions in Python are thread-safe.
* Fix model slicing. (#7149, #7078)
* Workaround a bug in old GCC which can lead to segfault during construction of
DMatrix. (#7161)
* Fix histogram truncation in GPU hist, which can lead to slightly-off results. (#7181)
* Fix loading GPU linear model pickle files on CPU-only machine. (#7154)
* Check input value is duplicated when CPU quantile queue is full (#7091)
* Fix parameter loading with training continuation. (#7121)
* Fix CMake interface for exposing C library by specifying dependencies. (#7099)
* Callback and early stopping are explicitly disabled for the scikit-learn interface
random forest estimator. (#7236)
* Fix compilation error on x86 (32-bit machine) (#6964)
* Fix CPU memory usage with extremely sparse datasets (#7255)
* Fix a bug in GPU multi-class AUC implementation with weighted data (#7300)
### Python package
Other than the items mentioned in the previous sections, there are some Python-specific
improvements.
* Change development release postfix to `dev` (#6988)
* Fix early stopping behavior with MAPE metric (#7061)
* Fixed incorrect feature mismatch error message (#6949)
* Add predictor to skl constructor. (#7000, #7159)
* Re-enable feature validation in predict proba. (#7177)
* scikit learn interface regression estimator now can pass the scikit-learn estimator
check and is fully compatible with scikit-learn utilities. `__sklearn_is_fitted__` is
implemented as part of the changes (#7130, #7230)
* Conform the latest pylint. (#7071, #7241)
* Support latest panda range index in DMatrix construction. (#7074)
* Fix DMatrix construction from pandas series. (#7243)
* Fix typo and grammatical mistake in error message (#7134)
* [dask] disable work stealing explicitly for training tasks (#6794)
* [dask] Set dataframe index in predict. (#6944)
* [dask] Fix prediction on df with latest dask. (#6969)
* [dask] Fix dask predict on `DaskDMatrix` with `iteration_range`. (#7005)
* [dask] Disallow importing non-dask estimators from xgboost.dask (#7133)
### R package
Improvements other than new features on R package:
* Optimization for updating R handles in-place (#6903)
* Removed the magrittr dependency. (#6855, #6906, #6928)
* The R package now hides all C++ symbols to avoid conflicts. (#7245)
* Other maintenance including code cleanups, document updates. (#6863, #6915, #6930, #6966, #6967)
### JVM packages
Improvements other than new features on JVM packages:
* Constructors with implicit missing value are deprecated due to confusing behaviors. (#7225)
* Reduce scala-compiler, scalatest dependency scopes (#6730)
* Making the Java library loader emit helpful error messages on missing dependencies. (#6926)
* JVM packages now use the Python tracker in XGBoost instead of dmlc. The one in XGBoost
is shared between JVM packages and Python Dask and enjoys better maintenance (#7132)
* Fix "key not found: train" error (#6842)
* Fix model loading from stream (#7067)
### General document improvements
* Overhaul the installation documents. (#6877)
* A few demos are added for AFT with dask (#6853), callback with dask (#6995), inference
in C (#7151), `process_type`. (#7135)
* Fix PDF format of document. (#7143)
* Clarify the behavior of `use_rmm`. (#6808)
* Clarify prediction function. (#6813)
* Improve tutorial on feature interactions (#7219)
* Add small example for dask sklearn interface. (#6970)
* Update Python intro. (#7235)
* Some fixes/updates (#6810, #6856, #6935, #6948, #6976, #7084, #7097, #7170, #7173, #7174, #7226, #6979, #6809, #6796, #6979)
### Maintenance
* Some refactoring around CPU hist, which lead to better performance but are listed under general maintenance tasks:
- Extract evaluate splits from CPU hist. (#7079)
- Merge lossgude and depthwise strategies for CPU hist (#7007)
- Simplify sparse and dense CPU hist kernels (#7029)
- Extract histogram builder from CPU Hist. (#7152)
* Others
- Fix `gpu_id` with custom objective. (#7015)
- Fix typos in AUC. (#6795)
- Use constexpr in `dh::CopyIf`. (#6828)
- Update dmlc-core. (#6862)
- Bump version to 1.5.0 snapshot in master. (#6875)
- Relax shotgun test. (#6900)
- Guard against index error in prediction. (#6982)
- Hide symbols in CI build + hide symbols for C and CUDA (#6798)
- Persist data in dask test. (#7077)
- Fix typo in arguments of PartitionBuilder::Init (#7113)
- Fix typo in src/common/hist.cc BuildHistKernel (#7116)
- Use upstream URI in distributed quantile tests. (#7129)
- Include cpack (#7160)
- Remove synchronization in monitor. (#7164)
- Remove unused code. (#7175)
- Fix building on CUDA 11.0. (#7187)
- Better error message for `ncclUnhandledCudaError`. (#7190)
- Add noexcept to JSON objects. (#7205)
- Improve wording for warning (#7248)
- Fix typo in release script. [skip ci] (#7238)
- Relax shotgun test. (#6918)
- Relax test for decision stump in distributed environment. (#6919)
- [dask] speed up tests (#7020)
### CI
* [CI] Rotate access keys for uploading MacOS artifacts from Travis CI (#7253)
* Reduce Travis environment setup time. (#6912)
* Restore R cache on github action. (#6985)
* [CI] Remove stray build artifact to avoid error in artifact packaging (#6994)
* [CI] Move appveyor tests to action (#6986)
* Remove appveyor badge. [skip ci] (#7035)
* [CI] Configure RAPIDS, dask, modin (#7033)
* Test on s390x. (#7038)
* [CI] Upgrade to CMake 3.14 (#7060)
* [CI] Update R cache. (#7102)
* [CI] Pin libomp to 11.1.0 (#7107)
* [CI] Upgrade build image to CentOS 7 + GCC 8; require CUDA 10.1 and later (#7141)
* [dask] Work around segfault in prediction. (#7112)
* [dask] Remove the workaround for segfault. (#7146)
* [CI] Fix hanging Python setup in Windows CI (#7186)
* [CI] Clean up in beginning of each task in Win CI (#7189)
* Fix travis. (#7237)
### Acknowledgement
* **Contributors**: Adam Pocock (@Craigacp), Jeff H (@JeffHCross), Johan Hansson (@JohanWork), Jose Manuel Llorens (@JoseLlorensRipolles), Benjamin Szőke (@Livius90), @ReeceGoding, @ShvetsKS, Robert Zabel (@ZabelTech), Ali (@ali5h), Andrew Ziem (@az0), Andy Adinets (@canonizer), @david-cortes, Daniel Saxton (@dsaxton), Emil Sadek (@esadek), @farfarawayzyt, Gil Forsyth (@gforsyth), @giladmaya, @graue70, Philip Hyunsu Cho (@hcho3), James Lamb (@jameslamb), José Morales (@jmoralez), Kai Fricke (@krfricke), Christian Lorentzen (@lorentzenchr), Mads R. B. Kristensen (@madsbk), Anton Kostin (@masguit42), Martin Petříček (@mpetricek-corp), @naveenkb, Taewoo Kim (@oOTWK), Viktor Szathmáry (@phraktle), Robert Maynard (@robertmaynard), TP Boudreau (@tpboudreau), Jiaming Yuan (@trivialfis), Paul Taylor (@trxcllnt), @vslaykovsky, Bobby Wang (@wbo4958),
* **Reviewers**: Nan Zhu (@CodingCat), Adam Pocock (@Craigacp), Jose Manuel Llorens (@JoseLlorensRipolles), Kodi Arfer (@Kodiologist), Benjamin Szőke (@Livius90), Mark Guryanov (@MarkGuryanov), Rory Mitchell (@RAMitchell), @ReeceGoding, @ShvetsKS, Egor Smirnov (@SmirnovEgorRu), Andrew Ziem (@az0), @candalfigomoro, Andy Adinets (@canonizer), Dante Gama Dessavre (@dantegd), @david-cortes, Daniel Saxton (@dsaxton), @farfarawayzyt, Gil Forsyth (@gforsyth), Harutaka Kawamura (@harupy), Philip Hyunsu Cho (@hcho3), @jakirkham, James Lamb (@jameslamb), José Morales (@jmoralez), James Bourbeau (@jrbourbeau), Christian Lorentzen (@lorentzenchr), Martin Petříček (@mpetricek-corp), Nikolay Petrov (@napetrov), @naveenkb, Viktor Szathmáry (@phraktle), Robin Teuwens (@rteuwens), Yuan Tang (@terrytangyuan), TP Boudreau (@tpboudreau), Jiaming Yuan (@trivialfis), @vkuzmin-uber, Bobby Wang (@wbo4958), William Hicks (@wphicks)
## v1.4.2 (2021.05.13)
This is a patch release for Python package with following fixes:
* Handle the latest version of cupy.ndarray in inplace_predict. (#6933)
* Ensure output array from predict_leaf is (n_samples, ) when there's only 1 tree. 1.4.0 outputs (n_samples, 1). (#6889)
* Fix empty dataset handling with multi-class AUC. (#6947)
* Handle object type from pandas in inplace_predict. (#6927)
## v1.4.1 (2021.04.20)
This is a bug fix release.
* Fix GPU implementation of AUC on some large datasets. (#6866)
## v1.4.0 (2021.04.12)
### Introduction of pre-built binary package for R, with GPU support
Starting with release 1.4.0, users now have the option of installing `{xgboost}` without
having to build it from the source. This is particularly advantageous for users who want
to take advantage of the GPU algorithm (`gpu_hist`), as previously they'd have to build
`{xgboost}` from the source using CMake and NVCC. Now installing `{xgboost}` with GPU
support is as easy as: `R CMD INSTALL ./xgboost_r_gpu_linux.tar.gz`. (#6827)
See the instructions at https://xgboost.readthedocs.io/en/latest/build.html
### Improvements on prediction functions
XGBoost has many prediction types including shap value computation and inplace prediction.
In 1.4 we overhauled the underlying prediction functions for C API and Python API with an
unified interface. (#6777, #6693, #6653, #6662, #6648, #6668, #6804)
* Starting with 1.4, sklearn interface prediction will use inplace predict by default when
input data is supported.
* Users can use inplace predict with `dart` booster and enable GPU acceleration just
like `gbtree`.
* Also all prediction functions with tree models are now thread-safe. Inplace predict is
improved with `base_margin` support.
* A new set of C predict functions are exposed in the public interface.
* A user-visible change is a newly added parameter called `strict_shape`. See
https://xgboost.readthedocs.io/en/latest/prediction.html for more details.
### Improvement on Dask interface
* Starting with 1.4, the Dask interface is considered to be feature-complete, which means
all of the models found in the single node Python interface are now supported in Dask,
including but not limited to ranking and random forest. Also, the prediction function
is significantly faster and supports shap value computation.
- Most of the parameters found in single node sklearn interface are supported by
Dask interface. (#6471, #6591)
- Implements learning to rank. On the Dask interface, we use the newly added support of
query ID to enable group structure. (#6576)
- The Dask interface has Python type hints support. (#6519)
- All models can be safely pickled. (#6651)
- Random forest estimators are now supported. (#6602)
- Shap value computation is now supported. (#6575, #6645, #6614)
- Evaluation result is printed on the scheduler process. (#6609)
- `DaskDMatrix` (and device quantile dmatrix) now accepts all meta-information. (#6601)
* Prediction optimization. We enhanced and speeded up the prediction function for the
Dask interface. See the latest Dask tutorial page in our document for an overview of
how you can optimize it even further. (#6650, #6645, #6648, #6668)
* Bug fixes
- If you are using the latest Dask and distributed where `distributed.MultiLock` is
present, XGBoost supports training multiple models on the same cluster in
parallel. (#6743)
- A bug fix for when using `dask.client` to launch async task, XGBoost might use a
different client object internally. (#6722)
* Other improvements on documents, blogs, tutorials, and demos. (#6389, #6366, #6687,
#6699, #6532, #6501)
### Python package
With changes from Dask and general improvement on prediction, we have made some
enhancements on the general Python interface and IO for booster information. Starting
from 1.4, booster feature names and types can be saved into the JSON model. Also some
model attributes like `best_iteration`, `best_score` are restored upon model load. On
sklearn interface, some attributes are now implemented as Python object property with
better documents.
* Breaking change: All `data` parameters in prediction functions are renamed to `X`
for better compliance to sklearn estimator interface guidelines.
* Breaking change: XGBoost used to generate some pseudo feature names with `DMatrix`
when inputs like `np.ndarray` don't have column names. The procedure is removed to
avoid conflict with other inputs. (#6605)
* Early stopping with training continuation is now supported. (#6506)
* Optional import for Dask and cuDF are now lazy. (#6522)
* As mentioned in the prediction improvement summary, the sklearn interface uses inplace
prediction whenever possible. (#6718)
* Booster information like feature names and feature types are now saved into the JSON
model file. (#6605)
* All `DMatrix` interfaces including `DeviceQuantileDMatrix` and counterparts in Dask
interface (as mentioned in the Dask changes summary) now accept all the meta-information
like `group` and `qid` in their constructor for better consistency. (#6601)
* Booster attributes are restored upon model load so users don't have to call `attr`
manually. (#6593)
* On sklearn interface, all models accept `base_margin` for evaluation datasets. (#6591)
* Improvements over the setup script including smaller sdist size and faster installation
if the C++ library is already built (#6611, #6694, #6565).
* Bug fixes for Python package:
- Don't validate feature when number of rows is 0. (#6472)
- Move metric configuration into booster. (#6504)
- Calling XGBModel.fit() should clear the Booster by default (#6562)
- Support `_estimator_type`. (#6582)
- [dask, sklearn] Fix predict proba. (#6566, #6817)
- Restore unknown data support. (#6595)
- Fix learning rate scheduler with cv. (#6720)
- Fixes small typo in sklearn documentation (#6717)
- [python-package] Fix class Booster: feature_types = None (#6705)
- Fix divide by 0 in feature importance when no split is found. (#6676)
### JVM package
* [jvm-packages] fix early stopping doesn't work even without custom_eval setting (#6738)
* fix potential TaskFailedListener's callback won't be called (#6612)
* [jvm] Add ability to load booster direct from byte array (#6655)
* [jvm-packages] JVM library loader extensions (#6630)
### R package
* R documentation: Make construction of DMatrix consistent.
* Fix R documentation for xgb.train. (#6764)
### ROC-AUC
We re-implemented the ROC-AUC metric in XGBoost. The new implementation supports
multi-class classification and has better support for learning to rank tasks that are not
binary. Also, it has a better-defined average on distributed environments with additional
handling for invalid datasets. (#6749, #6747, #6797)
### Global configuration.
Starting from 1.4, XGBoost's Python, R and C interfaces support a new global configuration
model where users can specify some global parameters. Currently, supported parameters are
`verbosity` and `use_rmm`. The latter is experimental, see rmm plugin demo and
related README file for details. (#6414, #6656)
### Other New features.
* Better handling for input data types that support `__array_interface__`. For some
data types including GPU inputs and `scipy.sparse.csr_matrix`, XGBoost employs
`__array_interface__` for processing the underlying data. Starting from 1.4, XGBoost
can accept arbitrary array strides (which means column-major is supported) without
making data copies, potentially reducing a significant amount of memory consumption.
Also version 3 of `__cuda_array_interface__` is now supported. (#6776, #6765, #6459,
#6675)
* Improved parameter validation, now feeding XGBoost with parameters that contain
whitespace will trigger an error. (#6769)
* For Python and R packages, file paths containing the home indicator `~` are supported.
* As mentioned in the Python changes summary, the JSON model can now save feature
information of the trained booster. The JSON schema is updated accordingly. (#6605)
* Development of categorical data support is continued. Newly added weighted data support
and `dart` booster support. (#6508, #6693)
* As mentioned in Dask change summary, ranking now supports the `qid` parameter for
query groups. (#6576)
* `DMatrix.slice` can now consume a numpy array. (#6368)
### Other breaking changes
* Aside from the feature name generation, there are 2 breaking changes:
- Drop saving binary format for memory snapshot. (#6513, #6640)
- Change default evaluation metric for binary:logitraw objective to logloss (#6647)
### CPU Optimization
* Aside from the general changes on predict function, some optimizations are applied on
CPU implementation. (#6683, #6550, #6696, #6700)
* Also performance for sampling initialization in `hist` is improved. (#6410)
### Notable fixes in the core library
These fixes do not reside in particular language bindings:
* Fixes for gamma regression. This includes checking for invalid input values, fixes for
gamma deviance metric, and better floating point guard for gamma negative log-likelihood
metric. (#6778, #6537, #6761)
* Random forest with `gpu_hist` might generate low accuracy in previous versions. (#6755)
* Fix a bug in GPU sketching when data size exceeds limit of 32-bit integer. (#6826)
* Memory consumption fix for row-major adapters (#6779)
* Don't estimate sketch batch size when rmm is used. (#6807) (#6830)
* Fix in-place predict with missing value. (#6787)
* Re-introduce double buffer in UpdatePosition, to fix perf regression in gpu_hist (#6757)
* Pass correct split_type to GPU predictor (#6491)
* Fix DMatrix feature names/types IO. (#6507)
* Use view for `SparsePage` exclusively to avoid some data access races. (#6590)
* Check for invalid data. (#6742)
* Fix relocatable include in CMakeList (#6734) (#6737)
* Fix DMatrix slice with feature types. (#6689)
### Other deprecation notices:
* This release will be the last release to support CUDA 10.0. (#6642)
* Starting in the next release, the Python package will require Pip 19.3+ due to the use
of manylinux2014 tag. Also, CentOS 6, RHEL 6 and other old distributions will not be
supported.
### Known issue:
MacOS build of the JVM packages doesn't support multi-threading out of the box. To enable
multi-threading with JVM packages, MacOS users will need to build the JVM packages from
the source. See https://xgboost.readthedocs.io/en/latest/jvm/index.html#installation-from-source
### Doc
* Dedicated page for `tree_method` parameter is added. (#6564, #6633)
* [doc] Add FLAML as a fast tuning tool for XGBoost (#6770)
* Add document for tests directory. [skip ci] (#6760)
* Fix doc string of config.py to use correct `versionadded` (#6458)
* Update demo for prediction. (#6789)
* [Doc] Document that AUCPR is for binary classification/ranking (#5899)
gitextract_kt5qph6q/
├── .clang-format
├── .clang-tidy
├── .editorconfig
├── .gitattributes
├── .github/
│ ├── FUNDING.yml
│ ├── ISSUE_TEMPLATE.md
│ ├── dependabot.yml
│ ├── lock.yml
│ ├── runs-on.yml
│ └── workflows/
│ ├── cccl_nightly.yml
│ ├── freebsd.yml
│ ├── jvm_tests.yml
│ ├── lint.yml
│ ├── main.yml
│ ├── misc.yml
│ ├── pre-commit.yml
│ ├── python_tests.yml
│ ├── python_wheels_variants.yml
│ ├── python_wheels_winarm64.yml
│ ├── r_nold.yml
│ ├── r_tests.yml
│ ├── scorecards.yml
│ ├── sycl_tests.yml
│ └── windows.yml
├── .gitignore
├── .gitmodules
├── .pre-commit-config.yaml
├── .readthedocs.yaml
├── CITATION
├── CMakeLists.txt
├── CONTRIBUTORS.md
├── LICENSE
├── NEWS.md
├── R-package/
│ ├── .Rbuildignore
│ ├── .gitignore
│ ├── CMakeLists.txt
│ ├── DESCRIPTION
│ ├── NAMESPACE
│ ├── R/
│ │ ├── callbacks.R
│ │ ├── utils.R
│ │ ├── xgb.Booster.R
│ │ ├── xgb.DMatrix.R
│ │ ├── xgb.DMatrix.save.R
│ │ ├── xgb.config.R
│ │ ├── xgb.create.features.R
│ │ ├── xgb.cv.R
│ │ ├── xgb.dump.R
│ │ ├── xgb.ggplot.R
│ │ ├── xgb.importance.R
│ │ ├── xgb.load.R
│ │ ├── xgb.load.raw.R
│ │ ├── xgb.model.dt.tree.R
│ │ ├── xgb.plot.deepness.R
│ │ ├── xgb.plot.importance.R
│ │ ├── xgb.plot.multi.trees.R
│ │ ├── xgb.plot.shap.R
│ │ ├── xgb.plot.tree.R
│ │ ├── xgb.save.R
│ │ ├── xgb.save.raw.R
│ │ ├── xgb.train.R
│ │ └── xgboost.R
│ ├── README.md
│ ├── bootstrap.R
│ ├── cleanup
│ ├── configure
│ ├── configure.ac
│ ├── configure.win
│ ├── data/
│ │ ├── agaricus.test.rda
│ │ └── agaricus.train.rda
│ ├── inst/
│ │ └── make-r-def.R
│ ├── man/
│ │ ├── a-compatibility-note-for-saveRDS-save.Rd
│ │ ├── agaricus.test.Rd
│ │ ├── agaricus.train.Rd
│ │ ├── coef.xgb.Booster.Rd
│ │ ├── dim.xgb.DMatrix.Rd
│ │ ├── dimnames.xgb.DMatrix.Rd
│ │ ├── getinfo.Rd
│ │ ├── predict.xgb.Booster.Rd
│ │ ├── predict.xgboost.Rd
│ │ ├── print.xgb.Booster.Rd
│ │ ├── print.xgb.DMatrix.Rd
│ │ ├── print.xgb.cv.Rd
│ │ ├── print.xgboost.Rd
│ │ ├── variable.names.xgb.Booster.Rd
│ │ ├── xgb.Callback.Rd
│ │ ├── xgb.DMatrix.Rd
│ │ ├── xgb.DMatrix.hasinfo.Rd
│ │ ├── xgb.DMatrix.save.Rd
│ │ ├── xgb.DataBatch.Rd
│ │ ├── xgb.DataIter.Rd
│ │ ├── xgb.ExtMemDMatrix.Rd
│ │ ├── xgb.QuantileDMatrix.from_iterator.Rd
│ │ ├── xgb.attr.Rd
│ │ ├── xgb.cb.cv.predict.Rd
│ │ ├── xgb.cb.early.stop.Rd
│ │ ├── xgb.cb.evaluation.log.Rd
│ │ ├── xgb.cb.gblinear.history.Rd
│ │ ├── xgb.cb.print.evaluation.Rd
│ │ ├── xgb.cb.reset.parameters.Rd
│ │ ├── xgb.cb.save.model.Rd
│ │ ├── xgb.config.Rd
│ │ ├── xgb.copy.Booster.Rd
│ │ ├── xgb.create.features.Rd
│ │ ├── xgb.cv.Rd
│ │ ├── xgb.dump.Rd
│ │ ├── xgb.gblinear.history.Rd
│ │ ├── xgb.get.DMatrix.data.Rd
│ │ ├── xgb.get.DMatrix.num.non.missing.Rd
│ │ ├── xgb.get.DMatrix.qcut.Rd
│ │ ├── xgb.get.num.boosted.rounds.Rd
│ │ ├── xgb.importance.Rd
│ │ ├── xgb.is.same.Booster.Rd
│ │ ├── xgb.load.Rd
│ │ ├── xgb.load.raw.Rd
│ │ ├── xgb.model.dt.tree.Rd
│ │ ├── xgb.model.parameters.Rd
│ │ ├── xgb.params.Rd
│ │ ├── xgb.plot.deepness.Rd
│ │ ├── xgb.plot.importance.Rd
│ │ ├── xgb.plot.multi.trees.Rd
│ │ ├── xgb.plot.shap.Rd
│ │ ├── xgb.plot.shap.summary.Rd
│ │ ├── xgb.plot.tree.Rd
│ │ ├── xgb.save.Rd
│ │ ├── xgb.save.raw.Rd
│ │ ├── xgb.slice.Booster.Rd
│ │ ├── xgb.slice.DMatrix.Rd
│ │ ├── xgb.train.Rd
│ │ ├── xgbConfig.Rd
│ │ ├── xgboost-options.Rd
│ │ └── xgboost.Rd
│ ├── pkgdown/
│ │ └── _pkgdown.yml
│ ├── remove_warning_suppression_pragma.sh
│ ├── src/
│ │ ├── Makevars.in
│ │ ├── Makevars.win.in
│ │ ├── config.h.in
│ │ ├── init.c
│ │ ├── xgboost-win.def
│ │ ├── xgboost_R.cc
│ │ ├── xgboost_R.h
│ │ └── xgboost_custom.cc
│ ├── tests/
│ │ ├── helper_scripts/
│ │ │ ├── generate_models.R
│ │ │ ├── install_deps.R
│ │ │ └── run-examples.R
│ │ ├── testthat/
│ │ │ ├── helper_model.R
│ │ │ ├── test_basic.R
│ │ │ ├── test_booster_slicing.R
│ │ │ ├── test_callbacks.R
│ │ │ ├── test_config.R
│ │ │ ├── test_custom_objective.R
│ │ │ ├── test_dmatrix.R
│ │ │ ├── test_feature_weights.R
│ │ │ ├── test_glm.R
│ │ │ ├── test_helpers.R
│ │ │ ├── test_interaction_constraints.R
│ │ │ ├── test_interactions.R
│ │ │ ├── test_io.R
│ │ │ ├── test_model_compatibility.R
│ │ │ ├── test_monotone.R
│ │ │ ├── test_parameter_exposure.R
│ │ │ ├── test_poisson_regression.R
│ │ │ ├── test_ranking.R
│ │ │ ├── test_unicode.R
│ │ │ ├── test_update.R
│ │ │ └── test_xgboost.R
│ │ └── testthat.R
│ └── vignettes/
│ ├── xgboost_introduction.Rmd
│ └── xgboostfromJSON.Rmd
├── README.md
├── SECURITY.md
├── amalgamation/
│ └── dmlc-minimum0.cc
├── cmake/
│ ├── Doc.cmake
│ ├── FindOpenMPMacOS.cmake
│ ├── PrefetchIntrinsics.cmake
│ ├── RPackageInstall.cmake.in
│ ├── RPackageInstallTargetSetup.cmake
│ ├── Sanitizer.cmake
│ ├── Utils.cmake
│ ├── Version.cmake
│ ├── modules/
│ │ ├── FindASan.cmake
│ │ ├── FindLSan.cmake
│ │ ├── FindLibR.cmake
│ │ ├── FindNVML.cmake
│ │ ├── FindNccl.cmake
│ │ ├── FindTSan.cmake
│ │ └── FindUBSan.cmake
│ ├── version_config.h.in
│ ├── xgboost-config.cmake.in
│ └── xgboost.pc.in
├── demo/
│ ├── .gitignore
│ ├── README.md
│ ├── aft_survival/
│ │ ├── README.rst
│ │ ├── aft_survival_demo.py
│ │ ├── aft_survival_demo_with_optuna.py
│ │ └── aft_survival_viz_demo.py
│ ├── c-api/
│ │ ├── .gitignore
│ │ ├── basic/
│ │ │ ├── Makefile
│ │ │ ├── README.md
│ │ │ └── c-api-demo.c
│ │ ├── external-memory/
│ │ │ ├── README.md
│ │ │ └── external_memory.c
│ │ └── inference/
│ │ └── inference.c
│ ├── dask/
│ │ ├── README.rst
│ │ ├── cpu_survival.py
│ │ ├── cpu_training.py
│ │ ├── dask_callbacks.py
│ │ ├── dask_learning_to_rank.py
│ │ ├── forward_logging.py
│ │ ├── gpu_training.py
│ │ ├── sklearn_cpu_training.py
│ │ └── sklearn_gpu_training.py
│ ├── data/
│ │ ├── README.md
│ │ ├── gen_autoclaims.R
│ │ └── regression/
│ │ ├── README.md
│ │ ├── machine.names
│ │ ├── mapfeat.py
│ │ └── mknfold.py
│ ├── guide-python/
│ │ ├── README.rst
│ │ ├── basic_walkthrough.py
│ │ ├── boost_from_prediction.py
│ │ ├── callbacks.py
│ │ ├── cat_in_the_dat.py
│ │ ├── cat_pipeline.py
│ │ ├── categorical.py
│ │ ├── continuation.py
│ │ ├── cover_type.py
│ │ ├── cross_validation.py
│ │ ├── custom_rmsle.py
│ │ ├── custom_softmax.py
│ │ ├── distributed_extmem_basic.py
│ │ ├── evals_result.py
│ │ ├── external_memory.py
│ │ ├── feature_weights.py
│ │ ├── gamma_regression.py
│ │ ├── generalized_linear_model.py
│ │ ├── gpu_tree_shap.py
│ │ ├── individual_trees.py
│ │ ├── learning_to_rank.py
│ │ ├── model_parser.py
│ │ ├── multioutput_reduced_gradient.py
│ │ ├── multioutput_regression.py
│ │ ├── predict_first_ntree.py
│ │ ├── predict_leaf_indices.py
│ │ ├── quantile_data_iterator.py
│ │ ├── quantile_regression.py
│ │ ├── sklearn_evals_result.py
│ │ ├── sklearn_examples.py
│ │ ├── sklearn_parallel.py
│ │ ├── spark_estimator_examples.py
│ │ └── update_process.py
│ ├── kaggle-higgs/
│ │ ├── README.md
│ │ ├── higgs-cv.py
│ │ ├── higgs-numpy.py
│ │ ├── higgs-pred.R
│ │ ├── higgs-pred.py
│ │ ├── higgs-train.R
│ │ ├── run.sh
│ │ ├── speedtest.R
│ │ └── speedtest.py
│ ├── kaggle-otto/
│ │ ├── README.MD
│ │ ├── otto_train_pred.R
│ │ └── understandingXGBoostModel.Rmd
│ ├── multiclass_classification/
│ │ ├── README.md
│ │ ├── runexp.sh
│ │ ├── train.R
│ │ └── train.py
│ ├── nvflare/
│ │ ├── .gitignore
│ │ ├── README.md
│ │ ├── config/
│ │ │ ├── config_fed_client.json
│ │ │ └── config_fed_server.json
│ │ ├── horizontal/
│ │ │ ├── README.md
│ │ │ ├── custom/
│ │ │ │ ├── controller.py
│ │ │ │ └── trainer.py
│ │ │ └── prepare_data.sh
│ │ └── vertical/
│ │ ├── README.md
│ │ ├── custom/
│ │ │ ├── controller.py
│ │ │ └── trainer.py
│ │ └── prepare_data.sh
│ └── rmm_plugin/
│ ├── README.rst
│ ├── rmm_mgpu_with_dask.py
│ └── rmm_singlegpu.py
├── dev/
│ ├── prepare_jvm_release.py
│ └── query_contributors.py
├── doc/
│ ├── .gitignore
│ ├── Doxyfile.in
│ ├── Makefile
│ ├── R-package/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── adding_parameters.rst
│ │ ├── index.rst
│ │ ├── index_base.rst
│ │ ├── migration_guide.rst
│ │ └── r_docs/
│ │ └── index.rst
│ ├── README
│ ├── build.rst
│ ├── c++.rst
│ ├── c.rst
│ ├── changes/
│ │ ├── index.rst
│ │ ├── v2.1.0.rst
│ │ ├── v3.0.0.rst
│ │ ├── v3.1.0.rst
│ │ └── v3.2.0.rst
│ ├── conf.py
│ ├── contrib/
│ │ ├── ci.rst
│ │ ├── coding_guide.rst
│ │ ├── community.rst
│ │ ├── consistency.rst
│ │ ├── docs.rst
│ │ ├── donate.rst
│ │ ├── featuremap.rst
│ │ ├── git_guide.rst
│ │ ├── index.rst
│ │ ├── python_packaging.rst
│ │ ├── release.rst
│ │ └── unit_tests.rst
│ ├── dump.schema
│ ├── faq.rst
│ ├── get_started.rst
│ ├── gpu/
│ │ └── index.rst
│ ├── index.rst
│ ├── install.rst
│ ├── julia.rst
│ ├── jvm/
│ │ ├── api.rst
│ │ ├── index.rst
│ │ ├── java_intro.rst
│ │ ├── javadocs/
│ │ │ └── index.rst
│ │ ├── scaladocs/
│ │ │ ├── xgboost4j/
│ │ │ │ └── index.rst
│ │ │ ├── xgboost4j-flink/
│ │ │ │ └── index.rst
│ │ │ └── xgboost4j-spark/
│ │ │ └── index.rst
│ │ ├── xgboost4j_spark_gpu_tutorial.rst
│ │ ├── xgboost4j_spark_tutorial.rst
│ │ └── xgboost_spark_migration.rst
│ ├── parameter.rst
│ ├── prediction.rst
│ ├── python/
│ │ ├── .gitignore
│ │ ├── callbacks.rst
│ │ ├── data_input.rst
│ │ ├── index.rst
│ │ ├── python_api.rst
│ │ ├── python_intro.rst
│ │ └── sklearn_estimator.rst
│ ├── requirements.txt
│ ├── sphinx_util.py
│ ├── treemethod.rst
│ ├── tutorials/
│ │ ├── advanced_custom_obj.rst
│ │ ├── aft_survival_analysis.rst
│ │ ├── c_api_tutorial.rst
│ │ ├── categorical.rst
│ │ ├── custom_metric_obj.rst
│ │ ├── dart.rst
│ │ ├── dask.rst
│ │ ├── external_memory.rst
│ │ ├── feature_interaction_constraint.rst
│ │ ├── index.rst
│ │ ├── input_format.rst
│ │ ├── intercept.rst
│ │ ├── kubernetes.rst
│ │ ├── learning_to_rank.rst
│ │ ├── model.rst
│ │ ├── monotonic.rst
│ │ ├── multioutput.rst
│ │ ├── param_tuning.rst
│ │ ├── privacy_preserving.rst
│ │ ├── ray.rst
│ │ ├── rf.rst
│ │ ├── saving_model.rst
│ │ ├── slicing_model.rst
│ │ └── spark_estimator.rst
│ └── xgboost_doc.yml
├── include/
│ └── xgboost/
│ ├── base.h
│ ├── byteswap.h
│ ├── c_api.h
│ ├── cache.h
│ ├── collective/
│ │ ├── poll_utils.h
│ │ ├── result.h
│ │ └── socket.h
│ ├── context.h
│ ├── data.h
│ ├── feature_map.h
│ ├── gbm.h
│ ├── global_config.h
│ ├── gradient.h
│ ├── host_device_vector.h
│ ├── intrusive_ptr.h
│ ├── json.h
│ ├── json_io.h
│ ├── learner.h
│ ├── linalg.h
│ ├── linear_updater.h
│ ├── logging.h
│ ├── metric.h
│ ├── model.h
│ ├── multi_target_tree_model.h
│ ├── objective.h
│ ├── parameter.h
│ ├── predictor.h
│ ├── span.h
│ ├── string_view.h
│ ├── task.h
│ ├── tree_model.h
│ ├── tree_updater.h
│ ├── version_config.h
│ └── windefs.h
├── jvm-packages/
│ ├── .gitignore
│ ├── CMakeLists.txt
│ ├── README.md
│ ├── checkstyle-suppressions.xml
│ ├── checkstyle.xml
│ ├── create_jni.py
│ ├── pom.xml
│ ├── scalastyle-config.xml
│ ├── xgboost4j/
│ │ ├── LICENSE
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── ml/
│ │ │ │ └── dmlc/
│ │ │ │ └── xgboost4j/
│ │ │ │ ├── LabeledPoint.java
│ │ │ │ └── java/
│ │ │ │ ├── Booster.java
│ │ │ │ ├── Column.java
│ │ │ │ ├── ColumnBatch.java
│ │ │ │ ├── Communicator.java
│ │ │ │ ├── ConfigContext.java
│ │ │ │ ├── DMatrix.java
│ │ │ │ ├── DataBatch.java
│ │ │ │ ├── ExternalCheckpointManager.java
│ │ │ │ ├── IEvaluation.java
│ │ │ │ ├── IObjective.java
│ │ │ │ ├── ITracker.java
│ │ │ │ ├── NativeLibLoader.java
│ │ │ │ ├── RabitTracker.java
│ │ │ │ ├── XGBoost.java
│ │ │ │ ├── XGBoostError.java
│ │ │ │ ├── XGBoostJNI.java
│ │ │ │ └── util/
│ │ │ │ ├── BigDenseMatrix.java
│ │ │ │ └── UtilUnsafe.java
│ │ │ ├── resources/
│ │ │ │ └── xgboost4j-version.properties
│ │ │ └── scala/
│ │ │ └── ml/
│ │ │ └── dmlc/
│ │ │ └── xgboost4j/
│ │ │ └── scala/
│ │ │ ├── Booster.scala
│ │ │ ├── DMatrix.scala
│ │ │ ├── EvalTrait.scala
│ │ │ ├── ExternalCheckpointManager.scala
│ │ │ ├── ObjectiveTrait.scala
│ │ │ └── XGBoost.scala
│ │ ├── native/
│ │ │ ├── jvm_utils.h
│ │ │ ├── xgboost4j-gpu.cpp
│ │ │ ├── xgboost4j-gpu.cu
│ │ │ ├── xgboost4j.cpp
│ │ │ └── xgboost4j.h
│ │ └── test/
│ │ ├── java/
│ │ │ └── ml/
│ │ │ └── dmlc/
│ │ │ └── xgboost4j/
│ │ │ └── java/
│ │ │ ├── ArchDetectionTest.java
│ │ │ ├── BoosterImplTest.java
│ │ │ ├── ConfigContextTest.java
│ │ │ ├── DMatrixTest.java
│ │ │ ├── LibraryPathProviderTest.java
│ │ │ ├── OsDetectionTest.java
│ │ │ └── XGBoostTest.java
│ │ └── scala/
│ │ └── ml/
│ │ └── dmlc/
│ │ └── xgboost4j/
│ │ └── scala/
│ │ ├── DMatrixSuite.scala
│ │ └── ScalaBoosterImplSuite.scala
│ ├── xgboost4j-example/
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── ml/
│ │ │ │ └── dmlc/
│ │ │ │ └── xgboost4j/
│ │ │ │ └── java/
│ │ │ │ └── example/
│ │ │ │ ├── BasicWalkThrough.java
│ │ │ │ ├── BoostFromPrediction.java
│ │ │ │ ├── CrossValidation.java
│ │ │ │ ├── CustomObjective.java
│ │ │ │ ├── EarlyStopping.java
│ │ │ │ ├── GeneralizedLinearModel.java
│ │ │ │ ├── PredictFirstNtree.java
│ │ │ │ ├── PredictLeafIndices.java
│ │ │ │ ├── flink/
│ │ │ │ │ └── DistTrainWithFlinkExample.java
│ │ │ │ └── util/
│ │ │ │ ├── CustomEval.java
│ │ │ │ └── DataLoader.java
│ │ │ └── scala/
│ │ │ └── ml/
│ │ │ └── dmlc/
│ │ │ └── xgboost4j/
│ │ │ └── scala/
│ │ │ └── example/
│ │ │ ├── BasicWalkThrough.scala
│ │ │ ├── BoostFromPrediction.scala
│ │ │ ├── CrossValidation.scala
│ │ │ ├── CustomObjective.scala
│ │ │ ├── GeneralizedLinearModel.scala
│ │ │ ├── PredictFirstNTree.scala
│ │ │ ├── PredictLeafIndices.scala
│ │ │ ├── flink/
│ │ │ │ └── DistTrainWithFlink.scala
│ │ │ ├── spark/
│ │ │ │ ├── SparkMLlibPipeline.scala
│ │ │ │ └── SparkTraining.scala
│ │ │ └── util/
│ │ │ └── CustomEval.scala
│ │ └── test/
│ │ ├── java/
│ │ │ └── ml/
│ │ │ └── dmlc/
│ │ │ └── xgboost4j/
│ │ │ └── java/
│ │ │ └── example/
│ │ │ └── JavaExamplesTest.java
│ │ └── scala/
│ │ └── ml/
│ │ └── dmlc/
│ │ └── xgboost4j/
│ │ ├── java/
│ │ │ └── example/
│ │ │ └── flink/
│ │ │ └── DistTrainWithFlinkExampleTest.scala
│ │ └── scala/
│ │ └── example/
│ │ ├── ScalaExamplesTest.scala
│ │ ├── flink/
│ │ │ └── DistTrainWithFlinkSuite.scala
│ │ └── spark/
│ │ └── SparkExamplesTest.scala
│ ├── xgboost4j-flink/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── ml/
│ │ └── dmlc/
│ │ └── xgboost4j/
│ │ └── java/
│ │ └── flink/
│ │ ├── XGBoost.java
│ │ └── XGBoostModel.java
│ ├── xgboost4j-spark/
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ └── scala/
│ │ │ ├── ml/
│ │ │ │ └── dmlc/
│ │ │ │ └── xgboost4j/
│ │ │ │ └── scala/
│ │ │ │ └── spark/
│ │ │ │ ├── Utils.scala
│ │ │ │ ├── XGBoost.scala
│ │ │ │ ├── XGBoostClassifier.scala
│ │ │ │ ├── XGBoostEstimator.scala
│ │ │ │ ├── XGBoostPlugin.scala
│ │ │ │ ├── XGBoostRanker.scala
│ │ │ │ ├── XGBoostRegressor.scala
│ │ │ │ ├── XGBoostTrainingSummary.scala
│ │ │ │ ├── package.scala
│ │ │ │ └── params/
│ │ │ │ ├── CustomParams.scala
│ │ │ │ ├── DartBoosterParams.scala
│ │ │ │ ├── GeneralParams.scala
│ │ │ │ ├── LearningTaskParams.scala
│ │ │ │ ├── ParamMapConversion.scala
│ │ │ │ ├── RabitParams.scala
│ │ │ │ ├── TreeBoosterParams.scala
│ │ │ │ └── XGBoostParams.scala
│ │ │ └── org/
│ │ │ └── apache/
│ │ │ └── spark/
│ │ │ └── ml/
│ │ │ └── xgboost/
│ │ │ └── SparkUtils.scala
│ │ └── test/
│ │ ├── resources/
│ │ │ ├── log4j.properties
│ │ │ ├── model/
│ │ │ │ └── 0.82/
│ │ │ │ └── model/
│ │ │ │ ├── data/
│ │ │ │ │ └── XGBoostClassificationModel
│ │ │ │ └── metadata/
│ │ │ │ ├── _SUCCESS
│ │ │ │ └── part-00000
│ │ │ └── rank.test.txt
│ │ └── scala/
│ │ └── ml/
│ │ └── dmlc/
│ │ └── xgboost4j/
│ │ └── scala/
│ │ └── spark/
│ │ ├── CommunicatorRobustnessSuite.scala
│ │ ├── CustomObj.scala
│ │ ├── EvalError.scala
│ │ ├── PerTest.scala
│ │ ├── TmpFolderPerSuite.scala
│ │ ├── TrainTestData.scala
│ │ ├── XGBoostClassifierSuite.scala
│ │ ├── XGBoostEstimatorSuite.scala
│ │ ├── XGBoostParamsSuite.scala
│ │ ├── XGBoostRankerSuite.scala
│ │ ├── XGBoostRegressorSuite.scala
│ │ └── XGBoostSuite.scala
│ └── xgboost4j-spark-gpu/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── ml/
│ │ │ └── dmlc/
│ │ │ └── xgboost4j/
│ │ │ └── java/
│ │ │ ├── CudfColumn.java
│ │ │ ├── CudfColumnBatch.java
│ │ │ ├── ExtMemQuantileDMatrix.java
│ │ │ └── QuantileDMatrix.java
│ │ ├── resources/
│ │ │ └── META-INF/
│ │ │ └── services/
│ │ │ └── ml.dmlc.xgboost4j.scala.spark.XGBoostPlugin
│ │ └── scala/
│ │ └── ml/
│ │ └── dmlc/
│ │ └── xgboost4j/
│ │ └── scala/
│ │ ├── ExtMemQuantileDMatrix.scala
│ │ ├── QuantileDMatrix.scala
│ │ └── spark/
│ │ ├── ExternalMemory.scala
│ │ └── GpuXGBoostPlugin.scala
│ └── test/
│ ├── java/
│ │ └── ml/
│ │ └── dmlc/
│ │ └── xgboost4j/
│ │ └── java/
│ │ ├── BoosterTest.java
│ │ └── DMatrixTest.java
│ ├── resources/
│ │ └── log4j.properties
│ └── scala/
│ ├── ml/
│ │ └── dmlc/
│ │ └── xgboost4j/
│ │ └── scala/
│ │ ├── ExtMemQuantileDMatrixSuite.scala
│ │ ├── QuantileDMatrixSuite.scala
│ │ └── spark/
│ │ ├── ExternalMemorySuite.scala
│ │ ├── GpuTestSuite.scala
│ │ ├── GpuXGBoostPluginSuite.scala
│ │ └── TrainTestData.scala
│ └── org/
│ └── apache/
│ └── spark/
│ └── GpuTestUtils.scala
├── ops/
│ ├── conda_env/
│ │ ├── aarch64_test.yml
│ │ ├── cpp_test.yml
│ │ ├── linux_cpu_test.yml
│ │ ├── linux_sycl_test.yml
│ │ ├── macos_cpu_test.yml
│ │ ├── minimal.yml
│ │ ├── python_lint.yml
│ │ ├── sdist_test.yml
│ │ └── win64_test.yml
│ ├── docker_run.py
│ ├── pipeline/
│ │ ├── audit-cuda-wheel.sh
│ │ ├── build-cpu.sh
│ │ ├── build-cuda-impl.sh
│ │ ├── build-cuda.sh
│ │ ├── build-gpu-rpkg.sh
│ │ ├── build-jvm-doc.sh
│ │ ├── build-jvm-gpu.sh
│ │ ├── build-jvm-macos.sh
│ │ ├── build-jvm-manylinux2014.sh
│ │ ├── build-python-wheels-arm64-impl.sh
│ │ ├── build-python-wheels-cpu.sh
│ │ ├── build-python-wheels-macos.sh
│ │ ├── build-r-docs.sh
│ │ ├── build-test-jvm-packages.sh
│ │ ├── build-test-sycl.sh
│ │ ├── build-variant-wheels-impl.sh
│ │ ├── build-variant-wheels.sh
│ │ ├── build-win64.ps1
│ │ ├── classify-git-branch.sh
│ │ ├── deploy-jvm-packages.sh
│ │ ├── enforce-ci.ps1
│ │ ├── enforce-ci.sh
│ │ ├── get-docker-registry-details.sh
│ │ ├── get-image-tag.sh
│ │ ├── login-docker-registry.sh
│ │ ├── manage-artifacts.py
│ │ ├── nightly-test-cccl-impl.sh
│ │ ├── nightly-test-cccl.sh
│ │ ├── nightly-test-rmm-impl.sh
│ │ ├── nightly-test-rmm.sh
│ │ ├── query-latest-cccl.sh
│ │ ├── query-latest-rmm.sh
│ │ ├── run-clang-tidy.sh
│ │ ├── test-c-api-demo.sh
│ │ ├── test-cpp-i386.sh
│ │ ├── test-freebsd.sh
│ │ ├── test-python-macos.sh
│ │ ├── test-python-sdist.sh
│ │ ├── test-python-wheel.sh
│ │ ├── test-python-with-sysprefix.sh
│ │ ├── test-win64-gpu.ps1
│ │ ├── trigger-rtd-impl.py
│ │ └── trigger-rtd.sh
│ └── script/
│ ├── change_scala_version.py
│ ├── change_version.py
│ ├── changelog.py
│ ├── format_wheel_meta.py
│ ├── inject_jvm_lib.sh
│ ├── lint_cpp.py
│ ├── lint_r.R
│ ├── pypi_variants.py
│ ├── release_artifacts.py
│ ├── run_clang_tidy.py
│ ├── setup_r_sccache.sh
│ ├── test_r_package.py
│ ├── test_tidy.cc
│ ├── test_utils.py
│ ├── type_check_python.py
│ └── verify_link.sh
├── plugin/
│ ├── CMakeLists.txt
│ ├── README.md
│ ├── example/
│ │ ├── README.md
│ │ └── custom_obj.cc
│ ├── federated/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── federated.proto
│ │ ├── federated_coll.cc
│ │ ├── federated_coll.cu
│ │ ├── federated_coll.cuh
│ │ ├── federated_coll.h
│ │ ├── federated_comm.cc
│ │ ├── federated_comm.cu
│ │ ├── federated_comm.cuh
│ │ ├── federated_comm.h
│ │ ├── federated_tracker.cc
│ │ └── federated_tracker.h
│ ├── sycl/
│ │ ├── README.md
│ │ ├── common/
│ │ │ ├── hist_util.cc
│ │ │ ├── hist_util.h
│ │ │ ├── host_device_vector.cc
│ │ │ ├── linalg_op.cc
│ │ │ ├── linalg_op.h
│ │ │ ├── optional_weight.cc
│ │ │ ├── partition_builder.h
│ │ │ ├── row_set.h
│ │ │ ├── stats.cc
│ │ │ └── transform.h
│ │ ├── context_helper.cc
│ │ ├── context_helper.h
│ │ ├── data/
│ │ │ ├── gradient_index.cc
│ │ │ └── gradient_index.h
│ │ ├── data.h
│ │ ├── device_manager.cc
│ │ ├── device_manager.h
│ │ ├── device_properties.h
│ │ ├── predictor/
│ │ │ ├── node.h
│ │ │ └── predictor.cc
│ │ └── tree/
│ │ ├── expand_entry.h
│ │ ├── hist_dispatcher.h
│ │ ├── hist_row_adder.h
│ │ ├── hist_synchronizer.h
│ │ ├── hist_updater.cc
│ │ ├── hist_updater.h
│ │ ├── param.h
│ │ ├── split_evaluator.h
│ │ ├── updater_quantile_hist.cc
│ │ └── updater_quantile_hist.h
│ └── updater_gpu/
│ └── README.md
├── python-package/
│ ├── .gitignore
│ ├── README.cpu.rst
│ ├── README.dft.rst
│ ├── README.rst
│ ├── README.stub.rst
│ ├── hatch_build.py
│ ├── packager/
│ │ ├── __init__.py
│ │ ├── build_config.py
│ │ ├── nativelib.py
│ │ ├── pep517.py
│ │ ├── sdist.py
│ │ └── util.py
│ ├── pyproject.toml
│ ├── pyproject.toml.in
│ ├── pyproject.toml.stub.in
│ └── xgboost/
│ ├── VERSION
│ ├── __init__.py
│ ├── _c_api.py
│ ├── _data_utils.py
│ ├── _typing.py
│ ├── callback.py
│ ├── collective.py
│ ├── compat.py
│ ├── config.py
│ ├── core.py
│ ├── dask/
│ │ ├── __init__.py
│ │ ├── data.py
│ │ └── utils.py
│ ├── data.py
│ ├── federated.py
│ ├── libpath.py
│ ├── objective.py
│ ├── plotting.py
│ ├── py.typed
│ ├── sklearn.py
│ ├── spark/
│ │ ├── __init__.py
│ │ ├── core.py
│ │ ├── data.py
│ │ ├── estimator.py
│ │ ├── params.py
│ │ ├── summary.py
│ │ └── utils.py
│ ├── testing/
│ │ ├── __init__.py
│ │ ├── basic_models.py
│ │ ├── callbacks.py
│ │ ├── collective.py
│ │ ├── continuation.py
│ │ ├── dask.py
│ │ ├── data.py
│ │ ├── data_iter.py
│ │ ├── federated.py
│ │ ├── interaction_constraints.py
│ │ ├── intercept.py
│ │ ├── metrics.py
│ │ ├── monotone_constraints.py
│ │ ├── multi_target.py
│ │ ├── ordinal.py
│ │ ├── params.py
│ │ ├── parse_tree.py
│ │ ├── plotting.py
│ │ ├── predict.py
│ │ ├── quantile_dmatrix.py
│ │ ├── ranking.py
│ │ ├── shared.py
│ │ ├── updater.py
│ │ ├── utils.py
│ │ └── with_skl.py
│ ├── tracker.py
│ └── training.py
├── src/
│ ├── CMakeLists.txt
│ ├── c_api/
│ │ ├── c_api.cc
│ │ ├── c_api.cu
│ │ ├── c_api_error.cc
│ │ ├── c_api_error.h
│ │ ├── c_api_utils.h
│ │ └── coll_c_api.cc
│ ├── collective/
│ │ ├── aggregator.cuh
│ │ ├── aggregator.h
│ │ ├── allgather.cc
│ │ ├── allgather.h
│ │ ├── allreduce.cc
│ │ ├── allreduce.h
│ │ ├── broadcast.cc
│ │ ├── broadcast.h
│ │ ├── coll.cc
│ │ ├── coll.cu
│ │ ├── coll.cuh
│ │ ├── coll.h
│ │ ├── comm.cc
│ │ ├── comm.cu
│ │ ├── comm.cuh
│ │ ├── comm.h
│ │ ├── comm_group.cc
│ │ ├── comm_group.h
│ │ ├── communicator-inl.h
│ │ ├── in_memory_communicator.h
│ │ ├── in_memory_handler.cc
│ │ ├── in_memory_handler.h
│ │ ├── loop.cc
│ │ ├── loop.h
│ │ ├── nccl_stub.cc
│ │ ├── nccl_stub.h
│ │ ├── protocol.h
│ │ ├── result.cc
│ │ ├── socket.cc
│ │ ├── topo.h
│ │ ├── tracker.cc
│ │ └── tracker.h
│ ├── common/
│ │ ├── algorithm.cuh
│ │ ├── algorithm.h
│ │ ├── api_entry.h
│ │ ├── base64.h
│ │ ├── bitfield.h
│ │ ├── cache_manager.cc
│ │ ├── cache_manager.h
│ │ ├── categorical.h
│ │ ├── charconv.cc
│ │ ├── charconv.h
│ │ ├── column_matrix.cc
│ │ ├── column_matrix.h
│ │ ├── common.cc
│ │ ├── common.cu
│ │ ├── common.h
│ │ ├── compressed_iterator.h
│ │ ├── cuda_context.cuh
│ │ ├── cuda_dr_utils.cc
│ │ ├── cuda_dr_utils.h
│ │ ├── cuda_pinned_allocator.cu
│ │ ├── cuda_pinned_allocator.h
│ │ ├── cuda_rt_utils.cc
│ │ ├── cuda_rt_utils.h
│ │ ├── cuda_stream.h
│ │ ├── cuda_stream_pool.h
│ │ ├── deterministic.cuh
│ │ ├── device_compression.cu
│ │ ├── device_compression.cuh
│ │ ├── device_compression.h
│ │ ├── device_debug.cuh
│ │ ├── device_helpers.cu
│ │ ├── device_helpers.cuh
│ │ ├── device_vector.cu
│ │ ├── device_vector.cuh
│ │ ├── error_msg.cc
│ │ ├── error_msg.h
│ │ ├── expectile_loss_utils.cc
│ │ ├── expectile_loss_utils.h
│ │ ├── group_data.h
│ │ ├── hist_util.cc
│ │ ├── hist_util.cu
│ │ ├── hist_util.cuh
│ │ ├── hist_util.h
│ │ ├── host_device_vector.cc
│ │ ├── host_device_vector.cu
│ │ ├── io.cc
│ │ ├── io.h
│ │ ├── json.cc
│ │ ├── json_utils.h
│ │ ├── linalg_op.cc
│ │ ├── linalg_op.cu
│ │ ├── linalg_op.cuh
│ │ ├── linalg_op.h
│ │ ├── math.h
│ │ ├── numa_topo.cc
│ │ ├── numa_topo.h
│ │ ├── numeric.cc
│ │ ├── numeric.cu
│ │ ├── numeric.h
│ │ ├── nvtx_utils.h
│ │ ├── observer.h
│ │ ├── optional_weight.cc
│ │ ├── optional_weight.cu
│ │ ├── optional_weight.h
│ │ ├── param_array.cc
│ │ ├── param_array.h
│ │ ├── partition_builder.h
│ │ ├── probability_distribution.h
│ │ ├── pseudo_huber.cc
│ │ ├── pseudo_huber.h
│ │ ├── quantile.cc
│ │ ├── quantile.cu
│ │ ├── quantile.cuh
│ │ ├── quantile.h
│ │ ├── quantile_loss_utils.cc
│ │ ├── quantile_loss_utils.h
│ │ ├── random.cc
│ │ ├── random.cu
│ │ ├── random.h
│ │ ├── ranking_utils.cc
│ │ ├── ranking_utils.cu
│ │ ├── ranking_utils.cuh
│ │ ├── ranking_utils.h
│ │ ├── ref_resource_view.cuh
│ │ ├── ref_resource_view.h
│ │ ├── resource.cu
│ │ ├── resource.cuh
│ │ ├── row_set.h
│ │ ├── stats.cc
│ │ ├── stats.cu
│ │ ├── stats.cuh
│ │ ├── stats.h
│ │ ├── survival_util.cc
│ │ ├── survival_util.h
│ │ ├── threading_utils.cc
│ │ ├── threading_utils.cuh
│ │ ├── threading_utils.h
│ │ ├── threadpool.h
│ │ ├── timer.cc
│ │ ├── timer.h
│ │ ├── transform.h
│ │ ├── transform_iterator.h
│ │ ├── type.h
│ │ ├── utils.h
│ │ ├── version.cc
│ │ └── version.h
│ ├── context.cc
│ ├── context.cu
│ ├── data/
│ │ ├── adapter.cc
│ │ ├── adapter.h
│ │ ├── array_interface.cc
│ │ ├── array_interface.cu
│ │ ├── array_interface.h
│ │ ├── batch_utils.cc
│ │ ├── batch_utils.h
│ │ ├── cat_container.cc
│ │ ├── cat_container.cu
│ │ ├── cat_container.cuh
│ │ ├── cat_container.h
│ │ ├── columnar.h
│ │ ├── data.cc
│ │ ├── data.cu
│ │ ├── device_adapter.cu
│ │ ├── device_adapter.cuh
│ │ ├── ellpack_page.cc
│ │ ├── ellpack_page.cu
│ │ ├── ellpack_page.cuh
│ │ ├── ellpack_page.h
│ │ ├── ellpack_page_raw_format.cu
│ │ ├── ellpack_page_raw_format.h
│ │ ├── ellpack_page_source.cu
│ │ ├── ellpack_page_source.h
│ │ ├── entry.h
│ │ ├── extmem_quantile_dmatrix.cc
│ │ ├── extmem_quantile_dmatrix.cu
│ │ ├── extmem_quantile_dmatrix.h
│ │ ├── file_iterator.cc
│ │ ├── file_iterator.h
│ │ ├── gradient_index.cc
│ │ ├── gradient_index.cu
│ │ ├── gradient_index.h
│ │ ├── gradient_index_format.cc
│ │ ├── gradient_index_format.h
│ │ ├── gradient_index_page_source.cc
│ │ ├── gradient_index_page_source.h
│ │ ├── iterative_dmatrix.cc
│ │ ├── iterative_dmatrix.cu
│ │ ├── iterative_dmatrix.h
│ │ ├── metainfo.cc
│ │ ├── metainfo.cu
│ │ ├── metainfo.h
│ │ ├── proxy_dmatrix.cc
│ │ ├── proxy_dmatrix.cu
│ │ ├── proxy_dmatrix.cuh
│ │ ├── proxy_dmatrix.h
│ │ ├── quantile_dmatrix.cc
│ │ ├── quantile_dmatrix.cu
│ │ ├── quantile_dmatrix.h
│ │ ├── simple_batch_iterator.h
│ │ ├── simple_dmatrix.cc
│ │ ├── simple_dmatrix.cu
│ │ ├── simple_dmatrix.cuh
│ │ ├── simple_dmatrix.h
│ │ ├── sparse_page_dmatrix.cc
│ │ ├── sparse_page_dmatrix.cu
│ │ ├── sparse_page_dmatrix.h
│ │ ├── sparse_page_raw_format.cc
│ │ ├── sparse_page_source.cc
│ │ ├── sparse_page_source.cu
│ │ ├── sparse_page_source.h
│ │ └── sparse_page_writer.h
│ ├── encoder/
│ │ ├── ordinal.cuh
│ │ ├── ordinal.h
│ │ └── types.h
│ ├── gbm/
│ │ ├── gblinear.cc
│ │ ├── gblinear_model.cc
│ │ ├── gblinear_model.h
│ │ ├── gbm.cc
│ │ ├── gbtree.cc
│ │ ├── gbtree.cu
│ │ ├── gbtree.h
│ │ ├── gbtree_model.cc
│ │ └── gbtree_model.h
│ ├── global_config.cc
│ ├── learner.cc
│ ├── linear/
│ │ ├── coordinate_common.h
│ │ ├── linear_updater.cc
│ │ ├── param.h
│ │ ├── updater_coordinate.cc
│ │ ├── updater_gpu_coordinate.cu
│ │ └── updater_shotgun.cc
│ ├── logging.cc
│ ├── metric/
│ │ ├── auc.cc
│ │ ├── auc.cu
│ │ ├── auc.h
│ │ ├── elementwise_metric.cc
│ │ ├── elementwise_metric.cu
│ │ ├── metric.cc
│ │ ├── metric_common.h
│ │ ├── multiclass_metric.cc
│ │ ├── multiclass_metric.cu
│ │ ├── rank_metric.cc
│ │ ├── rank_metric.cu
│ │ ├── rank_metric.h
│ │ ├── survival_metric.cc
│ │ └── survival_metric.cu
│ ├── objective/
│ │ ├── adaptive.cc
│ │ ├── adaptive.cu
│ │ ├── adaptive.h
│ │ ├── aft_obj.cc
│ │ ├── aft_obj.cu
│ │ ├── hinge.cc
│ │ ├── hinge.cu
│ │ ├── init_estimation.cc
│ │ ├── init_estimation.h
│ │ ├── lambdarank_obj.cc
│ │ ├── lambdarank_obj.cu
│ │ ├── lambdarank_obj.cuh
│ │ ├── lambdarank_obj.h
│ │ ├── multiclass_obj.cc
│ │ ├── multiclass_obj.cu
│ │ ├── multiclass_param.h
│ │ ├── objective.cc
│ │ ├── quantile_obj.cc
│ │ ├── quantile_obj.cu
│ │ ├── regression_loss.h
│ │ ├── regression_obj.cc
│ │ ├── regression_obj.cu
│ │ └── regression_param.h
│ ├── predictor/
│ │ ├── array_tree_layout.h
│ │ ├── cpu_predictor.cc
│ │ ├── data_accessor.h
│ │ ├── gbtree_view.h
│ │ ├── gpu_data_accessor.cuh
│ │ ├── gpu_predictor.cu
│ │ ├── interpretability/
│ │ │ ├── shap.cc
│ │ │ ├── shap.cu
│ │ │ └── shap.h
│ │ ├── predict_fn.h
│ │ ├── predictor.cc
│ │ ├── predictor.cu
│ │ ├── treeshap.cc
│ │ ├── treeshap.h
│ │ └── utils.h
│ └── tree/
│ ├── common_row_partitioner.h
│ ├── constraints.cc
│ ├── constraints.cu
│ ├── constraints.cuh
│ ├── constraints.h
│ ├── driver.h
│ ├── fit_stump.cc
│ ├── fit_stump.cu
│ ├── fit_stump.h
│ ├── gpu_hist/
│ │ ├── evaluate_splits.cu
│ │ ├── evaluate_splits.cuh
│ │ ├── evaluator.cu
│ │ ├── expand_entry.cu
│ │ ├── expand_entry.cuh
│ │ ├── feature_groups.cu
│ │ ├── feature_groups.cuh
│ │ ├── histogram.cu
│ │ ├── histogram.cuh
│ │ ├── leaf_sum.cu
│ │ ├── leaf_sum.cuh
│ │ ├── multi_evaluate_splits.cu
│ │ ├── multi_evaluate_splits.cuh
│ │ ├── quantiser.cu
│ │ ├── quantiser.cuh
│ │ ├── row_partitioner.cu
│ │ ├── row_partitioner.cuh
│ │ ├── sampler.cu
│ │ └── sampler.cuh
│ ├── hist/
│ │ ├── evaluate_splits.h
│ │ ├── expand_entry.h
│ │ ├── hist_cache.h
│ │ ├── hist_param.cc
│ │ ├── hist_param.h
│ │ ├── histogram.cc
│ │ ├── histogram.h
│ │ ├── sampler.cc
│ │ └── sampler.h
│ ├── io_utils.h
│ ├── multi_target_tree_model.cc
│ ├── param.cc
│ ├── param.h
│ ├── sample_position.h
│ ├── split_evaluator.h
│ ├── tree_model.cc
│ ├── tree_updater.cc
│ ├── tree_view.cc
│ ├── tree_view.h
│ ├── updater_approx.cc
│ ├── updater_colmaker.cc
│ ├── updater_gpu_common.cuh
│ ├── updater_gpu_hist.cu
│ ├── updater_gpu_hist.cuh
│ ├── updater_prune.cc
│ ├── updater_quantile_hist.cc
│ ├── updater_refresh.cc
│ └── updater_sync.cc
└── tests/
├── README.md
├── cpp/
│ ├── CMakeLists.txt
│ ├── c_api/
│ │ └── test_c_api.cc
│ ├── categorical_helpers.h
│ ├── collective/
│ │ ├── test_allgather.cc
│ │ ├── test_allgather.cu
│ │ ├── test_allreduce.cc
│ │ ├── test_allreduce.cu
│ │ ├── test_broadcast.cc
│ │ ├── test_coll_c_api.cc
│ │ ├── test_comm.cc
│ │ ├── test_comm_group.cc
│ │ ├── test_loop.cc
│ │ ├── test_result.cc
│ │ ├── test_socket.cc
│ │ ├── test_tracker.cc
│ │ ├── test_worker.cuh
│ │ └── test_worker.h
│ ├── common/
│ │ ├── test_algorithm.cc
│ │ ├── test_algorithm.cu
│ │ ├── test_bitfield.cc
│ │ ├── test_bitfield.cu
│ │ ├── test_categorical.cc
│ │ ├── test_charconv.cc
│ │ ├── test_column_matrix.cc
│ │ ├── test_common.cc
│ │ ├── test_compressed_iterator.cc
│ │ ├── test_cuda_dr_utils.cc
│ │ ├── test_cuda_host_allocator.cu
│ │ ├── test_cuda_rt_utils.cu
│ │ ├── test_device_compression.cu
│ │ ├── test_device_helpers.cu
│ │ ├── test_device_vector.cu
│ │ ├── test_gpu_compressed_iterator.cu
│ │ ├── test_group_data.cc
│ │ ├── test_hist_util.cc
│ │ ├── test_hist_util.cu
│ │ ├── test_hist_util.h
│ │ ├── test_host_device_vector.cu
│ │ ├── test_intrusive_ptr.cc
│ │ ├── test_io.cc
│ │ ├── test_json.cc
│ │ ├── test_linalg.cc
│ │ ├── test_linalg.cu
│ │ ├── test_linalg.h
│ │ ├── test_math.cc
│ │ ├── test_monitor.cc
│ │ ├── test_numa_topo.cc
│ │ ├── test_numeric.cc
│ │ ├── test_optional_weight.cc
│ │ ├── test_param_array.cc
│ │ ├── test_parameter.cc
│ │ ├── test_partition_builder.cc
│ │ ├── test_probability_distribution.cc
│ │ ├── test_quantile.cc
│ │ ├── test_quantile.cu
│ │ ├── test_quantile.h
│ │ ├── test_quantile_utils.cc
│ │ ├── test_random.cc
│ │ ├── test_ranking_utils.cc
│ │ ├── test_ranking_utils.cu
│ │ ├── test_ranking_utils.h
│ │ ├── test_ref_resource_view.cc
│ │ ├── test_ref_resource_view.cu
│ │ ├── test_span.cc
│ │ ├── test_span.cu
│ │ ├── test_span.h
│ │ ├── test_stats.cc
│ │ ├── test_stats.cu
│ │ ├── test_string_view.cc
│ │ ├── test_survival_util.cc
│ │ ├── test_threading_utils.cc
│ │ ├── test_threading_utils.cu
│ │ ├── test_threadpool.cc
│ │ ├── test_transform_iterator.cc
│ │ ├── test_transform_range.cc
│ │ ├── test_transform_range.cu
│ │ └── test_version.cc
│ ├── data/
│ │ ├── test_adapter.cc
│ │ ├── test_array_interface.cc
│ │ ├── test_array_interface.cu
│ │ ├── test_array_interface.h
│ │ ├── test_batch_utils.cu
│ │ ├── test_cat_container.cc
│ │ ├── test_cat_container.cu
│ │ ├── test_cat_container.h
│ │ ├── test_data.cc
│ │ ├── test_device_adapter.cu
│ │ ├── test_ellpack_page.cu
│ │ ├── test_ellpack_page_raw_format.cu
│ │ ├── test_extmem_quantile_dmatrix.cc
│ │ ├── test_extmem_quantile_dmatrix.cu
│ │ ├── test_extmem_quantile_dmatrix.h
│ │ ├── test_file_iterator.cc
│ │ ├── test_gradient_index.cc
│ │ ├── test_gradient_index_page_raw_format.cc
│ │ ├── test_iterative_dmatrix.cc
│ │ ├── test_iterative_dmatrix.cu
│ │ ├── test_iterative_dmatrix.h
│ │ ├── test_metainfo.cc
│ │ ├── test_metainfo.cu
│ │ ├── test_metainfo.h
│ │ ├── test_proxy_dmatrix.cc
│ │ ├── test_proxy_dmatrix.cu
│ │ ├── test_simple_dmatrix.cc
│ │ ├── test_simple_dmatrix.cu
│ │ ├── test_sparse_page_dmatrix.cc
│ │ ├── test_sparse_page_dmatrix.cu
│ │ └── test_sparse_page_raw_format.cc
│ ├── encoder/
│ │ ├── df_mock.cuh
│ │ ├── df_mock.h
│ │ ├── test_ordinal.cc
│ │ ├── test_ordinal.cu
│ │ └── test_ordinal.h
│ ├── filesystem.cc
│ ├── filesystem.h
│ ├── gbm/
│ │ ├── test_gblinear.cc
│ │ ├── test_gblinear.cu
│ │ ├── test_gbtree.cc
│ │ └── test_gbtree.cu
│ ├── helpers.cc
│ ├── helpers.cu
│ ├── helpers.h
│ ├── histogram_helpers.cu
│ ├── histogram_helpers.h
│ ├── linear/
│ │ ├── test_json_io.h
│ │ ├── test_linear.cc
│ │ └── test_linear.cu
│ ├── metric/
│ │ ├── test_auc.h
│ │ ├── test_distributed_metric.cc
│ │ ├── test_elementwise_metric.h
│ │ ├── test_metric.cc
│ │ ├── test_multiclass_metric.h
│ │ ├── test_rank_metric.cc
│ │ ├── test_rank_metric.h
│ │ ├── test_survival_metric.cc
│ │ ├── test_survival_metric.cu
│ │ └── test_survival_metric.h
│ ├── objective/
│ │ ├── test_aft_obj.cc
│ │ ├── test_aft_obj.cu
│ │ ├── test_aft_obj.h
│ │ ├── test_aft_obj_cpu.cc
│ │ ├── test_hinge.cc
│ │ ├── test_hinge.cu
│ │ ├── test_hinge.h
│ │ ├── test_hinge_cpu.cc
│ │ ├── test_lambdarank_obj.cc
│ │ ├── test_lambdarank_obj.cu
│ │ ├── test_lambdarank_obj.h
│ │ ├── test_multiclass_obj.cc
│ │ ├── test_multiclass_obj.h
│ │ ├── test_multiclass_obj_cpu.cc
│ │ ├── test_multiclass_obj_gpu.cu
│ │ ├── test_objective.cc
│ │ ├── test_objective_helpers.h
│ │ ├── test_quantile_obj.cc
│ │ ├── test_quantile_obj.h
│ │ ├── test_quantile_obj_cpu.cc
│ │ ├── test_quantile_obj_gpu.cu
│ │ ├── test_regression_obj.cc
│ │ ├── test_regression_obj.h
│ │ ├── test_regression_obj_cpu.cc
│ │ └── test_regression_obj_gpu.cu
│ ├── objective_helpers.cc
│ ├── objective_helpers.h
│ ├── plugin/
│ │ ├── federated/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── test_federated_coll.cc
│ │ │ ├── test_federated_coll.cu
│ │ │ ├── test_federated_comm.cc
│ │ │ ├── test_federated_comm_group.cc
│ │ │ ├── test_federated_comm_group.cu
│ │ │ ├── test_federated_data.cc
│ │ │ ├── test_federated_learner.cc
│ │ │ ├── test_federated_tracker.cc
│ │ │ └── test_worker.h
│ │ ├── sycl_helpers.h
│ │ ├── test_example_objective.cc
│ │ ├── test_sycl_aft_obj.cc
│ │ ├── test_sycl_ghist_builder.cc
│ │ ├── test_sycl_gradient_index.cc
│ │ ├── test_sycl_hinge.cc
│ │ ├── test_sycl_hist_updater.cc
│ │ ├── test_sycl_host_device_vector.cc
│ │ ├── test_sycl_lambdarank_obj.cc
│ │ ├── test_sycl_linalg.cc
│ │ ├── test_sycl_multiclass_obj.cc
│ │ ├── test_sycl_partition_builder.cc
│ │ ├── test_sycl_prediction_cache.cc
│ │ ├── test_sycl_predictor.cc
│ │ ├── test_sycl_quantile_hist_builder.cc
│ │ ├── test_sycl_quantile_obj.cc
│ │ ├── test_sycl_regression_obj.cc
│ │ ├── test_sycl_row_set_collection.cc
│ │ ├── test_sycl_split_evaluator.cc
│ │ └── test_sycl_transform_range.cc
│ ├── predictor/
│ │ ├── test_cpu_predictor.cc
│ │ ├── test_gpu_predictor.cu
│ │ ├── test_predictor.cc
│ │ ├── test_predictor.h
│ │ ├── test_shap.cc
│ │ ├── test_shap.cu
│ │ └── test_shap.h
│ ├── test_cache.cc
│ ├── test_context.cc
│ ├── test_context.cu
│ ├── test_global_config.cc
│ ├── test_helpers.cc
│ ├── test_histogram_helpers.cu
│ ├── test_learner.cc
│ ├── test_learner.cu
│ ├── test_logging.cc
│ ├── test_main.cc
│ ├── test_multi_target.cc
│ ├── test_serialization.cc
│ ├── test_serialization.h
│ └── tree/
│ ├── gpu_hist/
│ │ ├── dummy_quantizer.cuh
│ │ ├── test_driver.cu
│ │ ├── test_evaluate_splits.cu
│ │ ├── test_expand_entry.cu
│ │ ├── test_histogram.cu
│ │ ├── test_leaf_sum.cu
│ │ ├── test_multi_evaluate_splits.cu
│ │ ├── test_multi_histogram.cu
│ │ ├── test_row_partitioner.cu
│ │ └── test_sampler.cu
│ ├── hist/
│ │ ├── test_evaluate_splits.cc
│ │ ├── test_expand_entry.cc
│ │ ├── test_histogram.cc
│ │ └── test_sampler.cc
│ ├── test_approx.cc
│ ├── test_column_split.cc
│ ├── test_column_split.h
│ ├── test_common_partitioner.cc
│ ├── test_constraints.cc
│ ├── test_constraints.cu
│ ├── test_evaluate_splits.h
│ ├── test_fit_stump.cc
│ ├── test_gpu_approx.cu
│ ├── test_gpu_hist.cu
│ ├── test_multi_target_tree_model.cc
│ ├── test_multi_target_tree_model.h
│ ├── test_node_partition.cc
│ ├── test_param.cc
│ ├── test_partitioner.h
│ ├── test_prediction_cache.cc
│ ├── test_prediction_cache.h
│ ├── test_prune.cc
│ ├── test_quantile_hist.cc
│ ├── test_refresh.cc
│ ├── test_regen.cc
│ ├── test_sampler.h
│ ├── test_tree_model.cc
│ ├── test_tree_policy.cc
│ └── test_tree_stat.cc
├── cross-platform/
│ └── test_cross_platform_model.py
├── pytest.ini
├── python/
│ ├── generate_models.py
│ ├── test_basic.py
│ ├── test_basic_models.py
│ ├── test_callback.py
│ ├── test_collective.py
│ ├── test_config.py
│ ├── test_data_iterator.py
│ ├── test_demos.py
│ ├── test_dmatrix.py
│ ├── test_early_stopping.py
│ ├── test_eval_metrics.py
│ ├── test_interaction_constraints.py
│ ├── test_intercept.py
│ ├── test_linear.py
│ ├── test_model_compatibility.py
│ ├── test_model_io.py
│ ├── test_monotone_constraints.py
│ ├── test_multi_target.py
│ ├── test_openmp.py
│ ├── test_ordinal.py
│ ├── test_parse_tree.py
│ ├── test_pickling.py
│ ├── test_plotting.py
│ ├── test_predict.py
│ ├── test_quantile_dmatrix.py
│ ├── test_ranking.py
│ ├── test_shap.py
│ ├── test_survival.py
│ ├── test_tracker.py
│ ├── test_training_continuation.py
│ ├── test_tree_regularization.py
│ ├── test_updaters.py
│ ├── test_with_arrow.py
│ ├── test_with_modin.py
│ ├── test_with_pandas.py
│ ├── test_with_polars.py
│ ├── test_with_scipy.py
│ ├── test_with_shap.py
│ ├── test_with_sklearn.py
│ └── with_omp_limit.py
├── python-gpu/
│ ├── conftest.py
│ ├── load_pickle.py
│ ├── test_device_quantile_dmatrix.py
│ ├── test_from_cudf.py
│ ├── test_from_cupy.py
│ ├── test_gpu_basic_models.py
│ ├── test_gpu_callbacks.py
│ ├── test_gpu_data_iterator.py
│ ├── test_gpu_demos.py
│ ├── test_gpu_eval_metrics.py
│ ├── test_gpu_interaction_constraints.py
│ ├── test_gpu_intercept.py
│ ├── test_gpu_linear.py
│ ├── test_gpu_multi_target.py
│ ├── test_gpu_ordinal.py
│ ├── test_gpu_parse_tree.py
│ ├── test_gpu_pickling.py
│ ├── test_gpu_plotting.py
│ ├── test_gpu_prediction.py
│ ├── test_gpu_ranking.py
│ ├── test_gpu_training_continuation.py
│ ├── test_gpu_updaters.py
│ ├── test_gpu_with_sklearn.py
│ ├── test_large_input.py
│ └── test_monotonic_constraints.py
├── python-sycl/
│ ├── test_sycl_prediction.py
│ ├── test_sycl_simple_dask.py
│ ├── test_sycl_training_continuation.py
│ ├── test_sycl_updaters.py
│ └── test_sycl_with_sklearn.py
└── test_distributed/
├── __init__.py
├── test_federated/
│ └── test_federated.py
├── test_gpu_federated/
│ └── test_gpu_federated.py
├── test_gpu_with_dask/
│ ├── __init__.py
│ ├── conftest.py
│ ├── test_gpu_demos.py
│ ├── test_gpu_external_memory.py
│ ├── test_gpu_ranking.py
│ └── test_gpu_with_dask.py
├── test_with_dask/
│ ├── __init__.py
│ ├── conftest.py
│ ├── test_demos.py
│ ├── test_external_memory.py
│ ├── test_ranking.py
│ └── test_with_dask.py
└── test_with_spark/
├── __init__.py
├── discover_gpu.sh
├── test_data.py
├── test_spark.py
└── utils.py
Showing preview only (553K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (6110 symbols across 730 files)
FILE: R-package/src/init.c
function R_init_xgboost (line 149) | __declspec(dllexport)
FILE: R-package/src/xgboost_R.cc
type ErrorWithUnwind (line 40) | struct ErrorWithUnwind {}
function ThrowExceptionFromRError (line 42) | void ThrowExceptionFromRError(void *, Rboolean jump) {
type PtrToConstChar (line 48) | struct PtrToConstChar {
function SEXP (line 52) | SEXP WrappedMkChar(void *void_ptr) {
function SEXP (line 56) | SEXP SafeMkChar(const char *c_str, SEXP continuation_token) {
type RFunAndEnv (line 64) | struct RFunAndEnv {
function SEXP (line 69) | SEXP WrappedExecFun(void *void_ptr) {
function SEXP (line 77) | SEXP SafeExecFun(SEXP R_fun, SEXP R_calling_env, SEXP continuation_token) {
function SEXP (line 85) | SEXP WrappedAllocReal(void *void_ptr) {
function SEXP (line 90) | SEXP SafeAllocReal(size_t size, SEXP continuation_token) {
function SEXP (line 97) | SEXP WrappedAllocInteger(void *void_ptr) {
function SEXP (line 102) | SEXP SafeAllocInteger(size_t size, SEXP continuation_token) {
function MakeArrayInterfaceFromRMat (line 109) | [[nodiscard]] std::string MakeArrayInterfaceFromRMat(SEXP R_mat) {
function MakeArrayInterfaceFromRVector (line 148) | [[nodiscard]] std::string MakeArrayInterfaceFromRVector(SEXP R_vec) {
function MakeArrayInterfaceFromRDataFrame (line 174) | [[nodiscard]] std::string MakeArrayInterfaceFromRDataFrame(SEXP R_df) {
function AddMissingToJson (line 215) | void AddMissingToJson(xgboost::Json *jconfig, SEXP missing, SEXPTYPE arr...
function MakeJsonConfigForArray (line 229) | [[nodiscard]] std::string MakeJsonConfigForArray(SEXP missing, SEXP n_th...
function SEXP (line 238) | [[nodiscard]] SEXP CopyArrayToR(const char *array_str, SEXP ctoken) {
function XGB_DLL (line 327) | XGB_DLL SEXP XGCheckNullPtr_R(SEXP handle) {
function XGB_DLL (line 331) | XGB_DLL SEXP XGSetArrayDimNamesInplace_R(SEXP arr, SEXP dim_names) {
function XGB_DLL (line 336) | XGB_DLL SEXP XGSetVectorNamesInplace_R(SEXP arr, SEXP names) {
function _DMatrixFinalizer (line 342) | void _DMatrixFinalizer(SEXP ext) {
function XGB_DLL (line 351) | XGB_DLL SEXP XGBSetGlobalConfig_R(SEXP json_str) {
function XGB_DLL (line 358) | XGB_DLL SEXP XGBGetGlobalConfig_R() {
function XGB_DLL (line 366) | XGB_DLL SEXP XGDMatrixCreateFromURI_R(SEXP uri, SEXP silent, SEXP data_s...
function XGB_DLL (line 385) | XGB_DLL SEXP XGDMatrixCreateFromMat_R(SEXP mat, SEXP missing, SEXP n_thr...
function XGB_DLL (line 405) | XGB_DLL SEXP XGDMatrixCreateFromDF_R(SEXP df, SEXP missing, SEXP n_threa...
function CreateFromSparse (line 431) | void CreateFromSparse(SEXP indptr, SEXP indices, SEXP data, std::string ...
function XGB_DLL (line 445) | XGB_DLL SEXP XGDMatrixCreateFromCSC_R(SEXP indptr, SEXP indices, SEXP da...
function XGB_DLL (line 479) | XGB_DLL SEXP XGDMatrixCreateFromCSR_R(SEXP indptr, SEXP indices, SEXP da...
function XGB_DLL (line 513) | XGB_DLL SEXP XGDMatrixSliceDMatrix_R(SEXP handle, SEXP idxset, SEXP allo...
function XGB_DLL (line 542) | XGB_DLL SEXP XGDMatrixSaveBinary_R(SEXP handle, SEXP fname, SEXP silent) {
function XGB_DLL (line 551) | XGB_DLL SEXP XGDMatrixSetInfo_R(SEXP handle, SEXP field, SEXP array) {
function XGB_DLL (line 568) | XGB_DLL SEXP XGDMatrixSetStrFeatureInfo_R(SEXP handle, SEXP field, SEXP ...
function XGB_DLL (line 606) | XGB_DLL SEXP XGDMatrixGetStrFeatureInfo_R(SEXP handle, SEXP field) {
function XGB_DLL (line 627) | XGB_DLL SEXP XGDMatrixGetFloatInfo_R(SEXP handle, SEXP field) {
function XGB_DLL (line 640) | XGB_DLL SEXP XGDMatrixGetUIntInfo_R(SEXP handle, SEXP field) {
function XGB_DLL (line 653) | XGB_DLL SEXP XGDMatrixNumRow_R(SEXP handle) {
function XGB_DLL (line 661) | XGB_DLL SEXP XGDMatrixNumCol_R(SEXP handle) {
function XGB_DLL (line 669) | XGB_DLL SEXP XGProxyDMatrixCreate_R() {
function XGB_DLL (line 681) | XGB_DLL SEXP XGProxyDMatrixSetDataDense_R(SEXP handle, SEXP R_mat) {
function XGB_DLL (line 694) | XGB_DLL SEXP XGProxyDMatrixSetDataCSR_R(SEXP handle, SEXP lst) {
function XGB_DLL (line 714) | XGB_DLL SEXP XGProxyDMatrixSetDataColumnar_R(SEXP handle, SEXP lst) {
type _RDataIterator (line 729) | struct _RDataIterator {
method _RDataIterator (line 735) | _RDataIterator(
method reset (line 740) | void reset() {
method next (line 744) | int next() {
function _reset_RDataIterator (line 753) | void _reset_RDataIterator(DataIterHandle iter) {
function _next_RDataIterator (line 757) | int _next_RDataIterator(DataIterHandle iter) {
function SEXP (line 761) | SEXP XGDMatrixCreateFromCallbackGeneric_R(
function XGB_DLL (line 827) | XGB_DLL SEXP XGQuantileDMatrixCreateFromCallback_R(
function XGB_DLL (line 836) | XGB_DLL SEXP XGDMatrixCreateFromCallback_R(
function XGB_DLL (line 845) | XGB_DLL SEXP XGDMatrixFree_R(SEXP proxy_dmat) {
function XGB_DLL (line 850) | XGB_DLL SEXP XGGetRNAIntAsDouble() {
function XGB_DLL (line 855) | XGB_DLL SEXP XGDuplicate_R(SEXP obj) {
function XGB_DLL (line 859) | XGB_DLL SEXP XGPointerEqComparison_R(SEXP obj1, SEXP obj2) {
function XGB_DLL (line 863) | XGB_DLL SEXP XGDMatrixGetQuantileCut_R(SEXP handle) {
function XGB_DLL (line 882) | XGB_DLL SEXP XGDMatrixNumNonMissing_R(SEXP handle) {
function XGB_DLL (line 893) | XGB_DLL SEXP XGDMatrixGetDataAsCSR_R(SEXP handle) {
function _BoosterFinalizer (line 932) | void _BoosterFinalizer(SEXP R_ptr) {
function R_xlen_t (line 943) | R_xlen_t XGBAltrepPointerLength_R(SEXP R_altrepped_obj) {
function SEXP (line 947) | SEXP XGBAltrepPointerGetElt_R(SEXP R_altrepped_obj, R_xlen_t idx) {
function SEXP (line 951) | SEXP XGBMakeEmptyAltrep() {
function XGBAltrepSetPointer (line 964) | void XGBAltrepSetPointer(SEXP R_altrepped_obj, BoosterHandle handle) {
function SEXP (line 970) | SEXP XGBAltrepSerializer_R(SEXP R_altrepped_obj) {
function SEXP (line 987) | SEXP XGBAltrepDeserializer_R(SEXP /*unused*/, SEXP R_state) {
function Rboolean (line 1006) | Rboolean XGBAltrepInspector_R(
function SEXP (line 1014) | SEXP XGBAltrepDuplicate_R(SEXP R_altrepped_obj, Rboolean deep) {
function XGB_DLL (line 1047) | XGB_DLL void XGBInitializeAltrepClass_R(DllInfo *dll) {
function XGB_DLL (line 1057) | XGB_DLL SEXP XGBoosterCreate_R(SEXP dmats) {
function XGB_DLL (line 1078) | XGB_DLL SEXP XGBoosterReset_R(SEXP handle) {
function XGB_DLL (line 1085) | XGB_DLL SEXP XGBoosterCopyInfoFromDMatrix_R(SEXP booster, SEXP dmat) {
function XGB_DLL (line 1116) | XGB_DLL SEXP XGBoosterSetStrFeatureInfo_R(SEXP handle, SEXP field, SEXP ...
function XGB_DLL (line 1138) | XGB_DLL SEXP XGBoosterGetStrFeatureInfo_R(SEXP handle, SEXP field) {
function XGB_DLL (line 1155) | XGB_DLL SEXP XGBoosterBoostedRounds_R(SEXP handle) {
function XGB_DLL (line 1166) | XGB_DLL SEXP XGBoosterGetNumFeature_R(SEXP handle) {
function XGB_DLL (line 1177) | XGB_DLL SEXP XGBoosterSetParam_R(SEXP handle, SEXP name, SEXP val) {
function XGB_DLL (line 1189) | XGB_DLL SEXP XGBoosterUpdateOneIter_R(SEXP handle, SEXP iter, SEXP dtrai...
function XGB_DLL (line 1198) | XGB_DLL SEXP XGBoosterTrainOneIter_R(SEXP handle, SEXP dtrain, SEXP iter...
function XGB_DLL (line 1220) | XGB_DLL SEXP XGBoosterEvalOneIter_R(SEXP handle, SEXP iter, SEXP dmats, ...
type ProxyDmatrixError (line 1258) | struct ProxyDmatrixError : public std::exception {}
type ProxyDmatrixWrapper (line 1260) | struct ProxyDmatrixWrapper {
method ProxyDmatrixWrapper (line 1263) | ProxyDmatrixWrapper() {
method DMatrixHandle (line 1277) | DMatrixHandle get_handle() {
function GetProxyDMatrixWithBaseMargin (line 1282) | std::unique_ptr<ProxyDmatrixWrapper> GetProxyDMatrixWithBaseMargin(SEXP ...
type PredictionInputType (line 1305) | enum class PredictionInputType {DMatrix, DenseMatrix, CSRMatrix, DataFrame}
function SEXP (line 1307) | SEXP XGBoosterPredictGeneric(SEXP handle, SEXP input_data, SEXP json_con...
function XGB_DLL (line 1414) | XGB_DLL SEXP XGBoosterPredictFromDMatrix_R(SEXP handle, SEXP dmat, SEXP ...
function XGB_DLL (line 1419) | XGB_DLL SEXP XGBoosterPredictFromDense_R(SEXP handle, SEXP R_mat, SEXP m...
function XGB_DLL (line 1425) | XGB_DLL SEXP XGBoosterPredictFromCSR_R(SEXP handle, SEXP lst, SEXP missing,
function XGB_DLL (line 1431) | XGB_DLL SEXP XGBoosterPredictFromColumnar_R(SEXP handle, SEXP R_df, SEXP...
function XGB_DLL (line 1437) | XGB_DLL SEXP XGBoosterLoadModel_R(SEXP handle, SEXP fname) {
function XGB_DLL (line 1444) | XGB_DLL SEXP XGBoosterSaveModel_R(SEXP handle, SEXP fname) {
function XGB_DLL (line 1451) | XGB_DLL SEXP XGBoosterLoadModelFromRaw_R(SEXP handle, SEXP raw) {
function XGB_DLL (line 1460) | XGB_DLL SEXP XGBoosterSaveModelToRaw_R(SEXP handle, SEXP json_config) {
function XGB_DLL (line 1476) | XGB_DLL SEXP XGBoosterSaveJsonConfig_R(SEXP handle) {
function XGB_DLL (line 1487) | XGB_DLL SEXP XGBoosterLoadJsonConfig_R(SEXP handle, SEXP value) {
function XGB_DLL (line 1494) | XGB_DLL SEXP XGBoosterSerializeToBuffer_R(SEXP handle) {
function XGB_DLL (line 1509) | XGB_DLL SEXP XGBoosterUnserializeFromBuffer_R(SEXP handle, SEXP raw) {
function XGB_DLL (line 1518) | XGB_DLL SEXP XGBoosterDumpModel_R(SEXP handle, SEXP fmap, SEXP with_stat...
function XGB_DLL (line 1564) | XGB_DLL SEXP XGBoosterGetAttr_R(SEXP handle, SEXP name) {
function XGB_DLL (line 1584) | XGB_DLL SEXP XGBoosterSetAttr_R(SEXP handle, SEXP name, SEXP val) {
function XGB_DLL (line 1603) | XGB_DLL SEXP XGBoosterGetAttrNames_R(SEXP handle) {
function XGB_DLL (line 1623) | XGB_DLL SEXP XGBoosterFeatureScore_R(SEXP handle, SEXP json_config) {
function XGB_DLL (line 1667) | XGB_DLL SEXP XGBoosterSlice_R(SEXP handle, SEXP begin_layer, SEXP end_la...
function XGB_DLL (line 1682) | XGB_DLL SEXP XGBoosterSliceAndReplace_R(SEXP handle, SEXP begin_layer, S...
FILE: R-package/src/xgboost_custom.cc
type dmlc (line 10) | namespace dmlc {
type xgboost (line 16) | namespace xgboost {
type common (line 33) | namespace common {
function CheckNAN (line 36) | bool CheckNAN(double v) {
function LogGamma (line 40) | double LogGamma(double v) {
type xgboost (line 32) | namespace xgboost {
type common (line 33) | namespace common {
function CheckNAN (line 36) | bool CheckNAN(double v) {
function LogGamma (line 40) | double LogGamma(double v) {
FILE: demo/aft_survival/aft_survival_demo_with_optuna.py
function objective (line 42) | def objective(trial):
FILE: demo/aft_survival/aft_survival_viz_demo.py
function plot_censored_labels (line 19) | def plot_censored_labels(
class PlotIntermediateModel (line 67) | class PlotIntermediateModel(xgb.callback.TrainingCallback):
method __init__ (line 70) | def __init__(self) -> None:
method after_iteration (line 73) | def after_iteration(
FILE: demo/c-api/basic/c-api-demo.c
function MakeArrayInterface (line 25) | static void MakeArrayInterface(size_t data, size_t n, char const* typest...
function MakeConfig (line 33) | static void MakeConfig(int n_threads, size_t length, char* out) {
function main (line 39) | int main() {
FILE: demo/c-api/external-memory/external_memory.c
type DMatrixHandle (line 23) | typedef DMatrixHandle DMatrix;
type BoosterHandle (line 24) | typedef BoosterHandle Booster;
type DataIter (line 26) | typedef struct _DataIter {
function DataIterator_Init (line 59) | void DataIterator_Init(DataIter *self, size_t batch_size, size_t n_batch...
function DataIterator_Free (line 94) | void DataIterator_Free(DataIter *self) {
function DataIterator_Next (line 105) | int DataIterator_Next(DataIterHandle handle) {
function DataIterator_Reset (line 129) | void DataIterator_Reset(DataIterHandle handle) {
function TrainModel (line 137) | void TrainModel(DMatrix Xy) {
function main (line 163) | int main() {
FILE: demo/c-api/inference/inference.c
type BoosterHandle (line 31) | typedef BoosterHandle Booster;
type DMatrixHandle (line 32) | typedef DMatrixHandle DMatrix;
type _Matrix (line 35) | struct _Matrix {
type _Matrix (line 44) | struct _Matrix
function Matrix_Create (line 47) | void Matrix_Create(Matrix *self, float const *data, size_t n_samples,
function Matrix_Random (line 68) | void Matrix_Random(Matrix *self, size_t n_samples, size_t n_features) {
function Matrix_NSamples (line 86) | size_t Matrix_NSamples(Matrix self) { return self->shape[0]; }
function Matrix_NFeatures (line 88) | size_t Matrix_NFeatures(Matrix self) { return self->shape[1]; }
function Matrix_At (line 90) | float Matrix_At(Matrix self, size_t i, size_t j) {
function Matrix_Print (line 94) | void Matrix_Print(Matrix self) {
function Matrix_Free (line 103) | void Matrix_Free(Matrix self) {
function main (line 115) | int main() {
FILE: demo/dask/cpu_survival.py
function main (line 17) | def main(client: Client) -> da.Array:
FILE: demo/dask/cpu_training.py
function main (line 14) | def main(client: Client) -> None:
FILE: demo/dask/dask_callbacks.py
function probability_for_going_backward (line 18) | def probability_for_going_backward(epoch: int) -> float:
class CustomEarlyStopping (line 23) | class CustomEarlyStopping(xgb.callback.TrainingCallback):
method __init__ (line 28) | def __init__(
method after_iteration (line 41) | def after_iteration(
function main (line 63) | def main(client: Client) -> None:
FILE: demo/dask/dask_learning_to_rank.py
function load_mslr_10k (line 32) | def load_mslr_10k(
function ranking_demo (line 99) | def ranking_demo(client: Client, args: argparse.Namespace) -> None:
function ranking_wo_split_demo (line 123) | def ranking_wo_split_demo(client: Client, args: argparse.Namespace) -> N...
function gen_client (line 153) | def gen_client(device: str) -> Generator[Client, None, None]:
FILE: demo/dask/forward_logging.py
function _get_logger (line 22) | def _get_logger() -> logging.Logger:
class ForwardLoggingMonitor (line 31) | class ForwardLoggingMonitor(EvaluationMonitor):
method __init__ (line 32) | def __init__(
class WorkerEventMonitor (line 62) | class WorkerEventMonitor(EvaluationMonitor):
method __init__ (line 69) | def __init__(self, rank: int = 0, period: int = 1) -> None:
function hist_train (line 75) | def hist_train(
FILE: demo/dask/gpu_training.py
function using_dask_matrix (line 17) | def using_dask_matrix(client: Client, X: da.Array, y: da.Array) -> da.Ar...
function using_quantile_device_dmatrix (line 42) | def using_quantile_device_dmatrix(client: Client, X: da.Array, y: da.Arr...
FILE: demo/dask/sklearn_cpu_training.py
function main (line 12) | def main(client: Client) -> dxgb.Booster:
FILE: demo/dask/sklearn_gpu_training.py
function main (line 16) | def main(client: Client) -> dxgb.Booster:
FILE: demo/guide-python/callbacks.py
class Plotting (line 21) | class Plotting(xgb.callback.TrainingCallback):
method __init__ (line 27) | def __init__(self, rounds: int) -> None:
method _get_key (line 36) | def _get_key(self, data: str, metric: str) -> str:
method after_iteration (line 39) | def after_iteration(
function custom_callback (line 62) | def custom_callback() -> None:
function check_point_callback (line 89) | def check_point_callback() -> None:
FILE: demo/guide-python/cat_in_the_dat.py
function load_cat_in_the_dat (line 37) | def load_cat_in_the_dat() -> tuple[pd.DataFrame, pd.Series]:
function categorical_model (line 76) | def categorical_model(X: pd.DataFrame, y: pd.Series, output_dir: str) ->...
function onehot_encoding_model (line 100) | def onehot_encoding_model(X: pd.DataFrame, y: pd.Series, output_dir: str...
FILE: demo/guide-python/cat_pipeline.py
function make_example_data (line 34) | def make_example_data() -> Tuple[pd.DataFrame, pd.Series, List[str]]:
function native (line 58) | def native() -> None:
function pipeline (line 104) | def pipeline() -> None:
FILE: demo/guide-python/categorical.py
function make_categorical (line 29) | def make_categorical(
function main (line 57) | def main() -> None:
FILE: demo/guide-python/continuation.py
function training_continuation (line 15) | def training_continuation(tmpdir: str, use_pickle: bool) -> None:
function training_continuation_early_stop (line 50) | def training_continuation_early_stop(tmpdir: str, use_pickle: bool) -> N...
FILE: demo/guide-python/cross_validation.py
function fpreproc (line 58) | def fpreproc(
function logregobj (line 80) | def logregobj(preds: np.ndarray, dtrain: xgb.DMatrix) -> Tuple[np.ndarra...
function evalerror (line 88) | def evalerror(preds: np.ndarray, dtrain: xgb.DMatrix) -> Tuple[str, float]:
FILE: demo/guide-python/custom_rmsle.py
function generate_data (line 41) | def generate_data() -> Tuple[xgb.DMatrix, xgb.DMatrix]:
function native_rmse (line 67) | def native_rmse(dtrain: xgb.DMatrix,
function native_rmsle (line 88) | def native_rmsle(dtrain: xgb.DMatrix,
function py_rmsle (line 109) | def py_rmsle(dtrain: xgb.DMatrix, dtest: xgb.DMatrix) -> Dict:
function plot_history (line 158) | def plot_history(
function main (line 184) | def main(args: argparse.Namespace) -> None:
FILE: demo/guide-python/custom_softmax.py
function softmax (line 38) | def softmax(x: np.ndarray) -> np.ndarray:
function softprob_obj (line 44) | def softprob_obj(predt: np.ndarray, data: xgb.DMatrix) -> Tuple[np.ndarr...
function predict (line 90) | def predict(booster: xgb.Booster, X: xgb.DMatrix) -> np.ndarray:
function merror (line 108) | def merror(predt: np.ndarray, dtrain: xgb.DMatrix) -> Tuple[str, np.floa...
function plot_history (line 129) | def plot_history(
function main (line 149) | def main(args: argparse.Namespace) -> None:
FILE: demo/guide-python/distributed_extmem_basic.py
function _checkcu (line 41) | def _checkcu(status: "cudaError_t") -> None:
function device_mem_total (line 48) | def device_mem_total() -> int:
function make_batches (line 57) | def make_batches(
class Iterator (line 73) | class Iterator(xgboost.DataIter):
method __init__ (line 76) | def __init__(self, device: str, file_paths: List[Tuple[str, str]]) -> ...
method load_file (line 85) | def load_file(self) -> Tuple[np.ndarray, np.ndarray]:
method next (line 102) | def next(self, input_data: Callable) -> bool:
method reset (line 118) | def reset(self) -> None:
function setup_numa (line 123) | def setup_numa() -> None:
function setup_async_pool (line 145) | def setup_async_pool() -> None:
function try_run (line 179) | def try_run(fn: Callable[P, R]) -> Callable[P, R]:
function hist_train (line 197) | def hist_train(
function launch_workers (line 254) | def launch_workers(tmpdir: str, args: argparse.Namespace) -> None:
function main (line 294) | def main() -> None:
FILE: demo/guide-python/external_memory.py
function _checkcu (line 51) | def _checkcu(status: "cudaError_t") -> None:
function device_mem_total (line 58) | def device_mem_total() -> int:
function make_batches (line 67) | def make_batches(
class Iterator (line 85) | class Iterator(xgboost.DataIter):
method __init__ (line 88) | def __init__(
method load_file (line 99) | def load_file(self) -> Tuple[np.ndarray, np.ndarray]:
method next (line 114) | def next(self, input_data: Callable) -> bool:
method reset (line 130) | def reset(self) -> None:
function hist_train (line 135) | def hist_train(it: Iterator) -> None:
function approx_train (line 154) | def approx_train(it: Iterator) -> None:
function main (line 171) | def main(tmpdir: str, args: argparse.Namespace) -> None:
function setup_async_pool (line 184) | def setup_async_pool() -> None:
function setup_rmm (line 212) | def setup_rmm() -> None:
FILE: demo/guide-python/feature_weights.py
function main (line 16) | def main(args: argparse.Namespace) -> None:
FILE: demo/guide-python/individual_trees.py
function individual_tree (line 19) | def individual_tree() -> None:
function model_slices (line 61) | def model_slices() -> None:
FILE: demo/guide-python/learning_to_rank.py
function load_mslr_10k (line 34) | def load_mslr_10k(data_path: str, cache_path: str) -> RelDataCV:
function ranking_demo (line 90) | def ranking_demo(args: argparse.Namespace) -> None:
function click_data_demo (line 124) | def click_data_demo(args: argparse.Namespace) -> None:
FILE: demo/guide-python/model_parser.py
function to_integers (line 26) | def to_integers(data: Union[bytes, List[int]]) -> List[int]:
class SplitType (line 32) | class SplitType(IntEnum):
class Node (line 38) | class Node:
class Tree (line 54) | class Tree:
method __init__ (line 57) | def __init__(self, tree_id: int, nodes: Sequence[Node]) -> None:
method loss_change (line 61) | def loss_change(self, node_id: int) -> float:
method sum_hessian (line 65) | def sum_hessian(self, node_id: int) -> float:
method base_weight (line 69) | def base_weight(self, node_id: int) -> float:
method split_index (line 73) | def split_index(self, node_id: int) -> int:
method split_condition (line 77) | def split_condition(self, node_id: int) -> float:
method split_categories (line 81) | def split_categories(self, node_id: int) -> List[int]:
method is_categorical (line 85) | def is_categorical(self, node_id: int) -> bool:
method is_numerical (line 89) | def is_numerical(self, node_id: int) -> bool:
method parent (line 92) | def parent(self, node_id: int) -> int:
method left_child (line 96) | def left_child(self, node_id: int) -> int:
method right_child (line 100) | def right_child(self, node_id: int) -> int:
method is_leaf (line 104) | def is_leaf(self, node_id: int) -> bool:
method is_deleted (line 108) | def is_deleted(self, node_id: int) -> bool:
method __str__ (line 112) | def __str__(self) -> str:
class Model (line 143) | class Model:
method __init__ (line 146) | def __init__(self, model: dict) -> None:
method print_model (line 256) | def print_model(self) -> None:
FILE: demo/guide-python/multioutput_reduced_gradient.py
class LsObjMean (line 28) | class LsObjMean(TreeObjective):
method __init__ (line 31) | def __init__(self, device: str) -> None:
method __call__ (line 34) | def __call__(
method split_grad (line 49) | def split_grad(
function svd_class (line 62) | def svd_class(device: str) -> BaseEstimator:
class LsObjSvd (line 71) | class LsObjSvd(LsObjMean):
method __init__ (line 74) | def __init__(self, device: str) -> None:
method split_grad (line 77) | def split_grad(
function main (line 97) | def main() -> None:
FILE: demo/guide-python/multioutput_regression.py
function plot_predt (line 30) | def plot_predt(
function gen_circle (line 39) | def gen_circle() -> Tuple[np.ndarray, np.ndarray]:
function rmse_model (line 50) | def rmse_model(strategy: str, ax: Optional[matplotlib.axes.Axes]) -> None:
function custom_rmse_model (line 69) | def custom_rmse_model(strategy: str, ax: Optional[matplotlib.axes.Axes])...
FILE: demo/guide-python/predict_first_ntree.py
function native_interface (line 17) | def native_interface() -> None:
function sklearn_interface (line 37) | def sklearn_interface() -> None:
FILE: demo/guide-python/quantile_data_iterator.py
class IterForDMatrixDemo (line 36) | class IterForDMatrixDemo(xgboost.core.DataIter):
method __init__ (line 44) | def __init__(self) -> None:
method as_array (line 59) | def as_array(self) -> cupy.ndarray:
method as_array_labels (line 62) | def as_array_labels(self) -> cupy.ndarray:
method as_array_weights (line 65) | def as_array_weights(self) -> cupy.ndarray:
method data (line 68) | def data(self) -> cupy.ndarray:
method labels (line 72) | def labels(self) -> cupy.ndarray:
method weights (line 76) | def weights(self) -> cupy.ndarray:
method reset (line 79) | def reset(self) -> None:
method next (line 83) | def next(self, input_data: Callable) -> bool:
function main (line 96) | def main() -> None:
FILE: demo/guide-python/quantile_regression.py
function f (line 26) | def f(x: np.ndarray) -> np.ndarray:
function quantile_loss (line 31) | def quantile_loss(args: argparse.Namespace) -> None:
FILE: demo/guide-python/spark_estimator_examples.py
function create_spark_df (line 21) | def create_spark_df(X: np.ndarray, y: np.ndarray) -> DataFrame:
FILE: demo/guide-python/update_process.py
function main (line 18) | def main() -> None:
FILE: demo/kaggle-higgs/higgs-cv.py
function fpreproc (line 20) | def fpreproc(dtrain, dtest, param):
FILE: demo/nvflare/horizontal/custom/controller.py
class XGBoostController (line 17) | class XGBoostController(Controller):
method __init__ (line 18) | def __init__(self, port: int, world_size: int, server_key_path: str,
method start_controller (line 37) | def start_controller(self, fl_ctx: FLContext):
method stop_controller (line 44) | def stop_controller(self, fl_ctx: FLContext):
method process_result_of_unknown_task (line 48) | def process_result_of_unknown_task(self, client: Client, task_name: str,
method control_flow (line 53) | def control_flow(self, abort_signal: Signal, fl_ctx: FLContext):
FILE: demo/nvflare/horizontal/custom/trainer.py
class SupportedTasks (line 13) | class SupportedTasks(object):
class XGBoostTrainer (line 17) | class XGBoostTrainer(Executor):
method __init__ (line 18) | def __init__(self, server_address: str, world_size: int, server_cert_p...
method execute (line 37) | def execute(self, task_name: str, shareable: Shareable, fl_ctx: FLCont...
method _do_training (line 52) | def _do_training(self, fl_ctx: FLContext):
FILE: demo/nvflare/vertical/custom/controller.py
class XGBoostController (line 17) | class XGBoostController(Controller):
method __init__ (line 18) | def __init__(self, port: int, world_size: int, server_key_path: str,
method start_controller (line 37) | def start_controller(self, fl_ctx: FLContext):
method stop_controller (line 44) | def stop_controller(self, fl_ctx: FLContext):
method process_result_of_unknown_task (line 48) | def process_result_of_unknown_task(self, client: Client, task_name: str,
method control_flow (line 53) | def control_flow(self, abort_signal: Signal, fl_ctx: FLContext):
FILE: demo/nvflare/vertical/custom/trainer.py
class SupportedTasks (line 13) | class SupportedTasks(object):
class XGBoostTrainer (line 17) | class XGBoostTrainer(Executor):
method __init__ (line 18) | def __init__(self, server_address: str, world_size: int, server_cert_p...
method execute (line 37) | def execute(self, task_name: str, shareable: Shareable, fl_ctx: FLCont...
method _do_training (line 52) | def _do_training(self, fl_ctx: FLContext):
FILE: demo/rmm_plugin/rmm_mgpu_with_dask.py
function main (line 14) | def main(client):
FILE: dev/prepare_jvm_release.py
function normpath (line 45) | def normpath(path):
function cp (line 54) | def cp(source, target):
function maybe_makedirs (line 61) | def maybe_makedirs(path):
function cd (line 72) | def cd(path):
function run (line 83) | def run(command, **kwargs):
function get_current_commit_hash (line 88) | def get_current_commit_hash():
function get_current_git_branch (line 93) | def get_current_git_branch():
function retrieve (line 101) | def retrieve(url, filename=None):
function main (line 106) | def main():
FILE: dev/query_contributors.py
function paginate_request (line 23) | def paginate_request(url, callback):
function process_commit_list (line 37) | def process_commit_list(commit_list):
function process_review_list (line 44) | def process_review_list(review_list):
function process_comment_list (line 46) | def process_comment_list(comment_list):
FILE: doc/conf.py
function run_doxygen (line 37) | def run_doxygen() -> None:
function get_branch (line 69) | def get_branch() -> str:
function get_sha (line 99) | def get_sha(branch: str) -> str | None:
function download_jvm_docs (line 113) | def download_jvm_docs() -> None:
function download_r_docs (line 162) | def download_r_docs() -> None:
function is_readthedocs_build (line 215) | def is_readthedocs_build():
function setup (line 408) | def setup(app):
FILE: include/xgboost/base.h
function namespace (line 89) | namespace xgboost {
FILE: include/xgboost/byteswap.h
function namespace (line 18) | namespace xgboost {
FILE: include/xgboost/c_api.h
type bst_ulong (line 28) | typedef uint64_t bst_ulong;
type XGBoostBatchCSR (line 379) | typedef struct { // NOLINT(*)
FILE: include/xgboost/cache.h
function namespace (line 18) | namespace xgboost {
function ClearExpired (line 71) | void ClearExpired() {
function key (line 177) | auto key = Key{m.get(), std::this_thread::get_id()}
function Container (line 188) | decltype(container_) const& Container() {
FILE: include/xgboost/collective/poll_utils.h
type WSAPOLLFD (line 62) | typedef struct pollfd {
function namespace (line 76) | namespace rabit {
FILE: include/xgboost/collective/result.h
type ResultImpl (line 14) | struct ResultImpl {
function explicit (line 29) | explicit ResultImpl(std::string msg, std::unique_ptr<ResultImpl> prev)
FILE: include/xgboost/collective/socket.h
function MingWError (line 65) | inline void MingWError() { LOG(FATAL) << "Distributed training on mingw ...
function namespace (line 68) | namespace system {
type class (line 184) | enum class
function class (line 192) | class SockAddrV6 {
function class (line 216) | class SockAddrV4 {
function explicit (line 253) | explicit SockAddress(SockAddrV4 const &addr) : v4_{addr}
function SockDomain (line 277) | SockDomain domain_{SockDomain::kV4};
type sockaddr (line 321) | struct sockaddr
function errc (line 343) | auto errc = std::error_code{system::LastError(), std::system_category()};
function errc (line 347) | auto errc = std::error_code{optval, std::system_category()}
function Result (line 366) | [[nodiscard]] Result NonBlocking(bool non_block) {
function Result (line 392) | [[nodiscard]] Result RecvTimeout(std::chrono::seconds timeout) {
function Result (line 411) | [[nodiscard]] Result SetBufSize(std::int32_t n_bytes) {
function Result (line 425) | [[nodiscard]] Result SendBufSize(std::int32_t *n_bytes) {
function Result (line 434) | [[nodiscard]] Result RecvBufSize(std::int32_t *n_bytes) {
function Result (line 444) | [[nodiscard]] Result PendingSendSize(std::int32_t *n_bytes) const {
function Result (line 448) | [[nodiscard]] Result PendingRecvSize(std::int32_t *n_bytes) const {
function Result (line 454) | [[nodiscard]] Result SetKeepAlive() {
function Result (line 484) | [[nodiscard]] Result Accept(TCPSocket *out, SockAddress *addr) {
function noexcept (line 530) | noexcept(true) { std::swap(this->handle_, that.handle_); }
function noexcept (line 532) | noexcept(true) {
function Result (line 549) | [[nodiscard]] Result BindHost(std::int32_t* p_out) {
function Result (line 608) | [[nodiscard]] Result Bind(StringView ip, std::int32_t *port) {
function Result (line 639) | [[nodiscard]] Result SendAll(void const *buf, std::size_t len, std::size...
function Result (line 659) | [[nodiscard]] Result RecvAll(void *buf, std::size_t len, std::size_t *n_...
function Result (line 715) | [[nodiscard]] Result Close() {
function Result (line 735) | [[nodiscard]] Result Shutdown() {
function TCPSocket (line 765) | TCPSocket socket{fd};
function socket (line 782) | auto socket = new TCPSocket{fd};
function string (line 817) | string *p_out) {
FILE: include/xgboost/context.h
function namespace (line 18) | namespace xgboost {
function InvalidOrdinal (line 40) | struct DeviceOrd {
function device (line 45) | enum Type : std::int16_t {
function that (line 108) | [[nodiscard]] bool operator==(DeviceOrd const& that) const {
function that (line 111) | [[nodiscard]] bool operator!=(DeviceOrd const& that) const { return !(*t...
type Context (line 142) | struct Context
function DeviceOrd (line 147) | DeviceOrd device_{DeviceOrd::CPU()};
function fail_on_invalid_gpu_id (line 171) | bool fail_on_invalid_gpu_id{false};
FILE: include/xgboost/data.h
type Context (line 31) | struct Context
type class (line 34) | enum class
type class (line 36) | enum class
type class (line 38) | enum class
type TypedArrayRef (line 44) | struct TypedArrayRef {
function SizeType (line 51) | SizeType ndim{0}
function bst_idx_t (line 73) | bst_idx_t num_row_{0}
function DataSplitMode (line 81) | DataSplitMode data_split_mode{DataSplitMode::kRow};
type BatchParam (line 274) | struct BatchParam {
function prefetch_copy (line 301) | bool prefetch_copy{true};
function class (line 453) | class CSCPage : public SparsePage {
function explicit (line 466) | explicit ExtSparsePage(std::shared_ptr<SparsePage const> p) : page{std::...
function class (line 469) | class SortedCSCPage : public SparsePage {
function explicit (line 493) | explicit BatchIterator(BatchIteratorImpl<T>* impl) { impl_.reset(impl); }
function explicit (line 494) | explicit BatchIterator(std::shared_ptr<BatchIteratorImpl<T>> impl) { imp...
function AtEnd (line 509) | [[nodiscard]] bool AtEnd() const {
type XGBAPIThreadLocalEntry (line 531) | struct XGBAPIThreadLocalEntry
type ExtMemConfig (line 534) | struct ExtMemConfig {
function hw_decomp_ratio (line 549) | float hw_decomp_ratio{std::numeric_limits<float>::quiet_NaN()};
function class (line 577) | class DMatrix {
function namespace (line 797) | namespace dmlc {
FILE: include/xgboost/feature_map.h
function namespace (line 17) | namespace xgboost {
FILE: include/xgboost/gbm.h
function namespace (line 23) | namespace xgboost {
type GradientBoosterReg (line 175) | struct GradientBoosterReg
FILE: include/xgboost/global_config.h
type GlobalConfiguration (line 16) | struct GlobalConfiguration
function use_rmm (line 18) | bool use_rmm{false};
FILE: include/xgboost/gradient.h
function namespace (line 12) | namespace xgboost {
FILE: include/xgboost/host_device_vector.h
function namespace (line 59) | namespace xgboost {
FILE: include/xgboost/intrusive_ptr.h
function class (line 20) | class IntrusivePtrCell {
function DecRef (line 80) | void DecRef(T *ptr) {
type Hash (line 94) | struct Hash {
function explicit (line 104) | explicit IntrusivePtr(T *p) : ptr_{p}
function ptr_ (line 111) | IntrusivePtr(IntrusivePtr const &that) : ptr_{that.ptr_}
function reset (line 125) | void reset() { // NOLINT
function reset (line 129) | void reset(element_type *that) { IntrusivePtr{that}.swap(*this); }
FILE: include/xgboost/json.h
function namespace (line 19) | namespace xgboost {
function class (line 223) | class JsonObject : public Value {
function IsClassOf (line 249) | static bool IsClassOf(Value const* value) { return value->Type() == Valu...
function namespace (line 253) | namespace detail {
function class (line 261) | class JsonNumber : public Value {
function class (line 396) | class Json {
FILE: include/xgboost/json_io.h
function namespace (line 17) | namespace xgboost {
function class (line 111) | class JsonWriter {
function virtual (line 143) | virtual void Visit(F64Array const*) { LOG(FATAL) << "Only UBJSON format ...
function T (line 161) | T ToBigEndian(T v) {
function T (line 166) | T ToBigEndian(T v) {
function class (line 181) | class UBJReader : public JsonReader {
FILE: include/xgboost/learner.h
type XGBAPIThreadLocalEntry (line 36) | struct XGBAPIThreadLocalEntry
type class (line 41) | enum class
function virtual (line 146) | virtual int32_t BoostedRounds() const = 0;
FILE: include/xgboost/linalg.h
function namespace (line 41) | namespace xgboost::linalg {
function detail (line 250) | constexpr detail::AllTag All() { return {}; }
type Order (line 259) | enum Order : std::uint8_t {
function ShapeT (line 289) | ShapeT shape_{0}
function T (line 291) | T *ptr_{nullptr}; // pointer of data_ to avoid bound check.
function Json (line 691) | Json array_interface{Object{}}
function ShapeT (line 767) | ShapeT shape_{0}
function Order (line 768) | Order order_{Order::kC};
function SetDevice (line 953) | void SetDevice(DeviceOrd device) const { data_.SetDevice(device); }
FILE: include/xgboost/linear_updater.h
function namespace (line 18) | namespace xgboost {
FILE: include/xgboost/logging.h
function namespace (line 24) | namespace xgboost {
FILE: include/xgboost/metric.h
function namespace (line 22) | namespace xgboost {
FILE: include/xgboost/model.h
function namespace (line 10) | namespace xgboost {
FILE: include/xgboost/multi_target_tree_model.h
function namespace (line 20) | namespace xgboost {
FILE: include/xgboost/objective.h
function namespace (line 22) | namespace xgboost {
function virtual (line 86) | virtual void ProbToMargin(linalg::Vector<float>* /*base_score*/) const {}
function Context (line 112) | [[nodiscard]] Context const* Ctx() const { return this->ctx_; }
FILE: include/xgboost/parameter.h
function namespace (line 82) | namespace xgboost {
FILE: include/xgboost/predictor.h
function namespace (line 22) | namespace xgboost::gbm {
function namespace (line 26) | namespace xgboost {
function class (line 49) | class PredictionContainer : public DMatrixCache<PredictionCacheEntry> {
function class (line 72) | class Predictor {
type PredictorReg (line 183) | struct PredictorReg
FILE: include/xgboost/span.h
function namespace (line 76) | namespace xgboost::common {
function typename (line 281) | typename SpanType::index_type index_ { 0 };
type ExtentValue (line 296) | struct ExtentValue
type IsAllowedExtentConversion (line 311) | struct IsAllowedExtentConversion
function XGBOOST_DEVICE (line 330) | XGBOOST_DEVICE constexpr bool operator()(const T& _x, const T& _y) const {
function XGBOOST_DEVICE (line 337) | XGBOOST_DEVICE constexpr bool operator()(const T& _x, const T& _y) const {
function LexicographicalCompare (line 345) | bool LexicographicalCompare(InputIt1 first1, InputIt1 last1,
function XGBOOST_DEVICE (line 458) | XGBOOST_DEVICE Span(pointer _first, pointer _last) :
function XGBOOST_DEVICE (line 503) | XGBOOST_DEVICE constexpr iterator begin() const __span_noexcept { // NO...
function XGBOOST_DEVICE (line 515) | XGBOOST_DEVICE constexpr const_iterator cend() const __span_noexcept { ...
function pointer (line 620) | pointer data_ { nullptr };
function index_type (line 690) | index_type size_{0}
function XGBOOST_DEVICE (line 694) | XGBOOST_DEVICE IterSpan(It it, index_type size) : it_{std::move(it)}, si...
FILE: include/xgboost/string_view.h
function namespace (line 15) | namespace xgboost {
FILE: include/xgboost/task.h
function namespace (line 11) | namespace xgboost {
FILE: include/xgboost/tree_model.h
function namespace (line 27) | namespace xgboost {
type RTreeNodeStat (line 57) | struct RTreeNodeStat {
function class (line 81) | class RegTree : public Model {
function XGBOOST_DEVICE (line 135) | XGBOOST_DEVICE void SetLeftChild(int nid) { this->cleft_ = nid; }
function XGBOOST_DEVICE (line 140) | XGBOOST_DEVICE void SetRightChild(int nid) { this->cright_ = nid; }
function XGBOOST_DEVICE (line 159) | XGBOOST_DEVICE void SetLeaf(bst_float value, int right = kInvalidNodeId) {
function XGBOOST_DEVICE (line 165) | XGBOOST_DEVICE void MarkDelete() { this->sindex_ = kDeletedNodeMarker; }
function XGBOOST_DEVICE (line 167) | XGBOOST_DEVICE void Reuse() { this->sindex_ = 0; }
function parent_ (line 189) | int32_t parent_{kInvalidNodeId};
function CategoricalSplitMatrix (line 521) | [[nodiscard]] CategoricalSplitMatrix GetCategoriesMatrix(DeviceOrd devic...
function bst_node_t (line 534) | [[nodiscard]] bst_node_t LeftChild(bst_node_t nidx) const {
function bst_node_t (line 540) | [[nodiscard]] bst_node_t RightChild(bst_node_t nidx) const {
function bst_node_t (line 579) | bst_node_t AllocNode() {
function DeleteNode (line 597) | void DeleteNode(int nid) {
function Init (line 612) | inline void RegTree::FVec::Init(size_t size) {
function Fill (line 618) | inline void RegTree::FVec::Fill(SparsePage::Inst const& inst) {
function Drop (line 629) | inline void RegTree::FVec::Drop() { this->Init(this->Size()); }
function GetFvalue (line 633) | inline float RegTree::FVec::GetFvalue(size_t i) const { return data_[i]; }
function IsMissing (line 635) | inline bool RegTree::FVec::IsMissing(size_t i) const { return std::isnan...
function StringView (line 640) | inline StringView MTNotImplemented() {
FILE: include/xgboost/tree_updater.h
function namespace (line 25) | namespace xgboost {
FILE: jvm-packages/create_jni.py
function cd (line 28) | def cd(path):
function maybe_makedirs (line 39) | def maybe_makedirs(path):
function run (line 49) | def run(command, **kwargs):
function cp (line 54) | def cp(source, target):
function normpath (line 61) | def normpath(path):
function native_build (line 70) | def native_build(cli_args: argparse.Namespace) -> None:
FILE: jvm-packages/xgboost4j-example/src/main/java/ml/dmlc/xgboost4j/java/example/BasicWalkThrough.java
class BasicWalkThrough (line 35) | public class BasicWalkThrough {
method checkPredicts (line 36) | public static boolean checkPredicts(float[][] fPredicts, float[][] sPr...
method saveDumpModel (line 50) | public static void saveDumpModel(String modelPath, String[] modelInfos...
method main (line 63) | public static void main(String[] args) throws IOException, XGBoostError {
FILE: jvm-packages/xgboost4j-example/src/main/java/ml/dmlc/xgboost4j/java/example/BoostFromPrediction.java
class BoostFromPrediction (line 30) | public class BoostFromPrediction {
method main (line 31) | public static void main(String[] args) throws XGBoostError {
FILE: jvm-packages/xgboost4j-example/src/main/java/ml/dmlc/xgboost4j/java/example/CrossValidation.java
class CrossValidation (line 30) | public class CrossValidation {
method main (line 31) | public static void main(String[] args) throws IOException, XGBoostError {
FILE: jvm-packages/xgboost4j-example/src/main/java/ml/dmlc/xgboost4j/java/example/CustomObjective.java
class CustomObjective (line 38) | public class CustomObjective {
class LogRegObj (line 42) | public static class LogRegObj implements IObjective {
method sigmoid (line 51) | public float sigmoid(float input) {
method transform (line 56) | public float[][] transform(float[][] predicts) {
method getGradient (line 67) | @Override
class EvalError (line 104) | public static class EvalError implements IEvaluation {
method EvalError (line 109) | public EvalError() {
method getMetric (line 112) | @Override
method eval (line 117) | @Override
method main (line 140) | public static void main(String[] args) throws XGBoostError {
FILE: jvm-packages/xgboost4j-example/src/main/java/ml/dmlc/xgboost4j/java/example/EarlyStopping.java
class EarlyStopping (line 29) | public class EarlyStopping {
method main (line 30) | public static void main(String[] args) throws IOException, XGBoostError {
FILE: jvm-packages/xgboost4j-example/src/main/java/ml/dmlc/xgboost4j/java/example/GeneralizedLinearModel.java
class GeneralizedLinearModel (line 32) | public class GeneralizedLinearModel {
method main (line 33) | public static void main(String[] args) throws XGBoostError {
FILE: jvm-packages/xgboost4j-example/src/main/java/ml/dmlc/xgboost4j/java/example/PredictFirstNtree.java
class PredictFirstNtree (line 31) | public class PredictFirstNtree {
method main (line 32) | public static void main(String[] args) throws XGBoostError {
FILE: jvm-packages/xgboost4j-example/src/main/java/ml/dmlc/xgboost4j/java/example/PredictLeafIndices.java
class PredictLeafIndices (line 30) | public class PredictLeafIndices {
method main (line 31) | public static void main(String[] args) throws XGBoostError {
FILE: jvm-packages/xgboost4j-example/src/main/java/ml/dmlc/xgboost4j/java/example/flink/DistTrainWithFlinkExample.java
class DistTrainWithFlinkExample (line 39) | public class DistTrainWithFlinkExample {
method runPrediction (line 41) | static Tuple2<XGBoostModel, DataSet<Float[]>> runPrediction(
method parseCsv (line 75) | private static MapOperator<Tuple13<Double, String, Double, Double, Dou...
method mapFunction (line 86) | private static Tuple2<Vector, Double> mapFunction(Tuple13<Double, Stri...
method main (line 97) | public static void main(String[] args) throws Exception {
FILE: jvm-packages/xgboost4j-example/src/main/java/ml/dmlc/xgboost4j/java/example/util/CustomEval.java
class CustomEval (line 30) | public class CustomEval implements IEvaluation {
method getMetric (line 35) | @Override
method eval (line 40) | @Override
FILE: jvm-packages/xgboost4j-example/src/main/java/ml/dmlc/xgboost4j/java/example/util/DataLoader.java
class DataLoader (line 29) | public class DataLoader {
class DenseData (line 30) | public static class DenseData {
class CSRSparseData (line 37) | public static class CSRSparseData {
method loadCSVFile (line 44) | public static DenseData loadCSVFile(String filePath) throws IOException {
method loadSVMFile (line 82) | public static CSRSparseData loadSVMFile(String filePath) throws IOExce...
FILE: jvm-packages/xgboost4j-example/src/test/java/ml/dmlc/xgboost4j/java/example/JavaExamplesTest.java
class JavaExamplesTest (line 23) | public class JavaExamplesTest {
method testExamples (line 25) | @Test
FILE: jvm-packages/xgboost4j-flink/src/main/java/ml/dmlc/xgboost4j/java/flink/XGBoost.java
class XGBoost (line 49) | public class XGBoost {
class MapFunction (line 52) | private static class MapFunction
method MapFunction (line 59) | public MapFunction(Map<String, Object> params, int round, Map<String...
method mapPartition (line 74) | public void mapPartition(java.lang.Iterable<Tuple2<Vector, Double>> it,
method trainBooster (line 108) | private Booster trainBooster(DMatrix trainMat,
class VectorToPointMapper (line 138) | private static class VectorToPointMapper
method apply (line 141) | @Override
method loadModelFromHadoopFile (line 165) | public static XGBoostModel loadModelFromHadoopFile(final String modelP...
method train (line 181) | public static XGBoostModel train(DataSet<Tuple2<Vector, Double>> dtrain,
FILE: jvm-packages/xgboost4j-flink/src/main/java/ml/dmlc/xgboost4j/java/flink/XGBoostModel.java
class XGBoostModel (line 40) | public class XGBoostModel implements Serializable {
method XGBoostModel (line 48) | public XGBoostModel(Booster booster) {
method saveModelAsHadoopFile (line 58) | public void saveModelAsHadoopFile(String modelPath) throws IOException...
method toByteArray (line 62) | public byte[] toByteArray(String format) throws XGBoostError {
method saveModelAsHadoopFile (line 74) | public void saveModelAsHadoopFile(String modelPath, String format)
method predict (line 85) | public float[][] predict(DMatrix testSet) throws XGBoostError {
method predict (line 95) | public DataSet<Float[]> predict(DataSet<Vector> data) {
class PredictorFunction (line 100) | private static class PredictorFunction implements MapPartitionFunction...
method PredictorFunction (line 104) | public PredictorFunction(Booster booster) {
method mapPartition (line 108) | @Override
method fromVector (line 125) | private static LabeledPoint fromVector(SparseVector vector) {
FILE: jvm-packages/xgboost4j-spark-gpu/src/main/java/ml/dmlc/xgboost4j/java/CudfColumn.java
class CudfColumn (line 32) | @JsonInclude(JsonInclude.Include.NON_NULL)
method CudfColumn (line 40) | public CudfColumn(long shape, long data, String typestr, int version) {
method from (line 51) | public static CudfColumn from(ColumnVector cv) {
method getShape (line 80) | public List<Long> getShape() {
method getData (line 84) | public List<Object> getData() {
method getTypestr (line 88) | public String getTypestr() {
method getVersion (line 92) | public int getVersion() {
method getMask (line 96) | public CudfColumn getMask() {
method setMask (line 100) | public void setMask(CudfColumn mask) {
method toJson (line 104) | @Override
FILE: jvm-packages/xgboost4j-spark-gpu/src/main/java/ml/dmlc/xgboost4j/java/CudfColumnBatch.java
class CudfColumnBatch (line 33) | public class CudfColumnBatch extends ColumnBatch {
method CudfColumnBatch (line 51) | public CudfColumnBatch(Table featureTable, Table labelTable, Table wei...
method initializeCudfColumns (line 80) | private List<CudfColumn> initializeCudfColumns(Table table) {
method getFeatureTable (line 90) | public Table getFeatureTable() {
method getLabelTable (line 95) | public Table getLabelTable() {
method getFeatures (line 100) | public List<CudfColumn> getFeatures() {
method getLabel (line 104) | public List<CudfColumn> getLabel() {
method getWeight (line 108) | public List<CudfColumn> getWeight() {
method getBaseMargin (line 112) | public List<CudfColumn> getBaseMargin() {
method getQid (line 116) | public List<CudfColumn> getQid() {
method toJson (line 120) | public String toJson() {
method toFeaturesJson (line 130) | @Override
method close (line 140) | @Override
FILE: jvm-packages/xgboost4j-spark-gpu/src/main/java/ml/dmlc/xgboost4j/java/ExtMemQuantileDMatrix.java
class ExtMemQuantileDMatrix (line 25) | public class ExtMemQuantileDMatrix extends QuantileDMatrix {
method ExtMemQuantileDMatrix (line 28) | public ExtMemQuantileDMatrix(Iterator<ColumnBatch> iter,
method ExtMemQuantileDMatrix (line 49) | public ExtMemQuantileDMatrix(
method ExtMemQuantileDMatrix (line 57) | public ExtMemQuantileDMatrix(
method getConfig (line 64) | private String getConfig(float missing, int maxBin, int nthread,
FILE: jvm-packages/xgboost4j-spark-gpu/src/main/java/ml/dmlc/xgboost4j/java/QuantileDMatrix.java
class F64NaNSerializer (line 29) | class F64NaNSerializer extends JsonSerializer<Double> {
method serialize (line 30) | @Override
class F32NaNSerializer (line 41) | class F32NaNSerializer extends JsonSerializer<Float> {
method serialize (line 42) | @Override
class QuantileDMatrix (line 56) | public class QuantileDMatrix extends DMatrix {
method QuantileDMatrix (line 58) | protected QuantileDMatrix() {
method QuantileDMatrix (line 71) | public QuantileDMatrix(
method QuantileDMatrix (line 93) | public QuantileDMatrix(
method setLabel (line 112) | @Override
method setWeight (line 117) | @Override
method setBaseMargin (line 122) | @Override
method setLabel (line 127) | @Override
method setWeight (line 132) | @Override
method setBaseMargin (line 137) | @Override
method setBaseMargin (line 142) | @Override
method setGroup (line 147) | @Override
method getConfig (line 152) | private String getConfig(float missing, int maxBin, int nthread) {
FILE: jvm-packages/xgboost4j-spark-gpu/src/test/java/ml/dmlc/xgboost4j/java/BoosterTest.java
class BoosterTest (line 34) | public class BoosterTest {
method testBooster (line 36) | @Test
FILE: jvm-packages/xgboost4j-spark-gpu/src/test/java/ml/dmlc/xgboost4j/java/DMatrixTest.java
class DMatrixTest (line 30) | public class DMatrixTest {
method testCreateFromArrayInterfaceColumns (line 32) | @Test
method testCreateFromColumnDataIterator (line 86) | @Test
method generateFloatArray (line 135) | private Float[] generateFloatArray(int size, long seed) {
method testGetQuantileCut (line 144) | @Test
method convertFloatTofloat (line 186) | private float[] convertFloatTofloat(Float[]... datas) {
FILE: jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/LabeledPoint.java
class LabeledPoint (line 26) | public final class LabeledPoint implements Serializable {
method LabeledPoint (line 44) | public LabeledPoint(
method LabeledPoint (line 67) | public LabeledPoint(
method LabeledPoint (line 80) | public LabeledPoint(
method LabeledPoint (line 94) | public LabeledPoint(
method hashCode (line 102) | @Override
method equals (line 108) | @Override
method label (line 126) | public float label() { return this.label; }
method size (line 127) | public int size() { return this.size; }
method indices (line 128) | public int[] indices() { return this.indices; }
method values (line 129) | public float[] values() { return this.values; }
method weight (line 130) | public float weight() { return this.weight; }
method group (line 131) | public int group() { return this.group; }
method baseMargin (line 132) | public float baseMargin() { return this.baseMargin; }
FILE: jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/Booster.java
class Booster (line 36) | public class Booster implements Serializable, KryoSerializable {
type PredictionType (line 47) | public enum PredictionType {
method PredictionType (line 52) | private PredictionType(final Integer ptype) {
method getPType (line 55) | public Integer getPType() {
method Booster (line 68) | Booster(Map<String, Object> params, DMatrix[] cacheMats) throws XGBoos...
method loadModel (line 79) | static Booster loadModel(String modelPath) throws XGBoostError {
method loadModel (line 97) | static Booster loadModel(byte[] buffer) throws XGBoostError {
method setParam (line 110) | public final void setParam(String key, Object value) throws XGBoostErr...
method setParams (line 120) | public void setParams(Map<String, Object> params) throws XGBoostError {
method getAttrs (line 134) | public final Map<String, String> getAttrs() throws XGBoostError {
method getAttr (line 151) | public final String getAttr(String key) throws XGBoostError {
method setAttr (line 164) | public final void setAttr(String key, String value) throws XGBoostError {
method setAttrs (line 174) | public void setAttrs(Map<String, String> attrs) throws XGBoostError {
method getFeatureNames (line 187) | public final String[] getFeatureNames() throws XGBoostError {
method setFeatureNames (line 200) | public void setFeatureNames(String[] featureNames) throws XGBoostError {
method getFeatureTypes (line 210) | public final String[] getFeatureTypes() throws XGBoostError {
method setFeatureTypes (line 222) | public void setFeatureTypes(String[] featureTypes) throws XGBoostError {
method update (line 234) | public void update(DMatrix dtrain, int iter) throws XGBoostError {
method update (line 238) | @Deprecated
method update (line 253) | public void update(DMatrix dtrain, int iter, IObjective obj) throws XG...
method boost (line 259) | @Deprecated
method boost (line 273) | public void boost(DMatrix dtrain, int iter, float[] grad, float[] hess...
method evalSet (line 291) | public String evalSet(DMatrix[] evalMatrixs, String[] evalNames, int i...
method evalSet (line 309) | public String evalSet(DMatrix[] evalMatrixs, String[] evalNames, int i...
method evalSet (line 335) | public String evalSet(DMatrix[] evalMatrixs, String[] evalNames, IEval...
method evalSet (line 341) | public String evalSet(DMatrix[] evalMatrixs, String[] evalNames, IEval...
method predict (line 365) | private float[][] predict(DMatrix data,
method inplace_predict (line 405) | public float[][] inplace_predict(float[] data,
method inplace_predict (line 431) | public float[][] inplace_predict(float[] data,
method inplace_predict (line 455) | public float[][] inplace_predict(float[] data,
method predictLeaf (line 494) | public float[][] predictLeaf(DMatrix data, int treeLimit) throws XGBoo...
method predictContrib (line 506) | public float[][] predictContrib(DMatrix data, int treeLimit) throws XG...
method predict (line 517) | public float[][] predict(DMatrix data) throws XGBoostError {
method predict (line 528) | public float[][] predict(DMatrix data, boolean outputMargin) throws XG...
method predict (line 540) | public float[][] predict(DMatrix data, boolean outputMargin, int treeL...
method saveModel (line 549) | public void saveModel(String modelPath) throws XGBoostError{
method saveModel (line 561) | public void saveModel(OutputStream out) throws XGBoostError, IOExcepti...
method saveModel (line 576) | public void saveModel(OutputStream out, String format) throws XGBoostE...
method getModelDump (line 589) | public String[] getModelDump(String featureMap, boolean withStats) thr...
method getModelDump (line 603) | public String[] getModelDump(String featureMap, boolean withStats, Str...
method getModelDump (line 628) | public String[] getModelDump(String[] featureNames, boolean withStats)...
method getModelDump (line 642) | public String[] getModelDump(String[] featureNames, boolean withStats,...
class FeatureImportanceType (line 666) | public static class FeatureImportanceType {
method getFeatureScore (line 682) | public Map<String, Integer> getFeatureScore(String[] featureNames) thr...
method getFeatureScore (line 693) | public Map<String, Integer> getFeatureScore(String featureMap) throws ...
method getFeatureWeightsFromModel (line 705) | private Map<String, Integer> getFeatureWeightsFromModel(String[] model...
method getScore (line 732) | public Map<String, Double> getScore(
method getScore (line 745) | public Map<String, Double> getScore(
method getFeatureImportanceFromModel (line 758) | private Map<String, Double> getFeatureImportanceFromModel(
method toByteArray (line 819) | public byte[] toByteArray() throws XGBoostError {
method toByteArray (line 831) | public byte[] toByteArray(String format) throws XGBoostError {
method getNumFeature (line 842) | public long getNumFeature() throws XGBoostError {
method getNumBoostedRound (line 847) | public int getNumBoostedRound() throws XGBoostError {
method init (line 858) | private void init(DMatrix[] cacheMats) throws XGBoostError {
method dmatrixsToHandles (line 875) | private static long[] dmatrixsToHandles(DMatrix[] dmatrixs) {
method writeObject (line 884) | private void writeObject(java.io.ObjectOutputStream out) throws IOExce...
method readObject (line 894) | private void readObject(java.io.ObjectInputStream in)
method finalize (line 907) | @Override
method dispose (line 913) | public synchronized void dispose() {
method write (line 920) | @Override
method read (line 933) | @Override
FILE: jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/Column.java
class Column (line 23) | public abstract class Column implements AutoCloseable {
method toJson (line 28) | public abstract String toJson();
method close (line 30) | @Override
FILE: jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/ColumnBatch.java
class ColumnBatch (line 23) | public abstract class ColumnBatch extends Column {
method toFeaturesJson (line 26) | public abstract String toFeaturesJson();
FILE: jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/Communicator.java
class Communicator (line 17) | public class Communicator {
type OpType (line 19) | public enum OpType implements Serializable {
method getOperand (line 24) | public int getOperand() {
method OpType (line 28) | OpType(int op) {
type DataType (line 33) | public enum DataType implements Serializable {
method getEnumOp (line 41) | public int getEnumOp() {
method getSize (line 45) | public int getSize() {
method DataType (line 49) | DataType(int enumOp, int size) {
method checkCall (line 55) | private static void checkCall(int ret) throws XGBoostError {
method init (line 67) | public static void init(Map<String, Object> envs) throws XGBoostError {
method shutdown (line 82) | public static void shutdown() throws XGBoostError {
method communicatorPrint (line 92) | public static void communicatorPrint(String msg) throws XGBoostError {
method getRank (line 102) | public static int getRank() throws XGBoostError {
method getWorldSize (line 114) | public static int getWorldSize() throws XGBoostError {
method allReduce (line 127) | public static float[] allReduce(float[] elements, OpType op) {
FILE: jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/ConfigContext.java
class ConfigContext (line 33) | public class ConfigContext implements AutoCloseable {
method ConfigContext (line 36) | public ConfigContext() throws XGBoostError {
method ConfigContext (line 41) | public ConfigContext(Map<String, Object> params) throws XGBoostError {
method getGlobalConfig (line 53) | private String getGlobalConfig() throws XGBoostError {
method getConfig (line 59) | public Object getConfig(String name) throws XGBoostError {
method setConfig (line 73) | public void setConfig(String key, Object value) throws XGBoostError {
method setConfigs (line 86) | public void setConfigs(Map<String, Object> configs) throws XGBoostError {
method close (line 96) | @Override
FILE: jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/DMatrix.java
class DMatrix (line 28) | public class DMatrix {
method DMatrix (line 38) | public DMatrix(Iterator<LabeledPoint> iter, String cacheInfo) throws X...
method DMatrix (line 50) | public DMatrix(Iterator<LabeledPoint> iter,
method DMatrix (line 71) | public DMatrix(String dataPath) throws XGBoostError {
method DMatrix (line 89) | @Deprecated
method DMatrix (line 106) | public DMatrix(long[] headers, int[] indices, float[] data, DMatrix.Sp...
method DMatrix (line 111) | public DMatrix(long[] headers, int[] indices, float[] data, DMatrix.Sp...
method DMatrix (line 136) | @Deprecated
method DMatrix (line 149) | public DMatrix(BigDenseMatrix matrix) throws XGBoostError {
method DMatrix (line 161) | public DMatrix(float[] data, int nrow, int ncol, float missing) throws...
method DMatrix (line 173) | public DMatrix(BigDenseMatrix matrix, float missing) throws XGBoostErr...
method DMatrix (line 183) | protected DMatrix(long handle) {
method DMatrix (line 196) | public DMatrix(ColumnBatch columnBatch, float missing, int nthread) th...
method flatten (line 210) | private static float[] flatten(float[][] mat) {
method setQueryId (line 230) | public void setQueryId(Column column) throws XGBoostError {
method setXGBDMatrixInfo (line 234) | private void setXGBDMatrixInfo(String type, String json) throws XGBoos...
method setXGBDMatrixFeatureInfo (line 241) | private void setXGBDMatrixFeatureInfo(String type, String[] values) th...
method getXGBDMatrixFeatureInfo (line 251) | private String[] getXGBDMatrixFeatureInfo(String type) throws XGBoostE...
method getFeatureNames (line 271) | public String[] getFeatureNames() throws XGBoostError {
method setFeatureNames (line 281) | public void setFeatureNames(String[] values) throws XGBoostError {
method getFeatureTypes (line 291) | public String[] getFeatureTypes() throws XGBoostError {
method setFeatureTypes (line 301) | public void setFeatureTypes(String[] values) throws XGBoostError {
method getGroup (line 311) | public int[] getGroup() throws XGBoostError {
method setGroup (line 321) | public void setGroup(int[] group) throws XGBoostError {
method setQueryId (line 331) | public void setQueryId(int[] qid) throws XGBoostError {
method getFloatInfo (line 335) | private float[] getFloatInfo(String field) throws XGBoostError {
method getIntInfo (line 341) | private int[] getIntInfo(String field) throws XGBoostError {
method getLabel (line 353) | public float[] getLabel() throws XGBoostError {
method setLabel (line 364) | public void setLabel(Column column) throws XGBoostError {
method setLabel (line 374) | public void setLabel(float[] labels) throws XGBoostError {
method getWeight (line 384) | public float[] getWeight() throws XGBoostError {
method setWeight (line 395) | public void setWeight(Column column) throws XGBoostError {
method setWeight (line 405) | public void setWeight(float[] weights) throws XGBoostError {
method getBaseMargin (line 412) | public float[] getBaseMargin() throws XGBoostError {
method setBaseMargin (line 423) | public void setBaseMargin(Column column) throws XGBoostError {
method setBaseMargin (line 433) | public void setBaseMargin(float[] baseMargin) throws XGBoostError {
method setBaseMargin (line 446) | public void setBaseMargin(float[][] baseMargin) throws XGBoostError {
method slice (line 457) | public DMatrix slice(int[] rowIndex) throws XGBoostError {
method rowNum (line 471) | public long rowNum() throws XGBoostError {
method nonMissingNum (line 483) | public long nonMissingNum() throws XGBoostError {
method saveBinary (line 492) | public void saveBinary(String filePath) {
method getHandle (line 499) | public long getHandle() {
method finalize (line 503) | @Override
method dispose (line 508) | public synchronized void dispose() {
type SparseType (line 518) | public enum SparseType {
class QuantileCut (line 526) | public class QuantileCut {
method QuantileCut (line 532) | QuantileCut(long[] indptr, float[] values) {
method getIndptr (line 537) | public long[] getIndptr() {
method getValues (line 541) | public float[] getValues() {
method getQuantileCut (line 551) | public QuantileCut getQuantileCut() throws XGBoostError {
FILE: jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/DataBatch.java
class DataBatch (line 18) | class DataBatch {
method DataBatch (line 33) | DataBatch(long[] rowOffset, float[] weight, float[] label, int[] featu...
class BatchIterator (line 43) | static class BatchIterator implements Iterator<DataBatch> {
method BatchIterator (line 47) | BatchIterator(Iterator<LabeledPoint> base, int batchSize) {
method hasNext (line 52) | @Override
method next (line 57) | @Override
method remove (line 110) | @Override
FILE: jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/ExternalCheckpointManager.java
class ExternalCheckpointManager (line 35) | public class ExternalCheckpointManager {
method ExternalCheckpointManager (line 50) | public ExternalCheckpointManager(String checkpointPath, FileSystem fs)...
method getPath (line 59) | private String getPath(int version) {
method getExistingVersions (line 63) | private List<Integer> getExistingVersions() throws IOException {
method latest (line 77) | private Integer latest(List<Integer> versions) {
method cleanPath (line 87) | public void cleanPath() throws IOException {
method loadCheckpointAsBooster (line 100) | public Booster loadCheckpointAsBooster() throws IOException, XGBoostEr...
method updateCheckpoint (line 123) | public void updateCheckpoint(Booster boosterToCheckpoint) throws IOExc...
method cleanUpHigherVersions (line 152) | public void cleanUpHigherVersions(int currentRound) throws IOException {
method getCheckpointRounds (line 170) | public List<Integer> getCheckpointRounds(
FILE: jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/IEvaluation.java
type IEvaluation (line 25) | public interface IEvaluation extends Serializable {
method getMetric (line 31) | String getMetric();
method eval (line 40) | float eval(float[][] predicts, DMatrix dmat);
FILE: jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/IObjective.java
type IObjective (line 26) | public interface IObjective extends Serializable {
method getGradient (line 34) | List<float[]> getGradient(float[][] predicts, DMatrix dtrain);
FILE: jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/ITracker.java
type ITracker (line 23) | public interface ITracker extends Thread.UncaughtExceptionHandler {
method getWorkerArgs (line 25) | Map<String, Object> getWorkerArgs() throws XGBoostError;
method start (line 27) | boolean start() throws XGBoostError;
method stop (line 29) | void stop() throws XGBoostError;
method waitFor (line 31) | void waitFor(long taskExecutionTimeout) throws XGBoostError;
FILE: jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/NativeLibLoader.java
class NativeLibLoader (line 37) | class NativeLibLoader {
type OS (line 43) | enum OS {
method OS (line 51) | OS(String name) {
method detectOS (line 61) | static OS detectOS() {
type Arch (line 81) | enum Arch {
method Arch (line 88) | Arch(String name) {
method detectArch (line 97) | static Arch detectArch() {
class LibraryPathProvider (line 114) | static class LibraryPathProvider {
method getPropertyNameForLibrary (line 119) | static String getPropertyNameForLibrary(String libName) {
method getLibraryPathFor (line 130) | static String getLibraryPathFor(OS os, Arch arch, String libName) {
method initXGBoost (line 161) | static synchronized void initXGBoost() throws IOException {
method loadLibraryFromJar (line 227) | private static void loadLibraryFromJar(String path) throws IOException...
method createTempFileFromResource (line 246) | static String createTempFileFromResource(String path) throws
method getPlatformFor (line 297) | private static String getPlatformFor(OS os, Arch arch) {
FILE: jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/RabitTracker.java
class RabitTracker (line 30) | public class RabitTracker implements ITracker {
method RabitTracker (line 36) | public RabitTracker(int numWorkers) throws XGBoostError {
method RabitTracker (line 40) | public RabitTracker(int numWorkers, String hostIp)
method RabitTracker (line 44) | public RabitTracker(int numWorkers, String hostIp, int port, int timeo...
method uncaughtException (line 54) | public void uncaughtException(Thread t, Throwable e) {
method getWorkerArgs (line 69) | public Map<String, Object> getWorkerArgs() throws XGBoostError {
method stop (line 83) | public void stop() throws XGBoostError {
method start (line 87) | public boolean start() throws XGBoostError {
method waitFor (line 103) | public void waitFor(long timeout) throws XGBoostError {
FILE: jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/XGBoost.java
class XGBoost (line 32) | public class XGBoost {
method loadModel (line 46) | public static Booster loadModel(String modelPath)
method loadModel (line 62) | public static Booster loadModel(InputStream in) throws XGBoostError, I...
method loadModel (line 82) | public static Booster loadModel(byte[] buffer) throws XGBoostError, IO...
method train (line 98) | public static Booster train(
method train (line 125) | public static Booster train(
method saveCheckpoint (line 137) | private static void saveCheckpoint(
method trainAndSaveCheckpoint (line 152) | public static Booster trainAndSaveCheckpoint(
method train (line 307) | public static Booster train(
method tryGetIntFromObject (line 327) | private static Integer tryGetIntFromObject(Object o) {
method shouldPrint (line 341) | private static boolean shouldPrint(Map<String, Object> params, int ite...
method shouldEarlyStop (line 368) | static boolean shouldEarlyStop(int earlyStoppingRounds, int iter, int ...
method getMetricNameFromlog (line 375) | private static String getMetricNameFromlog(String evalInfo, String[] e...
method isMaximizeEvaluation (line 399) | public static boolean isMaximizeEvaluation(String evalInfo,
method crossValidation (line 444) | public static String[] crossValidation(
method makeNFold (line 488) | private static CVPack[] makeNFold(DMatrix data, int nfold, Map<String,...
method genRandPermutationNums (line 529) | private static List<Integer> genRandPermutationNums(int start, int end) {
method aggCVResults (line 544) | private static String aggCVResults(String[] results) {
class CVPack (line 577) | private static class CVPack {
method CVPack (line 592) | public CVPack(DMatrix dtrain, DMatrix dtest, Map<String, Object> par...
method update (line 607) | public void update(int iter) throws XGBoostError {
method update (line 617) | public void update(IObjective obj) throws XGBoostError {
method eval (line 628) | public String eval(int iter) throws XGBoostError {
method eval (line 639) | public String eval(IEvaluation eval) throws XGBoostError {
FILE: jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/XGBoostError.java
class XGBoostError (line 23) | public class XGBoostError extends Exception {
method XGBoostError (line 24) | public XGBoostError(String message) {
method XGBoostError (line 28) | public XGBoostError(String message, Throwable cause) {
FILE: jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/XGBoostJNI.java
class XGBoostJNI (line 30) | public class XGBoostJNI {
method checkCall (line 47) | static void checkCall(int ret) throws XGBoostError {
method XGBGetLastError (line 53) | public final static native String XGBGetLastError();
method XGDMatrixCreateFromFile (line 55) | public final static native int XGDMatrixCreateFromFile(String fname, i...
method XGDMatrixCreateFromDataIter (line 57) | final static native int XGDMatrixCreateFromDataIter(java.util.Iterator...
method XGDMatrixCreateFromCSR (line 60) | public final static native int XGDMatrixCreateFromCSR(long[] indptr, i...
method XGDMatrixCreateFromCSC (line 65) | public final static native int XGDMatrixCreateFromCSC(long[] colptr, i...
method XGDMatrixCreateFromMat (line 70) | public final static native int XGDMatrixCreateFromMat(float[] data, in...
method XGDMatrixCreateFromMatRef (line 73) | public final static native int XGDMatrixCreateFromMatRef(long dataRef,...
method XGDMatrixSliceDMatrix (line 76) | public final static native int XGDMatrixSliceDMatrix(long handle, int[...
method XGDMatrixFree (line 78) | public final static native int XGDMatrixFree(long handle);
method XGDMatrixSaveBinary (line 80) | public final static native int XGDMatrixSaveBinary(long handle, String...
method XGDMatrixSetFloatInfo (line 82) | public final static native int XGDMatrixSetFloatInfo(long handle, Stri...
method XGDMatrixSetUIntInfo (line 84) | public final static native int XGDMatrixSetUIntInfo(long handle, Strin...
method XGDMatrixGetFloatInfo (line 86) | public final static native int XGDMatrixGetFloatInfo(long handle, Stri...
method XGDMatrixGetUIntInfo (line 88) | public final static native int XGDMatrixGetUIntInfo(long handle, Strin...
method XGDMatrixSetStrFeatureInfo (line 98) | public final static native int XGDMatrixSetStrFeatureInfo(long handle,...
method XGDMatrixGetStrFeatureInfo (line 101) | public final static native int XGDMatrixGetStrFeatureInfo(long handle,...
method XGDMatrixNumRow (line 104) | public final static native int XGDMatrixNumRow(long handle, long[] row);
method XGDMatrixNumNonMissing (line 106) | public final static native int XGDMatrixNumNonMissing(long handle, lon...
method XGBoosterCreate (line 108) | public final static native int XGBoosterCreate(long[] handles, long[] ...
method XGBoosterFree (line 110) | public final static native int XGBoosterFree(long handle);
method XGBoosterSetParam (line 112) | public final static native int XGBoosterSetParam(long handle, String n...
method XGBoosterUpdateOneIter (line 114) | public final static native int XGBoosterUpdateOneIter(long handle, int...
method XGBoosterTrainOneIter (line 116) | public final static native int XGBoosterTrainOneIter(long handle, long...
method XGBoosterEvalOneIter (line 119) | public final static native int XGBoosterEvalOneIter(long handle, int i...
method XGBoosterPredict (line 122) | public final static native int XGBoosterPredict(long handle, long dmat...
method XGBoosterPredictFromDense (line 125) | public final static native int XGBoosterPredictFromDense(long handle, ...
method XGBoosterLoadModel (line 129) | public final static native int XGBoosterLoadModel(long handle, String ...
method XGBoosterSaveModel (line 131) | public final static native int XGBoosterSaveModel(long handle, String ...
method XGBoosterLoadModelFromBuffer (line 133) | public final static native int XGBoosterLoadModelFromBuffer(long handl...
method XGBoosterSaveModelToBuffer (line 135) | public final static native int XGBoosterSaveModelToBuffer(long handle,...
method XGBoosterDumpModelEx (line 137) | public final static native int XGBoosterDumpModelEx(long handle, Strin...
method XGBoosterDumpModelExWithFeatures (line 140) | public final static native int XGBoosterDumpModelExWithFeatures(
method XGBoosterGetAttrNames (line 143) | public final static native int XGBoosterGetAttrNames(long handle, Stri...
method XGBoosterGetAttr (line 145) | public final static native int XGBoosterGetAttr(long handle, String ke...
method XGBoosterSetAttr (line 147) | public final static native int XGBoosterSetAttr(long handle, String ke...
method XGBoosterGetNumFeature (line 149) | public final static native int XGBoosterGetNumFeature(long handle, lon...
method XGBoosterGetNumBoostedRound (line 151) | public final static native int XGBoosterGetNumBoostedRound(long handle...
method CommunicatorInit (line 154) | public final static native int CommunicatorInit(String args);
method CommunicatorFinalize (line 156) | public final static native int CommunicatorFinalize();
method CommunicatorPrint (line 158) | public final static native int CommunicatorPrint(String msg);
method CommunicatorGetRank (line 160) | public final static native int CommunicatorGetRank(int[] out);
method CommunicatorGetWorldSize (line 162) | public final static native int CommunicatorGetWorldSize(int[] out);
method TrackerCreate (line 165) | public final static native int TrackerCreate(String host, int nWorkers...
method TrackerRun (line 168) | public final static native int TrackerRun(long handle);
method TrackerWaitFor (line 170) | public final static native int TrackerWaitFor(long handle, long timeout);
method TrackerWorkerArgs (line 172) | public final static native int TrackerWorkerArgs(long handle, long tim...
method TrackerFree (line 174) | public final static native int TrackerFree(long handle);
method CommunicatorAllreduce (line 177) | final static native int CommunicatorAllreduce(ByteBuffer sendrecvbuf, ...
method XGDMatrixSetInfoFromInterface (line 180) | public final static native int XGDMatrixSetInfoFromInterface(
method XGQuantileDMatrixCreateFromCallback (line 183) | public final static native int XGQuantileDMatrixCreateFromCallback(
method XGExtMemQuantileDMatrixCreateFromCallback (line 186) | public final static native int XGExtMemQuantileDMatrixCreateFromCallback(
method XGDMatrixCreateFromArrayInterfaceColumns (line 189) | public final static native int XGDMatrixCreateFromArrayInterfaceColumns(
method XGBoosterSetStrFeatureInfo (line 192) | public final static native int XGBoosterSetStrFeatureInfo(long handle,...
method XGBoosterGetStrFeatureInfo (line 194) | public final static native int XGBoosterGetStrFeatureInfo(long handle,...
method XGDMatrixGetQuantileCut (line 196) | public final static native int XGDMatrixGetQuantileCut(long handle, lo...
method XGBSetGlobalConfig (line 198) | public final static native int XGBSetGlobalConfig(String config);
method XGBGetGlobalConfig (line 200) | public final static native int XGBGetGlobalConfig(String[] out);
method CudaSetDevice (line 203) | public final static native int CudaSetDevice(int deviceId);
FILE: jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/util/BigDenseMatrix.java
class BigDenseMatrix (line 24) | public final class BigDenseMatrix {
method setDirect (line 33) | public static void setDirect(long valAddress, float val) {
method getDirect (line 37) | public static float getDirect(long valAddress) {
method BigDenseMatrix (line 41) | public BigDenseMatrix(int nrow, int ncol) {
method set (line 52) | public final void set(long idx, float val) {
method set (line 56) | public final void set(int i, int j, float val) {
method get (line 60) | public final float get(long idx) {
method get (line 64) | public final float get(int i, int j) {
method dispose (line 68) | public final void dispose() {
method index (line 72) | private long index(int i, int j) {
FILE: jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/util/UtilUnsafe.java
class UtilUnsafe (line 25) | public final class UtilUnsafe {
method UtilUnsafe (line 29) | private UtilUnsafe() {
method getUnsafe (line 32) | private static Unsafe getUnsafe() {
FILE: jvm-packages/xgboost4j/src/native/xgboost4j-gpu.cpp
type xgboost::jni (line 11) | namespace xgboost::jni {
function QdmFromCallback (line 12) | int QdmFromCallback(JNIEnv *, jobject, jlongArray, char const *, bool,...
FILE: jvm-packages/xgboost4j/src/native/xgboost4j.cpp
function setHandle (line 42) | void setHandle(JNIEnv *jenv, jlongArray jhandle, void *handle) {
function JavaVM (line 51) | JavaVM*& GlobalJvm() {
function jint (line 63) | jint JNI_OnLoad(JavaVM *vm, void *reserved) {
function XGB_EXTERN_C (line 73) | XGB_EXTERN_C int XGBoost4jCallbackDataIterNext(
function JNIEXPORT (line 203) | JNIEXPORT jstring JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGBGetL...
function JNIEXPORT (line 218) | JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGDMatrixC...
function JNIEXPORT (line 241) | JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGDMatrixC...
function jint (line 265) | jint MakeJVMSparseInput(JNIEnv *jenv, jlongArray jindptr, jintArray jind...
function JNIEXPORT (line 313) | JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGDMatrixC...
function JNIEXPORT (line 331) | JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGDMatrixC...
function JNIEXPORT (line 349) | JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGDMatrixC...
function JNIEXPORT (line 366) | JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGDMatrixC...
function SliceDMatrixWinWar (line 386) | auto SliceDMatrixWinWar(DMatrixHandle handle, T *ptr, std::size_t len, D...
function JNIEXPORT (line 405) | JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGDMatrixS...
function JNIEXPORT (line 426) | JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGDMatrixFree
function JNIEXPORT (line 438) | JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGDMatrixS...
function JNIEXPORT (line 457) | JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGDMatrixS...
function JNIEXPORT (line 481) | JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGDMatrixS...
function JNIEXPORT (line 504) | JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGDMatrixG...
function JNIEXPORT (line 531) | JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGDMatrixG...
function JNIEXPORT (line 557) | JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGDMatrixN...
function JNIEXPORT (line 572) | JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGDMatrixN...
function JNIEXPORT (line 589) | JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGBoosterC...
function JNIEXPORT (line 614) | JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGBoosterF...
function JNIEXPORT (line 626) | JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGBoosterS...
function JNIEXPORT (line 651) | JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGBoosterU...
function JNIEXPORT (line 663) | JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGBoosterT...
function JNIEXPORT (line 705) | JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGBoosterE...
function JNIEXPORT (line 748) | JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGBoosterP...
function JNIEXPORT (line 772) | JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGBoosterP...
function JNIEXPORT (line 851) | JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGBoosterL...
function JNIEXPORT (line 868) | JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGBoosterS...
function JNIEXPORT (line 887) | JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGBoosterL...
function JNIEXPORT (line 902) | JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGBoosterS...
function JNIEXPORT (line 933) | JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGBoosterD...
function JNIEXPORT (line 969) | JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGBoosterD...
function JNIEXPORT (line 1031) | JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGBoosterG...
function JNIEXPORT (line 1054) | JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGBoosterG...
function JNIEXPORT (line 1082) | JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGBoosterS...
function JNIEXPORT (line 1105) | JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGBoosterG...
function JNIEXPORT (line 1116) | JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGBoosterG...
function JNIEXPORT (line 1132) | JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_Communicat...
function JNIEXPORT (line 1150) | JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_TrackerCre...
function JNIEXPORT (line 1183) | JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_TrackerRun...
function JNIEXPORT (line 1195) | JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_TrackerWai...
function JNIEXPORT (line 1213) | JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_TrackerWor...
function JNIEXPORT (line 1231) | JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_TrackerFre...
function JNIEXPORT (line 1243) | JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_Communicat...
function JNIEXPORT (line 1254) | JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_Communicat...
function JNIEXPORT (line 1272) | JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_Communicat...
function JNIEXPORT (line 1284) | JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_Communicat...
function JNIEXPORT (line 1296) | JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_Communicat...
type xgboost::jni (line 1303) | namespace xgboost::jni {
function JNIEXPORT (line 1313) | JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGQuantile...
function JNIEXPORT (line 1328) | JNIEXPORT jint JNICALL
function JNIEXPORT (line 1344) | JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGDMatrixS...
function JNIEXPORT (line 1364) | JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGDMatrixC...
function JNIEXPORT (line 1384) | JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGDMatrixS...
function JNIEXPORT (line 1417) | JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGDMatrixG...
function JNIEXPORT (line 1448) | JNIEXPORT jint JNICALL
function JNIEXPORT (line 1487) | JNIEXPORT jint JNICALL
function JNIEXPORT (line 1519) | JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGDMatrixG...
function JNIEXPORT (line 1560) | JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGBSetGlob...
function JNIEXPORT (line 1579) | JNIEXPORT jint JNICALL
function JNIEXPORT (line 1594) | JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_CudaSetDev...
FILE: jvm-packages/xgboost4j/src/test/java/ml/dmlc/xgboost4j/java/ArchDetectionTest.java
class ArchDetectionTest (line 37) | @RunWith(Enclosed.class)
class ParameterizedArchDetectionTest (line 42) | @RunWith(Parameterized.class)
method ParameterizedArchDetectionTest (line 48) | public ParameterizedArchDetectionTest(String osArchValue, NativeLibL...
method data (line 53) | @Parameters
method testArch (line 64) | @Test
class UnsupportedArchDetectionTest (line 73) | public static class UnsupportedArchDetectionTest {
method testUnsupportedArch (line 75) | @Test
method executeAndRestoreProperty (line 84) | private static void executeAndRestoreProperty(Runnable action) {
FILE: jvm-packages/xgboost4j/src/test/java/ml/dmlc/xgboost4j/java/BoosterImplTest.java
class BoosterImplTest (line 36) | public class BoosterImplTest {
class EvalError (line 40) | public static class EvalError implements IEvaluation {
method getMetric (line 41) | @Override
method eval (line 46) | @Override
method trainBooster (line 68) | private Booster trainBooster(DMatrix trainMat, DMatrix testMat) throws...
method testBoosterBasic (line 92) | @Test
method inplacePredictTest (line 109) | @Test
method inplacePredictMultiPredictTest (line 158) | @Test
method inplacePredictWithMarginTest (line 210) | @Test
method generateRandomDataSet (line 273) | private float[] generateRandomDataSet(int size) {
method saveLoadModelWithPath (line 282) | @Test
method saveLoadModelWithFeaturesWithPath (line 301) | @Test
method saveLoadModelWithStream (line 333) | @Test
class IncreasingEval (line 351) | private static class IncreasingEval implements IEvaluation {
method getMetric (line 354) | @Override
method eval (line 359) | @Override
method testDescendMetricsWithBoundaryCondition (line 365) | @Test
method testEarlyStoppingForMultipleMetrics (line 386) | @Test
method testDescendMetrics (line 435) | @Test
method testAscendMetricsWithBoundaryCondition (line 468) | @Test
method testAscendMetrics (line 489) | @Test
method testBoosterEarlyStop (line 522) | @Test
method testEarlyStoppingAttributes (line 558) | @Test
method testWithQuantileHisto (line 586) | private void testWithQuantileHisto(DMatrix trainingSet, Map<String, DM...
method testQuantileHistoDepthWise (line 603) | @Test
method testQuantileHistoLossGuide (line 623) | @Test
method testQuantileHistoLossGuideMaxBin (line 644) | @Test
method testDumpModelJson (line 665) | @Test
method testGetFeatureScore (line 681) | @Test
method testGetFeatureImportanceGain (line 693) | @Test
method testGetFeatureImportanceTotalGain (line 705) | @Test
method testGetFeatureImportanceCover (line 717) | @Test
method testGetFeatureImportanceTotalCover (line 729) | @Test
method testQuantileHistoDepthwiseMaxDepth (line 741) | @Test
method testQuantileHistoDepthwiseMaxDepthMaxBin (line 759) | @Test
method testCV (line 784) | @Test
method testTrainFromExistingModel (line 813) | @Test
method testSetAndGetAttrs (line 862) | @Test
method testGetNumFeature (line 892) | @Test
method testConcurrentPredict (line 901) | @Test
FILE: jvm-packages/xgboost4j/src/test/java/ml/dmlc/xgboost4j/java/ConfigContextTest.java
class ConfigContextTest (line 26) | public class ConfigContextTest {
method testBasic (line 27) | @Test
method testWriteMap (line 37) | @Test
FILE: jvm-packages/xgboost4j/src/test/java/ml/dmlc/xgboost4j/java/DMatrixTest.java
class DMatrixTest (line 40) | public class DMatrixTest {
method testCreateFromDataIteratorWithMissingValue (line 43) | @Test
method testCreateFromDataIterator (line 68) | @Test
method testCreateFromDataIteratorWithDiffFeatureSize (line 89) | @Test
method testCreateFromFile (line 116) | @Test
method testCreateFromCSR (line 132) | @Test
method testCreateFromCSREx (line 154) | @Test
method testCreateFromCSC (line 176) | @Test
method testCreateFromCSCEx (line 201) | @Test
method testCreateFromDenseMatrix (line 226) | @Test
method createFromDenseMatrix (line 261) | private DMatrix createFromDenseMatrix() throws XGBoostError {
method testCreateFromDenseMatrixWithMissingValue (line 287) | @Test
method testCreateFromDenseMatrixRef (line 295) | @Test
method testTrainWithDenseMatrixRef (line 332) | @Test
method writeResourceIntoTempFile (line 388) | private String writeResourceIntoTempFile(String resource) {
method testSetAndGetGroup (line 411) | @Test
method testSetAndGetFeatureInfo (line 440) | @Test
method testSetAndGetQueryId (line 465) | @Test
method getGetQuantileCut (line 501) | @Test
FILE: jvm-packages/xgboost4j/src/test/java/ml/dmlc/xgboost4j/java/LibraryPathProviderTest.java
class LibraryPathProviderTest (line 26) | public class LibraryPathProviderTest {
method testLibraryPathProviderUsesOsAndArchToResolvePath (line 28) | @Test
method testLibraryPathProviderUsesPropertyValueForPathIfPresent (line 35) | @Test
method executeAndRestoreProperty (line 47) | private static void executeAndRestoreProperty(String propertyName, Run...
FILE: jvm-packages/xgboost4j/src/test/java/ml/dmlc/xgboost4j/java/OsDetectionTest.java
class OsDetectionTest (line 35) | @RunWith(Enclosed.class)
class SupportedOSDetectionTest (line 40) | @RunWith(Parameterized.class)
method SupportedOSDetectionTest (line 46) | public SupportedOSDetectionTest(String osNameValue, OS expectedOS) {
method data (line 51) | @Parameters
method getOS (line 62) | @Test
class UnsupportedOSDetectionTest (line 71) | public static class UnsupportedOSDetectionTest {
method testUnsupportedOs (line 73) | @Test
method executeAndRestoreProperty (line 82) | private static void executeAndRestoreProperty(Runnable action) {
FILE: jvm-packages/xgboost4j/src/test/java/ml/dmlc/xgboost4j/java/XGBoostTest.java
class XGBoostTest (line 27) | public class XGBoostTest {
method composeEvalInfo (line 29) | private String composeEvalInfo(String metric, String evalName) {
method testIsMaximizeEvaluation (line 33) | @Test
method testEarlyStop (line 81) | @Test
FILE: ops/docker_run.py
function parse_run_args (line 27) | def parse_run_args(*, raw_run_args: str) -> list[str]:
function get_user_ids (line 31) | def get_user_ids() -> dict[str, str]:
function fancy_print_cli_args (line 42) | def fancy_print_cli_args(*, cli_args: list[str]) -> None:
function docker_run (line 54) | def docker_run(
function main (line 82) | def main(*, args: argparse.Namespace) -> None:
FILE: ops/pipeline/manage-artifacts.py
function resolve (line 15) | def resolve(x: Path) -> Path:
function path_equals (line 19) | def path_equals(a: Path, b: Path) -> bool:
function compute_s3_url (line 23) | def compute_s3_url(*, s3_bucket: str, prefix: str, artifact: str) -> str:
function aws_s3_upload (line 29) | def aws_s3_upload(*, src: Path, dest: str, make_public: bool) -> None:
function aws_s3_download (line 41) | def aws_s3_download(*, src: str, dest_dir: Path) -> None:
function aws_s3_download_with_wildcard (line 51) | def aws_s3_download_with_wildcard(*, src: str, dest_dir: Path) -> None:
function upload (line 84) | def upload(*, args: argparse.Namespace) -> None:
function download (line 94) | def download(*, args: argparse.Namespace) -> None:
FILE: ops/pipeline/trigger-rtd-impl.py
function trigger_build (line 16) | def trigger_build(token: str) -> None:
function main (line 46) | def main() -> None:
FILE: ops/script/change_scala_version.py
function main (line 7) | def main(args: argparse.Namespace) -> None:
FILE: ops/script/change_version.py
function cmake (line 24) | def cmake(major: int, minor: int, patch: int) -> None:
function pypkg (line 41) | def pypkg(
function rpkg (line 69) | def rpkg(major: int, minor: int, patch: int, is_dev: bool) -> None:
function jvmpkgs (line 113) | def jvmpkgs(
function main (line 125) | def main(args: argparse.Namespace) -> None:
FILE: ops/script/format_wheel_meta.py
function main (line 11) | def main(args: argparse.Namespace) -> None:
FILE: ops/script/lint_cpp.py
function filepath_enumerate (line 13) | def filepath_enumerate(paths: list[str]) -> list[str]:
function get_header_guard_dmlc (line 26) | def get_header_guard_dmlc(filename: str) -> str:
class Lint (line 57) | class Lint:
method __init__ (line 58) | def __init__(self) -> None:
method process_cpp (line 79) | def process_cpp(self, path: str, suffix: str) -> None:
method _print_summary_map (line 92) | def _print_summary_map(
method print_summary (line 108) | def print_summary(self, strm: TextIO) -> int:
function process (line 125) | def process(fname: str, allow_type: list[str]) -> None:
function main (line 135) | def main() -> None:
FILE: ops/script/pypi_variants.py
function copyfile (line 22) | def copyfile(src: str, dst: str) -> None:
function make_pyproject (line 29) | def make_pyproject(
FILE: ops/script/release_artifacts.py
function show_progress (line 32) | def show_progress(block_num: int, block_size: int, total_size: int) -> N...
function retrieve (line 46) | def retrieve(url: str, filename: Optional[Path] = None) -> str:
function latest_hash (line 52) | def latest_hash() -> str:
function _download_python_wheels (line 67) | def _download_python_wheels(
function make_python_sdist (line 105) | def make_python_sdist(
function download_python_wheels (line 146) | def download_python_wheels(branch: str, commit_hash: str, outdir: Path) ...
function download_r_artifacts (line 189) | def download_r_artifacts(
function check_path (line 224) | def check_path() -> None:
function make_src_tarball (line 231) | def make_src_tarball(release: str, outdir: Path) -> Tuple[str, str]:
function release_note (line 268) | def release_note(
function main (line 305) | def main(args: argparse.Namespace) -> None:
FILE: ops/script/run_clang_tidy.py
function call (line 15) | def call(args: list[str]) -> tuple[int, int, str, list[str]]:
class ClangTidy (line 34) | class ClangTidy:
method __init__ (line 43) | def __init__(self, args: argparse.Namespace) -> None:
method __enter__ (line 65) | def __enter__(self) -> "ClangTidy":
method __exit__ (line 72) | def __exit__(self, *args: list) -> None:
method _generate_cdb (line 78) | def _generate_cdb(self) -> None:
method convert_nvcc_command_to_clang (line 103) | def convert_nvcc_command_to_clang(self, command: str) -> str:
method _configure_flags (line 163) | def _configure_flags(self, path: str, command: str) -> list[list[str]]:
method _configure (line 200) | def _configure(self) -> list[list[str]]:
method run (line 226) | def run(self) -> bool:
function test_tidy (line 262) | def test_tidy(args: argparse.Namespace) -> None:
FILE: ops/script/test_r_package.py
function get_mingw_bin (line 19) | def get_mingw_bin() -> str:
function pack_rpackage (line 25) | def pack_rpackage() -> Path:
function build_rpackage (line 83) | def build_rpackage(path: str) -> str:
function check_example_timing (line 105) | def check_example_timing(rcheck_dir: Path, threshold: float) -> None:
function check_rpackage (line 135) | def check_rpackage(path: str) -> None:
function check_rmarkdown (line 192) | def check_rmarkdown() -> None:
function test_with_autotools (line 211) | def test_with_autotools() -> None:
function test_with_cmake (line 230) | def test_with_cmake(args: argparse.Namespace) -> None:
function test_with_rchk (line 304) | def test_with_rchk() -> None:
function main (line 335) | def main(args: argparse.Namespace) -> None:
FILE: ops/script/test_tidy.cc
type Foo (line 4) | struct Foo {
function main (line 8) | int main() {
FILE: ops/script/test_utils.py
class DirectoryExcursion (line 9) | class DirectoryExcursion:
method __init__ (line 10) | def __init__(self, path: Union[os.PathLike, str]) -> None:
method __enter__ (line 14) | def __enter__(self) -> None:
method __exit__ (line 17) | def __exit__(self, *args: Any) -> None:
function cd (line 24) | def cd(path: Union[os.PathLike, str]) -> Callable:
function record_time (line 42) | def record_time(func: Callable[..., R]) -> Callable[..., R]:
function print_time (line 62) | def print_time() -> None:
FILE: ops/script/type_check_python.py
class TypeCheckPaths (line 9) | class TypeCheckPaths:
function check_cmd_print_failure_assistance (line 41) | def check_cmd_print_failure_assistance(cmd: List[str]) -> bool:
function run_mypy (line 57) | def run_mypy(rel_path: str) -> bool:
function main (line 63) | def main() -> None:
FILE: plugin/example/custom_obj.cc
type xgboost::obj (line 13) | namespace xgboost::obj {
type MyLogisticParam (line 18) | struct MyLogisticParam : public XGBoostParameter<MyLogisticParam> {
method DMLC_DECLARE_PARAMETER (line 21) | DMLC_DECLARE_PARAMETER(MyLogisticParam) {
class MyLogistic (line 31) | class MyLogistic : public ObjFunction {
method Configure (line 33) | void Configure(const Args& args) override { param_.UpdateAllowUnknow...
method ObjInfo (line 35) | [[nodiscard]] ObjInfo Task() const override { return ObjInfo::kRegre...
method GetGradient (line 37) | void GetGradient(const HostDeviceVector<float>& preds, MetaInfo cons...
method PredTransform (line 59) | void PredTransform(HostDeviceVector<float> *io_preds) const override {
method ProbToMargin (line 66) | void ProbToMargin(linalg::Vector<float>* base_score) const override {
method SaveConfig (line 74) | void SaveConfig(Json* p_out) const override {
method LoadConfig (line 80) | void LoadConfig(Json const& in) override {
FILE: plugin/federated/federated_coll.cc
type xgboost::collective (line 16) | namespace xgboost::collective {
function Result (line 18) | [[nodiscard]] Result GetGRPCResult(std::string const &name, grpc::Stat...
function Result (line 23) | [[nodiscard]] Result BroadcastImpl(Comm const &comm, std::uint64_t *se...
function Coll (line 58) | Coll *FederatedColl::MakeCUDAVar() {
function Result (line 64) | [[nodiscard]] Result FederatedColl::Allreduce(Comm const &comm, common...
function Result (line 90) | [[nodiscard]] Result FederatedColl::Broadcast(Comm const &comm, common...
function Result (line 95) | [[nodiscard]] Result FederatedColl::Allgather(Comm const &comm, common...
function Result (line 123) | [[nodiscard]] Result FederatedColl::AllgatherV(Comm const &comm,
FILE: plugin/federated/federated_coll.h
function namespace (line 8) | namespace xgboost::collective {
FILE: plugin/federated/federated_comm.cc
type xgboost::collective (line 19) | namespace xgboost::collective {
function Comm (line 131) | Comm* FederatedComm::MakeCUDAVar(Context const*, std::shared_ptr<Coll>...
FILE: plugin/federated/federated_comm.h
function namespace (line 17) | namespace xgboost::collective {
FILE: plugin/federated/federated_tracker.cc
type xgboost::collective (line 18) | namespace xgboost::collective {
type federated (line 19) | namespace federated {
function Result (line 116) | Result FederatedTracker::Shutdown() {
function Json (line 129) | [[nodiscard]] Json FederatedTracker::WorkerArgs() const {
FILE: plugin/federated/federated_tracker.h
function namespace (line 16) | namespace xgboost::collective {
FILE: plugin/sycl/common/hist_util.cc
type xgboost (line 15) | namespace xgboost {
type sycl (line 16) | namespace sycl {
type common (line 17) | namespace common {
function InitHist (line 23) | void InitHist(::sycl::queue* qu, GHistRow<GradientSumT, MemoryType...
function CopyHist (line 39) | void CopyHist(::sycl::queue* qu,
function SubtractionHist (line 66) | ::sycl::event SubtractionHist(::sycl::queue* qu,
function ReduceHist (line 96) | ::sycl::event ReduceHist(::sycl::queue* qu, GradientPairT* hist_data,
function BuildHistKernel (line 120) | ::sycl::event BuildHistKernel(::sycl::queue* qu,
function BuildHistKernelLocal (line 186) | ::sycl::event BuildHistKernelLocal(::sycl::queue* qu,
function BuildHistKernel (line 261) | ::sycl::event BuildHistKernel(::sycl::queue* qu,
function BuildHistDispatchKernel (line 316) | ::sycl::event BuildHistDispatchKernel(
function BuildHistKernel (line 370) | ::sycl::event BuildHistKernel(::sycl::queue* qu,
FILE: plugin/sycl/common/hist_util.h
function namespace (line 21) | namespace xgboost {
FILE: plugin/sycl/common/host_device_vector.cc
type xgboost (line 21) | namespace xgboost {
class HostDeviceVectorImpl (line 23) | class HostDeviceVectorImpl {
method HostDeviceVectorImpl (line 27) | explicit HostDeviceVectorImpl(size_t size, T v, DeviceOrd device) : ...
method HostDeviceVectorImpl (line 38) | HostDeviceVectorImpl(const Initializer& init, DeviceOrd device) : de...
method HostDeviceVectorImpl (line 49) | HostDeviceVectorImpl(HostDeviceVectorImpl<T>&& that) : device_{that....
method SetDevice (line 64) | void SetDevice(DeviceOrd device) {
method Resize (line 81) | void Resize(size_t new_size, U&&... args) {
method SyncHost (line 99) | void SyncHost(GPUAccess access) {
method SyncDevice (line 112) | void SyncDevice(GPUAccess access) {
method HostCanAccess (line 125) | bool HostCanAccess(GPUAccess access) const { return device_access_ <...
method HostCanRead (line 126) | bool HostCanRead() const { return HostCanAccess(GPUAccess::kRead); }
method HostCanWrite (line 127) | bool HostCanWrite() const { return HostCanAccess(GPUAccess::kNone); }
method DeviceCanAccess (line 128) | bool DeviceCanAccess(GPUAccess access) const { return device_access_...
method DeviceCanRead (line 129) | bool DeviceCanRead() const { return DeviceCanAccess(GPUAccess::kRead...
method DeviceCanWrite (line 130) | bool DeviceCanWrite() const { return DeviceCanAccess(GPUAccess::kWri...
method GPUAccess (line 131) | GPUAccess Access() const { return device_access_; }
method Size (line 133) | size_t Size() const {
method DeviceOrd (line 137) | DeviceOrd Device() const { return device_; }
method T (line 139) | T* DevicePointer() {
method T (line 144) | const T* ConstDevicePointer() {
method DeviceSpan (line 149) | common::Span<T> DeviceSpan() {
method ConstDeviceSpan (line 154) | common::Span<const T> ConstDeviceSpan() {
method Fill (line 159) | void Fill(T v) {
method Copy (line 169) | void Copy(HostDeviceVectorImpl<T>* other) {
method Copy (line 181) | void Copy(const std::vector<T>& other) {
method Copy (line 190) | void Copy(std::initializer_list<T> other) {
method Extend (line 199) | void Extend(HostDeviceVectorImpl* other) {
method ResizeDevice (line 216) | void ResizeDevice(size_t new_size) {
method SetDevice (line 222) | void SetDevice() {
method CopyToDevice (line 231) | void CopyToDevice(HostDeviceVectorImpl* other) {
method CopyToDevice (line 242) | void CopyToDevice(const T* begin) {
function DeviceOrd (line 300) | DeviceOrd HostDeviceVector<T>::Device() const {
function T (line 305) | T* HostDeviceVector<T>::DevicePointer() {
function T (line 310) | const T* HostDeviceVector<T>::ConstDevicePointer() const {
function GPUAccess (line 388) | GPUAccess HostDeviceVector<T>::DeviceAccess() const {
class HostDeviceVector<bst_float> (line 398) | class HostDeviceVector<bst_float>
class HostDeviceVector<double> (line 399) | class HostDeviceVector<double>
class HostDeviceVector<GradientPair> (line 400) | class HostDeviceVector<GradientPair>
class HostDeviceVector<GradientPairPrecise> (line 401) | class HostDeviceVector<GradientPairPrecise>
class HostDeviceVector<std::int32_t> (line 402) | class HostDeviceVector<std::int32_t>
class HostDeviceVector<std::uint8_t> (line 403) | class HostDeviceVector<std::uint8_t>
class HostDeviceVector<std::int8_t> (line 404) | class HostDeviceVector<std::int8_t>
class HostDeviceVector<FeatureType> (line 405) | class HostDeviceVector<FeatureType>
class HostDeviceVector<Entry> (line 406) | class HostDeviceVector<Entry>
class HostDeviceVector<bst_idx_t> (line 407) | class HostDeviceVector<bst_idx_t>
class HostDeviceVector<std::uint32_t> (line 408) | class HostDeviceVector<std::uint32_t>
class HostDeviceVector<RegTree::Node> (line 409) | class HostDeviceVector<RegTree::Node>
class HostDeviceVector<sycl::predictor::Node> (line 410) | class HostDeviceVector<sycl::predictor::Node>
class HostDeviceVector<RegTree::CategoricalSplitMatrix::Segment> (line 411) | class HostDeviceVector<RegTree::CategoricalSplitMatrix::Segment>
class HostDeviceVector<RTreeNodeStat> (line 412) | class HostDeviceVector<RTreeNodeStat>
FILE: plugin/sycl/common/linalg_op.cc
type xgboost::sycl::linalg (line 14) | namespace xgboost::sycl::linalg {
function SmallHistogram (line 15) | void SmallHistogram(Context const* ctx, xgboost::linalg::MatrixView<fl...
FILE: plugin/sycl/common/linalg_op.h
function namespace (line 16) | namespace xgboost {
FILE: plugin/sycl/common/optional_weight.cc
type xgboost::common::sycl_impl (line 10) | namespace xgboost::common::sycl_impl {
function SumOptionalWeights (line 11) | double SumOptionalWeights(Context const* ctx, OptionalWeights const& w...
FILE: plugin/sycl/common/partition_builder.h
function namespace (line 30) | namespace xgboost {
FILE: plugin/sycl/common/row_set.h
function namespace (line 20) | namespace xgboost {
FILE: plugin/sycl/common/stats.cc
type xgboost::common::sycl_impl (line 11) | namespace xgboost::common::sycl_impl {
function Mean (line 12) | void Mean(Context const* ctx, linalg::VectorView<float const> v, linal...
FILE: plugin/sycl/common/transform.h
function namespace (line 12) | namespace xgboost {
FILE: plugin/sycl/context_helper.cc
type xgboost (line 12) | namespace xgboost {
type sycl (line 13) | namespace sycl {
function DeviceOrd (line 15) | DeviceOrd DeviceFP64(const DeviceOrd& device) {
FILE: plugin/sycl/context_helper.h
function namespace (line 10) | namespace xgboost {
FILE: plugin/sycl/data.h
function namespace (line 26) | namespace xgboost {
FILE: plugin/sycl/data/gradient_index.cc
type xgboost (line 13) | namespace xgboost {
type sycl (line 14) | namespace sycl {
type common (line 15) | namespace common {
function SearchBin (line 17) | uint32_t SearchBin(const bst_float* cut_values, const uint32_t* cu...
function mergeSort (line 29) | void mergeSort(BinIdxType* begin, BinIdxType* end, BinIdxType* buf) {
FILE: plugin/sycl/data/gradient_index.h
function namespace (line 14) | namespace xgboost {
FILE: plugin/sycl/device_manager.cc
type xgboost (line 9) | namespace xgboost {
type sycl (line 10) | namespace sycl {
FILE: plugin/sycl/device_manager.h
function namespace (line 21) | namespace xgboost {
FILE: plugin/sycl/device_properties.h
function namespace (line 12) | namespace xgboost {
FILE: plugin/sycl/predictor/node.h
function namespace (line 10) | namespace xgboost {
FILE: plugin/sycl/predictor/predictor.cc
type xgboost::sycl_impl (line 32) | namespace xgboost::sycl_impl {
function InitOutPredictions (line 33) | void InitOutPredictions(Context const* ctx, linalg::VectorView<float c...
type xgboost (line 47) | namespace xgboost {
type sycl (line 48) | namespace sycl {
type predictor (line 49) | namespace predictor {
class DeviceModel (line 53) | class DeviceModel {
method SetDevice (line 59) | void SetDevice(DeviceOrd device) {
method Init (line 65) | void Init(const gbm::GBTreeModel& model, size_t tree_begin, size...
function BinarySearch (line 99) | float BinarySearch(const Entry* begin_ptr, const Entry* end_ptr, s...
function NextNodeIdx (line 133) | size_t NextNodeIdx(float fvalue, const Node& node) {
function GetLeafWeight (line 145) | float GetLeafWeight(const Node* nodes, const Entry* first_entry, c...
function GetLeafWeight (line 159) | float GetLeafWeight(const Node* nodes, const float* fval_buff) {
class Predictor (line 168) | class Predictor : public xgboost::Predictor {
method Predictor (line 170) | explicit Predictor(Context const* context)
method PredictBatch (line 174) | void PredictBatch(DMatrix* dmat, PredictionCacheEntry* predts, c...
method InplacePredict (line 206) | bool InplacePredict(std::shared_ptr<DMatrix> p_m, const gbm::GBT...
method PredictLeaf (line 214) | void PredictLeaf(DMatrix* p_fmat, HostDeviceVector<bst_float>* o...
method PredictContribution (line 220) | void PredictContribution(DMatrix* p_fmat, HostDeviceVector<float...
method PredictInteractionContributions (line 229) | void PredictInteractionContributions(DMatrix* p_fmat, HostDevice...
method PredictKernelBufferDispatch (line 248) | void PredictKernelBufferDispatch(::sycl::event* event, const Ent...
method GetBlockSize (line 267) | size_t GetBlockSize(size_t n_nodes, size_t num_features, size_t ...
method PredictKernelBuffer (line 289) | void PredictKernelBuffer(::sycl::event* event, const Entry* data...
method PredictKernel (line 338) | void PredictKernel(::sycl::event* event, const Entry* data, floa...
method UseFvalueBuffer (line 378) | bool UseFvalueBuffer(size_t tree_begin, size_t tree_end, int num...
method DevicePredictInternal (line 402) | void DevicePredictInternal(DMatrix* dmat, HostDeviceVector<float...
FILE: plugin/sycl/tree/expand_entry.h
function namespace (line 14) | namespace xgboost {
FILE: plugin/sycl/tree/hist_dispatcher.h
function namespace (line 13) | namespace xgboost {
FILE: plugin/sycl/tree/hist_row_adder.h
function namespace (line 10) | namespace xgboost {
FILE: plugin/sycl/tree/hist_synchronizer.h
function namespace (line 13) | namespace xgboost {
FILE: plugin/sycl/tree/hist_updater.cc
type xgboost (line 16) | namespace xgboost {
type sycl (line 17) | namespace sycl {
type tree (line 18) | namespace tree {
class HistUpdater<float> (line 839) | class HistUpdater<float>
class HistUpdater<double> (line 840) | class HistUpdater<double>
FILE: plugin/sycl/tree/hist_updater.h
function namespace (line 28) | namespace xgboost {
FILE: plugin/sycl/tree/param.h
function namespace (line 24) | namespace xgboost {
function bst_float (line 60) | bst_float loss_chg {0.0f};
FILE: plugin/sycl/tree/split_evaluator.h
function namespace (line 26) | namespace xgboost {
FILE: plugin/sycl/tree/updater_quantile_hist.cc
type xgboost (line 20) | namespace xgboost {
type sycl (line 21) | namespace sycl {
type tree (line 22) | namespace tree {
FILE: plugin/sycl/tree/updater_quantile_hist.h
type HistMakerTrainParam (line 32) | struct HistMakerTrainParam
function DMLC_DECLARE_PARAMETER (line 36) | DMLC_DECLARE_PARAMETER(HistMakerTrainParam) {
function class (line 43) | class QuantileHistMaker: public TreeUpdater {
function LoadConfig (line 59) | void LoadConfig(Json const& in) override {
function SaveConfig (line 65) | void SaveConfig(Json* p_out) const override {
function DMatrix (line 83) | DMatrix const* p_last_dmat_ {nullptr};
FILE: python-package/hatch_build.py
function get_tag (line 12) | def get_tag() -> str:
class CustomBuildHook (line 18) | class CustomBuildHook(BuildHookInterface):
method initialize (line 22) | def initialize(self, version: str, build_data: Dict[str, Any]) -> None:
FILE: python-package/packager/build_config.py
class BuildConfiguration (line 8) | class BuildConfiguration: # pylint: disable=R0902
method _set_config_setting (line 28) | def _set_config_setting(self, config_settings: Dict[str, Any]) -> None:
method update (line 36) | def update(self, config_settings: Optional[Dict[str, Any]]) -> None:
method get_cmake_args (line 41) | def get_cmake_args(self) -> List[str]:
FILE: python-package/packager/nativelib.py
function _lib_name (line 17) | def _lib_name() -> str:
function build_libxgboost (line 30) | def build_libxgboost(
function locate_local_libxgboost (line 109) | def locate_local_libxgboost(
function locate_or_build_libxgboost (line 123) | def locate_or_build_libxgboost(
FILE: python-package/packager/pep517.py
function cd (line 25) | def cd(path: Union[str, pathlib.Path]) -> Iterator[str]: # pylint: disa...
function build_wheel (line 50) | def build_wheel(
function build_sdist (line 93) | def build_sdist(
function build_editable (line 137) | def build_editable(
FILE: python-package/packager/sdist.py
function copy_cpp_src_tree (line 11) | def copy_cpp_src_tree(
FILE: python-package/packager/util.py
function copytree_with_logging (line 10) | def copytree_with_logging(
function copy_with_logging (line 18) | def copy_with_logging(
FILE: python-package/xgboost/_c_api.py
class XGBoostError (line 14) | class XGBoostError(ValueError):
function from_pystr_to_cstr (line 19) | def from_pystr_to_cstr(data: str) -> bytes: ...
function from_pystr_to_cstr (line 23) | def from_pystr_to_cstr(data: List[str]) -> ctypes.Array: ...
function from_pystr_to_cstr (line 26) | def from_pystr_to_cstr(data: Union[str, List[str]]) -> Union[bytes, ctyp...
function from_cstr_to_pystr (line 39) | def from_cstr_to_pystr(data: CStrPptr, length: c_bst_ulong) -> List[str]:
function make_jcargs (line 50) | def make_jcargs(**kwargs: Any) -> bytes:
function _log_callback (line 55) | def _log_callback(msg: bytes) -> None:
function _get_log_callback_func (line 68) | def _get_log_callback_func() -> Callable:
function _lib_version (line 74) | def _lib_version(lib: ctypes.CDLL) -> Tuple[int, int, int]:
function _py_version (line 83) | def _py_version() -> str:
function _register_log_callback (line 90) | def _register_log_callback(lib: ctypes.CDLL) -> None:
function _parse_version (line 97) | def _parse_version(ver: str) -> Tuple[Tuple[int, int, int], str]:
function _load_lib (line 118) | def _load_lib() -> ctypes.CDLL:
function _check_call (line 187) | def _check_call(ret: int) -> None:
function c_str (line 193) | def c_str(string: str) -> ctypes.c_char_p:
FILE: python-package/xgboost/_data_utils.py
class _ArrayLikeArg (line 45) | class _ArrayLikeArg(Protocol):
method __array_interface__ (line 47) | def __array_interface__(self) -> "ArrayInf": ...
class _CudaArrayLikeArg (line 50) | class _CudaArrayLikeArg(Protocol):
method __cuda_array_interface__ (line 52) | def __cuda_array_interface__(self) -> "CudaArrayInf": ...
function array_hasobject (line 86) | def array_hasobject(data: DataType) -> bool:
function cuda_array_interface_dict (line 95) | def cuda_array_interface_dict(data: _CudaArrayLikeArg) -> CudaArrayInf:
function cuda_array_interface (line 105) | def cuda_array_interface(data: _CudaArrayLikeArg) -> bytes:
function from_array_interface (line 112) | def from_array_interface(interface: ArrayInf, zero_copy: bool = False) -...
function make_array_interface (line 183) | def make_array_interface(
function is_arrow_dict (line 217) | def is_arrow_dict(data: Any) -> TypeGuard["pa.DictionaryArray"]:
class DfCatAccessor (line 222) | class DfCatAccessor(Protocol):
method categories (line 226) | def categories( # pylint: disable=missing-function-docstring
method codes (line 231) | def codes(self) -> "pd.Series": ... # pylint: disable=missing-functio...
method dtype (line 234) | def dtype(self) -> np.dtype: ... # pylint: disable=missing-function-d...
method values (line 237) | def values(self) -> np.ndarray: ... # pylint: disable=missing-functio...
method to_arrow (line 239) | def to_arrow( # pylint: disable=missing-function-docstring
method __cuda_array_interface__ (line 244) | def __cuda_array_interface__(self) -> CudaArrayInf: ...
method _column (line 247) | def _column(self) -> Any: ...
function _is_df_cat (line 250) | def _is_df_cat(data: Any) -> TypeGuard[DfCatAccessor]:
function _arrow_npdtype (line 256) | def _arrow_npdtype() -> Dict[Any, Type[np.number]]:
function _arrow_buf_inf (line 277) | def _arrow_buf_inf(address: int, typestr: str, size: int, stream: None) ...
function _arrow_buf_inf (line 281) | def _arrow_buf_inf(
function _arrow_buf_inf (line 286) | def _arrow_buf_inf(
function _arrow_cat_names_inf (line 312) | def _arrow_cat_names_inf(cats: "pa.StringArray") -> Tuple[StringArray, A...
function _arrow_array_inf (line 351) | def _arrow_array_inf(
function arrow_cat_inf (line 386) | def arrow_cat_inf( # pylint: disable=too-many-locals
function _ensure_np_dtype (line 397) | def _ensure_np_dtype(
function _is_flatten (line 409) | def _is_flatten(array: NumpyOrCupy) -> bool:
function array_interface_dict (line 413) | def array_interface_dict(data: np.ndarray) -> ArrayInf:
function pd_cat_inf (line 423) | def pd_cat_inf( # pylint: disable=too-many-locals
function array_interface (line 496) | def array_interface(data: np.ndarray) -> bytes:
function check_cudf_meta (line 503) | def check_cudf_meta(data: _CudaArrayLikeArg, field: str) -> None:
class ArrowSchema (line 512) | class ArrowSchema(ctypes.Structure):
class ArrowArray (line 528) | class ArrowArray(ctypes.Structure):
class ArrowDeviceArray (line 546) | class ArrowDeviceArray(ctypes.Structure):
function wait_event (line 568) | def wait_event(event_hdl: int) -> None:
function cudf_cat_inf (line 584) | def cudf_cat_inf( # pylint: disable=too-many-locals
class Categories (line 648) | class Categories:
method __init__ (line 680) | def __init__(
method to_arrow (line 693) | def to_arrow(self) -> ArrowCatList:
method empty (line 708) | def empty(self) -> bool:
method get_handle (line 712) | def get_handle(self) -> int:
method __del__ (line 717) | def __del__(self) -> None:
function get_ref_categories (line 723) | def get_ref_categories(
class TransformedDf (line 754) | class TransformedDf(ABC):
method __init__ (line 767) | def __init__(
method array_interface (line 783) | def array_interface(self) -> bytes:
method shape (line 794) | def shape(self) -> Tuple[int, int]:
FILE: python-package/xgboost/_typing.py
class DataSplitMode (line 130) | class DataSplitMode(IntEnum):
FILE: python-package/xgboost/callback.py
class TrainingCallback (line 51) | class TrainingCallback(ABC):
method __init__ (line 60) | def __init__(self) -> None:
method before_training (line 63) | def before_training(self, model: _Model) -> _Model:
method after_training (line 67) | def after_training(self, model: _Model) -> _Model:
method before_iteration (line 71) | def before_iteration(self, model: _Model, epoch: int, evals_log: Evals...
method after_iteration (line 78) | def after_iteration(self, model: _Model, epoch: int, evals_log: EvalsL...
function _aggcv (line 100) | def _aggcv(rlist: List[str]) -> List[Tuple[str, float, float]]:
function _allreduce_metric (line 130) | def _allreduce_metric(score: _ART) -> _ART:
class CallbackContainer (line 149) | class CallbackContainer:
method __init__ (line 156) | def __init__(
method before_training (line 183) | def before_training(self, model: _Model) -> _Model:
method after_training (line 194) | def after_training(self, model: _Model) -> _Model:
method before_iteration (line 206) | def before_iteration(
method _update_history (line 218) | def _update_history(
method after_iteration (line 248) | def after_iteration(
class LearningRateScheduler (line 272) | class LearningRateScheduler(TrainingCallback):
method __init__ (line 288) | def __init__(
method after_iteration (line 305) | def after_iteration(self, model: _Model, epoch: int, evals_log: EvalsL...
class EarlyStopping (line 311) | class EarlyStopping(TrainingCallback):
method __init__ (line 359) | def __init__(
method before_training (line 384) | def before_training(self, model: _Model) -> _Model:
method _update_rounds (line 393) | def _update_rounds(
method after_iteration (line 456) | def after_iteration(self, model: _Model, epoch: int, evals_log: EvalsL...
method after_training (line 492) | def after_training(self, model: _Model) -> _Model:
class EvaluationMonitor (line 511) | class EvaluationMonitor(TrainingCallback):
method __init__ (line 530) | def __init__(
method _fmt_metric (line 546) | def _fmt_metric(
method after_iteration (line 555) | def after_iteration(self, model: _Model, epoch: int, evals_log: EvalsL...
method after_training (line 580) | def after_training(self, model: _Model) -> _Model:
class TrainingCheckPoint (line 586) | class TrainingCheckPoint(TrainingCallback):
method __init__ (line 615) | def __init__(
method before_training (line 630) | def before_training(self, model: _Model) -> _Model:
method after_iteration (line 634) | def after_iteration(self, model: _Model, epoch: int, evals_log: EvalsL...
FILE: python-package/xgboost/collective.py
class Config (line 25) | class Config:
method update_worker_args (line 75) | def update_worker_args(self, args: _Conf) -> _Conf:
method get_comm_config (line 85) | def get_comm_config(self, args: _Conf) -> _Conf:
function init (line 94) | def init(**args: _ArgVals) -> None:
function finalize (line 132) | def finalize() -> None:
function get_rank (line 137) | def get_rank() -> int:
function get_world_size (line 149) | def get_world_size() -> int:
function is_distributed (line 161) | def is_distributed() -> bool:
function communicator_print (line 167) | def communicator_print(msg: Any) -> None:
function get_processor_name (line 187) | def get_processor_name() -> str:
function broadcast (line 201) | def broadcast(data: _T, root: int) -> _T:
function _map_dtype (line 249) | def _map_dtype(dtype: np.dtype) -> int:
class Op (line 275) | class Op(IntEnum):
function allreduce (line 286) | def allreduce(data: np.ndarray, op: Op) -> np.ndarray:
function signal_error (line 319) | def signal_error() -> None:
function _find_nccl (line 324) | def _find_nccl() -> Optional[str]:
class CommunicatorContext (line 358) | class CommunicatorContext:
method __init__ (line 361) | def __init__(self, **args: _ArgVals) -> None:
method __enter__ (line 379) | def __enter__(self) -> _Args:
method __exit__ (line 385) | def __exit__(self, *args: Any) -> None:
FILE: python-package/xgboost/compat.py
function py_str (line 22) | def py_str(x: bytes | None) -> str:
function lazy_isinstance (line 28) | def lazy_isinstance(instance: Any, module: str, name: str) -> bool:
class XGBModelBase (line 64) | class XGBModelBase: # type: ignore[no-redef]
class XGBClassifierBase (line 67) | class XGBClassifierBase: # type: ignore[no-redef]
class XGBRegressorBase (line 70) | class XGBRegressorBase: # type: ignore[no-redef]
function is_cudf_available (line 83) | def is_cudf_available() -> bool:
function is_cupy_available (line 97) | def is_cupy_available() -> bool:
function import_cupy (line 110) | def import_cupy() -> types.ModuleType:
function is_pyarrow_available (line 121) | def is_pyarrow_available() -> bool:
function import_pyarrow (line 129) | def import_pyarrow() -> types.ModuleType:
function import_pandas (line 137) | def import_pandas() -> types.ModuleType:
function import_polars (line 145) | def import_polars() -> types.ModuleType:
function is_pandas_available (line 153) | def is_pandas_available() -> bool:
function _is_polars_lazyframe (line 168) | def _is_polars_lazyframe(data: DataType) -> bool:
function _is_polars_series (line 172) | def _is_polars_series(data: DataType) -> bool:
function _is_polars (line 176) | def _is_polars(data: DataType) -> bool:
function _is_arrow (line 182) | def _is_arrow(data: DataType) -> TypeGuard["pa.Table"]:
function _is_cudf_df (line 186) | def _is_cudf_df(data: DataType) -> bool:
function _is_cudf_ser (line 190) | def _is_cudf_ser(data: DataType) -> bool:
function _is_cudf_pandas (line 194) | def _is_cudf_pandas(data: DataType) -> bool:
function _is_pandas_df (line 201) | def _is_pandas_df(data: DataType) -> TypeGuard["pd.DataFrame"]:
function _is_pandas_series (line 207) | def _is_pandas_series(data: DataType) -> TypeGuard["pd.Series"]:
function _is_modin_df (line 213) | def _is_modin_df(data: DataType) -> bool:
function _is_modin_series (line 217) | def _is_modin_series(data: DataType) -> bool:
function is_dataframe (line 221) | def is_dataframe(data: DataType) -> bool:
function _is_cupy_alike (line 250) | def _is_cupy_alike(data: DataType) -> bool:
function concat (line 254) | def concat(value: Sequence[_T]) -> _T: # pylint: disable=too-many-retur...
FILE: python-package/xgboost/config.py
function config_doc (line 14) | def config_doc(
function set_config (line 127) | def set_config(**new_config: Any) -> None:
function get_config (line 147) | def get_config() -> Dict[str, Any]:
function config_context (line 180) | def config_context(**new_config: Any) -> Iterator[None]:
FILE: python-package/xgboost/core.py
function _parse_eval_str (line 98) | def _parse_eval_str(result: str) -> List[Tuple[str, float]]:
function _expect (line 111) | def _expect(expectations: Sequence[Type], got: Type) -> str:
function _check_distributed_params (line 134) | def _check_distributed_params(kwargs: Dict[str, Any]) -> None:
function _validate_feature_info (line 156) | def _validate_feature_info(
function build_info (line 173) | def build_info() -> dict:
function _numpy2ctypes_type (line 190) | def _numpy2ctypes_type(dtype: Type[np.number]) -> Type[CNumeric]:
function ctypes2numpy (line 208) | def ctypes2numpy(cptr: CNumericPtr, length: int, dtype: Type[np.number])...
function ctypes2buffer (line 219) | def ctypes2buffer(cptr: CStrPtr, length: int) -> bytearray:
function c_array (line 230) | def c_array(
function _prediction_output (line 239) | def _prediction_output(
class DataIter (line 249) | class DataIter(ABC): # pylint: disable=too-many-instance-attributes
method __init__ (line 336) | def __init__(
method get_callbacks (line 356) | def get_callbacks(self, enable_categorical: bool) -> Tuple[Callable, C...
method proxy (line 368) | def proxy(self) -> "_ProxyDMatrix":
method _handle_exception (line 372) | def _handle_exception(self, fn: Callable, dft_ret: _T) -> _T:
method reraise (line 388) | def reraise(self) -> None:
method __del__ (line 398) | def __del__(self) -> None:
method _reset_wrapper (line 402) | def _reset_wrapper(self, this: None) -> None: # pylint: disable=unuse...
method _next_wrapper (line 409) | def _next_wrapper(self, this: None) -> int: # pylint: disable=unused-...
method reset (line 467) | def reset(self) -> None:
method next (line 472) | def next(self, input_data: Callable) -> bool:
function require_keyword_args (line 499) | def require_keyword_args(
function _get_categories (line 563) | def _get_categories(
function _is_iter (line 620) | def _is_iter(data: DataType) -> TypeGuard[DataIter]:
class SingleBatchInternalIter (line 624) | class SingleBatchInternalIter(DataIter): # pylint: disable=R0902
method __init__ (line 631) | def __init__(self, **kwargs: Any) -> None:
method next (line 639) | def next(self, input_data: Callable) -> bool:
method reset (line 646) | def reset(self) -> None:
class DMatrix (line 650) | class DMatrix: # pylint: disable=too-many-instance-attributes,too-many-...
method __init__ (line 660) | def __init__(
method _init_from_iter (line 828) | def _init_from_iter(self, it: DataIter, enable_categorical: bool) -> N...
method __del__ (line 851) | def __del__(self) -> None:
method set_info (line 858) | def set_info(
method _get_info (line 898) | def _get_info(self, field: str) -> NumpyOrCupy:
method get_float_info (line 909) | def get_float_info(self, field: str) -> NumpyOrCupy:
method get_uint_info (line 920) | def get_uint_info(self, field: str) -> NumpyOrCupy:
method set_float_info (line 931) | def set_float_info(self, field: str, data: ArrayLike) -> None:
method set_float_info_npy2d (line 946) | def set_float_info_npy2d(self, field: str, data: ArrayLike) -> None:
method set_uint_info (line 962) | def set_uint_info(self, field: str, data: ArrayLike) -> None:
method save_binary (line 977) | def save_binary(self, fname: PathLike, silent: bool = True) -> None:
method set_label (line 993) | def set_label(self, label: ArrayLike) -> None:
method set_weight (line 1005) | def set_weight(self, weight: ArrayLike) -> None:
method set_base_margin (line 1025) | def set_base_margin(self, margin: ArrayLike) -> None:
method set_group (line 1043) | def set_group(self, group: ArrayLike) -> None:
method get_label (line 1055) | def get_label(self) -> NumpyOrCupy:
method get_weight (line 1059) | def get_weight(self) -> NumpyOrCupy:
method get_base_margin (line 1063) | def get_base_margin(self) -> NumpyOrCupy:
method get_group (line 1067) | def get_group(self) -> np.ndarray:
method get_data (line 1077) | def get_data(self) -> scipy.sparse.csr_matrix:
method get_quantile_cut (line 1102) | def get_quantile_cut(self) -> Tuple[np.ndarray, np.ndarray]:
method get_categories (line 1132) | def get_categories(self, export_to_arrow: bool = False) -> Categories:
method num_row (line 1172) | def num_row(self) -> int:
method num_col (line 1178) | def num_col(self) -> int:
method num_nonmissing (line 1184) | def num_nonmissing(self) -> int:
method data_split_mode (line 1194) | def data_split_mode(self) -> DataSplitMode:
method slice (line 1204) | def slice(
method feature_names (line 1238) | def feature_names(self) -> Optional[FeatureNames]:
method feature_names (line 1260) | def feature_names(self, feature_names: Optional[FeatureNames]) -> None:
method feature_types (line 1311) | def feature_types(self) -> Optional[FeatureTypes]:
method feature_types (line 1336) | def feature_types(self, feature_types: Optional[FeatureTypes]) -> None:
class _ProxyDMatrix (line 1367) | class _ProxyDMatrix(DMatrix):
method __init__ (line 1373) | def __init__(self) -> None: # pylint: disable=super-init-not-called
method _ref_data_from_cuda_interface (line 1377) | def _ref_data_from_cuda_interface(self, data: DataType) -> None:
method _ref_data_from_cuda_columnar (line 1382) | def _ref_data_from_cuda_columnar(self, data: TransformedDf) -> None:
method _ref_data_from_array (line 1388) | def _ref_data_from_array(self, data: np.ndarray) -> None:
method _ref_data_from_columnar (line 1392) | def _ref_data_from_columnar(self, data: TransformedDf) -> None:
method _ref_data_from_csr (line 1398) | def _ref_data_from_csr(self, csr: scipy.sparse.csr_matrix) -> None:
class _RefMixIn (line 1409) | class _RefMixIn:
method ref (line 1411) | def ref(self) -> Optional[weakref.ReferenceType]:
method ref (line 1418) | def ref(self, ref: weakref.ReferenceType) -> None:
class QuantileDMatrix (line 1422) | class QuantileDMatrix(DMatrix, _RefMixIn):
method __init__ (line 1478) | def __init__( # pylint: disable=super-init-not-called
method _init (line 1553) | def _init(
class ExtMemQuantileDMatrix (line 1604) | class ExtMemQuantileDMatrix(DMatrix, _RefMixIn):
method __init__ (line 1619) | def __init__( # pylint: disable=super-init-not-called
method _init (line 1667) | def _init(
function _configure_metrics (line 1714) | def _configure_metrics(params: BoosterParam) -> BoosterParam:
class Booster (line 1729) | class Booster:
method __init__ (line 1737) | def __init__(
method _transform_monotone_constrains (line 1797) | def _transform_monotone_constrains(
method _transform_interaction_constraints (line 1814) | def _transform_interaction_constraints(
method _configure_constraints (line 1835) | def _configure_constraints(self, params: BoosterParam) -> BoosterParam:
method __del__ (line 1852) | def __del__(self) -> None:
method __getstate__ (line 1857) | def __getstate__(self) -> Dict:
method __setstate__ (line 1873) | def __setstate__(self, state: Dict) -> None:
method __getitem__ (line 1889) | def __getitem__(self, val: Union[Integer, tuple, slice, EllipsisType])...
method __iter__ (line 1938) | def __iter__(self) -> Generator["Booster", None, None]:
method save_config (line 1947) | def save_config(self) -> str:
method load_config (line 1965) | def load_config(self, config: str) -> None:
method __copy__ (line 1973) | def __copy__(self) -> "Booster":
method __deepcopy__ (line 1976) | def __deepcopy__(self, _: Any) -> "Booster":
method copy (line 1980) | def copy(self) -> "Booster":
method reset (line 1990) | def reset(self) -> "Booster":
method attr (line 1999) | def attr(self, key: str) -> Optional[str]:
method attributes (line 2025) | def attributes(self) -> Dict[str, Optional[str]]:
method set_attr (line 2043) | def set_attr(self, **kwargs: Optional[Any]) -> None:
method _get_feature_info (line 2057) | def _get_feature_info(self, field: str) -> Optional[FeatureInfo]:
method _set_feature_info (line 2073) | def _set_feature_info(self, features: Optional[FeatureInfo], field: st...
method feature_types (line 2096) | def feature_types(self) -> Optional[FeatureTypes]:
method feature_types (line 2104) | def feature_types(self, features: Optional[FeatureTypes]) -> None:
method feature_names (line 2108) | def feature_names(self) -> Optional[FeatureNames]:
method feature_names (line 2116) | def feature_names(self, features: Optional[FeatureNames]) -> None:
method get_categories (line 2119) | def get_categories(self, export_to_arrow: bool = False) -> Categories:
method set_param (line 2146) | def set_param(
method update (line 2174) | def update(
method boost (line 2216) | def boost(
method eval_set (line 2319) | def eval_set(
method eval (line 2380) | def eval(self, data: DMatrix, name: str = "eval", iteration: int = 0) ...
method predict (line 2404) | def predict(
method inplace_predict (line 2541) | def inplace_predict(
method save_model (line 2768) | def save_model(self, fname: PathLike) -> None:
method save_raw (line 2796) | def save_raw(self, raw_format: str = "ubj") -> bytearray:
method load_model (line 2826) | def load_model(self, fname: ModelIn) -> None:
method best_iteration (line 2872) | def best_iteration(self) -> int:
method best_iteration (line 2883) | def best_iteration(self, iteration: int) -> None:
method best_score (line 2887) | def best_score(self) -> float:
method best_score (line 2898) | def best_score(self, score: int) -> None:
method num_boosted_rounds (line 2901) | def num_boosted_rounds(self) -> int:
method num_features (line 2911) | def num_features(self) -> int:
method dump_model (line 2918) | def dump_model(
method get_dump (line 2963) | def get_dump(
method get_fscore (line 2999) | def get_fscore(self, fmap: PathLike = "") -> Dict[str, Union[float, Li...
method get_score (line 3015) | def get_score(
method trees_to_dataframe (line 3082) | def trees_to_dataframe(self, fmap: PathLike = "") -> "PdDataFrame":
method _assign_dmatrix_features (line 3217) | def _assign_dmatrix_features(self, data: DMatrix) -> None:
method _validate_features (line 3231) | def _validate_features(self, feature_names: Optional[FeatureNames]) ->...
method get_split_value_histogram (line 3266) | def get_split_value_histogram(
FILE: python-package/xgboost/dask/__init__.py
function _try_start_tracker (line 176) | def _try_start_tracker(
function _start_tracker (line 224) | def _start_tracker(
class CommunicatorContext (line 235) | class CommunicatorContext(collective.CommunicatorContext):
method __init__ (line 238) | def __init__(self, **args: CollArgsVals) -> None:
function _get_client (line 249) | def _get_client(client: Optional["distributed.Client"]) -> "distributed....
class DaskDMatrix (line 266) | class DaskDMatrix:
method __init__ (line 296) | def __init__(
method __await__ (line 359) | def __await__(self) -> Generator[None, None, "DaskDMatrix"]:
method _map_local_data (line 362) | async def _map_local_data(
method _create_fn_args (line 484) | def _create_fn_args(self, worker_addr: str) -> Dict[str, Any]:
method num_col (line 499) | def num_col(self) -> int:
function map_worker_partitions (line 513) | async def map_worker_partitions(
class DaskQuantileDMatrix (line 584) | class DaskQuantileDMatrix(DaskDMatrix):
method __init__ (line 591) | def __init__(
method _create_fn_args (line 635) | def _create_fn_args(self, worker_addr: str) -> Dict[str, Any]:
function _get_rabit_args (line 644) | async def _get_rabit_args(
function _get_dask_config (line 685) | def _get_dask_config() -> Optional[Dict[str, Any]]:
function _get_workers_from_data (line 696) | def _get_workers_from_data(
function _check_workers_are_alive (line 711) | async def _check_workers_are_alive(
function _train_async (line 721) | async def _train_async(
function train (line 831) | def train( # pylint: disable=unused-argument
function _can_output_df (line 888) | def _can_output_df(is_df: bool, output_shape: Tuple) -> bool:
function _maybe_dataframe (line 892) | def _maybe_dataframe(
function _direct_predict_impl (line 925) | async def _direct_predict_impl( # pylint: disable=too-many-branches
function _infer_predict_output (line 1010) | def _infer_predict_output(
function _get_model_future (line 1032) | async def _get_model_future(
function _predict_async (line 1056) | async def _predict_async(
function predict (line 1211) | def predict( # pylint: disable=unused-argument
function _inplace_predict_async (line 1265) | async def _inplace_predict_async( # pylint: disable=too-many-branches
function inplace_predict (line 1331) | def inplace_predict( # pylint: disable=unused-argument
function _async_wrap_evaluation_matrices (line 1392) | async def _async_wrap_evaluation_matrices(
function _set_worker_client (line 1422) | def _set_worker_client(
class DaskScikitLearnBase (line 1433) | class DaskScikitLearnBase(XGBModel):
method __init__ (line 1438) | def __init__(self, *, coll_cfg: Optional[CollConfig] = None, **kwargs:...
method _predict_async (line 1443) | async def _predict_async(
method predict (line 1483) | def predict(
method _apply_async (line 1501) | async def _apply_async(
method apply (line 1522) | def apply(
method __await__ (line 1529) | def __await__(self) -> Awaitable[Any]:
method __getstate__ (line 1536) | def __getstate__(self) -> Dict:
method client (line 1543) | def client(self) -> "distributed.Client":
method client (line 1554) | def client(self, clt: "distributed.Client") -> None:
method _client_sync (line 1560) | def _client_sync(self, func: Callable, **kwargs: Any) -> Any:
class DaskXGBRegressor (line 1588) | class DaskXGBRegressor(XGBRegressorBase, DaskScikitLearnBase):
method _fit_async (line 1591) | async def _fit_async(
method fit (line 1660) | def fit(
class DaskXGBClassifier (line 1682) | class DaskXGBClassifier(XGBClassifierBase, DaskScikitLearnBase):
method _fit_async (line 1684) | async def _fit_async(
method fit (line 1772) | def fit(
method _predict_proba_async (line 1789) | async def _predict_proba_async(
method predict_proba (line 1814) | def predict_proba(
method _predict_async (line 1832) | async def _predict_async(
class DaskXGBRanker (line 1890) | class DaskXGBRanker(XGBRankerMixIn, DaskScikitLearnBase):
method __init__ (line 1892) | def __init__(
method _wrapper_params (line 1905) | def _wrapper_params(self) -> Set[str]:
method _fit_async (line 1910) | async def _fit_async(
method fit (line 1975) | def fit(
class DaskXGBRFRegressor (line 2114) | class DaskXGBRFRegressor(DaskXGBRegressor):
method __init__ (line 2116) | def __init__(
method get_xgb_params (line 2135) | def get_xgb_params(self) -> Dict[str, Any]:
method get_num_boosting_rounds (line 2140) | def get_num_boosting_rounds(self) -> int:
method fit (line 2144) | def fit(
class DaskXGBRFClassifier (line 2176) | class DaskXGBRFClassifier(DaskXGBClassifier):
method __init__ (line 2178) | def __init__(
method get_xgb_params (line 2197) | def get_xgb_params(self) -> Dict[str, Any]:
method get_num_boosting_rounds (line 2202) | def get_num_boosting_rounds(self) -> int:
method fit (line 2206) | def fit(
FILE: python-package/xgboost/dask/data.py
class DaskPartitionIter (line 49) | class DaskPartitionIter(DataIter): # pylint: disable=R0902
method __init__ (line 52) | def __init__(
method _get (line 77) | def _get(self, attr: str) -> Optional[Any]:
method data (line 82) | def data(self) -> Any:
method reset (line 86) | def reset(self) -> None:
method next (line 90) | def next(self, input_data: Callable) -> bool:
function _add_column (line 110) | def _add_column(df: dd.DataFrame, col: dd.Series) -> Tuple[dd.DataFrame,...
function _add_column (line 114) | def _add_column(df: dd.DataFrame, col: None) -> Tuple[dd.DataFrame, None...
function _add_column (line 117) | def _add_column(
function no_group_split (line 133) | def no_group_split( # pylint: disable=too-many-positional-arguments
function sort_data_by_qid (line 184) | def sort_data_by_qid(**kwargs: List[Any]) -> Dict[str, List[Any]]:
function _get_worker_parts (line 256) | def _get_worker_parts(list_of_parts: _DataParts) -> Dict[str, List[Any]]:
function _extract_data (line 282) | def _extract_data(
function _get_is_cuda (line 295) | def _get_is_cuda(parts: Optional[_DataParts]) -> bool:
function _make_empty (line 305) | def _make_empty(is_cuda: bool) -> np.ndarray:
function _warn_empty (line 314) | def _warn_empty() -> None:
function _create_quantile_dmatrix (line 319) | def _create_quantile_dmatrix(
function _create_dmatrix (line 365) | def _create_dmatrix( # pylint: disable=too-many-locals
function _dmatrix_from_list_of_parts (line 419) | def _dmatrix_from_list_of_parts(is_quantile: bool, **kwargs: Any) -> DMa...
function _get_dmatrices (line 425) | def _get_dmatrices(
FILE: python-package/xgboost/dask/utils.py
function get_n_threads (line 18) | def get_n_threads(local_param: Dict[str, Any], worker: "distributed.Work...
function get_address_from_user (line 33) | def get_address_from_user(
function _DASK_VERSION (line 107) | def _DASK_VERSION() -> Version:
function _DASK_2024_12_1 (line 112) | def _DASK_2024_12_1() -> bool:
function _DASK_2025_3_0 (line 117) | def _DASK_2025_3_0() -> bool:
FILE: python-package/xgboost/data.py
function _warn_unused_missing (line 98) | def _warn_unused_missing(data: DataType, missing: Optional[FloatCompatib...
function _check_data_shape (line 106) | def _check_data_shape(data: DataType) -> None:
function is_scipy_csr (line 111) | def is_scipy_csr(data: DataType) -> bool:
function transform_scipy_sparse (line 130) | def transform_scipy_sparse(data: DataType, is_csr: bool) -> DataType:
function _from_scipy_csr (line 155) | def _from_scipy_csr(
function is_scipy_csc (line 185) | def is_scipy_csc(data: DataType) -> bool:
function _from_scipy_csc (line 204) | def _from_scipy_csc(
function is_scipy_coo (line 233) | def is_scipy_coo(data: DataType) -> bool:
function _is_np_array_like (line 252) | def _is_np_array_like(data: DataType) -> TypeGuard[np.ndarray]:
function _maybe_np_slice (line 256) | def _maybe_np_slice(data: DataType, dtype: Optional[NumpyDType]) -> np.n...
function _from_numpy_array (line 269) | def _from_numpy_array(
function _invalid_dataframe_dtype (line 352) | def _invalid_dataframe_dtype(data: DataType) -> None:
function pandas_feature_info (line 370) | def pandas_feature_info(
function is_nullable_dtype (line 412) | def is_nullable_dtype(dtype: PandasDType) -> bool:
function is_pa_ext_dtype (line 429) | def is_pa_ext_dtype(dtype: Any) -> bool:
function is_pa_ext_categorical_dtype (line 434) | def is_pa_ext_categorical_dtype(dtype: Any) -> bool:
function _lazy_load_pd_is_cat (line 442) | def _lazy_load_pd_is_cat() -> Callable[[PandasDType], bool]:
function is_pd_cat_dtype (line 459) | def is_pd_cat_dtype(dtype: PandasDType) -> bool:
function _lazy_load_pd_is_sparse (line 466) | def _lazy_load_pd_is_sparse() -> Callable[[PandasDType], bool]:
function is_pd_sparse_dtype (line 484) | def is_pd_sparse_dtype(dtype: PandasDType) -> bool:
function pandas_pa_type (line 491) | def pandas_pa_type(ser: Any) -> np.ndarray:
function _lazy_has_npdtypes (line 523) | def _lazy_has_npdtypes() -> bool:
function _lazy_load_pd_floats (line 528) | def _lazy_load_pd_floats() -> tuple:
function pandas_transform_data (line 534) | def pandas_transform_data(
class PandasTransformed (line 604) | class PandasTransformed(TransformedDf):
method __init__ (line 607) | def __init__(
method shape (line 637) | def shape(self) -> Tuple[int, int]:
function _transform_pandas_df (line 651) | def _transform_pandas_df(
function _meta_from_pandas_df (line 674) | def _meta_from_pandas_df(
function _from_pandas_df (line 690) | def _from_pandas_df(
function _meta_from_pandas_series (line 717) | def _meta_from_pandas_series(
function _from_pandas_series (line 734) | def _from_pandas_series(
class ArrowTransformed (line 758) | class ArrowTransformed(TransformedDf):
method __init__ (line 761) | def __init__(
method shape (line 801) | def shape(self) -> Tuple[int, int]:
function _transform_arrow_table (line 806) | def _transform_arrow_table(
function _from_arrow_table (line 841) | def _from_arrow_table( # pylint: disable=too-many-positional-arguments
function _arrow_dtype (line 867) | def _arrow_dtype() -> Dict[DataType, str]:
function _arrow_feature_info (line 888) | def _arrow_feature_info(data: DataType) -> Tuple[List[str], List]:
function _meta_from_arrow_table (line 908) | def _meta_from_arrow_table(
function _check_pyarrow_for_polars (line 918) | def _check_pyarrow_for_polars() -> None:
function _transform_polars_df (line 923) | def _transform_polars_df(
function _from_polars_df (line 946) | def _from_polars_df( # pylint: disable=too-many-positional-arguments
function _lazy_load_cudf_is_cat (line 972) | def _lazy_load_cudf_is_cat() -> Callable[[Any], bool]:
function _lazy_load_cudf_is_bool (line 993) | def _lazy_load_cudf_is_bool() -> Callable[[Any], bool]:
class CudfTransformed (line 999) | class CudfTransformed(TransformedDf):
method __init__ (line 1002) | def __init__(
method shape (line 1035) | def shape(self) -> Tuple[int, int]:
function _transform_cudf_df (line 1044) | def _transform_cudf_df(
function _from_cudf_df (line 1121) | def _from_cudf_df(
function _transform_cupy_array (line 1144) | def _transform_cupy_array(data: DataType) -> CupyT:
function _from_cupy_array (line 1154) | def _from_cupy_array(
function _is_cupy_csr (line 1174) | def _is_cupy_csr(data: DataType) -> bool:
function _is_cupy_csc (line 1182) | def _is_cupy_csc(data: DataType) -> bool:
function _is_dlpack (line 1190) | def _is_dlpack(data: DataType) -> bool:
function _transform_dlpack (line 1194) | def _transform_dlpack(data: DataType) -> bool:
function _from_dlpack (line 1202) | def _from_dlpack(
function _is_uri (line 1213) | def _is_uri(data: DataType) -> TypeGuard[PathLike]:
function _from_uri (line 1217) | def _from_uri(
function _is_list (line 1232) | def _is_list(data: DataType) -> TypeGuard[list]:
function _from_list (line 1236) | def _from_list(
function _is_tuple (line 1257) | def _is_tuple(data: DataType) -> TypeGuard[tuple]:
function _from_tuple (line 1261) | def _from_tuple(
function _has_array_protocol (line 1280) | def _has_array_protocol(data: DataType) -> bool:
function _convert_unknown_data (line 1284) | def _convert_unknown_data(data: DataType) -> DataType:
function dispatch_data_backend (line 1302) | def dispatch_data_backend(
function _validate_meta_shape (line 1490) | def _validate_meta_shape(data: DataType, name: str) -> None:
function _meta_from_numpy (line 1504) | def _meta_from_numpy(
function _meta_from_list (line 1518) | def _meta_from_list(
function _meta_from_tuple (line 1525) | def _meta_from_tuple(
function _meta_from_cudf_df (line 1531) | def _meta_from_cudf_df(data: DataType, field: str, handle: ctypes.c_void...
function _meta_from_cudf_series (line 1540) | def _meta_from_cudf_series(data: DataType, field: str, handle: ctypes.c_...
function _meta_from_cupy_array (line 1546) | def _meta_from_cupy_array(data: DataType, field: str, handle: ctypes.c_v...
function dispatch_meta_backend (line 1552) | def dispatch_meta_backend(
function _proxy_transform (line 1616) | def _proxy_transform(
function is_on_cuda (line 1669) | def is_on_cuda(data: Any) -> bool:
function dispatch_proxy_set_data (line 1683) | def dispatch_proxy_set_data(
FILE: python-package/xgboost/federated.py
class FederatedTracker (line 11) | class FederatedTracker(RabitTracker):
method __init__ (line 38) | def __init__( # pylint: disable=R0913, W0231
function run_federated_server (line 65) | def run_federated_server( # pylint: disable=too-many-arguments
FILE: python-package/xgboost/libpath.py
class XGBoostLibraryNotFound (line 10) | class XGBoostLibraryNotFound(Exception):
function is_sphinx_build (line 14) | def is_sphinx_build() -> bool:
function find_lib_path (line 19) | def find_lib_path() -> List[str]:
FILE: python-package/xgboost/objective.py
class Objective (line 31) | class Objective(ABC):
method __call__ (line 43) | def __call__(
class TreeObjective (line 48) | class TreeObjective(Objective):
method split_grad (line 60) | def split_grad(
function _grad_arrinf (line 67) | def _grad_arrinf(array: NumpyOrCupy, n_samples: int) -> bytes:
FILE: python-package/xgboost/plotting.py
function plot_importance (line 21) | def plot_importance(
function to_graphviz (line 154) | def to_graphviz(
function plot_tree (line 286) | def plot_tree(
FILE: python-package/xgboost/sklearn.py
class XGBRankerMixIn (line 77) | class XGBRankerMixIn:
function _check_rf_callback (line 86) | def _check_rf_callback(
function _can_use_qdm (line 97) | def _can_use_qdm(tree_method: Optional[str], device: Optional[str]) -> b...
class _SklObjWProto (line 102) | class _SklObjWProto(Protocol):
method __call__ (line 103) | def __call__(
function _objective_decorator (line 115) | def _objective_decorator(func: Union[_SklObjWProto, _SklObjProto]) -> Pl...
function _metric_decorator (line 169) | def _metric_decorator(func: Callable) -> Metric:
function ltr_metric_decorator (line 187) | def ltr_metric_decorator(func: Callable, n_jobs: Optional[int]) -> Metric:
function xgboost_model_doc (line 570) | def xgboost_model_doc(
function get_model_categories (line 623) | def get_model_categories(
function pick_ref_categories (line 651) | def pick_ref_categories(
function _wrap_evaluation_matrices (line 682) | def _wrap_evaluation_matrices(
class XGBModel (line 806) | class XGBModel(XGBModelBase):
method __init__ (line 809) | def __init__(
method _more_tags (line 910) | def _more_tags(self) -> Dict[str, bool]:
method _update_sklearn_tags_from_dict (line 921) | def _update_sklearn_tags_from_dict(
method __sklearn_tags__ (line 942) | def __sklearn_tags__(self) -> _sklearn_Tags:
method __sklearn_is_fitted__ (line 959) | def __sklearn_is_fitted__(self) -> bool:
method _doc_link_module (line 963) | def _doc_link_module(self) -> str:
method _doc_link_template (line 967) | def _doc_link_template(self) -> str:
method _wrapper_params (line 988) | def _wrapper_params(self) -> Set[str]:
method get_booster (line 1002) | def get_booster(self) -> Booster:
method set_params (line 1017) | def set_params(self, **params: Any) -> "XGBModel":
method get_params (line 1048) | def get_params(self, deep: bool = True) -> Dict[str, Any]:
method get_xgb_params (line 1089) | def get_xgb_params(self) -> Dict[str, Any]:
method get_num_boosting_rounds (line 1102) | def get_num_boosting_rounds(self) -> int:
method _get_type (line 1106) | def _get_type(self) -> str:
method save_model (line 1116) | def save_model(self, fname: Union[str, os.PathLike]) -> None:
method load_model (line 1128) | def load_model(self, fname: ModelIn) -> None:
method _load_model_attributes (line 1151) | def _load_model_attributes(self, config: dict) -> None:
method _configure_fit (line 1173) | def _configure_fit(
method _create_dmatrix (line 1254) | def _create_dmatrix(self, ref: Optional[DMatrix], **kwargs: Any) -> DM...
method _set_evaluation_result (line 1265) | def _set_evaluation_result(self, evals_result: EvalsLog) -> None:
method fit (line 1270) | def fit(
method _can_use_inplace_predict (line 1386) | def _can_use_inplace_predict(self) -> bool:
method _get_iteration_range (line 1389) | def _get_iteration_range(
method predict (line 1403) | def predict(
method apply (line 1479) | def apply(
method evals_result (line 1516) | def evals_result(self) -> Dict[str, Dict[str, List[float]]]:
method n_features_in_ (line 1547) | def n_features_in_(self) -> int:
method feature_names_in_ (line 1553) | def feature_names_in_(self) -> np.ndarray:
method best_score (line 1567) | def best_score(self) -> float:
method best_iteration (line 1572) | def best_iteration(self) -> int:
method feature_importances_ (line 1580) | def feature_importances_(self) -> np.ndarray:
method coef_ (line 1615) | def coef_(self) -> np.ndarray:
method intercept_ (line 1645) | def intercept_(self) -> np.ndarray:
function _cls_predict_proba (line 1672) | def _cls_predict_proba(n_classes: int, prediction: PredtT, vstack: Calla...
class XGBClassifier (line 1698) | class XGBClassifier(XGBClassifierBase, XGBModel):
method __init__ (line 1701) | def __init__(
method _more_tags (line 1709) | def _more_tags(self) -> Dict[str, bool]:
method __sklearn_tags__ (line 1714) | def __sklearn_tags__(self) -> _sklearn_Tags:
method fit (line 1721) | def fit(
method predict (line 1833) | def predict(
method predict_proba (line 1870) | def predict_proba(
method classes_ (line 1931) | def classes_(self) -> np.ndarray:
class XGBRFClassifier (line 1943) | class XGBRFClassifier(XGBClassifier):
method __init__ (line 1946) | def __init__(
method get_xgb_params (line 1964) | def get_xgb_params(self) -> Dict[str, Any]:
method get_num_boosting_rounds (line 1969) | def get_num_boosting_rounds(self) -> int:
method fit (line 1974) | def fit(
class XGBRegressor (line 1998) | class XGBRegressor(XGBRegressorBase, XGBModel):
method __init__ (line 2001) | def __init__(
method _more_tags (line 2006) | def _more_tags(self) -> Dict[str, bool]:
method __sklearn_tags__ (line 2012) | def __sklearn_tags__(self) -> _sklearn_Tags:
class XGBRFRegressor (line 2028) | class XGBRFRegressor(XGBRegressor):
method __init__ (line 2031) | def __init__(
method get_xgb_params (line 2049) | def get_xgb_params(self) -> Dict[str, Any]:
method get_num_boosting_rounds (line 2054) | def get_num_boosting_rounds(self) -> int:
method fit (line 2059) | def fit(
function _get_qid (line 2079) | def _get_qid(
class XGBRanker (line 2146) | class XGBRanker(XGBRankerMixIn, XGBModel):
method __init__ (line 2149) | def __init__(self, *, objective: str = "rank:ndcg", **kwargs: Any):
method _create_ltr_dmatrix (line 2156) | def _create_ltr_dmatrix(
method fit (line 2167) | def fit(
method predict (line 2328) | def predict(
method apply (line 2346) | def apply(
method score (line 2354) | def score(self, X: ArrayLike, y: ArrayLike) -> float:
FILE: python-package/xgboost/spark/core.py
class _SparkXGBParams (line 192) | class _SparkXGBParams(
method set_coll_cfg (line 257) | def set_coll_cfg(self, value: Config) -> "_SparkXGBParams":
method set_device (line 263) | def set_device(self, value: str) -> "_SparkXGBParams":
method _xgb_cls (line 271) | def _xgb_cls(cls) -> Type[XGBModel]:
method _get_xgb_params_default (line 280) | def _get_xgb_params_default(cls) -> Dict[str, Any]:
method _set_xgb_params_default (line 290) | def _set_xgb_params_default(self) -> None:
method _gen_xgb_params_dict (line 295) | def _gen_xgb_params_dict(
method _get_fit_params_default (line 319) | def _get_fit_params_default(cls) -> Dict[str, Any]:
method _set_fit_params_default (line 326) | def _set_fit_params_default(self) -> None:
method _gen_fit_params_dict (line 331) | def _gen_fit_params_dict(self) -> Dict[str, Any]:
method _get_predict_params_default (line 341) | def _get_predict_params_default(cls) -> Dict[str, Any]:
method _set_predict_params_default (line 348) | def _set_predict_params_default(self) -> None:
method _gen_predict_params_dict (line 354) | def _gen_predict_params_dict(self) -> Dict[str, Any]:
method _validate_gpu_params (line 363) | def _validate_gpu_params(
method _validate_params (line 421) | def _validate_params(self) -> None:
method _run_on_gpu (line 493) | def _run_on_gpu(self) -> bool:
method _col_is_defined_not_empty (line 498) | def _col_is_defined_not_empty(self, param: "Param[str]") -> bool:
function _validate_and_convert_feature_col_as_float_col_list (line 502) | def _validate_and_convert_feature_col_as_float_col_list(
function _validate_and_convert_feature_col_as_array_col (line 519) | def _validate_and_convert_feature_col_as_array_col(
function _get_unwrap_udt_fn (line 551) | def _get_unwrap_udt_fn() -> Callable[[Union[Column, str]], Column]:
function _get_unwrapped_vec_cols (line 570) | def _get_unwrapped_vec_cols(feature_col: Column) -> List[Column]:
class _SparkXGBEstimator (line 605) | class _SparkXGBEstimator(Estimator, _SparkXGBParams, MLReadable, MLWrita...
method __init__ (line 608) | def __init__(self) -> None:
method setParams (line 630) | def setParams(self, **kwargs: Any) -> None:
method _pyspark_model_cls (line 681) | def _pyspark_model_cls(cls) -> Type["_SparkXGBModel"]:
method _create_pyspark_model (line 688) | def _create_pyspark_model(
method _convert_to_sklearn_model (line 693) | def _convert_to_sklearn_model(self, booster: bytearray, config: str) -...
method _repartition_needed (line 702) | def _repartition_needed(self, dataset: DataFrame) -> bool:
method _get_distributed_train_params (line 712) | def _get_distributed_train_params(self, dataset: DataFrame) -> Dict[st...
method _get_xgb_train_call_args (line 743) | def _get_xgb_train_call_args(
method _prepare_input_columns_and_feature_prop (line 761) | def _prepare_input_columns_and_feature_prop(
method _prepare_input (line 819) | def _prepare_input(self, dataset: DataFrame) -> Tuple[DataFrame, Featu...
method _get_xgb_parameters (line 868) | def _get_xgb_parameters(
method _skip_stage_level_scheduling (line 899) | def _skip_stage_level_scheduling(self, spark_version: str, conf: Spark...
method _try_stage_level_scheduling (line 966) | def _try_stage_level_scheduling(self, rdd: RDD) -> RDD:
method _get_tracker_args (line 1011) | def _get_tracker_args(self) -> Tuple[bool, Dict[str, Any]]:
method _fit (line 1038) | def _fit(self, dataset: DataFrame) -> "_SparkXGBModel":
method write (line 1201) | def write(self) -> "SparkXGBWriter":
method read (line 1208) | def read(cls) -> "SparkXGBReader":
class _SparkXGBModel (line 1215) | class _SparkXGBModel(Model, _SparkXGBParams, MLReadable, MLWritable):
method __init__ (line 1216) | def __init__(
method _xgb_cls (line 1226) | def _xgb_cls(cls) -> Type[XGBModel]:
method get_booster (line 1229) | def get_booster(self) -> Booster:
method get_feature_importances (line 1236) | def get_feature_importances(
method write (line 1255) | def write(self) -> "SparkXGBModelWriter":
method read (line 1262) | def read(cls) -> "SparkXGBModelReader":
method _get_feature_col (line 1268) | def _get_feature_col(
method _get_pred_contrib_col_name (line 1304) | def _get_pred_contrib_col_name(self) -> Optional[str]:
method _out_schema (line 1312) | def _out_schema(self) -> Tuple[bool, str]:
method _get_predict_func (line 1322) | def _get_predict_func(self) -> Callable:
method _post_transform (line 1349) | def _post_transform(self, dataset: DataFrame, pred_col: Column) -> Dat...
method _run_on_gpu (line 1376) | def _run_on_gpu(self) -> bool:
method _transform (line 1403) | def _transform(self, dataset: DataFrame) -> DataFrame:
class _ClassificationModel (line 1507) | class _ClassificationModel( # pylint: disable=abstract-method
method _out_schema (line 1516) | def _out_schema(self) -> Tuple[bool, str]:
method _get_predict_func (line 1528) | def _get_predict_func(self) -> Callable:
method _post_transform (line 1574) | def _post_transform(self, dataset: DataFrame, pred_col: Column) -> Dat...
class _SparkXGBSharedReadWrite (line 1608) | class _SparkXGBSharedReadWrite:
method saveMetadata (line 1610) | def saveMetadata(
method loadMetadataAndInstance (line 1664) | def loadMetadataAndInstance(
class SparkXGBWriter (line 1709) | class SparkXGBWriter(MLWriter):
method __init__ (line 1714) | def __init__(self, instance: "_SparkXGBEstimator") -> None:
method saveImpl (line 1719) | def saveImpl(self, path: str) -> None:
class SparkXGBReader (line 1726) | class SparkXGBReader(MLReader):
method __init__ (line 1731) | def __init__(self, cls: Type["_SparkXGBEstimator"]) -> None:
method load (line 1736) | def load(self, path: str) -> "_SparkXGBEstimator":
class SparkXGBModelWriter (line 1746) | class SparkXGBModelWriter(MLWriter):
method __init__ (line 1751) | def __init__(self, instance: _SparkXGBModel) -> None:
method saveImpl (line 1756) | def saveImpl(self, path: str) -> None:
class SparkXGBModelReader (line 1777) | class SparkXGBModelReader(MLReader):
method __init__ (line 1782) | def __init__(self, cls: Type["_SparkXGBModel"]) -> None:
method load (line 1787) | def load(self, path: str) -> "_SparkXGBModel":
FILE: python-package/xgboost/spark/data.py
function stack_series (line 18) | def stack_series(series: pd.Series) -> np.ndarray:
function concat_or_none (line 31) | def concat_or_none(seq: Optional[Sequence[np.ndarray]]) -> Optional[np.n...
function cache_partitions (line 38) | def cache_partitions(
class PartIter (line 70) | class PartIter(DataIter):
method __init__ (line 73) | def __init__(
method _fetch (line 83) | def _fetch(self, data: Optional[Sequence[pd.DataFrame]]) -> Optional[p...
method next (line 98) | def next(self, input_data: Callable) -> bool:
method reset (line 112) | def reset(self) -> None:
function _read_csr_matrix_from_unwrapped_spark_vec (line 116) | def _read_csr_matrix_from_unwrapped_spark_vec(part: pd.DataFrame) -> csr...
function make_qdm (line 159) | def make_qdm(
function create_dmatrix_from_partitions (line 174) | def create_dmatrix_from_partitions( # pylint: disable=too-many-arguments
function pred_contribs (line 342) | def pred_contribs(
FILE: python-package/xgboost/spark/estimator.py
function _set_pyspark_xgb_cls_param_attrs (line 23) | def _set_pyspark_xgb_cls_param_attrs(
class SparkXGBRegressor (line 79) | class SparkXGBRegressor(_SparkXGBEstimator):
method __init__ (line 194) | def __init__( # pylint:disable=too-many-arguments
method _xgb_cls (line 218) | def _xgb_cls(cls) -> Type[XGBRegressor]:
method _pyspark_model_cls (line 222) | def _pyspark_model_cls(cls) -> Type["SparkXGBRegressorModel"]:
method _validate_params (line 225) | def _validate_params(self) -> None:
class SparkXGBRegressorModel (line 233) | class SparkXGBRegressorModel(_SparkXGBModel):
method _xgb_cls (line 241) | def _xgb_cls(cls) -> Type[XGBRegressor]:
class SparkXGBClassifier (line 248) | class SparkXGBClassifier(_SparkXGBEstimator, HasProbabilityCol, HasRawPr...
method __init__ (line 371) | def __init__( # pylint:disable=too-many-arguments
method _xgb_cls (line 402) | def _xgb_cls(cls) -> Type[XGBClassifier]:
method _pyspark_model_cls (line 406) | def _pyspark_model_cls(cls) -> Type["SparkXGBClassifierModel"]:
method _validate_params (line 409) | def _validate_params(self) -> None:
class SparkXGBClassifierModel (line 421) | class SparkXGBClassifierModel(_ClassificationModel):
method _xgb_cls (line 429) | def _xgb_cls(cls) -> Type[XGBClassifier]:
class SparkXGBRanker (line 436) | class SparkXGBRanker(_SparkXGBEstimator):
method __init__ (line 560) | def __init__( # pylint:disable=too-many-arguments
method _xgb_cls (line 585) | def _xgb_cls(cls) -> Type[XGBRanker]:
method _pyspark_model_cls (line 589) | def _pyspark_model_cls(cls) -> Type["SparkXGBRankerModel"]:
method _validate_params (line 592) | def _validate_params(self) -> None:
class SparkXGBRankerModel (line 600) | class SparkXGBRankerModel(_SparkXGBModel):
method _xgb_cls (line 608) | def _xgb_cls(cls) -> Type[XGBRanker]:
FILE: python-package/xgboost/spark/params.py
class HasArbitraryParamsDict (line 9) | class HasArbitraryParamsDict(Params):
class HasBaseMarginCol (line 25) | class HasBaseMarginCol(Params):
class HasFeaturesCols (line 39) | class HasFeaturesCols(Params):
method __init__ (line 52) | def __init__(self) -> None:
class HasEnableSparseDataOptim (line 57) | class HasEnableSparseDataOptim(Params):
method __init__ (line 73) | def __init__(self) -> None:
class HasQueryIdCol (line 78) | class HasQueryIdCol(Params):
class HasContribPredictionCol (line 91) | class HasContribPredictionCol(Params):
FILE: python-package/xgboost/spark/summary.py
class XGBoostTrainingSummary (line 8) | class XGBoostTrainingSummary:
method from_metrics (line 18) | def from_metrics(
FILE: python-package/xgboost/spark/utils.py
function get_class_name (line 26) | def get_class_name(cls: Type) -> str:
function _get_default_params_from_func (line 31) | def _get_default_params_from_func(
class CommunicatorContext (line 50) | class CommunicatorContext(CCtx):
method __init__ (line 53) | def __init__(self, context: BarrierTaskContext, **args: CollArgsVals) ...
function _start_tracker (line 58) | def _start_tracker(host: str, n_workers: int, port: int = 0) -> CollArgs:
function _get_rabit_args (line 70) | def _get_rabit_args(conf: Config, n_workers: int) -> CollArgs:
function _get_host_ip (line 78) | def _get_host_ip(context: BarrierTaskContext) -> str:
function _get_spark_session (line 84) | def _get_spark_session() -> SparkSession:
function get_logger (line 97) | def get_logger(name: str, level: Optional[Union[str, int]] = None) -> lo...
function get_logger_level (line 117) | def get_logger_level(name: str) -> Optional[int]:
function _get_max_num_concurrent_tasks (line 123) | def _get_max_num_concurrent_tasks(spark_context: SparkContext) -> int:
function _is_local (line 134) | def _is_local(spark_context: SparkContext) -> bool:
function _is_standalone_or_localcluster (line 140) | def _is_standalone_or_localcluster(conf: SparkConf) -> bool:
function _get_gpu_id (line 147) | def _get_gpu_id(task_context: TaskContext) -> int:
function _get_or_create_tmp_dir (line 161) | def _get_or_create_tmp_dir() -> str:
function deserialize_xgb_model (line 169) | def deserialize_xgb_model(
function serialize_booster (line 180) | def serialize_booster(booster: Booster) -> str:
function deserialize_booster (line 197) | def deserialize_booster(model: str) -> Booster:
function use_cuda (line 210) | def use_cuda(device: Optional[str]) -> bool:
FILE: python-package/xgboost/testing/__init__.py
function has_ipv6 (line 66) | def has_ipv6() -> bool:
function no_mod (line 96) | def no_mod(name: str) -> PytestSkip:
function no_ipv6 (line 101) | def no_ipv6() -> PytestSkip:
function not_linux (line 106) | def not_linux() -> PytestSkip:
function no_ubjson (line 110) | def no_ubjson() -> PytestSkip:
function no_sklearn (line 114) | def no_sklearn() -> PytestSkip:
function no_dask (line 118) | def no_dask() -> PytestSkip:
function no_loky (line 122) | def no_loky() -> PytestSkip:
function no_dask_ml (line 126) | def no_dask_ml() -> PytestSkip:
function no_spark (line 132) | def no_spark() -> PytestSkip:
function no_pandas (line 138) | def no_pandas() -> PytestSkip:
function no_arrow (line 142) | def no_arrow() -> PytestSkip:
function no_polars (line 146) | def no_polars() -> PytestSkip:
function no_modin (line 150) | def no_modin() -> PytestSkip:
function no_matplotlib (line 161) | def no_matplotlib() -> PytestSkip:
function no_dask_cuda (line 171) | def no_dask_cuda() -> PytestSkip:
function no_cudf (line 175) | def no_cudf() -> PytestSkip:
function no_cupy (line 179) | def no_cupy() -> PytestSkip:
function no_dask_cudf (line 192) | def no_dask_cudf() -> PytestSkip:
function no_graphviz (line 196) | def no_graphviz() -> PytestSkip:
function no_rmm (line 200) | def no_rmm() -> PytestSkip:
function no_multiple (line 204) | def no_multiple(*args: Any) -> PytestSkip:
function skip_win (line 215) | def skip_win() -> PytestSkip:
function make_regression (line 219) | def make_regression(
function make_batches_sparse (line 227) | def make_batches_sparse(
class TestDataset (line 251) | class TestDataset:
method __init__ (line 254) | def __init__(
method set_params (line 264) | def set_params(self, params_in: Dict[str, Any]) -> Dict[str, Any]:
method get_dmat (line 271) | def get_dmat(self) -> xgb.DMatrix:
method get_device_dmat (line 280) | def get_device_dmat(self, max_bin: Optional[int]) -> xgb.QuantileDMatrix:
method get_external_dmat (line 290) | def get_external_dmat(self) -> xgb.DMatrix:
method __repr__ (line 319) | def __repr__(self) -> str:
function make_ltr (line 323) | def make_ltr(
function _cat_sampled_from (line 346) | def _cat_sampled_from() -> strategies.SearchStrategy:
function make_datasets_with_margin (line 418) | def make_datasets_with_margin(
function make_dataset_strategy (line 458) | def make_dataset_strategy() -> strategies.SearchStrategy[TestDataset]:
function logregobj (line 508) | def logregobj(preds: np.ndarray, dtrain: xgb.DMatrix) -> Tuple[np.ndarra...
function eval_error_metric (line 517) | def eval_error_metric(
function eval_error_metric_skl (line 541) | def eval_error_metric_skl(
function root_mean_square (line 558) | def root_mean_square(y_true: np.ndarray, y_score: np.ndarray) -> float:
function softmax (line 564) | def softmax(x: np.ndarray) -> np.ndarray:
function softprob_obj (line 569) | def softprob_obj(
function ls_obj (line 614) | def ls_obj(
class DirectoryExcursion (line 626) | class DirectoryExcursion:
method __init__ (line 632) | def __init__(self, path: PathLike, cleanup: bool = False):
method __enter__ (line 638) | def __enter__(self) -> None:
method __exit__ (line 647) | def __exit__(self, *args: Any) -> None:
function captured_output (line 661) | def captured_output() -> Generator[Tuple[StringIO, StringIO], None, None]:
function timeout (line 678) | def timeout(sec: int, *args: Any, enable: bool = True, **kwargs: Any) ->...
function setup_rmm_pool (line 698) | def setup_rmm_pool(_: Any, pytestconfig: pytest.Config) -> None:
function demo_dir (line 716) | def demo_dir(path: str) -> str:
function normpath (line 729) | def normpath(path: str) -> str:
function data_dir (line 733) | def data_dir(path: str) -> str:
function load_agaricus (line 737) | def load_agaricus(path: str) -> Tuple[xgb.DMatrix, xgb.DMatrix]:
function project_root (line 744) | def project_root(path: str) -> str:
function run_with_rabit (line 748) | def run_with_rabit(
function column_split_feature_names (line 775) | def column_split_feature_names(
function is_windows (line 784) | def is_windows() -> bool:
FILE: python-package/xgboost/testing/basic_models.py
function run_custom_objective (line 14) | def run_custom_objective( # pylint: disable=too-many-locals
FILE: python-package/xgboost/testing/callbacks.py
function run_eta_decay (line 14) | def run_eta_decay(
function tree_methods_objs (line 118) | def tree_methods_objs() -> List[Tuple[str, str]]:
function run_eta_decay_leaf_output (line 132) | def run_eta_decay_leaf_output(
FILE: python-package/xgboost/testing/collective.py
function get_avail_port (line 6) | def get_avail_port() -> int:
FILE: python-package/xgboost/testing/continuation.py
function run_training_continuation_model_output (line 14) | def run_training_continuation_model_output(device: str, tree_method: str...
function run_training_continuation_determinism (line 64) | def run_training_continuation_determinism(
function make_determinism_strategy (line 133) | def make_determinism_strategy(tree_methods: list[str]) -> "strategies.Se...
FILE: python-package/xgboost/testing/dask.py
function check_init_estimation_clf (line 28) | def check_init_estimation_clf(
function check_init_estimation_reg (line 53) | def check_init_estimation_reg(
function check_init_estimation (line 78) | def check_init_estimation(
function check_uneven_nan (line 86) | def check_uneven_nan(
function check_external_memory (line 107) | def check_external_memory( # pylint: disable=too-many-locals
function get_rabit_args (line 180) | def get_rabit_args(client: Client, n_workers: int) -> Any:
function get_client_workers (line 185) | def get_client_workers(client: Client) -> List[str]:
function make_ltr (line 192) | def make_ltr( # pylint: disable=too-many-locals,too-many-arguments
function check_no_group_split (line 246) | def check_no_group_split(client: Client, device: str) -> None:
function make_categorical (line 278) | def make_categorical( # pylint: disable=too-many-locals, too-many-argum...
function make_categorical (line 291) | def make_categorical( # pylint: disable=too-many-locals, too-many-argum...
function make_categorical (line 303) | def make_categorical( # pylint: disable=too-many-locals, too-many-argum...
function run_recode (line 371) | def run_recode(client: Client, device: Device) -> None:
FILE: python-package/xgboost/testing/data.py
function np_dtypes (line 49) | def np_dtypes(
function pd_dtypes (line 108) | def pd_dtypes() -> Generator:
function pd_arrow_dtypes (line 173) | def pd_arrow_dtypes() -> Generator:
function check_inf (line 231) | def check_inf(rng: RNG) -> None:
function get_california_housing (line 245) | def get_california_housing() -> Tuple[np.ndarray, np.ndarray]:
function get_digits (line 301) | def get_digits() -> Tuple[np.ndarray, np.ndarray]:
function get_cancer (line 309) | def get_cancer() -> Tuple[np.ndarray, np.ndarray]:
function get_sparse (line 316) | def get_sparse() -> Tuple[np.ndarray, np.ndarray]:
function get_ames_housing (line 333) | def get_ames_housing() -> Tuple[DataFrameT, np.ndarray]:
function get_mq2008 (line 516) | def get_mq2008(
function make_batches (line 572) | def make_batches( # pylint: disable=too-many-arguments,too-many-locals
class ClickFold (line 606) | class ClickFold:
class RelDataCV (line 617) | class RelDataCV(NamedTuple):
method is_binary (line 624) | def is_binary(self) -> bool:
class PBM (line 629) | class PBM:
method __init__ (line 639) | def __init__(self, eta: float) -> None:
method sample_clicks_for_query (line 648) | def sample_clicks_for_query(
function rlencode (line 684) | def rlencode(x: npt.NDArray[np.int32]) -> Tuple[npt.NDArray, npt.NDArray...
function init_rank_score (line 699) | def init_rank_score(
function simulate_one_fold (line 735) | def simulate_one_fold(
function simulate_clicks (line 770) | def simulate_clicks(cv_data: RelDataCV) -> Tuple[ClickFold, Optional[Cli...
function sort_ltr_samples (line 813) | def sort_ltr_samples(
function run_base_margin_info (line 862) | def run_base_margin_info(DType: Callable, DMatrixT: Type[DMatrix], devic...
function make_sparse_regression (line 910) | def make_sparse_regression(
function unique_random_strings (line 995) | def unique_random_strings(n_strings: int, seed: int) -> List[str]:
function make_categorical (line 1011) | def make_categorical(
class IteratorForTest (line 1116) | class IteratorForTest(DataIter):
method __init__ (line 1119) | def __init__( # pylint: disable=too-many-arguments
method next (line 1140) | def next(self, input_data: Callable) -> bool:
method reset (line 1157) | def reset(self) -> None:
method as_arrays (line 1160) | def as_arrays(
FILE: python-package/xgboost/testing/data_iter.py
function run_mixed_sparsity (line 14) | def run_mixed_sparsity(device: str) -> None:
function check_invalid_cat_batches (line 43) | def check_invalid_cat_batches(device: str) -> None:
function check_uneven_sizes (line 89) | def check_uneven_sizes(device: str) -> None:
class CatIter (line 107) | class CatIter(DataIter): # pylint: disable=too-many-instance-attributes
method __init__ (line 110) | def __init__( # pylint: disable=too-many-arguments,too-many-locals
method xy (line 156) | def xy(self) -> tuple:
method next (line 160) | def next(self, input_data: Callable) -> bool:
method reset (line 175) | def reset(self) -> None:
FILE: python-package/xgboost/testing/federated.py
function run_server (line 27) | def run_server(port: int, world_size: int, with_ssl: bool) -> None:
function run_worker (line 41) | def run_worker(
function run_federated (line 102) | def run_federated(world_size: int, with_ssl: bool, use_gpu: bool) -> None:
function run_federated_learning (line 127) | def run_federated_learning(with_ssl: bool, use_gpu: bool, test_path: str...
FILE: python-package/xgboost/testing/interaction_constraints.py
function run_interaction_constraints (line 13) | def run_interaction_constraints( # pylint: disable=too-many-locals
function training_accuracy (line 64) | def training_accuracy(tree_method: str, dpath: str, device: Device) -> N...
FILE: python-package/xgboost/testing/intercept.py
function run_init_estimation (line 22) | def run_init_estimation(tree_method: str, device: Device) -> None:
function run_adaptive (line 133) | def run_adaptive(tree_method: str, weighted: bool, device: Device) -> None:
function run_exp_family (line 222) | def run_exp_family(device: Device) -> None:
function run_logistic_degenerate (line 246) | def run_logistic_degenerate(device: Device) -> None:
FILE: python-package/xgboost/testing/metrics.py
function check_precision_score (line 15) | def check_precision_score( # pylint: disable=too-many-locals
function check_quantile_error (line 64) | def check_quantile_error(tree_method: str, device: Device) -> None:
function _expectile_loss (line 109) | def _expectile_loss(
function _expectile_loss_multi (line 120) | def _expectile_loss_multi(
function check_expectile_error (line 131) | def check_expectile_error(tree_method: str, device: Device) -> None:
function run_roc_auc_binary (line 191) | def run_roc_auc_binary(tree_method: str, n_samples: int, device: Device)...
function run_pr_auc_multi (line 229) | def run_pr_auc_multi(tree_method: str, device: Device) -> None:
function run_roc_auc_multi (line 249) | def run_roc_auc_multi( # pylint: disable=too-many-locals
function run_pr_auc_ltr (line 304) | def run_pr_auc_ltr(tree_method: str, device: Device) -> None:
function run_pr_auc_binary (line 328) | def run_pr_auc_binary(tree_method: str, device: Device) -> None:
FILE: python-package/xgboost/testing/monotone_constraints.py
function is_increasing (line 11) | def is_increasing(v: np.ndarray) -> bool:
function is_decreasing (line 16) | def is_decreasing(v: np.ndarray) -> bool:
function is_correctly_constrained (line 21) | def is_correctly_constrained(
FILE: python-package/xgboost/testing/multi_target.py
function run_multiclass (line 29) | def run_multiclass(device: Device, learning_rate: Optional[float]) -> None:
function run_multilabel (line 52) | def run_multilabel(device: Device, learning_rate: Optional[float]) -> None:
function run_quantile_loss (line 73) | def run_quantile_loss(device: Device, weighted: bool) -> None:
function run_absolute_error (line 110) | def run_absolute_error(device: Device) -> None:
function _array_impl (line 139) | def _array_impl(device: Device) -> ModuleType:
class LsObj0 (line 147) | class LsObj0(TreeObjective):
method __init__ (line 150) | def __init__(self, device: Device) -> None:
method __call__ (line 153) | def __call__(
method split_grad (line 162) | def split_grad(
class LsObj1 (line 169) | class LsObj1(Objective):
method __init__ (line 172) | def __init__(self, device: Device) -> None:
method __call__ (line 175) | def __call__(
class LsObj2 (line 186) | class LsObj2(LsObj0):
method __init__ (line 189) | def __init__(self, device: Device, check_used: bool):
method split_grad (line 193) | def split_grad(
function run_reduced_grad (line 205) | def run_reduced_grad(device: Device) -> None:
function run_with_iter (line 250) | def run_with_iter(device: Device) -> None: # pylint: disable=too-many-l...
function run_eta (line 336) | def run_eta(device: Device) -> None:
function run_deterministic (line 366) | def run_deterministic(device: Device) -> None:
function run_column_sampling (line 388) | def run_column_sampling(device: Device) -> None:
function run_grow_policy (line 441) | def run_grow_policy(device: Device, grow_policy: str) -> None:
function run_mixed_strategy (line 459) | def run_mixed_strategy(device: Device) -> None:
function run_feature_importance_strategy_compare (line 500) | def run_feature_importance_strategy_compare(device: Device) -> None:
function _run_regression_objective_test (line 561) | def _run_regression_objective_test(
function run_reg_squarederror (line 612) | def run_reg_squarederror(device: Device) -> None:
function run_reg_logistic (line 621) | def run_reg_logistic(device: Device) -> None:
function run_reg_gamma (line 632) | def run_reg_gamma(device: Device) -> None:
function run_reg_squaredlogerror (line 643) | def run_reg_squaredlogerror(device: Device) -> None:
function run_reg_pseudohubererror (line 652) | def run_reg_pseudohubererror(device: Device) -> None:
function run_binary_logitraw (line 663) | def run_binary_logitraw(device: Device) -> None:
function run_binary_hinge (line 672) | def run_binary_hinge(device: Device) -> None:
function run_count_poisson (line 687) | def run_count_poisson(device: Device) -> None:
function run_reg_tweedie (line 698) | def run_reg_tweedie(device: Device) -> None:
function all_reg_objectives (line 709) | def all_reg_objectives() -> List[Callable[[Device], None]]:
function _make_subsample_params (line 725) | def _make_subsample_params(device: Device, sampling_method: str) -> dict:
function run_subsample (line 739) | def run_subsample(device: Device, sampling_method: str) -> None:
function run_gradient_based_sampling_accuracy (line 762) | def run_gradient_based_sampling_accuracy(device: Device) -> None:
FILE: python-package/xgboost/testing/ordinal.py
function get_df_impl (line 29) | def get_df_impl(device: Device) -> Tuple[Type, Type]:
function asarray (line 44) | def asarray(device: Device, data: Any) -> np.ndarray:
function comp_booster (line 53) | def comp_booster(device: Device, Xy: DMatrix, booster: str) -> None:
function run_cat_container (line 66) | def run_cat_container(device: Device) -> None:
function run_cat_container_mixed (line 124) | def run_cat_container_mixed(device: Device) -> None:
function run_cat_container_iter (line 271) | def run_cat_container_iter(device: Device) -> None:
function _basic_example (line 304) | def _basic_example(device: Device) -> Tuple[Any, Any, np.ndarray, np.nda...
function run_basic_predict (line 322) | def run_basic_predict(DMatrixT: Type, device: Device, tdevice: Device) -...
function run_cat_predict (line 338) | def run_cat_predict(device: Device) -> None:
function run_cat_invalid (line 377) | def run_cat_invalid(device: Device) -> None:
function run_cat_thread_safety (line 423) | def run_cat_thread_safety(device: Device) -> None:
function _make_dm (line 452) | def _make_dm(DMatrixT: Type[U], ref: DMatrix, *args: Any, **kwargs: Any)...
function _run_predt (line 458) | def _run_predt(
function run_cat_shap (line 485) | def run_cat_shap(device: Device) -> None:
function run_cat_leaf (line 499) | def run_cat_leaf(device: Device) -> None:
function make_recoded (line 509) | def make_recoded(device: Device, *, n_features: int = 4096) -> Tuple:
function run_specified_cat (line 562) | def run_specified_cat( # pylint: disable=too-many-locals
function run_validation (line 627) | def run_validation(device: Device) -> None:
function run_recode_dmatrix (line 648) | def run_recode_dmatrix(device: Device) -> None:
function run_training_continuation (line 717) | def run_training_continuation(device: Device) -> None:
function run_update (line 788) | def run_update(device: Device) -> None:
function run_recode_dmatrix_predict (line 813) | def run_recode_dmatrix_predict(device: Device) -> None:
FILE: python-package/xgboost/testing/parse_tree.py
function run_tree_to_df_categorical (line 12) | def run_tree_to_df_categorical(tree_method: str, device: Device) -> None:
function run_split_value_histograms (line 25) | def run_split_value_histograms(tree_method: str, device: Device) -> None:
FILE: python-package/xgboost/testing/plotting.py
function run_categorical (line 14) | def run_categorical(tree_method: str, device: Device) -> None:
FILE: python-package/xgboost/testing/predict.py
function run_predict_leaf (line 16) | def run_predict_leaf(device: Device, DMatrixT: Type[DMatrix]) -> np.ndar...
function run_base_margin_vs_base_score (line 70) | def run_base_margin_vs_base_score(device: Device) -> None:
FILE: python-package/xgboost/testing/quantile_dmatrix.py
function check_ref_quantile_cut (line 12) | def check_ref_quantile_cut(device: str) -> None:
function check_categorical_strings (line 39) | def check_categorical_strings(device: str) -> None:
FILE: python-package/xgboost/testing/ranking.py
function run_ranking_qid_df (line 16) | def run_ranking_qid_df(impl: ModuleType, tree_method: str, device: Devic...
function run_ranking_categorical (line 93) | def run_ranking_categorical(device: str) -> None:
function run_normalization (line 120) | def run_normalization(device: str) -> None:
function run_score_normalization (line 186) | def run_score_normalization(device: str, objective: str) -> None:
FILE: python-package/xgboost/testing/shared.py
function validate_leaf_output (line 16) | def validate_leaf_output(leaf: np.ndarray, num_parallel_tree: int) -> None:
function validate_data_initialization (line 27) | def validate_data_initialization(
function get_feature_weights (line 53) | def get_feature_weights(
FILE: python-package/xgboost/testing/updater.py
function get_basescore (line 32) | def get_basescore(model: XGBModel) -> List[float]: ...
function get_basescore (line 36) | def get_basescore(model: Booster) -> List[float]: ...
function get_basescore (line 40) | def get_basescore(model: Dict[str, Any]) -> List[float]: ...
function get_basescore (line 43) | def get_basescore(
function check_quantile_loss (line 60) | def check_quantile_loss(tree_method: str, weighted: bool, device: Device...
function check_quantile_loss_rf (line 149) | def check_quantile_loss_rf(
function check_quantile_loss_extmem (line 200) | def check_quantile_loss_extmem(
function check_extmem_qdm (line 231) | def check_extmem_qdm( # pylint: disable=too-many-arguments
function check_cut (line 305) | def check_cut(
function check_get_quantile_cut_device (line 322) | def check_get_quantile_cut_device(tree_method: str, use_cupy: bool) -> N...
function check_get_quantile_cut (line 395) | def check_get_quantile_cut(tree_method: str, device: str) -> None:
function _create_dmatrix (line 408) | def _create_dmatrix( # pylint: disable=too-many-arguments
function check_categorical_ohe (line 447) | def check_categorical_ohe( # pylint: disable=too-many-arguments
function check_categorical_missing (line 567) | def check_categorical_missing( # pylint: disable=too-many-arguments
function run_max_cat (line 615) | def run_max_cat(tree_method: str, device: Device) -> None:
function run_invalid_category (line 639) | def run_invalid_category(tree_method: str, device: Device) -> None:
function train_result (line 673) | def train_result(
class ResetStrategy (line 694) | class ResetStrategy(TrainingCallback):
method after_iteration (line 697) | def after_iteration(self, model: Booster, epoch: int, evals_log: dict)...
FILE: python-package/xgboost/testing/utils.py
function assert_allclose (line 13) | def assert_allclose(
function predictor_equal (line 24) | def predictor_equal(lhs: DMatrix, rhs: DMatrix) -> bool:
function non_increasing (line 37) | def non_increasing(L: Sequence[float], tolerance: float = 1e-4) -> bool:
function non_decreasing (line 42) | def non_decreasing(L: Sequence[float], tolerance: float = 1e-4) -> bool:
FILE: python-package/xgboost/testing/with_skl.py
function run_boost_from_prediction_binary (line 17) | def run_boost_from_prediction_binary(
function run_boost_from_prediction_multi_clasas (line 66) | def run_boost_from_prediction_multi_clasas(
function run_housing_rf_regression (line 117) | def run_housing_rf_regression(tree_method: str, device: Device) -> None:
function run_recoding (line 139) | def run_recoding(device: Device) -> None:
function run_intercept (line 170) | def run_intercept(device: Device) -> None:
FILE: python-package/xgboost/tracker.py
function get_family (line 12) | def get_family(addr: str) -> int:
class RabitTracker (line 17) | class RabitTracker:
class _SortBy (line 79) | class _SortBy(IntEnum):
method __init__ (line 84) | def __init__( # pylint: disable=too-many-arguments
method free (line 110) | def free(self) -> None:
method __del__ (line 117) | def __del__(self) -> None:
method start (line 120) | def start(self) -> None:
method wait_for (line 128) | def wait_for(self, timeout: Optional[int] = None) -> None:
method worker_args (line 136) | def worker_args(self) -> Dict[str, Union[str, int]]:
FILE: python-package/xgboost/training.py
function train (line 53) | def train(
class CVPack (line 212) | class CVPack:
method __init__ (line 215) | def __init__(
method __getattr__ (line 224) | def __getattr__(self, name: str) -> Callable:
method update (line 230) | def update(self, iteration: int, fobj: Optional[PlainObj]) -> None:
method eval (line 234) | def eval(self, iteration: int, feval: Optional[Metric], output_margin:...
class _PackedBooster (line 239) | class _PackedBooster:
method __init__ (line 240) | def __init__(self, cvfolds: _CVFolds) -> None:
method update (line 243) | def update(self, iteration: int, obj: Optional[PlainObj]) -> None:
method eval (line 248) | def eval(
method set_attr (line 255) | def set_attr(self, **kwargs: Optional[Any]) -> Any:
method attr (line 260) | def attr(self, key: str) -> Optional[str]:
method set_param (line 264) | def set_param(
method num_boosted_rounds (line 273) | def num_boosted_rounds(self) -> int:
method best_iteration (line 278) | def best_iteration(self) -> int:
method best_iteration (line 283) | def best_iteration(self, iteration: int) -> None:
method best_score (line 288) | def best_score(self) -> float:
method best_score (line 293) | def best_score(self, score: float) -> None:
function groups_to_rows (line 297) | def groups_to_rows(groups: np.ndarray, boundaries: np.ndarray) -> np.nda...
function mkgroupfold (line 307) | def mkgroupfold(
function mknfold (line 361) | def mknfold(
function cv (line 435) | def cv(
FILE: src/c_api/c_api.cc
function XGB_DLL (line 56) | XGB_DLL void XGBoostVersion(int *major, int *minor, int *patch) {
type xgboost (line 72) | namespace xgboost {
function XGBBuildInfoDevice (line 73) | void XGBBuildInfoDevice(Json *p_info) {
function CopyGradientFromArrays (line 1170) | void CopyGradientFromArrays(Context const *ctx, ArrayInterface<2, fals...
function XGB_DLL (line 83) | XGB_DLL int XGBuildInfo(char const **out) {
function XGB_DLL (line 147) | XGB_DLL int XGBRegisterLogCallback(void (*callback)(const char *)) {
function XGB_DLL (line 154) | XGB_DLL int XGBSetGlobalConfig(const char *json_str) {
function XGB_DLL (line 228) | XGB_DLL int XGBGetGlobalConfig(const char **json_str) {
function XGB_DLL (line 267) | XGB_DLL int XGDMatrixCreateFromFile(const char *fname, int silent, DMatr...
function XGB_DLL (line 281) | XGB_DLL int XGDMatrixCreateFromURI(const char *config, DMatrixHandle *ou...
function XGB_DLL (line 296) | XGB_DLL int XGDMatrixCreateFromDataIter(
function XGB_DLL (line 314) | XGB_DLL int XGDMatrixCreateFromCudaColumnar(char const *, char const *, ...
function XGB_DLL (line 320) | XGB_DLL int XGDMatrixCreateFromCudaArrayInterface(char const *, char con...
function XGB_DLL (line 329) | XGB_DLL int XGDMatrixCreateFromCallback(DataIterHandle iter, DMatrixHand...
function GetRefDMatrix (line 359) | std::shared_ptr<DMatrix> GetRefDMatrix(DataIterHandle ref) {
function WarnDeprecatedMaxQuantileBlocks (line 371) | void WarnDeprecatedMaxQuantileBlocks(Json const &config) {
function XGB_DLL (line 381) | XGB_DLL int XGQuantileDMatrixCreateFromCallback(DataIterHandle iter, DMa...
function XGB_DLL (line 404) | XGB_DLL int XGExtMemQuantileDMatrixCreateFromCallback(DataIterHandle ite...
function XGB_DLL (line 436) | XGB_DLL int XGProxyDMatrixCreate(DMatrixHandle *out) {
function XGB_DLL (line 453) | XGB_DLL int XGProxyDMatrixSetDataCudaArrayInterface(DMatrixHandle handle...
function XGB_DLL (line 461) | XGB_DLL int XGProxyDMatrixSetDataCudaColumnar(DMatrixHandle handle, char...
function XGB_DLL (line 469) | XGB_DLL int XGProxyDMatrixSetDataColumnar(DMatrixHandle handle, char con...
function XGB_DLL (line 477) | XGB_DLL int XGProxyDMatrixSetDataDense(DMatrixHandle handle, char const ...
function XGB_DLL (line 485) | XGB_DLL int XGProxyDMatrixSetDataCSR(DMatrixHandle handle, char const *i...
function XGB_DLL (line 498) | XGB_DLL int XGDMatrixCreateFromColumnar(char const *data, char const *c_...
function XGB_DLL (line 517) | XGB_DLL int XGDMatrixCreateFromCSR(char const *indptr, char const *indic...
function XGB_DLL (line 537) | XGB_DLL int XGDMatrixCreateFromDense(char const *data, char const *c_jso...
function XGB_DLL (line 554) | XGB_DLL int XGDMatrixCreateFromCSC(char const *indptr, char const *indic...
function XGB_DLL (line 576) | XGB_DLL int XGDMatrixCreateFromMat(const bst_float *data, xgboost::bst_u...
function XGB_DLL (line 585) | XGB_DLL int XGDMatrixCreateFromMat_omp(const bst_float *data, // NOLINT
function XGB_DLL (line 595) | XGB_DLL int XGDMatrixSliceDMatrix(DMatrixHandle handle, const int *idxse...
function XGB_DLL (line 601) | XGB_DLL int XGDMatrixSliceDMatrixEx(DMatrixHandle h
Copy disabled (too large)
Download .json
Condensed preview — 1414 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (10,011K chars).
[
{
"path": ".clang-format",
"chars": 5764,
"preview": "---\nLanguage: Cpp\n# BasedOnStyle: Google\nAccessModifierOffset: -1\nAlignAfterOpenBracket: Align\nAlignArrayOfStruc"
},
{
"path": ".clang-tidy",
"chars": 1999,
"preview": "Checks: 'modernize-*,-modernize-use-nodiscard,-modernize-concat-nested-namespaces,-modernize-make-*,-modernize-use-auto,"
},
{
"path": ".editorconfig",
"chars": 141,
"preview": "root = true\n\n[*]\ncharset=utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\n\n[*.py]\nindent_style = s"
},
{
"path": ".gitattributes",
"chars": 269,
"preview": "* text=auto\n\n*.c text eol=lf\n*.h text eol=lf\n*.cc text eol=lf\n*.cuh text eol=lf\n*.cu text eol=lf\n*.py text eol=lf"
},
{
"path": ".github/FUNDING.yml",
"chars": 61,
"preview": "open_collective: xgboost\ncustom: https://xgboost.ai/sponsors\n"
},
{
"path": ".github/ISSUE_TEMPLATE.md",
"chars": 727,
"preview": "Thanks for participating in the XGBoost community! The issue tracker is used for actionable items such as feature propos"
},
{
"path": ".github/dependabot.yml",
"chars": 184,
"preview": "version: 2\nupdates:\n - package-ecosystem: \"github-actions\"\n directory: /\n schedule:\n interval: \"weekly\"\n "
},
{
"path": ".github/lock.yml",
"chars": 851,
"preview": "# Configuration for lock-threads - https://github.com/dessant/lock-threads\n\n# Number of days of inactivity before a clos"
},
{
"path": ".github/runs-on.yml",
"chars": 1237,
"preview": "# Custom images with CUDA toolkit installed\n# See ops/packer for instructions for building the images\nimages:\n linux-am"
},
{
"path": ".github/workflows/cccl_nightly.yml",
"chars": 2491,
"preview": "name: Test XGBoost with latest CCCL and RMM\n\non:\n workflow_dispatch: # Can be manually triggered\n schedule:\n - cro"
},
{
"path": ".github/workflows/freebsd.yml",
"chars": 750,
"preview": "name: FreeBSD\n\non:\n push:\n branches:\n - master\n - 'release_*'\n pull_request:\n\npermissions:\n contents: re"
},
{
"path": ".github/workflows/jvm_tests.yml",
"chars": 10840,
"preview": "name: JVM Tests\n\non:\n push:\n branches:\n - master\n - 'release_*'\n pull_request:\n\npermissions:\n contents: "
},
{
"path": ".github/workflows/lint.yml",
"chars": 1302,
"preview": "name: XGBoost CI (Lint)\n\non:\n push:\n branches:\n - master\n - 'release_*'\n pull_request:\n\npermissions:\n co"
},
{
"path": ".github/workflows/main.yml",
"chars": 23584,
"preview": "name: XGBoost CI\n\non:\n push:\n branches:\n - master\n - 'release_*'\n pull_request:\n\npermissions:\n contents:"
},
{
"path": ".github/workflows/misc.yml",
"chars": 5553,
"preview": "name: Miscellaneous\n\non:\n push:\n branches:\n - master\n - 'release_*'\n pull_request:\n\npermissions:\n conten"
},
{
"path": ".github/workflows/pre-commit.yml",
"chars": 1112,
"preview": "name: XGBoost CI (Pre-commit)\n\non:\n push:\n branches:\n - master\n - 'release_*'\n pull_request:\n\npermissions"
},
{
"path": ".github/workflows/python_tests.yml",
"chars": 1970,
"preview": "name: Python tests\n\non:\n push:\n branches:\n - master\n - 'release_*'\n pull_request:\n\npermissions:\n content"
},
{
"path": ".github/workflows/python_wheels_variants.yml",
"chars": 5121,
"preview": "name: Build Python wheels using Wheel Variant prototype (WheelNext)\n\non:\n push:\n branches:\n - master\n - 'r"
},
{
"path": ".github/workflows/python_wheels_winarm64.yml",
"chars": 3812,
"preview": "name: Build Python wheels targeting Windows ARM64\n\non:\n push:\n branches:\n - master\n - 'release_*'\n pull_r"
},
{
"path": ".github/workflows/r_nold.yml",
"chars": 1426,
"preview": "# Run expensive R tests with the help of rhub. Only triggered by a pull request review\n# See discussion at https://githu"
},
{
"path": ".github/workflows/r_tests.yml",
"chars": 4132,
"preview": "name: R Tests\n\non:\n push:\n branches:\n - master\n - 'release_*'\n pull_request:\n\nenv:\n GITHUB_PAT: ${{ secr"
},
{
"path": ".github/workflows/scorecards.yml",
"chars": 1811,
"preview": "name: Scorecards supply-chain security\non:\n # Only the default branch is supported.\n branch_protection_rule:\n schedul"
},
{
"path": ".github/workflows/sycl_tests.yml",
"chars": 1406,
"preview": "name: XGBoost CI (oneAPI)\n\non:\n push:\n branches:\n - master\n - 'release_*'\n pull_request:\n\npermissions:\n "
},
{
"path": ".github/workflows/windows.yml",
"chars": 2713,
"preview": "name: Windows\n\non:\n push:\n branches:\n - master\n - 'release_*'\n pull_request:\n\npermissions:\n contents: re"
},
{
"path": ".gitignore",
"chars": 1764,
"preview": "# Compiled Object files\n*.slo\n*.lo\n*.o\n*.page\n# Compiled Dynamic libraries\n*.so\n*.dylib\n*.page\n# Compiled Static librari"
},
{
"path": ".gitmodules",
"chars": 195,
"preview": "[submodule \"dmlc-core\"]\n\tpath = dmlc-core\n\turl = https://github.com/dmlc/dmlc-core\n\tbranch = main\n[submodule \"gputreesha"
},
{
"path": ".pre-commit-config.yaml",
"chars": 1937,
"preview": "repos:\n - repo: https://github.com/pre-commit/pre-commit-hooks\n rev: v4.6.0\n hooks:\n - id: trailing-whitespa"
},
{
"path": ".readthedocs.yaml",
"chars": 709,
"preview": "# .readthedocs.yaml\n# Read the Docs configuration file\n# See https://docs.readthedocs.io/en/stable/config-file/v2.html f"
},
{
"path": "CITATION",
"chars": 619,
"preview": "@inproceedings{Chen:2016:XST:2939672.2939785,\n author = {Chen, Tianqi and Guestrin, Carlos},\n title = {{XGBoost}: A Scal"
},
{
"path": "CMakeLists.txt",
"chars": 18923,
"preview": "cmake_minimum_required(VERSION 3.18 FATAL_ERROR)\n\nif(PLUGIN_SYCL)\n string(REPLACE \" -isystem ${CONDA_PREFIX}/include\" \""
},
{
"path": "CONTRIBUTORS.md",
"chars": 6380,
"preview": "Contributors of DMLC/XGBoost\n============================\nXGBoost has been developed and used by a group of active commu"
},
{
"path": "LICENSE",
"chars": 11349,
"preview": " Apache License\n Version 2.0, January 2004\n "
},
{
"path": "NEWS.md",
"chars": 210252,
"preview": "XGBoost Change Log\n==================\n\n**Starting from 2.1.0, release note is recorded in the documentation.**\n\nThis fil"
},
{
"path": "R-package/.Rbuildignore",
"chars": 102,
"preview": "\\.o$\n\\.so$\n\\.dll$\n^.*\\.Rproj$\n^\\.Rproj\\.user$\nREADME.md\n^doc$\n^Meta$\n^_pkgdown\\.yml$\n^docs$\n^pkgdown$\n"
},
{
"path": "R-package/.gitignore",
"chars": 5,
"preview": "docs\n"
},
{
"path": "R-package/CMakeLists.txt",
"chars": 1609,
"preview": "find_package(LibR REQUIRED)\nmessage(STATUS \"LIBR_CORE_LIBRARY \" ${LIBR_CORE_LIBRARY})\n\nfile(\n GLOB_RECURSE R_SOURCES\n "
},
{
"path": "R-package/DESCRIPTION",
"chars": 2728,
"preview": "Package: xgboost\nType: Package\nTitle: Extreme Gradient Boosting\nVersion: 3.3.0.0\nDate: 2026-02-10\nAuthors@R: c(\n person"
},
{
"path": "R-package/NAMESPACE",
"chars": 2996,
"preview": "# Generated by roxygen2: do not edit by hand\n\nS3method(\"[\",xgb.Booster)\nS3method(\"[\",xgb.DMatrix)\nS3method(\"dimnames<-\","
},
{
"path": "R-package/R/callbacks.R",
"chars": 49049,
"preview": ".reserved_cb_names <- c(\"names\", \"class\", \"call\", \"params\", \"niter\", \"nfeatures\", \"folds\")\n\n#' XGBoost Callback Construc"
},
{
"path": "R-package/R/utils.R",
"chars": 29558,
"preview": "#\n# This file is for the low level reusable utility functions\n# that are not supposed to be visible to a user.\n#\n\n#\n# Ge"
},
{
"path": "R-package/R/xgb.Booster.R",
"chars": 48478,
"preview": "# Construct an internal XGBoost Booster and get its current number of rounds.\n# internal utility function\n# Note: the nu"
},
{
"path": "R-package/R/xgb.DMatrix.R",
"chars": 46420,
"preview": "#' Construct xgb.DMatrix object\n#'\n#' Construct an 'xgb.DMatrix' object from a given data source, which can then be pass"
},
{
"path": "R-package/R/xgb.DMatrix.save.R",
"chars": 821,
"preview": "#' Save xgb.DMatrix object to binary file\n#'\n#' Save xgb.DMatrix object to binary file\n#'\n#' @param dmatrix the `xgb.DMa"
},
{
"path": "R-package/R/xgb.config.R",
"chars": 2050,
"preview": "#' Set and get global configuration\n#'\n#' Global configuration consists of a collection of parameters that can be applie"
},
{
"path": "R-package/R/xgb.create.features.R",
"chars": 3866,
"preview": "#' Create new features from a previously learned model\n#'\n#' May improve the learning by adding new features to the trai"
},
{
"path": "R-package/R/xgb.cv.R",
"chars": 13239,
"preview": "#' Cross Validation\n#'\n#' The cross validation function of xgboost.\n#'\n#' @inheritParams xgb.train\n#' @param data An `xg"
},
{
"path": "R-package/R/xgb.dump.R",
"chars": 3449,
"preview": "#' Dump an XGBoost model in text format.\n#'\n#' Dump an XGBoost model in text format.\n#'\n#' @param model The model object"
},
{
"path": "R-package/R/xgb.ggplot.R",
"chars": 8719,
"preview": "# ggplot backend for the xgboost plotting facilities\n\n#' @rdname xgb.plot.importance\n#' @export\nxgb.ggplot.importance <-"
},
{
"path": "R-package/R/xgb.importance.R",
"chars": 6392,
"preview": "#' Feature importance\n#'\n#' Creates a `data.table` of feature importances.\n#'\n#' @details\n#' This function works for bot"
},
{
"path": "R-package/R/xgb.load.R",
"chars": 1826,
"preview": "#' Load XGBoost model from binary file\n#'\n#' Load XGBoost model from binary model file.\n#'\n#' @param modelfile The name "
},
{
"path": "R-package/R/xgb.load.raw.R",
"chars": 380,
"preview": "#' Load serialised XGBoost model from R's raw vector\n#'\n#' User can generate raw memory buffer by calling [xgb.save.raw("
},
{
"path": "R-package/R/xgb.model.dt.tree.R",
"chars": 7410,
"preview": "#' Parse model text dump\n#'\n#' Parse a boosted tree model text dump into a `data.table` structure.\n#'\n#' Note that this "
},
{
"path": "R-package/R/xgb.plot.deepness.R",
"chars": 6123,
"preview": "#' Plot model tree depth\n#'\n#' Visualizes distributions related to the depth of tree leaves.\n#' - `xgb.plot.deepness()` "
},
{
"path": "R-package/R/xgb.plot.importance.R",
"chars": 5470,
"preview": "#' Plot feature importance\n#'\n#' Represents previously calculated feature importance as a bar graph.\n#' - `xgb.plot.impo"
},
{
"path": "R-package/R/xgb.plot.multi.trees.R",
"chars": 5926,
"preview": "#' Project all trees on one tree\n#'\n#' Visualization of the ensemble of trees as a single collective unit.\n#'\n#' Note th"
},
{
"path": "R-package/R/xgb.plot.shap.R",
"chars": 14650,
"preview": "#' SHAP dependence plots\n#'\n#' Visualizes SHAP values against feature values to gain an impression of feature effects.\n#"
},
{
"path": "R-package/R/xgb.plot.tree.R",
"chars": 2944,
"preview": "#' Plot boosted trees\n#'\n#' Read a tree model text dump and plot the model.\n#'\n#' @details\n#' The content of each node i"
},
{
"path": "R-package/R/xgb.save.R",
"chars": 2859,
"preview": "#' Save XGBoost model to binary file\n#'\n#' Save XGBoost model to a file in binary or JSON format.\n#'\n#' @param model Mod"
},
{
"path": "R-package/R/xgb.save.raw.R",
"chars": 1294,
"preview": "#' Save XGBoost model to R's raw vector\n#'\n#' Save XGBoost model from [xgboost()] or [xgb.train()].\n#' Call [xgb.load.ra"
},
{
"path": "R-package/R/xgb.train.R",
"chars": 52319,
"preview": "#' @title Fit XGBoost Model\n#' @description Fits an XGBoost model to given data in DMatrix format (e.g. as produced by ["
},
{
"path": "R-package/R/xgboost.R",
"chars": 61401,
"preview": "prescreen.objective <- function(objective) {\n if (!is.null(objective)) {\n if (!is.character(objective) || length(obj"
},
{
"path": "R-package/README.md",
"chars": 1142,
"preview": "XGBoost R Package\n=================\n\n[](https://cran.r-"
},
{
"path": "R-package/bootstrap.R",
"chars": 1106,
"preview": "## Script used to bootstrap R-universe build.\n\n## Execute git commands to initialize git submodules\nsystem(\"git submodul"
},
{
"path": "R-package/cleanup",
"chars": 30,
"preview": "#!/bin/sh\n\nrm -f src/Makevars\n"
},
{
"path": "R-package/configure",
"chars": 132641,
"preview": "#! /bin/sh\n# Guess values for system-dependent variables and create Makefiles.\n# Generated by GNU Autoconf 2.71 for xgbo"
},
{
"path": "R-package/configure.ac",
"chars": 4074,
"preview": "### configure.ac\t\t\t\t\t-*- Autoconf -*-\n\nAC_PREREQ(2.69)\n\nAC_INIT([xgboost],[3.3.0],[],[xgboost],[])\n\n: ${R_HOME=`R RHOME`"
},
{
"path": "R-package/configure.win",
"chars": 534,
"preview": "R_EXE=\"${R_HOME}/bin${R_ARCH_BIN}/R.exe\"\nCXX=`\"${R_EXE}\" CMD config CXX`\n\ncat > test.cpp <<EOL\n#include <xmmintrin.h>\nin"
},
{
"path": "R-package/inst/make-r-def.R",
"chars": 2883,
"preview": "# [description]\n# Create a definition file (.def) from a .dll file, using objdump. This\n# is used by FindLibR.cm"
},
{
"path": "R-package/man/a-compatibility-note-for-saveRDS-save.Rd",
"chars": 6666,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/utils.R\n\\name{a-compatibility-note-for-sav"
},
{
"path": "R-package/man/agaricus.test.Rd",
"chars": 875,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/xgboost.R\n\\docType{data}\n\\name{agaricus.te"
},
{
"path": "R-package/man/agaricus.train.Rd",
"chars": 882,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/xgboost.R\n\\docType{data}\n\\name{agaricus.tr"
},
{
"path": "R-package/man/coef.xgb.Booster.Rd",
"chars": 2009,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/xgb.Booster.R\n\\name{coef.xgb.Booster}\n\\ali"
},
{
"path": "R-package/man/dim.xgb.DMatrix.Rd",
"chars": 841,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/xgb.DMatrix.R\n\\name{dim.xgb.DMatrix}\n\\alia"
},
{
"path": "R-package/man/dimnames.xgb.DMatrix.Rd",
"chars": 1126,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/xgb.DMatrix.R\n\\name{dimnames.xgb.DMatrix}\n"
},
{
"path": "R-package/man/getinfo.Rd",
"chars": 2746,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/xgb.Booster.R, R/xgb.DMatrix.R\n\\name{getin"
},
{
"path": "R-package/man/predict.xgb.Booster.Rd",
"chars": 14722,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/xgb.Booster.R\n\\name{predict.xgb.Booster}\n\\"
},
{
"path": "R-package/man/predict.xgboost.Rd",
"chars": 6996,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/xgboost.R\n\\name{predict.xgboost}\n\\alias{pr"
},
{
"path": "R-package/man/print.xgb.Booster.Rd",
"chars": 730,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/xgb.Booster.R\n\\name{print.xgb.Booster}\n\\al"
},
{
"path": "R-package/man/print.xgb.DMatrix.Rd",
"chars": 672,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/xgb.DMatrix.R\n\\name{print.xgb.DMatrix}\n\\al"
},
{
"path": "R-package/man/print.xgb.cv.Rd",
"chars": 934,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/xgb.cv.R\n\\name{print.xgb.cv.synchronous}\n\\"
},
{
"path": "R-package/man/print.xgboost.Rd",
"chars": 491,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/xgboost.R\n\\name{print.xgboost}\n\\alias{prin"
},
{
"path": "R-package/man/variable.names.xgb.Booster.Rd",
"chars": 753,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/xgb.Booster.R\n\\name{variable.names.xgb.Boo"
},
{
"path": "R-package/man/xgb.Callback.Rd",
"chars": 10949,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/callbacks.R\n\\name{xgb.Callback}\n\\alias{xgb"
},
{
"path": "R-package/man/xgb.DMatrix.Rd",
"chars": 8042,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/xgb.DMatrix.R\n\\name{xgb.DMatrix}\n\\alias{xg"
},
{
"path": "R-package/man/xgb.DMatrix.hasinfo.Rd",
"chars": 947,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/xgb.DMatrix.R\n\\name{xgb.DMatrix.hasinfo}\n\\"
},
{
"path": "R-package/man/xgb.DMatrix.save.Rd",
"chars": 702,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/xgb.DMatrix.save.R\n\\name{xgb.DMatrix.save}"
},
{
"path": "R-package/man/xgb.DataBatch.Rd",
"chars": 5018,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/xgb.DMatrix.R\n\\name{xgb.DataBatch}\n\\alias{"
},
{
"path": "R-package/man/xgb.DataIter.Rd",
"chars": 2520,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/xgb.DMatrix.R\n\\name{xgb.DataIter}\n\\alias{x"
},
{
"path": "R-package/man/xgb.ExtMemDMatrix.Rd",
"chars": 4913,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/xgb.DMatrix.R\n\\name{xgb.ExtMemDMatrix}\n\\al"
},
{
"path": "R-package/man/xgb.QuantileDMatrix.from_iterator.Rd",
"chars": 3401,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/xgb.DMatrix.R\n\\name{xgb.QuantileDMatrix.fr"
},
{
"path": "R-package/man/xgb.attr.Rd",
"chars": 3488,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/xgb.Booster.R\n\\name{xgb.attr}\n\\alias{xgb.a"
},
{
"path": "R-package/man/xgb.cb.cv.predict.Rd",
"chars": 1517,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/callbacks.R\n\\name{xgb.cb.cv.predict}\n\\alia"
},
{
"path": "R-package/man/xgb.cb.early.stop.Rd",
"chars": 2485,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/callbacks.R\n\\name{xgb.cb.early.stop}\n\\alia"
},
{
"path": "R-package/man/xgb.cb.evaluation.log.Rd",
"chars": 831,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/callbacks.R\n\\name{xgb.cb.evaluation.log}\n\\"
},
{
"path": "R-package/man/xgb.cb.gblinear.history.Rd",
"chars": 5758,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/callbacks.R\n\\name{xgb.cb.gblinear.history}"
},
{
"path": "R-package/man/xgb.cb.print.evaluation.Rd",
"chars": 862,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/callbacks.R\n\\name{xgb.cb.print.evaluation}"
},
{
"path": "R-package/man/xgb.cb.reset.parameters.Rd",
"chars": 1134,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/callbacks.R\n\\name{xgb.cb.reset.parameters}"
},
{
"path": "R-package/man/xgb.cb.save.model.Rd",
"chars": 1044,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/callbacks.R\n\\name{xgb.cb.save.model}\n\\alia"
},
{
"path": "R-package/man/xgb.config.Rd",
"chars": 1248,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/xgb.Booster.R\n\\name{xgb.config}\n\\alias{xgb"
},
{
"path": "R-package/man/xgb.copy.Booster.Rd",
"chars": 1614,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/xgb.Booster.R\n\\name{xgb.copy.Booster}\n\\ali"
},
{
"path": "R-package/man/xgb.create.features.Rd",
"chars": 3660,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/xgb.create.features.R\n\\name{xgb.create.fea"
},
{
"path": "R-package/man/xgb.cv.Rd",
"chars": 10444,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/xgb.cv.R\n\\name{xgb.cv}\n\\alias{xgb.cv}\n\\tit"
},
{
"path": "R-package/man/xgb.dump.Rd",
"chars": 3059,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/xgb.dump.R\n\\name{xgb.dump}\n\\alias{xgb.dump"
},
{
"path": "R-package/man/xgb.gblinear.history.Rd",
"chars": 2157,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/callbacks.R\n\\name{xgb.gblinear.history}\n\\a"
},
{
"path": "R-package/man/xgb.get.DMatrix.data.Rd",
"chars": 551,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/xgb.DMatrix.R\n\\name{xgb.get.DMatrix.data}\n"
},
{
"path": "R-package/man/xgb.get.DMatrix.num.non.missing.Rd",
"chars": 508,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/xgb.DMatrix.R\n\\name{xgb.get.DMatrix.num.no"
},
{
"path": "R-package/man/xgb.get.DMatrix.qcut.Rd",
"chars": 2039,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/xgb.DMatrix.R\n\\name{xgb.get.DMatrix.qcut}\n"
},
{
"path": "R-package/man/xgb.get.num.boosted.rounds.Rd",
"chars": 711,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/xgb.Booster.R\n\\name{xgb.get.num.boosted.ro"
},
{
"path": "R-package/man/xgb.importance.Rd",
"chars": 3792,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/xgb.importance.R\n\\name{xgb.importance}\n\\al"
},
{
"path": "R-package/man/xgb.is.same.Booster.Rd",
"chars": 2100,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/xgb.Booster.R\n\\name{xgb.is.same.Booster}\n\\"
},
{
"path": "R-package/man/xgb.load.Rd",
"chars": 1433,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/xgb.load.R\n\\name{xgb.load}\n\\alias{xgb.load"
},
{
"path": "R-package/man/xgb.load.raw.Rd",
"chars": 428,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/xgb.load.raw.R\n\\name{xgb.load.raw}\n\\alias{"
},
{
"path": "R-package/man/xgb.model.dt.tree.Rd",
"chars": 3952,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/xgb.model.dt.tree.R\n\\name{xgb.model.dt.tre"
},
{
"path": "R-package/man/xgb.model.parameters.Rd",
"chars": 1557,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/xgb.Booster.R\n\\name{xgb.model.parameters<-"
},
{
"path": "R-package/man/xgb.params.Rd",
"chars": 36284,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/xgb.train.R\n\\name{xgb.params}\n\\alias{xgb.p"
},
{
"path": "R-package/man/xgb.plot.deepness.Rd",
"chars": 3149,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/xgb.ggplot.R, R/xgb.plot.deepness.R\n\\name{"
},
{
"path": "R-package/man/xgb.plot.importance.Rd",
"chars": 3725,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/xgb.ggplot.R, R/xgb.plot.importance.R\n\\nam"
},
{
"path": "R-package/man/xgb.plot.multi.trees.Rd",
"chars": 3505,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/xgb.plot.multi.trees.R\n\\name{xgb.plot.mult"
},
{
"path": "R-package/man/xgb.plot.shap.Rd",
"chars": 6732,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/xgb.plot.shap.R\n\\name{xgb.plot.shap}\n\\alia"
},
{
"path": "R-package/man/xgb.plot.shap.summary.Rd",
"chars": 2744,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/xgb.ggplot.R, R/xgb.plot.shap.R\n\\name{xgb."
},
{
"path": "R-package/man/xgb.plot.tree.Rd",
"chars": 3156,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/xgb.plot.tree.R\n\\name{xgb.plot.tree}\n\\alia"
},
{
"path": "R-package/man/xgb.save.Rd",
"chars": 2637,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/xgb.save.R\n\\name{xgb.save}\n\\alias{xgb.save"
},
{
"path": "R-package/man/xgb.save.raw.Rd",
"chars": 1287,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/xgb.save.raw.R\n\\name{xgb.save.raw}\n\\alias{"
},
{
"path": "R-package/man/xgb.slice.Booster.Rd",
"chars": 1838,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/xgb.Booster.R\n\\name{xgb.slice.Booster}\n\\al"
},
{
"path": "R-package/man/xgb.slice.DMatrix.Rd",
"chars": 1184,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/xgb.DMatrix.R\n\\name{xgb.slice.DMatrix}\n\\al"
},
{
"path": "R-package/man/xgb.train.Rd",
"chars": 13273,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/xgb.train.R\n\\name{xgb.train}\n\\alias{xgb.tr"
},
{
"path": "R-package/man/xgbConfig.Rd",
"chars": 1933,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/xgb.config.R\n\\name{xgb.set.config, xgb.get"
},
{
"path": "R-package/man/xgboost-options.Rd",
"chars": 1460,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/utils.R\n\\name{xgboost-options}\n\\alias{xgbo"
},
{
"path": "R-package/man/xgboost.Rd",
"chars": 41370,
"preview": "% Generated by roxygen2: do not edit by hand\n% Please edit documentation in R/xgboost.R\n\\name{xgboost}\n\\alias{xgboost}\n\\"
},
{
"path": "R-package/pkgdown/_pkgdown.yml",
"chars": 2492,
"preview": "url: https://github.com/dmlc/xgboost\n\ntemplate:\n bootstrap: 5\n math-rendering: mathjax\n\nreference:\n - title: High Lev"
},
{
"path": "R-package/remove_warning_suppression_pragma.sh",
"chars": 364,
"preview": "#!/bin/bash\n# remove all #pragma's that suppress compiler warnings\nset -e\nset -x\nfor file in xgboost/src/dmlc-core/inclu"
},
{
"path": "R-package/src/Makevars.in",
"chars": 5400,
"preview": "# package root\nPKGROOT=../../\nENABLE_STD_THREAD=1\n# _*_ mode: Makefile; _*_\n\nCXX_STD = CXX17\n\nXGB_RFLAGS = \\\n @DMLC_D"
},
{
"path": "R-package/src/Makevars.win.in",
"chars": 5446,
"preview": "# package root\nPKGROOT=../../\nENABLE_STD_THREAD=0\n# _*_ mode: Makefile; _*_\n\nCXX_STD = CXX17\n\nXGB_RFLAGS = \\\n -DXGBOO"
},
{
"path": "R-package/src/config.h.in",
"chars": 1911,
"preview": "/* src/config.h.in. Generated from configure.ac by autoheader. */\n\n/* Define if building universal (internal helper ma"
},
{
"path": "R-package/src/init.c",
"chars": 9193,
"preview": "/* Copyright (c) 2015 by Contributors\n *\n * This file was initially generated using the following R command:\n * tools::p"
},
{
"path": "R-package/src/xgboost-win.def",
"chars": 44,
"preview": "LIBRARY xgboost.dll\nEXPORTS\n R_init_xgboost\n"
},
{
"path": "R-package/src/xgboost_R.cc",
"chars": 55223,
"preview": "/**\n * Copyright 2014-2024, XGBoost Contributors\n */\n#include <dmlc/common.h>\n#include <dmlc/omp.h>\n#include <xgboost/c_"
},
{
"path": "R-package/src/xgboost_R.h",
"chars": 18536,
"preview": "/*!\n * Copyright 2014-2022 by XGBoost Contributors\n * \\file xgboost_R.h\n * \\author Tianqi Chen\n * \\brief R wrapper of xg"
},
{
"path": "R-package/src/xgboost_custom.cc",
"chars": 1131,
"preview": "// Copyright (c) 2015 by Contributors\n// This file contains the customization implementations of R module\n// to change b"
},
{
"path": "R-package/tests/helper_scripts/generate_models.R",
"chars": 3840,
"preview": "# Script to generate reference models. The reference models are used to test backward compatibility\n# of saved model fil"
},
{
"path": "R-package/tests/helper_scripts/install_deps.R",
"chars": 1131,
"preview": "## Install dependencies of R package for testing. The list might not be\n## up-to-date, check DESCRIPTION for the latest "
},
{
"path": "R-package/tests/helper_scripts/run-examples.R",
"chars": 553,
"preview": "## Helper script for running individual examples.\nlibrary(pkgload)\nlibrary(xgboost)\n\nfiles <- list.files(\"./man\")\n\n\nrun_"
},
{
"path": "R-package/tests/testthat/helper_model.R",
"chars": 164,
"preview": "## A special file sourced by testthat.\n\nget_basescore <- function(model) {\n as.numeric(\n jsonlite::fromJSON(model$le"
},
{
"path": "R-package/tests/testthat/test_basic.R",
"chars": 37731,
"preview": "context(\"basic functions\")\n\ndata(agaricus.train, package = \"xgboost\")\ndata(agaricus.test, package = \"xgboost\")\ntrain <- "
},
{
"path": "R-package/tests/testthat/test_booster_slicing.R",
"chars": 2204,
"preview": "context(\"testing xgb.Booster slicing\")\n\ndata(agaricus.train, package = \"xgboost\")\ndm <- xgb.DMatrix(agaricus.train$data,"
},
{
"path": "R-package/tests/testthat/test_callbacks.R",
"chars": 17624,
"preview": "# More specific testing of callbacks\ncontext(\"callbacks\")\n\ndata(agaricus.train, package = 'xgboost')\ndata(agaricus.test,"
},
{
"path": "R-package/tests/testthat/test_config.R",
"chars": 688,
"preview": "context('Test global configuration')\n\ntest_that('Global configuration works with verbosity', {\n old_verbosity <- xgb.ge"
},
{
"path": "R-package/tests/testthat/test_custom_objective.R",
"chars": 5797,
"preview": "context('Test models with custom objective')\n\nset.seed(1994)\n\nn_threads <- 2\n\ndata(agaricus.train, package = 'xgboost')\n"
},
{
"path": "R-package/tests/testthat/test_dmatrix.R",
"chars": 22238,
"preview": "library(Matrix)\ncontext(\"testing xgb.DMatrix functionality\")\n\ndata(agaricus.test, package = \"xgboost\")\ntest_data <- agar"
},
{
"path": "R-package/tests/testthat/test_feature_weights.R",
"chars": 871,
"preview": "context(\"feature weights\")\n\nn_threads <- 2\n\ntest_that(\"training with feature weights works\", {\n nrows <- 1000\n ncols <"
},
{
"path": "R-package/tests/testthat/test_glm.R",
"chars": 3381,
"preview": "context('Test generalized linear models')\n\nn_threads <- 2\n\ntest_that(\"gblinear works\", {\n data(agaricus.train, package "
},
{
"path": "R-package/tests/testthat/test_helpers.R",
"chars": 28298,
"preview": "context('Test helper functions')\n\nVCD_AVAILABLE <- requireNamespace(\"vcd\", quietly = TRUE)\n.skip_if_vcd_not_available <-"
},
{
"path": "R-package/tests/testthat/test_interaction_constraints.R",
"chars": 2164,
"preview": "require(xgboost)\n\ncontext(\"interaction constraints\")\n\nn_threads <- 2\n\nset.seed(1024)\nx1 <- rnorm(1000, 1)\nx2 <- rnorm(10"
},
{
"path": "R-package/tests/testthat/test_interactions.R",
"chars": 6085,
"preview": "context('Test prediction of feature interactions')\n\nset.seed(123)\nn_threads <- 2\n\ntest_that(\"predict feature interaction"
},
{
"path": "R-package/tests/testthat/test_io.R",
"chars": 1976,
"preview": "context(\"Test model IO.\")\n\ndata(agaricus.train, package = \"xgboost\")\ndata(agaricus.test, package = \"xgboost\")\ntrain <- a"
},
{
"path": "R-package/tests/testthat/test_model_compatibility.R",
"chars": 4043,
"preview": "context(\"Models from previous versions of XGBoost can be loaded\")\n\nmetadata <- list(\n kRounds = 4,\n kRows = 1000,\n kC"
},
{
"path": "R-package/tests/testthat/test_monotone.R",
"chars": 665,
"preview": "context(\"monotone constraints\")\n\nset.seed(1024)\nx <- rnorm(1000, 10)\ny <- -1 * x + rnorm(1000, 0.001) + 3 * sin(x)\ntrain"
},
{
"path": "R-package/tests/testthat/test_parameter_exposure.R",
"chars": 897,
"preview": "context('Test model params and call are exposed to R')\n\ndata(agaricus.train, package = 'xgboost')\ndata(agaricus.test, pa"
},
{
"path": "R-package/tests/testthat/test_poisson_regression.R",
"chars": 1473,
"preview": "context('Test Poisson regression model')\n\nset.seed(1994)\n\ntest_that(\"Poisson regression works\", {\n data(mtcars)\n bst <"
},
{
"path": "R-package/tests/testthat/test_ranking.R",
"chars": 2429,
"preview": "context('Learning to rank')\n\nn_threads <- 2\n\ntest_that('Test ranking with unweighted data', {\n X <- Matrix::sparseMatri"
},
{
"path": "R-package/tests/testthat/test_unicode.R",
"chars": 774,
"preview": "context(\"Test Unicode handling\")\n\ndata(agaricus.train, package = 'xgboost')\ndata(agaricus.test, package = 'xgboost')\ntra"
},
{
"path": "R-package/tests/testthat/test_update.R",
"chars": 6644,
"preview": "context(\"update trees in an existing model\")\n\ndata(agaricus.train, package = 'xgboost')\ndata(agaricus.test, package = 'x"
},
{
"path": "R-package/tests/testthat/test_xgboost.R",
"chars": 30140,
"preview": "library(survival)\nlibrary(data.table)\ndata(\"iris\")\ndata(\"mtcars\")\ndata(\"ToothGrowth\")\n\ntest_that(\"Auto determine objecti"
},
{
"path": "R-package/tests/testthat.R",
"chars": 139,
"preview": "library(testthat)\nlibrary(xgboost)\nlibrary(Matrix)\n\ntest_check(\"xgboost\", reporter = ProgressReporter)\nRhpcBLASctl::omp_"
},
{
"path": "R-package/vignettes/xgboost_introduction.Rmd",
"chars": 11968,
"preview": "---\ntitle: \"XGBoost for R introduction\"\nvignette: >\n %\\VignetteIndexEntry{XGBoost for R introduction}\n %\\VignetteE"
},
{
"path": "R-package/vignettes/xgboostfromJSON.Rmd",
"chars": 7422,
"preview": "---\ntitle: \"XGBoost from JSON\"\noutput:\n rmarkdown::html_vignette:\n number_sections: yes\n toc: yes\nauthor: Roland "
},
{
"path": "README.md",
"chars": 4576,
"preview": "<img src=\"https://xgboost.ai/images/logo/xgboost-logo-trimmed.png\" width=200/> eXtreme Gradient Boosting\n===========\n\n[!"
},
{
"path": "SECURITY.md",
"chars": 879,
"preview": "# Security Policy\n\n## Supported Versions\n\n<!-- Use this section to tell people about which versions of your project are\n"
},
{
"path": "amalgamation/dmlc-minimum0.cc",
"chars": 557,
"preview": "/*!\n * Copyright 2015 by Contributors.\n * \\brief Mininum DMLC library Amalgamation, used for easy plugin of dmlc lib.\n *"
},
{
"path": "cmake/Doc.cmake",
"chars": 516,
"preview": "function(run_doxygen)\n find_package(Doxygen REQUIRED)\n\n if(NOT DOXYGEN_DOT_FOUND)\n message(FATAL_ERROR \"Command `do"
},
{
"path": "cmake/FindOpenMPMacOS.cmake",
"chars": 4544,
"preview": "# Find OpenMP library on MacOS\n# Automatically handle locating libomp from the Homebrew package manager\n\n# lint_cmake: -"
},
{
"path": "cmake/PrefetchIntrinsics.cmake",
"chars": 657,
"preview": "function(find_prefetch_intrinsics)\n include(CheckCXXSourceCompiles)\n check_cxx_source_compiles(\"\n #include <xmmintrin"
},
{
"path": "cmake/RPackageInstall.cmake.in",
"chars": 1187,
"preview": "# Commands to install the R package as a CMake install target\n\nfunction(check_call)\n set(cmd COMMAND)\n cmake_parse_arg"
},
{
"path": "cmake/RPackageInstallTargetSetup.cmake",
"chars": 691,
"preview": "# Assembles the R-package files in build_dir;\n# if necessary, installs the main R package dependencies;\n# runs R CMD INS"
},
{
"path": "cmake/Sanitizer.cmake",
"chars": 1931,
"preview": "# Set appropriate compiler and linker flags for sanitizers.\n#\n# Usage of this module:\n# enable_sanitizers(\"address;leak"
},
{
"path": "cmake/Utils.cmake",
"chars": 10505,
"preview": "# Automatically set source group based on folder\nfunction(auto_source_group SOURCES)\n\n foreach(FILE ${SOURCES})\n g"
},
{
"path": "cmake/Version.cmake",
"chars": 257,
"preview": "function(write_version)\n message(STATUS \"xgboost VERSION: ${xgboost_VERSION}\")\n configure_file(\n ${xgboost_SOURCE_D"
},
{
"path": "cmake/modules/FindASan.cmake",
"chars": 423,
"preview": "set(ASan_LIB_NAME ASan)\n\nfind_library(ASan_LIBRARY\n NAMES libasan.so libasan.so.6 libasan.so.5 libasan.so.4 libasan.so."
},
{
"path": "cmake/modules/FindLSan.cmake",
"chars": 362,
"preview": "set(LSan_LIB_NAME lsan)\n\nfind_library(LSan_LIBRARY\n NAMES liblsan.so liblsan.so.0 liblsan.so.0.0.0\n PATHS ${SANITIZER_"
},
{
"path": "cmake/modules/FindLibR.cmake",
"chars": 6371,
"preview": "# CMake module for R\n# Borrows ideas from RStudio's FindLibR.cmake\n#\n# Defines the following:\n# LIBR_FOUND\n# LIBR_HOME"
},
{
"path": "cmake/modules/FindNVML.cmake",
"chars": 503,
"preview": "if(NVML_LIBRARY)\n unset(NVML_LIBRARY CACHE)\nendif()\n\nset(NVML_LIB_NAME nvml)\n\nfind_path(NVML_INCLUDE_DIR\n NAMES nvml.h"
},
{
"path": "cmake/modules/FindNccl.cmake",
"chars": 2421,
"preview": "#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance wit"
},
{
"path": "cmake/modules/FindTSan.cmake",
"chars": 362,
"preview": "set(TSan_LIB_NAME tsan)\n\nfind_library(TSan_LIBRARY\n NAMES libtsan.so libtsan.so.0 libtsan.so.0.0.0\n PATHS ${SANITIZER_"
},
{
"path": "cmake/modules/FindUBSan.cmake",
"chars": 424,
"preview": "set(UBSan_LIB_NAME UBSan)\n\nfind_library(UBSan_LIBRARY\n NAMES libubsan.so libubsan.so.5 libubsan.so.4 libubsan.so.3 libu"
},
{
"path": "cmake/version_config.h.in",
"chars": 349,
"preview": "/**\n * Copyright 2019-2026, XGBoost contributors\n */\n#ifndef XGBOOST_VERSION_CONFIG_H_\n#define XGBOOST_VERSION_CONFIG_H_"
},
{
"path": "cmake/xgboost-config.cmake.in",
"chars": 623,
"preview": "@PACKAGE_INIT@\n\nset(USE_OPENMP @USE_OPENMP@)\nset(USE_CUDA @USE_CUDA@)\nset(USE_NCCL @USE_NCCL@)\nset(XGBOOST_BUILD_STATIC_"
},
{
"path": "cmake/xgboost.pc.in",
"chars": 284,
"preview": "prefix=@CMAKE_INSTALL_PREFIX@\nversion=@xgboost_VERSION@\nexec_prefix=${prefix}/bin\nlibdir=${prefix}/lib\nincludedir=${pref"
},
{
"path": "demo/.gitignore",
"chars": 15,
"preview": "*.libsvm\n*.pkl\n"
},
{
"path": "demo/README.md",
"chars": 19707,
"preview": "Awesome XGBoost\n===============\nThis page contains a curated list of examples, tutorials, blogs about XGBoost usecases.\n"
},
{
"path": "demo/aft_survival/README.rst",
"chars": 226,
"preview": "Survival Analysis Walkthrough\n=============================\n\nThis is a collection of examples for using the XGBoost Pyth"
},
{
"path": "demo/aft_survival/aft_survival_demo.py",
"chars": 2291,
"preview": "\"\"\"\nDemo for survival analysis (regression).\n========================================\n\nDemo for survival analysis (regre"
},
{
"path": "demo/aft_survival/aft_survival_demo_with_optuna.py",
"chars": 3655,
"preview": "\"\"\"\nDemo for survival analysis (regression) with Optuna.\n====================================================\n\nDemo for "
},
{
"path": "demo/aft_survival/aft_survival_viz_demo.py",
"chars": 4190,
"preview": "\"\"\"\nVisual demo for survival analysis (regression) with Accelerated Failure Time (AFT) model.\n=========================="
},
{
"path": "demo/c-api/.gitignore",
"chars": 11,
"preview": "c-api-demo\n"
},
{
"path": "demo/c-api/basic/Makefile",
"chars": 368,
"preview": "SRC=c-api-demo.c\nTGT=c-api-demo\n\ncc=cc\nCFLAGS ?=-O3\nXGBOOST_ROOT ?=../..\nINCLUDE_DIR=-I$(XGBOOST_ROOT)/include -I$(XGBOO"
},
{
"path": "demo/c-api/basic/README.md",
"chars": 967,
"preview": "C-APIs\n===\n\n**XGBoost** implements a C API originally designed for various language\nbindings. For detailed reference, p"
},
{
"path": "demo/c-api/basic/c-api-demo.c",
"chars": 8097,
"preview": "/**\n * Copyright 2019-2023 by XGBoost contributors\n *\n * \\file c-api-demo.c\n * \\brief A simple example of using xgboost "
},
{
"path": "demo/c-api/external-memory/README.md",
"chars": 963,
"preview": "Defining a Custom Data Iterator to Load Data from External Memory\n======================================================"
},
{
"path": "demo/c-api/external-memory/external_memory.c",
"chars": 5757,
"preview": "/*!\n * Copyright 2021 XGBoost contributors\n *\n * \\brief A simple example of using xgboost data callback API.\n */\n\n#inclu"
},
{
"path": "demo/c-api/inference/inference.c",
"chars": 7058,
"preview": "/**\n * Copyright 2021-2025, XGBoost contributors\n *\n * @brief A simple example of using prediction functions.\n *\n * See "
}
]
// ... and 1214 more files (download for full content)
About this extraction
This page contains the full source code of the dmlc/xgboost GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 1414 files (9.1 MB), approximately 2.5M tokens, and a symbol index with 6110 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.