Commit Graph
769 Commits
Author SHA1 Message Date
Hui Liu 968dbf25fb merge latest changes 2024-03-12 09:13:09 -07:00
Jiaming Yuan 1450aebb74 Fix pairwise objective with NDCG metric along with custom gain. (#10100)
* Fix pairwise objective with NDCG metric.

- Allow setting `ndcg_exp_gain` for `rank:pairwise`.

This is useful when using pairwise for objective but ndcg for metric.
2024-03-11 14:54:10 +08:00
Jiaming Yuan 2c13f90384 Support graphviz plot for multi-target tree. (#10093) 2024-03-09 05:35:25 +08:00
Jiaming Yuan d07b7fe8c8 Small cleanup for mock tests. (#10085) 2024-03-04 23:32:11 +08:00
Dmitry RazdoburdinandDmitry Razdoburdin 7a61216690 [sycl] add partitioning and related tests (#10080)
Co-authored-by: Dmitry Razdoburdin <>
2024-03-02 01:49:27 +08:00
Jiaming Yuan 8189126d51 Add CUDA iterator to tensor view. (#10074) 2024-03-01 14:15:31 +08:00
Dmitry RazdoburdinandDmitry Razdoburdin 761845f594 [SYCL] Implement row set collection. (#10057)
Co-authored-by: Dmitry Razdoburdin <>
2024-02-26 21:07:36 +08:00
Jiaming Yuan 0ce4372bd4 Use UBJSON for serializing splits for vertical data split. (#10059) 2024-02-25 00:18:23 +08:00
Jiaming Yuan 2e4ea5ecc0 Support f64 for ubjson. (#10055) 2024-02-21 02:18:42 +08:00
Jiaming Yuan d37b83e8d9 Fix UBJSON with boolean value. (#10054) 2024-02-20 22:13:51 +08:00
Louis DesreumauxandJiaming Yuan edf501d227 Implement contribution prediction with QuantileDMatrix (#10043)
---------

Co-authored-by: Jiaming Yuan <jm.yuan@outlook.com>
2024-02-19 21:03:29 +08:00
Dmitry RazdoburdinandDmitry Razdoburdin 057f03cacc [SYCL] Initial implementation of GHistIndexMatrix (#10045)
Co-authored-by: Dmitry Razdoburdin <>
2024-02-19 04:27:15 +08:00
Hui Liu 44db1cef54 Merge branch 'master' into sync-2024Jan24 2024-02-01 14:41:48 -08:00
Philip Hyunsu ChoandJiaming Yuan 4dfbe2a893 [CI] Test building for 32-bit arch (#10021)
* [CI] Test building for 32-bit arch

* Update CMakeLists.txt

* Fix yaml

* Use Debian container

* Remove -Werror for 32-bit

* Revert "Remove -Werror for 32-bit"

This reverts commit c652bc6a037361bcceaf56fb01863210b462793d.

* Don't error for overloaded-virtual warning

* Ignore some warnings from dmlc-core

* Fix compiler warnings

* Fix formatting

* Apply suggestions from code review

Co-authored-by: Jiaming Yuan <jm.yuan@outlook.com>

* Add more cast

---------

Co-authored-by: Jiaming Yuan <jm.yuan@outlook.com>
2024-01-31 13:20:51 -08:00
Dmitry RazdoburdinandDmitry Razdoburdin 234674a0a6 [sync]. Add partition builder. (#10011)
---------

Co-authored-by: Dmitry Razdoburdin <>
2024-01-31 17:39:48 +08:00
Hui Liu 3fe874078c merge latest changes 2024-01-24 13:30:08 -08:00
Hui Liu 069cf1d019 use __HIPCC__ for device code 2024-01-24 11:30:01 -08:00
Jiaming Yuan cacb4b1fdd Fix gain calculation in multi-target tree. (#9978) 2024-01-17 13:18:44 +08:00
Hui Liu 9759e28e6a compiler errors fix 2024-01-12 12:09:01 -08:00
Hui Liu 1e1e8be3a5 merge latest, Jan 12 2024 2024-01-12 09:57:11 -08:00
Philip Hyunsu Cho ef8bdaa047 [CI] Update machine images (#9932) 2023-12-29 11:15:38 -08:00
Jiaming Yuan a7226c0222 Fix feature names with special characters. (#9923) 2023-12-28 22:45:13 +08:00
Hui Liu 2d7ffbdf3d merge latest changes 2023-12-13 21:06:28 -08:00
Dmitry RazdoburdinandDmitry Razdoburdin 43897b8296 Sycl implementation for objective functions (#9846)
---------

Co-authored-by: Dmitry Razdoburdin <>
2023-12-12 14:41:50 +08:00
Jiaming Yuan 42de9206fc Support multi-target, fit intercept for hinge. (#9850) 2023-12-08 05:50:41 +08:00
381f1d3dc9 Add support inference on SYCL devices (#9800)
---------

Co-authored-by: Dmitry Razdoburdin <>
Co-authored-by: Nikolay Petrov <nikolay.a.petrov@intel.com>
Co-authored-by: Alexandra <alexandra.epanchinzeva@intel.com>
2023-12-04 16:15:57 +08:00
Jiaming Yuan 8fe1a2213c Cleanup code for distributed training. (#9805)
* Cleanup code for distributed training.

- Merge `GetNcclResult` into nccl stub.
- Split up utilities from the main dask module.
- Let Channel return `Result` to accommodate nccl channel.
- Remove old `use_label_encoder` parameter.
2023-11-25 09:10:56 +08:00
Jiaming Yuan 0715ab3c10 Use dlopen to load NCCL. (#9796)
This PR adds optional support for loading nccl with `dlopen` as an alternative of compile time linking. This is to address the size bloat issue with the PyPI binary release.
- Add CMake option to load `nccl` at runtime.
- Add an NCCL stub.

After this, `nccl` will be fetched from PyPI when using pip to install XGBoost, either by a user or by `pyproject.toml`. Others who want to link the nccl at compile time can continue to do so without any change.

At the moment, this is Linux only since we only support MNMG on Linux.
2023-11-22 19:27:31 +08:00
Jiaming Yuan fedd9674c8 Implement column sampler in CUDA. (#9785)
- CUDA implementation.
- Extract the broadcasting logic, we will need the context parameter after revamping the collective implementation.
- Some changes to the event loop for fixing a deadlock in CI.
- Move argsort into algorithms.cuh, add support for cuda stream.
2023-11-17 04:29:08 +08:00
Jiaming Yuan ada377c57e [coll] Reduce the scope of lock in the event loop. (#9784) 2023-11-15 14:16:19 +08:00
Jiaming Yuan 6fd4a30667 [coll] Increase timeout for allgather test. (#9777) 2023-11-09 05:26:40 +08:00
Jiaming Yuan 44099f585d [coll] Add C API for the tracker. (#9773) 2023-11-08 18:17:14 +08:00
Jiaming Yuan 06bdc15e9b [coll] Pass context to various functions. (#9772)
* [coll] Pass context to various functions.

In the future, the `Context` object would be required for collective operations, this PR
passes the context object to some required functions to prepare for swapping out the
implementation.
2023-11-08 09:54:05 +08:00
Jiaming Yuan 6c0a190f6d [coll] Add comm group. (#9759)
- Implement `CommGroup` for double dispatching.
- Small cleanup to tracker for handling abort.
2023-11-07 11:12:31 +08:00
Hui Liu 3af5dfd546 Merge branch 'master' 2023-11-02 09:05:31 -07:00
Jiaming Yuan 4da4e092b5 [coll] Improvements and fixes for tracker and allreduce. (#9745)
- Allow the tracker to wait.
- Fix allreduce type cast
- Return args from the federated tracker.
2023-11-02 04:06:46 +08:00
Hui Liu 123af45327 Merge branch 'master' 2023-10-31 15:59:31 -07:00
Jiaming Yuan bc995a4865 [coll] Add federated coll. (#9738)
- Define a new data type, the proto file is copied for now.
- Merge client and communicator into `FederatedColl`.
- Define CUDA variant.
- Migrate tests for CPU, add tests for CUDA.
2023-11-01 04:06:46 +08:00
Hui Liu 6ac806fefd Merge branch 'master' 2023-10-31 09:05:56 -07:00
Philip Hyunsu Cho 6b98305db4 [CI] Enable gmock in gtest (#9737) 2023-10-31 20:09:35 +08:00
Hui Liu 8fab17ae8f rm hip.h files 2023-10-30 21:20:28 -07:00
Hui Liu 02f5464fa6 enable coll and comm 2023-10-30 15:15:05 -07:00
Hui Liu d7f1235b7d Merge branch 'master' into sync-condition-2023Oct11 2023-10-30 13:19:33 -07:00
Jiaming Yuan 80390e6cb6 [coll] Federated comm. (#9732) 2023-10-31 02:39:55 +08:00
Jiaming Yuan 6755179e77 [coll] Add nccl. (#9726) 2023-10-28 16:33:58 +08:00
Hui Liu 4302200a33 Merge branch 'master' into sync-condition-2023Oct11 2023-10-27 10:09:37 -07:00
Dmitry RazdoburdinandDmitry Razdoburdin f41a08fda8 Add 'sycl' devices to the context (#9691)
Co-authored-by: Dmitry Razdoburdin <>
2023-10-26 22:17:56 +08:00
Hui Liu 3752b06550 Merge branch 'master' into sync-condition-2023Oct11 2023-10-24 10:46:38 -07:00
Jiaming Yuan 7a02facc9d Serialize expand entry for allgather. (#9702) 2023-10-24 14:33:28 +08:00
Hui Liu 65012b356c rm some hip 2023-10-23 17:13:02 -07:00