-
Notifications
You must be signed in to change notification settings - Fork 201
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
[FEA][DISCUSSION] Require C++17 #736
Comments
I'm okay with it, since RMM is strictly an optional dependency of XGBoost. Users who have an older compiler (GCC 5.x) will be able to build XGBoost without RMM support. |
cc @shwina @jakirkham for Cython perspective |
Not sure if this will affect any of the public APIs that e.g., Python interfaces with. If so, this could potentially be a problem for Cython. Cython does not support many (any?) C++17-specific features. That being said, in many cases, it is possible to write Cython definitions for missingC++17 types/features quite easily. We can explore that on a case-by-case basis (and of course, upstream to Cython if possible). |
Agree with Ashwin IIUC this would also be helpful for solving some issues like |
One thing that comes to mind for public APIs would be moving from |
|
Correct using C++17 Also, I assume supporting C++17 will make it easier to depend on the |
@shwina Does Cython support compiling with the |
Looks like there is already a Cython issue about |
Yes, we can compile with |
I don't foresee this being a problem for us though I am guessing some of the changes will require us to do some reworking. We already are going to have to use c++17 for cudf. |
@germasch do you have an opinion on this for PSC? |
It's not necessarily my preference (neither is requiring CUDA-11) -- in the HPC world, software environments aren't necessarily upgraded all that quickly -- but I can see the point from the perspective of RAPIDS' rapid development ;) I don't think it will cause me any real troubles, though (and if so, I could stick with an older RMM). Thanks for checking! |
Totally understand. The RAPIDS team has been waiting for CUDA to support C++17 for a while now. Adoption 4 years after standardization is not super quick. :) RMM is also trying to better align with C++17 |
closes #736 rmm-0.20 increase the minimum requirements in the following way: - GCC version 9.0+ is required - CUDA and C++ code now is compiled with `-std=c++17` - We require CUDA Toolkit version 11.0 or greater This updates the build-system and the README with these new requirements Authors: - Robert Maynard (https://github.com/robertmaynard) Approvers: - Mark Harris (https://github.com/harrism) - Keith Kraus (https://github.com/kkraus14) URL: #741
This issue has been labeled |
This was changed in #741 to require C++17. Closing. |
#741 moved the code base over to C++17, and as discussed in #736 moving Cython compilation over is fine as well but has not been done yet. There's some use of structured bindings in there now (in `cuda_async_memory_resource.hpp`) so the Cython compilation should be switched over as well. Authors: - Vyas Ramasubramani (https://github.com/vyasr) Approvers: - GALI PREM SAGAR (https://github.com/galipremsagar) - https://github.com/jakirkham - Mark Harris (https://github.com/harrism) URL: #787
In 0.20, RAPIDS libraries including libcudf will beginning adopting C++17 features in their implementations and likely require C++17 for their interfaces. We would like to do the same in RMM; however, since RMM is header-only, there is no difference between requiring C++17 for interfaces vs. implementation. (Note RAPIDS will deprecate CUDA 10.x starting with the 0.19 release and require CUDA 11.0 or higher starting with the 0.20 release.)
I'm opening this issue to discuss any concerns with moving to requiring minimum C++17 to compile RMM. This should not affect users CuPy that only interface with the RMM Python API. However, there are other users of RMM C++ outside of core RAPIDS libraries, such as
Can the people I've tagged above please comment on whether you are OK with RMM requiring C++17 starting in release 0.20?
The text was updated successfully, but these errors were encountered: