Jiaming Yuan
3f64b4fde3
[coll] Add global functions. ( #10203 )
2024-04-19 03:17:23 +08:00
Jiaming Yuan
53fc17578f
Use std::uint64_t for row index. ( #10120 )
...
- Use std::uint64_t instead of size_t to avoid implementation-defined type.
- Rename to bst_idx_t, to account for other types of indexing.
- Small cleanup to the base header.
2024-03-15 18:43:49 +08:00
Jiaming Yuan
2c13f90384
Support graphviz plot for multi-target tree. ( #10093 )
2024-03-09 05:35:25 +08:00
Jiaming Yuan
3941b31ade
Disable column sample by node for the exact tree method. ( #10083 )
2024-03-01 14:16:10 +08:00
Jiaming Yuan
5ac233280e
Require context in aggregators. ( #10075 )
2024-02-28 03:12:42 +08:00
Jiaming Yuan
0ce4372bd4
Use UBJSON for serializing splits for vertical data split. ( #10059 )
2024-02-25 00:18:23 +08:00
Philip Hyunsu Cho
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
Jiaming Yuan
cacb4b1fdd
Fix gain calculation in multi-target tree. ( #9978 )
2024-01-17 13:18:44 +08:00
Jiaming Yuan
c03a4d5088
Check support status for categorical features. ( #9946 )
2024-01-04 16:51:33 +08:00
Jiaming Yuan
621348abb3
Fix multi-output with alternating strategies. ( #9933 )
...
---------
Co-authored-by: Philip Hyunsu Cho <chohyu01@cs.washington.edu>
2024-01-04 16:41:13 +08:00
Jiaming Yuan
a7226c0222
Fix feature names with special characters. ( #9923 )
2023-12-28 22:45:13 +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
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
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
Dmitry Razdoburdin
ea9f09716b
Reorder if-else statements to allow using of cpu branches for sycl-devices ( #9682 )
2023-10-18 10:55:33 +08:00
Rong Ou
e164d51c43
Improve allgather functions ( #9649 )
2023-10-12 23:31:43 +08:00
Jiaming Yuan
8c676c889d
Remove internal use of gpu_id. ( #9568 )
2023-09-20 23:29:51 +08:00
Rong Ou
c928dd4ff5
Support vertical federated learning with gpu_hist ( #9539 )
2023-09-03 11:37:11 +08:00
Rong Ou
9bab06cbca
Support column split in gpu hist updater ( #9384 )
2023-08-31 18:09:35 +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
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
Rong Ou
6103dca0bb
Support column split in GPU evaluate splits ( #9511 )
2023-08-23 16:33:43 +08:00
Jiaming Yuan
05d7000096
Handle special characters in JSON model dump. ( #9474 )
2023-08-14 15:49:00 +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
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
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
912e341d57
Initial GPU support for the approx tree method. ( #9414 )
2023-07-31 15:50:28 +08:00
Rong Ou
7579905e18
Retry switching to per-thread default stream ( #9416 )
2023-07-26 07:09:12 +08:00
Jiaming Yuan
3a9996173e
Revert "Switch to per-thread default stream ( #9396 )" ( #9413 )
...
This reverts commit f7f673b00c15458fb4dd74a2a0d2ba80369c5faf.
2023-07-24 12:03:28 -07: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
Rong Ou
f7f673b00c
Switch to per-thread default stream ( #9396 )
2023-07-20 08:21:00 +08:00
Jiaming Yuan
20c52f07d2
Support exporting cut values ( #9356 )
2023-07-08 15:32:41 +08:00
Jiaming Yuan
39390cc2ee
[breaking] Remove the predictor param, allow fallback to prediction using DMatrix. ( #9129 )
...
- A `DeviceOrd` struct is implemented to indicate the device. It will eventually replace the `gpu_id` parameter.
- The `predictor` parameter is removed.
- Fallback to `DMatrix` when `inplace_predict` is not available.
- The heuristic for choosing a predictor is only used during training.
2023-07-03 19:23:54 +08:00
Jiaming Yuan
54da4b3185
Cleanup to prepare for using mmap pointer in external memory. ( #9317 )
...
- Update SparseDMatrix comment.
- Use a pointer in the bitfield. We will replace the `std::vector<bool>` in `ColumnMatrix` with bitfield.
- Clean up the page source. The timer is removed as it's inaccurate once we swap the mmap pointer into the page.
2023-06-22 06:43:11 +08:00
Jiaming Yuan
ee6809e642
Use mmap for external memory. ( #9282 )
...
- Have basic infrastructure for mmap.
- Release file write handle.
2023-06-19 18:52:55 +08:00
Rong Ou
e70810be8a
Refactor device communicator to make allreduce more flexible ( #9295 )
2023-06-14 03:53:03 +08:00
ZHAOKAI WANG
2b76061659
remove redundant method in expand_entry ( #9283 )
2023-06-10 05:18:21 +08:00
Jiaming Yuan
ea0deeca68
Disable dense optimization in hist for distributed training. ( #9272 )
2023-06-10 02:31:34 +08:00
Jiaming Yuan
1fcc26a6f8
Set ndcg to default for LTR. ( #8822 )
...
- Add document.
- Add tests.
- Use `ndcg` with `topk` as default.
2023-06-09 23:31:33 +08:00
ZHAOKAI WANG
fa2ab1f021
TreeRefresher note word spelling modification ( #9223 )
2023-05-31 20:27:27 +08:00
Jiaming Yuan
03bc6e6427
Remove unused variables. ( #9210 )
...
- remove used variables.
- Remove signed comparison warnings.
2023-05-28 05:24:15 +08:00
Rong Ou
5b69534b43
Support column split in multi-target hist ( #9171 )
2023-05-26 16:56:05 +08:00
Rong Ou
603f8ce2fa
Support hist in the partition builder under column split ( #9120 )
2023-05-11 05:24:29 +08:00
Jiaming Yuan
55968ed3fa
Fix monotone constraints on CPU. ( #9122 )
2023-05-06 01:07:54 +08:00
Jiaming Yuan
08ce495b5d
Use Booster context in DMatrix. ( #8896 )
...
- Pass context from booster to DMatrix.
- Use context instead of integer for `n_threads`.
- Check the consistency configuration for `max_bin`.
- Test for all combinations of initialization options.
2023-04-28 21:47:14 +08:00
Jiaming Yuan
0e470ef606
Optimize prediction with QuantileDMatrix. ( #9096 )
...
- Reduce overhead in `FVecDrop`.
- Reduce overhead caused by `HostVector()` calls.
2023-04-28 00:51:41 +08:00
Rong Ou
8dbe0510de
More collective aggregators ( #9060 )
2023-04-22 03:32:05 +08:00