-
-
Notifications
You must be signed in to change notification settings - Fork 8.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[RFC] 1.2.0 Release #5970
Comments
Could you please add some docs around how to do each of the listed step as XGBoost's maintainer? (so any XGBoost specific issue, like pypi account, approval etc). |
@trivialfis Here are the steps for Python package:
|
Got it. Thanks. |
I spent a fair amount of effort to automate building release binaries. What's not automated is to upload them to distribution channels (PyPI, CRAN, Maven Central etc). |
TODO: Investigate whether GPU algorithm can be enabled in the JAR artifact. If the JAR file contains CUDA code, will it work on a cluster without a GPU? I will need to test and find out. |
That depends on how the library loading is done. If the GPU binary tries to dynamically load CUDA libraries then you'll get an UnsatisfiedLinkError out of the native loader. You could probe for the presence of the CUDA libraries and then conditionally load the GPU binary, otherwise load the CPU one, but that's tricky (potentially it could catch the UnsatisfiedLinkError, log it, and then say falling back to CPU, but it could fail with UnsatisfiedLinkError for other reasons e.g. lack of OpenMP, which would be confusing). This will blow up the JAR size as you'd need two copies of everything. In most Java projects the CPU and GPU artifacts are different (e.g. https://search.maven.org/search?q=g:com.microsoft.onnxruntime), but this can cause issues in downstream builds as at some point a developer has to choose whether they want a CPU or GPU binary. Fortunately in production you can just drop the GPU one higher up the classpath and it'll load just fine. |
There's a stub library of CUDA linked into XGBoost so link time error should not happen. But I agree that we should have better tests. |
@Craigacp The GPU algorithm uses NCCL to perform allreduce, and including the NCCL library in the JAR file increases its size to 150 MB. Does Maven Central accept this large artifact? cc @CodingCat @sperlingxx |
It does. For example libtensorflow jni GPU for 1.15 is 355 MB. |
@Craigacp @wbo4958 Here are the JAR files I built with GPU algorithm enabled:
To install:
|
The xgboost4j_2.12-1.2.0-RC1.jar loads just fine on Oracle Linux 7 (roughly equivalent to RHEL/CentOS 7). The error message when you try to run on GPU if there are only CPUs could probably do with prettying up a little though:
|
@Craigacp Did you set |
@hcho3 yes, I intentionally set it to use |
@Craigacp No, you have to explicitly opt into |
Thanks, we can maybe clarify in the message about GPU being unavailable. |
@hcho3 All blocking PRs are merged into master branch. I will back port them today. |
Back port PR: #6002 |
Merged. |
Great! I'm preparing RC2 now. |
RC2 is now up. I've also uploaded JVM packages |
Maybe change the phrasing to "CUDA 10.0 or later is required"? Same with python version? |
@JohnZed Fixed. |
@dmlc/xgboost-committer XGBoost 1.2.0 has been now released to PyPI and our Maven repository. @hetong007 Can we submit 1.2.0 to CRAN? Let's submit after Aug 24, when CRAN maintainers return from vacation. @CodingCat We should make 1.1.1 and 1.2.0 available on Maven Central. Is there anything I can help? |
1.2.0 is now on CRAN. |
Roadmap: #5734
We are about to release version 1.2.0 of XGBoost. In the next two weeks, we invite everyone to try out the release candidate (RC).
Feedback period: until the end of August 21, 2020. No new feature will be added to the release; only critical bug fixes will be added.
@dmlc/xgboost-committer
Now available
Rendered R manual
Show instructions (Maven/SBT)
Maven
SBT
Starting from 1.2.0, XGBoost4J-Spark supports training with NVIDIA GPUs. To enable this capability, download artifacts suffixed with
-gpu
, as follows:Show instructions (Maven/SBT)
Maven
SBT
Deprecation notices
TODOs
PRs that are back ported to release branch.
The text was updated successfully, but these errors were encountered: