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
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 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
bc267dd729
Use ptr from mmap for GHistIndexMatrix and ColumnMatrix. ( #9315 )
...
* Use ptr from mmap for `GHistIndexMatrix` and `ColumnMatrix`.
- Define a resource for holding various types of memory pointers.
- Define ref vector for holding resources.
- Swap the underlying resources for GHist and ColumnM.
- Add documentation for current status.
- s390x support is removed. It should work if you can compile XGBoost, all the old workaround code does is to get GCC to compile.
2023-06-27 19:05:46 +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
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
8685556af2
Implement hist evaluator for multi-target tree. ( #8908 )
2023-03-15 01:42:51 +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
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
Jiaming Yuan
55cf24cc32
Obtain CSR matrix from DMatrix. ( #8269 )
2022-09-29 20:41:43 +08: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
441ffc017a
Copy data from Ellpack to GHist. ( #8215 )
2022-09-06 23:05:49 +08:00
Jiaming Yuan
f0c1b842bf
Implement sketching with adapter. ( #8019 )
2022-06-23 00:03:02 +08:00
Jiaming Yuan
1a33b50a0d
Fix compiler warnings. ( #7974 )
...
- Remove unused parameters. There are still many warnings that are not yet
addressed. Currently, the warnings in dmlc-core dominate the error log.
- Remove `distributed` parameter from metric.
- Fixes some warnings about signed comparison.
2022-06-06 22:56:25 +08:00
Jiaming Yuan
18a38f7ca0
Refactor for GHistIndex. ( #7923 )
...
* Pass sparse page as adapter, which prepares for quantile dmatrix.
* Remove old external memory code like `rbegin` and extra `Init` function.
* Simplify type dispatch.
2022-05-23 23:04:53 +08:00
Jiaming Yuan
19775ffe15
Use adapter to initialize column matrix. ( #7912 )
2022-05-18 16:15:12 +08:00
Jiaming Yuan
4fcfd9c96e
Fix and cleanup for column matrix. ( #7901 )
...
* Fix missed type dispatching for dense columns with missing values.
* Code cleanup to reduce special cases.
* Reduce memory usage.
2022-05-16 21:11:50 +08:00
Jiaming Yuan
1b6538b4e5
[breaking] Drop single precision histogram ( #7892 )
...
Co-authored-by: Philip Hyunsu Cho <chohyu01@cs.washington.edu>
2022-05-13 19:54:55 +08:00
Jiaming Yuan
288c52596c
Define bin type. ( #7850 )
2022-04-29 19:41:39 +08:00
Jiaming Yuan
6762c45494
Small cleanup to gradient index and hist. ( #7668 )
...
* Code comments.
* Const accessor to index.
* Remove some weird variables in the `Index` class.
* Simplify the `MemStackAllocator`.
2022-02-23 11:37:21 +08:00
Jiaming Yuan
0d0abe1845
Support optimal partitioning for GPU hist. ( #7652 )
...
* Implement `MaxCategory` in quantile.
* Implement partition-based split for GPU evaluation. Currently, it's based on the existing evaluation function.
* Extract an evaluator from GPU Hist to store the needed states.
* Added some CUDA stream/event utilities.
* Update document with references.
* Fixed a bug in approx evaluator where the number of data points is less than the number of categories.
2022-02-15 03:03:12 +08:00
Jiaming Yuan
5817840858
Remove omp_get_max_threads in data. ( #7588 )
2022-01-24 02:44:07 +08:00
Jiaming Yuan
9ab73f737e
Extract Sketch Entry from hist maker. ( #7503 )
...
* Extract Sketch Entry from hist maker.
* Add a new sketch container for sorted inputs.
* Optimize bin search.
2021-12-18 05:36:56 +08:00
Jiaming Yuan
176110a22d
Support external memory in CPU histogram building. ( #7372 )
2021-11-23 01:13:33 +08:00
Jiaming Yuan
ccdabe4512
Support building gradient index with cat data. ( #7371 )
2021-11-03 22:37:37 +08:00
Jiaming Yuan
31c1e13f90
Categorical data support in CPU sketching. ( #7221 )
2021-09-17 04:37:09 +08:00
Jiaming Yuan
3515931305
Initial support for external memory in gradient index. ( #7183 )
...
* Add hessian to batch param in preparation of new approx impl.
* Extract a push method for gradient index matrix.
* Use span instead of vector ref for hessian in sketching.
* Create a binary format for gradient index.
2021-09-13 12:40:56 +08:00
Jiaming Yuan
149f209af6
Extract histogram builder from CPU Hist. ( #7152 )
...
* Extract the CPU histogram builder.
* Fix tests.
* Reduce number of histograms being built.
2021-08-09 21:15:21 +08:00
Jiaming Yuan
77f6cf2d13
Support hessian in host sketch container. ( #7081 )
...
Prepare for migrating approx onto hist's codebase.
2021-07-08 16:33:58 +08:00
Jiaming Yuan
1cd20efe68
Move GHistIndex into DMatrix. ( #7064 )
2021-07-01 00:44:49 +08:00
ShvetsKS
2567404ab6
Simplify sparse and dense CPU hist kernels ( #7029 )
...
* Simplify sparse and dense kernels
* Extract row partitioner.
Co-authored-by: Kirill Shvets <kirill.shvets@intel.com>
2021-06-11 18:26:30 +08:00
TP Boudreau
bd2ca543c4
Fix BinarySearchBin() argument types ( #7026 )
2021-06-08 19:05:46 +08:00
ShvetsKS
5cdaac00c1
Remove feature grouping ( #7018 )
...
Co-authored-by: Kirill Shvets <kirill.shvets@intel.com>
2021-06-03 04:35:26 +08:00
Andrew Ziem
3e7e426b36
Fix spelling in documents ( #6948 )
...
* Update roxygen2 doc.
Co-authored-by: fis <jm.yuan@outlook.com>
2021-05-11 20:44:36 +08:00
Louis Desreumaux
9b530e5697
Improve OpenMP exception handling ( #6680 )
2021-02-25 13:56:16 +08:00
ShvetsKS
956beead70
Thread local memory allocation for BuildHist ( #6358 )
...
* thread mem locality
* fix apply
* cleanup
* fix lint
* fix tests
* simple try
* fix
* fix
* apply comments
* fix comments
* fix
* apply simple comment
Co-authored-by: ShvetsKS <kirill.shvets@intel.com>
2020-11-25 17:50:12 +03:00
Igor Moura
d1254808d5
Clean up C++ warnings ( #6213 )
2020-10-19 23:02:33 +08:00
Jiaming Yuan
93e9af43bb
Unify set index data. ( #6062 )
2020-09-08 11:38:41 +08:00
Jiaming Yuan
2fcc4f2886
Unify evaluation functions. ( #6037 )
2020-08-26 14:23:27 +08:00
Jiaming Yuan
80c8547147
Make binary bin search reusable. ( #6058 )
...
* Move binary search row to hist util.
* Remove dead code.
2020-08-26 05:05:11 +08:00
Jiaming Yuan
29b7fea572
Optimize cpu sketch allreduce for sparse data. ( #6009 )
...
* Bypass RABIT serialization reducer and use custom allgather based merging.
2020-08-19 10:03:45 +08:00
Jiaming Yuan
ee70a2380b
Unify CPU hist sketching ( #5880 )
2020-08-12 01:33:06 +08:00
Jiaming Yuan
dd445af56e
Cleanup on device sketch. ( #5874 )
...
* Remove old functions.
* Merge weighted and un-weighted into a common interface.
2020-07-14 10:15:54 +08:00
Jiaming Yuan
048d969be4
Implement GK sketching on GPU. ( #5846 )
...
* Implement GK sketching on GPU.
* Strong tests on quantile building.
* Handle sparse dataset by binary searching the column index.
* Hypothesis test on dask.
2020-07-07 12:16:21 +08:00
Jiaming Yuan
3028fa6b42
Implement weighted sketching for adapter. ( #5760 )
...
* Bounded memory tests.
* Fixed memory estimation.
2020-06-12 06:20:39 +08:00
Philip Hyunsu Cho
1d22a9be1c
Revert "Reorder includes. ( #5749 )" ( #5771 )
...
This reverts commit d3a0efbf162f3dceaaf684109e1178c150b32de3.
2020-06-09 10:29:28 -07:00
Jiaming Yuan
d3a0efbf16
Reorder includes. ( #5749 )
...
* Reorder includes.
* R.
2020-06-03 17:30:47 +12:00
ShvetsKS
cd3d14ad0e
Add float32 histogram ( #5624 )
...
* new single_precision_histogram param was added.
Co-authored-by: SHVETS, KIRILL <kirill.shvets@intel.com>
Co-authored-by: fis <jm.yuan@outlook.com>
2020-06-03 11:24:53 +08:00
Jiaming Yuan
e533908922
Expose device sketching in header. ( #5747 )
2020-06-02 13:02:53 +08:00