Commit Graph
100 Commits
Author SHA1 Message Date
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
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
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
Jiaming Yuan 7a02facc9d Serialize expand entry for allgather. (#9702) 2023-10-24 14:33:28 +08:00
Jiaming Yuan 3ca06ac51e [doc] Mention data consistency for categorical features. (#9678) 2023-10-24 10:11:33 +08:00
Jiaming Yuan b771f58453 [coll] Define interface for bridging. (#9695)
* Define the basic interface that will shared by nccl, federated and native.
2023-10-20 16:20:48 +08:00
Jiaming Yuan 5d1bcde719 [coll] allgatherv. (#9688) 2023-10-19 03:13:50 +08:00
Jiaming Yuan 4c0e4422d0 [coll] allgather. (#9681) 2023-10-18 10:22:18 +08:00
Jiaming Yuan 48ac9b6cbe [coll] Allreduce. (#9679) 2023-10-17 13:57:14 +08:00
Jiaming Yuan 53049b16b8 [coll] Broadcast. (#9659) 2023-10-14 09:34:37 +08:00
Jiaming Yuan 81a059864a Skip check for pollhup. (#9661) 2023-10-13 14:35:14 +08:00
Jiaming Yuan cd8760cba3 [doc] Update document about running tests. [skip ci] (#9658) 2023-10-13 09:07:01 +08:00
Jiaming Yuan 946ae1c440 [coll] Implement a new tracker and a communicator. (#9650)
* [coll] Implement a new tracker and a communicator.

The new tracker and communicators communicate through the use of JSON documents. Along
with which, communicators are aware of each other.
2023-10-12 12:49:16 +08:00
Jiaming Yuan 084d89216c Add support for cgroupv2. (#9651) 2023-10-12 09:36:36 +08:00
Jiaming Yuan b14e535e78 [Coll] Implement get host address in libxgboost. (#9644)
- Port `xgboost.tracker.get_host_ip` in C++.
2023-10-10 10:01:14 +08:00
Jiaming Yuan 680d53db43 Extract JSON utils. (#9645) 2023-10-10 07:15:14 +08:00
Jiaming Yuan 4e5a7729c3 Fix lint errors. (#9634) 2023-10-09 19:04:31 +08:00
Jiaming Yuan 4d7a187cb0 Remove XGBoosterGetModelRaw. (#9617)
Deprecated in 1.6.
2023-09-29 02:29:33 +08:00
Jiaming Yuan d95be1c38d Small cleanup to jvm iter adapter. (#9616)
- Remove header dependency on c_api
- Remove remaining code for arrow.
2023-09-29 00:39:07 +08:00
Jiaming Yuan 417c3ba47e Workaround Apple clang issue. (#9615) 2023-09-28 22:51:47 +08:00
Jiaming Yuan 60526100e3 Support arrow through pandas ext types. (#9612)
- Use pandas extension type for pyarrow support.
- Additional support for QDM.
- Additional support for inplace_predict.
2023-09-28 17:00:16 +08:00
Jiaming Yuan c75a3bc0a9 [breaking] [jvm-packages] Remove rabit check point. (#9599)
- Add `numBoostedRound` to jvm packages
- Remove rabit checkpoint version.
- Change the starting version of training continuation in JVM [breaking].
- Redefine the checkpoint version policy in jvm package. [breaking]
- Rename the Python check point callback parameter. [breaking]
- Unifies the checkpoint policy between Python and JVM.
2023-09-26 18:06:34 +08:00
Jiaming Yuan 1167e6c554 Limit the number of threads for external memory. (#9605) 2023-09-24 00:30:28 +08:00
Jiaming Yuan cac2cd2e94 [R] Set number of threads in demos and tests. (#9591)
- Restrict the number of threads in IO.
- Specify the number of threads in demos and tests.
- Add helper scripts for checks.
2023-09-23 21:44:03 +08:00
Jiaming Yuan a90d204942 Use array interface for testing numpy arrays. (#9602) 2023-09-23 03:13:48 +08:00
Jiaming Yuan bbf5b9ee57 [dask] Move dask module into directory. (#9597) 2023-09-23 01:28:18 +08:00
Jiaming Yuan 0080c97075 Workaround poll on macos. (#9596) 2023-09-21 01:09:36 +08:00
Jiaming Yuan 8c676c889d Remove internal use of gpu_id. (#9568) 2023-09-20 23:29:51 +08:00
Jiaming Yuan 38ac52dd87 Build a simple event loop for collective. (#9593) 2023-09-20 02:09:07 +08:00
Jiaming YuanandHyunsu Cho 259d80c0cf News for 2.0. [skip ci] (#9484)
---------

Co-authored-by: Hyunsu Cho <chohyu01@cs.washington.edu>
2023-09-19 05:46:02 +08:00
Jiaming Yuan 0df1da2db4 fix rel script with relative path and end note version. [skip ci] (#9572) 2023-09-18 17:58:48 +08:00
Jiaming Yuan 300f9ace06 Fix default metric configuration. (#9575) 2023-09-13 13:05:47 -07:00
Jiaming Yuan b438d684d2 Utilities and cleanups for socket. (#9576)
- Use c++-17 nodiscard and nested ns.
- Add bind method to socket.
- Remove rabit parameters.
2023-09-14 01:41:42 +08:00
Jiaming Yuan 5abe50ff8c [R] Fix method name. (#9577) 2023-09-13 23:19:29 +08:00
Jiaming Yuan 9027686cac Support pandas 2.1.0. (#9557) 2023-09-11 17:44:51 +08:00
Jiaming Yuan 3b9e5909fb [CI] bump setup-r action version. (#9544) 2023-09-05 16:14:45 +08:00
Jiaming Yuan adea842c83 Fix inplace predict with fallback when base margin is used. (#9536)
- Copy meta info from proxy DMatrix.
- Use `std::call_once` to emit less warnings.
2023-09-05 01:04:24 +08:00
Jiaming Yuan ccfc90e4c6 [rabit] Improved connection handling. (#9531)
- Enable timeout.
- Report connection error from the system.
- Handle retry for both tracker connection and peer connection.
2023-08-30 13:00:04 +08:00
Jiaming Yuan ddf2e68821 Use the new DeviceOrd in the linalg module. (#9527) 2023-08-29 13:37:29 +08:00
Jiaming Yuan 942b957eef Fix GPU categorical split memory allocation. (#9529) 2023-08-29 10:06:03 +08:00
Jiaming Yuan be6a552956 [R] Support multi-class custom objective. (#9526) 2023-08-29 08:27:13 +08:00
Jiaming Yuan 90ef250ea1 [rabit] Drop support for MPI backend. (#9525)
- Add checks in cmake.
- Remove mpi related code.
2023-08-28 21:01:22 +08:00
Jiaming Yuan c3574d932f [R] Fix integer inputs with NA. (#9522) 2023-08-28 18:36:11 +08:00
Jiaming Yuan 1b87a1d8f8 [rabit] Small cleanup to tracker initialization. (#9524)
- Remove recover related code.
- Clean startup, no need to consider previously connected nodes.
2023-08-27 05:10:59 +08:00
Jiaming Yuan 209335b18c Remove the deprecated Python rabit module. (#9523) 2023-08-27 03:37:05 +08:00
Jiaming Yuan aa86bd5207 [dask] Filter models on worker. (#9518) 2023-08-25 20:23:47 +08:00
Jiaming Yuan 972730cde0 Use matrix for gradient. (#9508)
- Use the `linalg::Matrix` for storing gradients.
- New API for the custom objective.
- Custom objective for multi-class/multi-target is now required to return the correct shape.
- Custom objective for Python can accept arrays with any strides. (row-major, column-major)
2023-08-24 05:29:52 +08:00
Jiaming Yuan 8c10af45a0 Delay the check for vector leaf. (#9509) 2023-08-23 01:53:40 +08:00
Jiaming Yuan 3c09399f29 Fix device dispatch for linear updater. (#9507) 2023-08-23 00:17:35 +08:00
Jiaming Yuan 302bbdc958 mitigate flaky test with distributed l1 error. (#9499) 2023-08-22 13:46:35 +08:00
Jiaming Yuan 044fea1281 Drop support for loading remote files. (#9504) 2023-08-21 23:34:05 +08:00
Jiaming YuanandPhilip Hyunsu Cho e6cf7a1278 Deprecate the command line interface. (#9485)
---------

Co-authored-by: Philip Hyunsu Cho <chohyu01@cs.washington.edu>
2023-08-21 06:47:48 +08:00
Jiaming Yuan 38a3e1b858 Fix release script for RC [skip ci] (#9505) 2023-08-21 05:24:35 +08:00
Jiaming Yuan db87d481bc [R] Differentiate dev version with release version. (#9503)
Use 2.1.0.0 as development version, we will change it to 2.1.0.1 during release.
2023-08-20 02:58:58 +08:00
Jiaming Yuan 7f29a238e6 Return base score as intercept. (#9486) 2023-08-19 12:28:02 +08:00
Jiaming Yuan 58530b1bc4 Bump version to 2.1. (#9498) 2023-08-18 01:04:04 +08:00
Jiaming Yuan 5188e27513 Fix version parsing with rc release. (#9493) 2023-08-16 22:44:58 +08:00
Jiaming Yuan f380c10a93 Use hint for find nccl. (#9490) 2023-08-16 16:08:41 +08:00
Jiaming Yuan b2e93d2742 [doc] Quick note for the device parameter. [skip ci] (#9483) 2023-08-16 13:35:55 +08:00
Jiaming Yuan c061e3ae50 [jvm-packages] Bump rapids version. (#9482) 2023-08-15 16:26:42 -07:00
Jiaming Yuan 19b59938b7 Convert input to str for hypothesis note. (#9480) 2023-08-15 02:27:58 +08:00
Jiaming Yuan 05d7000096 Handle special characters in JSON model dump. (#9474) 2023-08-14 15:49:00 +08:00
Jiaming Yuan fd4335d0bf [doc] Document the current status of some features. (#9469) 2023-08-13 23:42:27 +08:00
Jiaming Yuan 801116c307 Test scikit-learn model IO with gblinear. (#9459) 2023-08-13 23:41:49 +08:00
Jiaming Yuan bb56183396 Normalize file system path. (#9463) 2023-08-11 21:26:46 +08:00
Jiaming Yuan bdc1a3c178 Fix pyspark parameter. (#9460)
- Don't pass the `use_gpu` parameter to the learner.
- Fix GPU approx with PySpark.
2023-08-11 19:07:50 +08:00
Jiaming Yuan 1caa93221a Use realloc for histogram cache and expose the cache limit. (#9455) 2023-08-10 14:05:27 +08:00
Jiaming Yuan a57371ef7c Fix links in R doc. (#9450) 2023-08-10 02:38:14 +08:00
Jiaming Yuan f05a23b41c Use weakref instead of id for DataIter cache. (#9445)
- Fix case where Python reuses id from freed objects.
- Small optimization to column matrix with QDM by using `realloc` instead of copying data.
2023-08-10 00:40:06 +08:00
Jiaming Yuan f05294a6f2 Fix clang warnings. (#9447)
- static function in header. (which is marked as unused due to translation unit
visibility).
- Implicit copy operator is deprecated.
- Unused lambda capture.
- Moving a temporary variable prevents copy elision.
2023-08-09 15:34:45 +08:00
Jiaming Yuan c1b2cff874 [CI] Check compiler warnings. (#9444) 2023-08-08 12:02:45 -07:00
Jiaming Yuan 97fd5207dd Use lambda function in ParallelFor2D. (#9441) 2023-08-08 14:04:46 +08:00
Jiaming Yuan 54029a59af Bound the size of the histogram cache. (#9440)
- A new histogram collection with a limit in size.
- Unify histogram building logic between hist, multi-hist, and approx.
2023-08-08 03:21:26 +08:00
Jiaming Yuan 1332ff787f Unify the code path between local and distributed training. (#9433)
This removes the need for a local histogram space during distributed training, which cuts the cache size by half.
2023-08-03 21:46:36 +08:00
Jiaming Yuan 7129988847 Accept only keyword arguments in data iterator. (#9431) 2023-08-03 12:44:16 +08:00
Jiaming Yuan e93a274823 Small cleanup for histogram routines. (#9427)
* Small cleanup for histogram routines.

- Extract hist train param from GPU hist.
- Make histogram const after construction.
- Unify parameter names.
2023-08-02 18:28:26 +08:00
Jiaming Yuan a9da2e244a [CI] Update github actions. (#9428) 2023-08-01 23:03:53 +08:00
Jiaming Yuan 912e341d57 Initial GPU support for the approx tree method. (#9414) 2023-07-31 15:50:28 +08:00
Jiaming Yuan 3a9996173e Revert "Switch to per-thread default stream (#9396)" (#9413)
This reverts commit f7f673b00c.
2023-07-24 12:03:28 -07:00
Jiaming Yuan a196443a07 Implement sketching with Hessian on GPU. (#9399)
- Prepare for implementing approx on GPU.
- Unify the code path between weighted and uniform sketching on DMatrix.
2023-07-24 15:43:03 +08:00
Jiaming YuanandPhilip Hyunsu Cho 851cba931e Define best_iteration only if early stopping is used. (#9403)
* Define `best_iteration` only if early stopping is used.

This is the behavior specified by the document but not honored in the actual code.

- Don't set the attributes if there's no early stopping.
- Clean up the code for callbacks, and replace assertions with proper exceptions.
- Assign the attributes when early stopping `save_best` is used.
- Turn the attributes into Python properties.

---------

Co-authored-by: Philip Hyunsu Cho <chohyu01@cs.washington.edu>
2023-07-24 12:43:35 +08:00
Jiaming Yuan 01e00efc53 [breaking] Remove support for single string feature info. (#9401)
- Input must be a sequence of strings.
- Improve validation error message.
2023-07-24 11:06:30 +08:00
Jiaming Yuan 275da176ba Document for device ordinal. (#9398)
- Rewrite GPU demos. notebook is converted to script to avoid committing additional png plots.
- Add GPU demos into the sphinx gallery.
- Add RMM demos into the sphinx gallery.
- Test for firing threads with different device ordinals.
2023-07-22 15:26:29 +08:00
Jiaming Yuan 22b0a55a04 Remove hist builder class. (#9400)
* Remove hist build class.

* Cleanup this stateless class.

* Add comment to thread block.
2023-07-22 10:43:12 +08:00
Jiaming Yuan 0de7c47495 Fix metric serialization. (#9405) 2023-07-22 08:39:21 +08:00
Jiaming Yuan dbd5309b55 Fix warning message for device. (#9402) 2023-07-20 23:30:04 +08:00
Jiaming Yuan 7a0ccfbb49 Add compute 90. (#9397) 2023-07-19 13:42:38 +08:00
Jiaming Yuan 0897477af0 Remove unmaintained jvm readme and dev scripts. (#9395) 2023-07-18 18:23:43 +08:00
Jiaming Yuan 6e18d3a290 [pyspark] Handle the device parameter in pyspark. (#9390)
- Handle the new `device` parameter in PySpark.
- Deprecate the old `use_gpu` parameter.
2023-07-18 08:47:03 +08:00
Jiaming Yuan f4fb2be101 [jvm-packages] Add the new device parameter. (#9385) 2023-07-17 18:40:39 +08:00
Jiaming Yuan 2caceb157d [jvm-packages] Reduce log verbosity for GPU tests. (#9389) 2023-07-17 13:25:46 +08:00
Jiaming Yuan b342ef951b Make feature validation immutable. (#9388) 2023-07-16 06:52:55 +08:00
Jiaming Yuan 0a07900b9f Fix integer overflow. (#9380) 2023-07-15 21:11:02 +08:00
Jiaming Yuan 16eb41936d Handle the new device parameter in dask and demos. (#9386)
* Handle the new `device` parameter in dask and demos.

- Check no ordinal is specified in the dask interface.
- Update demos.
- Update dask doc.
- Update the condition for QDM.
2023-07-15 19:11:20 +08:00
Jiaming Yuan 9da5050643 Turn warning messages into Python warnings. (#9387) 2023-07-15 07:46:43 +08:00
Jiaming Yuan 04aff3af8e Define the new device parameter. (#9362) 2023-07-13 19:30:25 +08:00
Jiaming Yuan 97ed944209 Unify the hist tree method for different devices. (#9363) 2023-07-11 10:04:39 +08:00
Jiaming Yuan 20c52f07d2 Support exporting cut values (#9356) 2023-07-08 15:32:41 +08:00
Jiaming Yuan 59787b23af Allow empty page in external memory. (#9361) 2023-07-08 09:24:35 +08:00