Commit Graph
100 Commits
Author SHA1 Message Date
Jiaming Yuan 9b88495840 [multi] Implement weight feature importance. (#10700) 2024-08-22 02:06:47 +08:00
Jiaming Yuan 402e7837fb Fix potential race in feature constraint. (#10719) 2024-08-21 16:50:31 +08:00
Jiaming Yuan 508ac13243 Check cub errors. (#10721)
- Make sure cuda error returned by cub scan is caught.
- Avoid temporary buffer allocation in thrust device vector.
2024-08-21 02:50:26 +08:00
Jiaming Yuan fd365c147e [doc] Brief note about RMM SAM allocator. [skip ci] (#10712) 2024-08-17 04:21:39 +08:00
Jiaming Yuan ec3f327c20 Add managed memory allocator. (#10711) 2024-08-17 03:02:34 +08:00
Jiaming Yuan 8d7fe262d9 [EM] Enable access to the number of batches. (#10691)
- Expose `NumBatches` in `DMatrix`.
- Small cleanup for removing legacy CUDA stream and ~force CUDA context initialization~.
- Purge old external memory data generation code.
2024-08-17 02:59:45 +08:00
Jiaming Yuan 033a666900 [EM] Log the page size of ellpack. (#10713) 2024-08-17 01:35:47 +08:00
Jiaming Yuan abe65e3769 Reduce thread contention in column split histogram test. (#10708) 2024-08-17 01:00:32 +08:00
Jiaming Yuan 2258bc870d Add more tests and doc for QDM. (#10692) 2024-08-16 23:30:04 +08:00
Jiaming Yuan 582ea104b5 [EM] Enable prediction cache for GPU. (#10707)
- Use `UpdatePosition` for all nodes and skip `FinalizePosition` when external memory is used.
- Create `encode/decode` for node position, this is just as a refactor.
- Reuse code between update position and finalization.
2024-08-15 21:41:59 +08:00
Jiaming Yuan 2ecc85ffad [EM] Support ExtMemQdm in the GPU predictor. (#10694) 2024-08-13 12:21:11 +08:00
Jiaming Yuan 43704549a2 [coll] Reduce the amount of open files (socket). (#10693)
Reduce the chance of hitting `Failed to call `socket`: Too many open files`.
2024-08-13 05:23:49 +08:00
Jiaming Yuan d414fdf2e7 [EM] Add GPU version of the external memory QDM. (#10689) 2024-08-10 10:49:43 +08:00
Jiaming Yuan 7bccc1ea2c [EM] CPU implementation for external memory QDM. (#10682)
- A new DMatrix type.
- Extract common code into a new QDM base class.

Not yet working:
- Not exposed to the interface yet, will wait for the GPU implementation.
- ~No meta info yet, still working on the source.~
- Exporting data to CSR is not supported yet.
2024-08-09 09:38:02 +08:00
Jiaming Yuan cc3b56fc37 Cleanup GPU Hist tests. (#10677)
* Cleanup GPU Hist tests.

- Remove GPU Hist gradient sampling test. The same properties are tested in the gradient
  sampler test suite.
- Move basic histogram tests into the histogram test suite.
- Remove the header inclusion of the `updater_gpu_hist.cu` in tests.
2024-08-06 11:50:44 +08:00
Jiaming Yuan 6ccf116601 [dask] Reduce the flakiness of tests. (#10678) 2024-08-06 06:04:10 +08:00
Jiaming Yuan 3d8107adb8 Support doc link for the sklearn module. (#10287) 2024-08-06 02:35:32 +08:00
Jiaming Yuan a269055b2b [coll] Use loky for tests. (#10676)
This makes the tests easier to run and debug. In addition, they can now work on Windows as
well.
2024-08-03 07:33:42 +08:00
Jiaming Yuan a185b693dc Reduce warnings and flakiness in tests. (#10659)
- Fix warnings in tests.
- Try to reduce the flakiness of dask test.
2024-08-03 07:32:47 +08:00
Jiaming Yuan 2e7ba900ef [CI] Add timeout limit to JVM tests. (#10673) 2024-08-03 01:51:13 +08:00
Jiaming Yuan 574c20dc1d Enable CI build for the federated-secure branch. (#10671) 2024-08-02 22:13:17 +08:00
Jiaming YuanandPhilip Hyunsu Cho 77c844cef7 Reduce thread contention in column split tests. (#10658)
---------

Co-authored-by: Philip Hyunsu Cho <chohyu01@cs.washington.edu>
2024-08-01 18:36:46 +08:00
Jiaming YuanandHyunsu Cho fb77ed7603 [CI] Fix Python wheel workflow. (#10649)
* [CI] Fix Python wheel workflow.

* Use Python 3.10 for building wheels

---------

Co-authored-by: Hyunsu Cho <phcho@nvidia.com>
2024-07-30 10:13:47 -07:00
Jiaming Yuan 827d0e8edb [breaking] Bump Python requirement to 3.10. (#10434)
- Bump the Python requirement.
- Fix type hints.
- Use loky to avoid deadlock.
- Workaround cupy-numpy compatibility issue on Windows caused by the `safe` casting rule.
- Simplify the repartitioning logic to avoid dask errors.
2024-07-30 17:31:06 +08:00
Jiaming Yuan 449be7a402 Quick fix for clang-tidy error. (#10641) 2024-07-26 18:21:16 +08:00
Jiaming Yuan fcae6301ec [dask] Disable broadcast in the scatter call. (#10632) 2024-07-25 04:16:34 +08:00
Jiaming Yuan 485d90218c Catch exceptions during file read. (#10623) 2024-07-23 03:48:19 +08:00
Jiaming Yuan a19bbc9be5 Avoid caching allocator for large allocations. (#10582) 2024-07-23 03:48:03 +08:00
Jiaming Yuan b2cae34a8e Fix integer overflow. (#10615) 2024-07-23 02:13:15 +08:00
Jiaming Yuan 6d9fcb771e Move device histogram storage into histogram.cuh. (#10608) 2024-07-21 14:10:13 +08:00
Jiaming Yuan cb62f9e73b [EM] Prevent init with CUDA malloc resource. (#10606) 2024-07-21 05:08:29 +08:00
Jiaming Yuan 0846ad860c Optionally skip cupy on windows. (#10611) 2024-07-20 22:12:12 +08:00
Jiaming Yuan 344ddeb9ca Drop support for CUDA legacy stream. (#10607) 2024-07-20 06:14:56 +08:00
Jiaming Yuan 7ab93f3ce3 [CI] Fix test environment. (#10609)
* [CI] Fix test environment.

* Remove shell.

* Remove.

* Update Dockerfile.i386
2024-07-18 10:04:17 -07:00
Jiaming Yuan 292bb677e5 [EM] Support mmap backed ellpack. (#10602)
- Support resource view in ellpack.
- Define the CUDA version of MMAP resource.
- Define the CUDA version of malloc resource.
- Refactor cuda runtime API wrappers, and add memory access related wrappers.
- gather windows macros into a single header.
2024-07-18 08:20:21 +08:00
Jiaming Yuan e9fbce9791 Refactor DeviceUVector. (#10595)
Create a wrapper instead of using inheritance to avoid inconsistent interface of the class.
2024-07-18 03:33:01 +08:00
Jiaming Yuan a6a8a55ffa Merge approx tests. (#10583) 2024-07-16 19:03:48 +08:00
Jiaming Yuan 5a92ffe3ca Partial fix for CTK 12.5 (#10574) 2024-07-16 17:41:50 +08:00
Jiaming Yuan bbd308595a [jvm-packages] Bump rapids version. (#10588) 2024-07-15 20:21:25 +08:00
Jiaming Yuan 5fea9d24f2 Small cleanup for CMake scripts. (#10573)
- Remove rabit.
2024-07-12 05:18:23 +08:00
Jiaming Yuan 6c403187ec Fix column split race condition. (#10572) 2024-07-12 01:07:12 +08:00
Jiaming Yuan 1ca4bfd20e Avoid thrust vector initialization. (#10544)
* Avoid thrust vector initialization.

- Add a wrapper for rmm device uvector.
- Split up the `Resize` method for HDV.
2024-07-11 17:29:27 +08:00
Jiaming Yuan 89da9f9741 [fed] Split up federated test CMake file. (#10566)
- Collect all federated test files into the same directory.
- Independently list the files.
2024-07-11 13:09:18 +08:00
Jiaming Yuan 5f910cd4ff [EM] Handle base idx in GPU histogram. (#10549) 2024-07-11 03:26:30 +08:00
Jiaming Yuan 34b154c284 Avoid the use of size_t in the partitioner. (#10541)
- Avoid the use of size_t in the partitioner.
- Use `Span` instead of `Elem` where `node_id` is not needed.
- Remove the `const_cast`.
- Make sure the constness is not removed in the `Elem` by making it reference only.

size_t is implementation-defined, which causes issue when we want to pass pointer or span.
2024-07-11 00:43:08 +08:00
Jiaming Yuan baba3e9eb0 Fix empty partition. (#10559) 2024-07-10 13:01:47 +08:00
Jiaming Yuan 8e2b874b4c [doc] Add notes about RMM and device ordinal. [skip ci] (#10562)
- Remove the experimental tag, we have been running it for a long time now.
- Add notes about avoiding set CUDA device.
- Add link in parameter.
2024-07-10 13:00:57 +08:00
Jiaming Yuan 3ec74a1ba9 [doc] Add build_info to autodoc. [skip ci] (#10551) 2024-07-10 04:05:20 +08:00
Jiaming Yuan 2266db17d1 [R] Update roxygen. (#10556) 2024-07-08 17:02:46 +08:00
Jiaming Yuan 00264eb72b [EM] Basic distributed test for external memory. (#10492) 2024-07-06 01:15:20 +08:00
Jiaming Yuan 620b2b155a Cache GPU histogram kernel configuration. (#10538) 2024-07-04 15:38:59 +08:00
Jiaming Yuan cd1d108c7d [doc] Fix learning to rank tutorial. [skip ci] (#10539) 2024-07-03 22:52:26 +08:00
Jiaming Yuan 6243e7c43d [doc] Update link to release notes. [skip ci] (#10533) 2024-07-03 12:16:53 +08:00
Jiaming Yuan 628411a654 Enhance the threadpool implementation. (#10531)
- Accept an initialization function.
- Support void return tasks.
2024-07-03 12:13:27 +08:00
Jiaming Yuan 9cb4c938da [EM] Move prefetch in reset into the end of the iteration. (#10529) 2024-07-03 03:48:18 +08:00
Jiaming Yuan e537b0969f Fix boolean array for arrow-backed DF. (#10527) 2024-07-02 17:02:54 +08:00
Jiaming Yuan d33043a348 [coll] Allow using local host for testing. (#10526)
- Don't try to retrieve the IP address if a host is specified.
- Fix compiler deprecation warning.
2024-07-02 15:34:38 +08:00
Jiaming Yuan a39fef2c67 [fed] Fixes for the encrypted GRPC backend. (#10503) 2024-07-02 15:15:12 +08:00
Jiaming Yuan 5f0c1e902b Small cleanup for error message. (#10502)
- The `Fail` function can handle file location automatically.
- Report concatenated error for connection poll.
- Typos.
2024-07-02 13:36:41 +08:00
Jiaming Yuan e8a962575a [EM] Allow staging ellpack on host for GPU external memory. (#10488)
- New parameter `on_host`.
- Abstract format creation and stream creation into policy classes.
2024-06-28 04:42:18 +08:00
Jiaming Yuan 824fba783e Remove support for deprecated format in Python. (#10490) 2024-06-27 11:31:53 +08:00
Jiaming Yuan 2d88d17008 Remove deprecated DeviceQuantileDMatrix. (#10491) 2024-06-27 11:30:51 +08:00
Jiaming Yuan 26eb68859f Consistently report error in tests. (#10453) 2024-06-21 14:35:22 +08:00
Jiaming Yuan b38c7fe2ce 2.1.0 release news.(#10378) 2024-06-21 14:34:53 +08:00
Jiaming Yuan 2b400b18d5 Small cleanup for rowset collection. (#10401) 2024-06-19 18:06:23 +08:00
Jiaming Yuan e5f1720656 [EM] Avoid writing cut matrix to cache. (#10444) 2024-06-19 18:03:38 +08:00
Jiaming Yuan 63418d2f35 Link CMAKE_DL_LIBS when dlopen is used. (#10447) 2024-06-19 15:06:58 +08:00
b9e5229ff2 Update rapids (#10435)
* [CI] Update RAPIDS to latest stable

* RMM.

---------

Co-authored-by: hcho3 <2532981+hcho3@users.noreply.github.com>
Co-authored-by: Philip Hyunsu Cho <chohyu01@cs.washington.edu>
2024-06-18 05:01:57 +08:00
Jiaming Yuan b4cc350ec5 Fix categorical data with external memory. (#10433) 2024-06-18 04:34:54 +08:00
Jiaming Yuan a8ddbac163 [doc] Fixes for external memory document. (#10426) 2024-06-18 03:10:49 +08:00
Jiaming YuanandPhilip Hyunsu Cho 320e7c2041 [CI] Enable CI binary build for the vertical federated learning branch. (#10417)
Co-authored-by: Philip Hyunsu Cho <chohyu01@cs.washington.edu>
2024-06-17 17:01:04 +08:00
Jiaming YuanandPhilip Hyunsu Cho 6c83c8c2ef Allow blocking launch of federated tracker. (#10414)
---------

Co-authored-by: Philip Hyunsu Cho <chohyu01@cs.washington.edu>
2024-06-16 01:43:53 +08:00
Jiaming YuanandPhilip Hyunsu Cho 49e25cfb36 Allow unaligned pointer if the array is empty. (#10418)
Co-authored-by: Philip Hyunsu Cho <chohyu01@cs.washington.edu>
2024-06-15 19:10:21 +08:00
Jiaming YuanandPhilip Hyunsu Cho bbff74d2ff [dask] Workaround the tokenizer by changing the scatter function. (#10419)
---------

Co-authored-by: Philip Hyunsu Cho <chohyu01@cs.washington.edu>
2024-06-15 19:10:00 +08:00
Jiaming Yuan c9f5fcaf21 [col] Small cleanup to federated comm. (#10397) 2024-06-07 21:19:04 +08:00
Jiaming Yuan 9f6608d6aa Add python 3.12 classifier. (#10381) 2024-06-04 18:02:59 +08:00
Jiaming Yuan 43a57c4a85 Bump development version to 2.2. (#10376) 2024-06-04 12:59:16 +08:00
Jiaming Yuan 979e392deb Fix warnings in GPU dask tests. (#10358) 2024-06-04 12:58:58 +08:00
Jiaming Yuan 0808e50ae8 Sync stream in ellpack format. (#10374) 2024-06-04 12:58:26 +08:00
Jiaming Yuan 7f3e92d71a Bump the cache github action to 4.0.2. (#10377) 2024-06-03 16:52:21 +08:00
Jiaming Yuan 4f48647932 Fix typo. (#10353) 2024-06-02 02:07:55 +08:00
Jiaming Yuan 92cba25fe2 Remove reference to R win64 MSVC build. (#10355) 2024-06-02 02:06:35 +08:00
Jiaming Yuan d2d01d977a Remove unnecessary fetch operations in external memory. (#10342) 2024-05-31 13:16:40 +08:00
Jiaming Yuan c2e3d4f3cd [dask] Update dask demo for using the new dask backend. (#10347) 2024-05-31 08:03:20 +08:00
Jiaming Yuan e6eefea5e2 [coll] Move the rabit poll helper. (#10349) 2024-05-31 08:02:21 +08:00
Jiaming Yuan 2de67f0050 [coll] Prevent race during error check. (#10319) 2024-05-28 15:43:16 -07:00
Jiaming YuanandPhilip Hyunsu Cho 7354955cbb Test federated plugin using GitHub action. (#10336)
Co-authored-by: Philip Hyunsu Cho <chohyu01@cs.washington.edu>
2024-05-29 02:28:14 +08:00
Jiaming Yuan 5627af6b21 [coll] Increase timeout limit. (#10332) 2024-05-28 10:20:49 +08:00
Jiaming Yuan 15eb553c1f [doc] Add a coarse map for XGBoost features to assist development. [skip ci] (#10310) 2024-05-23 14:25:15 +08:00
Jiaming Yuan 966dc81788 [coll] Keep the tracker alive during initialization error. (#10306) 2024-05-23 11:13:59 +08:00
Jiaming Yuan d5fcbee44b Add timeout for distributed tests. (#10315) 2024-05-23 11:11:49 +08:00
Jiaming Yuan 1b25d23583 [JVM-packages] Prevent memory leak. (#10307) 2024-05-22 13:47:59 +08:00
Jiaming Yuan 7a54ca41c9 [CI] Bump checkout action version. (#10305) 2024-05-21 16:38:20 +08:00
Jiaming Yuan a5a58102e5 Revamp the rabit implementation. (#10112)
This PR replaces the original RABIT implementation with a new one, which has already been partially merged into XGBoost. The new one features:
- Federated learning for both CPU and GPU.
- NCCL.
- More data types.
- A unified interface for all the underlying implementations.
- Improved timeout handling for both tracker and workers.
- Exhausted tests with metrics (fixed a couple of bugs along the way).
- A reusable tracker for Python and JVM packages.
2024-05-20 11:56:23 +08:00
Jiaming Yuan ba9b4cb1ee Fix pylint. (#10296) 2024-05-17 13:28:39 +08:00
Jiaming Yuan 835e59e538 Use a thread pool for external memory. (#10288) 2024-05-16 19:32:12 +08:00
Jiaming Yuan ca1d04bcb7 Release data in cache. (#10286) 2024-05-14 14:20:19 +08:00
Jiaming Yuan f1f69ff10e [CI] Fixes for using the latest modin. (#10285) 2024-05-14 12:13:35 +08:00
Jiaming Yuan 871fabeee3 [doc][dask] Update notes about k8s. (#10271) 2024-05-14 04:21:02 +08:00
Jiaming YuanandPhilip Hyunsu Cho d81e319e78 Fixes for the latest pandas. (#10266)
Co-authored-by: Philip Hyunsu Cho <chohyu01@cs.washington.edu>
2024-05-12 11:15:46 +08:00