Jiaming Yuan
151882dd26
Initial support for multi-target tree. ( #8616 )
...
* Implement multi-target for hist.
- Add new hist tree builder.
- Move data fetchers for tests.
- Dispatch function calls in gbm base on the tree type.
2023-03-22 23:49:56 +08:00
Rong Ou
b240f055d3
Support vertical federated learning ( #8932 )
2023-03-22 14:25:26 +08:00
Jiaming Yuan
9b6cc0ed07
Refactor hist to prepare for multi-target builder. ( #8928 )
...
- Extract the builder from the updater class. We need a new builder for multi-target.
- Extract `UpdateTree`, it can be reused for different builders. Eventually, other tree
updaters can use it as well.
2023-03-17 17:21:04 +08:00
Jiaming Yuan
a093770f36
Partitioner for multi-target tree. ( #8922 )
2023-03-16 18:49:34 +08:00
Jiaming Yuan
26209a42a5
Define git attributes for renormalization. ( #8921 )
2023-03-16 02:43:11 +08:00
Jiaming Yuan
8685556af2
Implement hist evaluator for multi-target tree. ( #8908 )
2023-03-15 01:42:51 +08:00
Jiaming Yuan
9bade7203a
Remove public access to tree model param. ( #8902 )
...
* Make tree model param a private member.
* Number of features and targets are immutable after construction.
This is to reduce the number of places where we can run configuration.
2023-03-13 20:55:10 +08:00
Jiaming Yuan
5ba3509dd3
Define multi expand entry. ( #8895 )
2023-03-13 19:31:05 +08:00
Jiaming Yuan
6deaec8027
Pass obj info by reference instead of by value. ( #8889 )
...
- Pass obj info into tree updater as const pointer.
This way we don't have to initialize the learner model param before configuring gbm, hence
breaking up the dependency of configurations.
2023-03-11 01:38:28 +08:00
Jiaming Yuan
5feee8d4a9
Define core multi-target regression tree structure. ( #8884 )
...
- Define a new tree struct embedded in the `RegTree`.
- Provide dispatching functions in `RegTree`.
- Fix some c++-17 warnings about the use of nodiscard (currently we disable the warning on
the CI).
- Use uint32_t instead of size_t for `bst_target_t` as it has a defined size and can be used
as part of dmlc parameter.
- Hide the `Segment` struct inside the categorical split matrix.
2023-03-09 19:03:06 +08:00
Jiaming Yuan
f236640427
Support F order for the tensor type. ( #8872 )
...
- Add F order support for tensor and view.
- Use parameter pack for automatic type cast. (avoid excessive static cast for shape).
2023-03-08 03:27:49 +08:00
Jiaming Yuan
228a46e8ad
Support learning rate for zero-hessian objectives. ( #8866 )
2023-03-06 20:33:28 +08:00
Jiaming Yuan
4d665b3fb0
Restore clang tidy test. ( #8861 )
2023-03-03 13:47:04 -08:00
Rory Mitchell
69a50248b7
Fix scope of feature set pointers ( #8850 )
...
---------
Co-authored-by: Jiaming Yuan <jm.yuan@outlook.com>
2023-03-02 12:37:14 +08:00
Rong Ou
7cbaee9916
Support column split in approx tree method ( #8847 )
2023-03-02 03:59:07 +08:00
Rong Ou
d9688f93c7
Support column-split in row partitioner ( #8828 )
2023-02-26 04:43:35 +08:00
Rong Ou
a65ad0bd9c
Support column split in histogram builder ( #8811 )
2023-02-17 22:37:01 +08:00
Jiaming Yuan
282b1729da
Specify the number of threads for parallel sort. ( #8735 )
...
* Specify the number of threads for parallel sort.
- Pass context object into argsort.
- Replace macros with inline functions.
2023-02-16 00:20:19 +08:00
Jiaming Yuan
594371e35b
Fix CPP lint. ( #8807 )
2023-02-15 20:16:35 +08:00
Jiaming Yuan
70c9b885ef
Extract floating point rounding routines. ( #8771 )
2023-02-12 04:26:41 +08:00
Rory Mitchell
7214a45e83
Fix different number of features in gpu_hist evaluator. ( #8754 )
2023-02-06 23:15:16 +08:00
Jiaming Yuan
0e61ba57d6
Fix GPU L1 error. ( #8749 )
2023-02-04 03:02:00 +08:00
Jiaming Yuan
21a28f2cc5
Small refactor for hist builder. ( #8698 )
...
- Use span instead of vector as parameter. No perf change as the builder work on pointer.
- Use const pointer for reg tree.
2023-01-30 14:06:41 +08:00
Jiaming Yuan
e49e0998c0
Extract CPU sampling routines. ( #8697 )
2023-01-19 23:28:18 +08:00
Jiaming Yuan
cfa994d57f
Multi-target support for L1 error. ( #8652 )
...
- Add matrix support to the median function.
- Iterate through each target for quantile computation.
2023-01-11 05:51:14 +08:00
Jiaming Yuan
beefd28471
Split up SHAP from RegTree. ( #8612 )
...
* Split up SHAP from `RegTree`.
Simplify the tree interface.
2023-01-04 18:17:47 +08:00
Jiaming Yuan
8d545ab2a2
Implement fit stump. ( #8607 )
2023-01-04 04:14:51 +08:00
Jiaming Yuan
c6a8754c62
Define CUDA Context. ( #8604 )
...
We will transition to non-default and non-blocking CUDA stream.
2022-12-20 15:15:07 +08:00
Jiaming Yuan
43a647a4dd
Fix inference with categorical feature. ( #8591 )
2022-12-15 17:57:26 +08:00
Jiaming Yuan
3e26107a9c
Rename and extract Context. ( #8528 )
...
* Rename `GenericParameter` to `Context`.
* Rename header file to reflect the change.
* Rename all references.
2022-12-07 04:58:54 +08:00
Robert Maynard
16f96b6cfb
Work with newer thrust and libcudacxx ( #8454 )
...
* Thrust 1.17 removes the experimental/pinned_allocator.
When xgboost is brought into a large project it can
be compiled against Thrust 1.17+ which don't offer
this experimental allocator.
To ensure that going forward xgboost works in all environments we provide a xgboost namespaced version of
the pinned_allocator that previously was in Thrust.
2022-11-11 04:22:53 +08:00
Jiaming Yuan
a408c34558
Update JSON parser demo with categorical feature. ( #8401 )
...
- Parse categorical features in the Python example.
- Add tests.
- Update document.
2022-10-28 20:57:43 +08:00
Dmitry Razdoburdin
5bd849f1b5
Unify the partitioner for hist and approx.
...
Co-authored-by: dmitry.razdoburdin <drazdobu@jfldaal005.jf.intel.com>
Co-authored-by: jiamingy <jm.yuan@outlook.com>
2022-10-20 02:49:20 +08:00
Rory Mitchell
210915c985
Use integer gradients in gpu_hist split evaluation ( #8274 )
2022-10-11 12:16:27 +02:00
Rong Ou
668b8a0ea4
[Breaking] Switch from rabit to the collective communicator ( #8257 )
...
* Switch from rabit to the collective communicator
* fix size_t specialization
* really fix size_t
* try again
* add include
* more include
* fix lint errors
* remove rabit includes
* fix pylint error
* return dict from communicator context
* fix communicator shutdown
* fix dask test
* reset communicator mocklist
* fix distributed tests
* do not save device communicator
* fix jvm gpu tests
* add python test for federated communicator
* Update gputreeshap submodule
Co-authored-by: Hyunsu Philip Cho <chohyu01@cs.washington.edu>
2022-10-05 14:39:01 -08:00
Rory Mitchell
8f77677193
Use quantised gradients in gpu_hist histograms ( #8246 )
2022-09-26 17:35:35 +02:00
Dmitry Razdoburdin
eb7bbee2c9
Optional by-column histogram build. ( #8233 )
...
Co-authored-by: dmitry.razdoburdin <drazdobu@jfldaal005.jf.intel.com>
2022-09-22 05:16:13 +08:00
Jiaming Yuan
bdf265076d
Make QuantileDMatrix default to sklearn esitmators. ( #8220 )
2022-09-13 13:52:19 +08:00
Jiaming Yuan
b5eb36f1af
Add max_cat_threshold to GPU and handle missing cat values. ( #8212 )
2022-09-07 00:57:51 +08:00
Philip Hyunsu Cho
56395d120b
Work around MSVC behavior wrt constexpr capture ( #8211 )
...
* Work around MSVC behavior wrt constexpr capture
* Fix lint
2022-08-31 11:42:08 -08:00
Rory Mitchell
1703dc330f
Optimise histogram kernels ( #8118 )
2022-08-18 14:07:26 +02:00
Rory Mitchell
1be09848a7
Refactor split valuation kernel ( #8073 )
2022-07-21 15:41:50 +02:00
Jiaming Yuan
5156be0f49
Limit max_depth to 30 for GPU. ( #8098 )
2022-07-20 12:28:49 +08:00
Rong Ou
7a6b711eb8
Remove unused updater basemaker ( #8091 )
2022-07-19 15:41:27 +08:00
Jiaming Yuan
abaa593aa0
Fix compiler warnings. ( #8059 )
...
- Remove unused parameters.
- Avoid comparison of different signedness.
2022-07-14 05:29:56 +08:00
Rory Mitchell
0bdaca25ca
Use single precision in gain calculation, use pointers instead of span. ( #8051 )
2022-07-12 21:56:27 +02:00
Rory Mitchell
794cbaa60a
Fuse split evaluation kernels ( #8026 )
2022-07-05 10:24:31 +02:00
Rory Mitchell
bc4f802b17
Batch UpdatePosition using cudaMemcpy ( #7964 )
2022-06-30 17:52:40 +02:00
Jiaming Yuan
142a208a90
Fix compiler warnings. ( #8022 )
...
- Remove/fix unused parameters
- Remove deprecated code in rabit.
- Update dmlc-core.
2022-06-22 21:29:10 +08:00
Rong Ou
e5ec546da5
[Breaking] Remove rabit support for custom reductions and grow_local_histmaker updater ( #7992 )
2022-06-21 15:08:23 +08:00