-
-
Notifications
You must be signed in to change notification settings - Fork 35
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
Upgrade to XGBoost 2.1.0 #167
Conversation
@conda-forge-admin, please rerender |
Hi! This is the friendly automated conda-forge-linting service. I just wanted to let you know that I linted all conda-recipes in your PR ( I do have some suggestions for making it better though... For recipe:
|
…nda-forge-pinning 2024.06.28.19.57.36
@conda-forge-admin , please restart CI |
Did the source layout change somehow? CI is noting that it had trouble finding the Not seeing this issue when building for the previous release |
The |
This directory doesn't exist in XGBoost 2.1.0.
Still seeing the same error on CI:
Are there other layout changes that occurred? |
Co-authored-by: jakirkham <jakirkham@gmail.com>
…nda-forge-pinning 2024.06.29.20.13.13
Is It possible that we skip R build on this release? The rewrite is still on going. |
recipe/bld.bat
Outdated
:: CCCL has different logic depending on the `__cplusplus` macro. | ||
:: However Visual Studio leaves `__cplusplus` as `199711L` by default. | ||
:: As a result code paths needing new C++ standard won't be run. | ||
:: This happens in spite of the fact that VS 2019 & 2022 default to C++14. | ||
:: To make sure `__cplusplus` matches, we pass an additional flag to VC. | ||
:: Ideally other tooling would do this for us, for now we do it ourselves. | ||
:: | ||
:: https://learn.microsoft.com/en-us/cpp/build/reference/zc-cplusplus?view=msvc-160 | ||
:: https://learn.microsoft.com/en-us/cpp/build/reference/zc-cplusplus?view=msvc-170 | ||
:: https://github.com/NVIDIA/cccl/blob/82a3ed0282893d6316abde04394f59a9a37a3747/libcudacxx/include/nv/target#L27-L30 | ||
:: https://github.com/NVIDIA/cutlass/issues/1403#issuecomment-2130383392 | ||
:: https://gitlab.kitware.com/cmake/cmake/-/issues/18837 | ||
set "CXXFLAGS=%CXXFLAGS% /Zc:__cplusplus" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok did a bit of a deep dive and have a theory of what is going on. Tried to explain this in the comment above
Basically some C++ detection logic in libraries (like CCCL) doesn't work correct with Visual Studio due to its default behavior. Have added a flag to Visual Studio to make it conform more to typical C++ compiler behavior (setting __cplusplus
correctly)
Based on similar experiences from Visual Studio users with CUTLASS ( NVIDIA/cutlass#1403 (comment) ), who saw a similar error to us and fixed it with this flag, am hopeful this will help in our case too
Ideally other tooling would handle this for us, but it appears CMake hasn't done this yet and Visual Studio continues to require users to add this flag if they want a correct __cplusplus
value. So for now adding to this build script. If this works, we may want to add this to XGBoost as well
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Have raised an upstream CCCL issue: NVIDIA/cccl#2072
Though after looking more closely at the code there, they are probably ok with their current approach. This would be a potential simplification for them
If the latest change doesn't work, then we can turn this into an issue and skip it |
Co-authored-by: jakirkham <jakirkham@gmail.com>
@conda-forge-admin , please re-render |
Hi! This is the friendly automated conda-forge-webservice. I tried to rerender for you, but it looks like there was nothing to do. This message was generated by GitHub actions workflow run https://github.com/conda-forge/xgboost-feedstock/actions/runs/10088820119. |
r_base: | ||
- '4.1' | ||
python: | ||
- 3.8.* *_cpython | ||
target_platform: | ||
- win-64 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is the Windows CUDA 11.8 file. It should be removed by the skip
, but it is not for some reason. Will need to take a closer look
Note part of the issue here is even if the build doesn't create any packages simply downloading the CTK can take over 20mins. So will want to make sure this job is properly removed so it isn't wasting CI cycles
Edit: Looks like the build is still running, which is also an issue. So the skip
needs a fix
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jakirkham I added back noarch: python
and re-rendered the recipe. It looks like our replacement for noarch: python
somehow broke the selector logic. Once I added back noarch: python
to meta.yaml
, the build for Windows CUDA 11.8 is finally removed.
Hi! This is the friendly automated conda-forge-linting service. I wanted to let you know that I linted all conda-recipes in your PR ( Here's what I've got... For recipe/meta.yaml:
|
recipe/meta.yaml
Outdated
noarch: python | ||
# Windows CUDA 11.8 fails due to a compilation error | ||
# xref: https://github.com/conda-forge/xgboost-feedstock/issues/173 | ||
skip: True # [win and cuda_compiler_version == "11.8"] | ||
{% if python is defined %} | ||
skip: {{ python.split(".")[:2] != min_python.split(".")[:2] }} | ||
{% endif %} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good intuition Hyunsu! 🙏
Think we can fix this up to handle both cases then and fix the linter
Though ok doing this as a follow up
Thanks Hyunsu Looks good. Please feel free to add the The bot will then merge when CI completes. If that doesn't happen for some reason, it will leave a comment letting us know why |
Hi! This is the friendly conda-forge automerge bot! I considered the following status checks when analyzing this PR:
Thus the PR was not passing and not merged. |
Thanks Hyunsu! 🙏 |
Hi @jakirkham @hcho3 is it normal to have this under a CUDA 12.5 environment:
I'm updating an environment that has XGBoost as a dependency. The above two lines are part of the mamba output, and it seems a bit weird to me to have mismatched CUDA versions. Second question, since all C++ includes are distributed, maybe it makes sense to distribute the CMake config files as well? |
@trivialfis this is a good question AIUI in terms of CUDA usage, only That said, it certainly is confusing to have So agree we should fix this. Though think the risk is relatively low. Started doing this in PR: #188 |
Also sorry for not answering the CMake question earlier Thank you for opening a new issue to discuss: #189 Hopefully the answers there are helpful |
Checklist
0
(if the version changed)conda-smithy
(Use the phrase@conda-forge-admin, please rerender
in a comment in this PR for automated rerendering)Fixes #172