-
Notifications
You must be signed in to change notification settings - Fork 4
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
Use GCC 13 in CUDA 12+ builds #129
Comments
@bdice @robertmaynard and I talked in an offline conversation and decided to only pursue this for conda builds, leaving wheel builds on GCC 11 (which is set here in ci-imgs). Summarizing... On the one hand... it'd probably be safe to update to GCC 13. We're producing On the other hand... switching the host compiler based on CUDA version (as we'd have to stay on GCC 11 for CUDA 11) would be more painful and error-prone for wheel builds than it is for conda. And I can't think of specific reasons that continuing to use GCC 11 for wheel builds while using GCC 13 for conda builds would be problematic. |
One other issue will need to be figured out... unified devcontainers. The conda devcontainers expect every project to provide compiler pins, like this: specific:
- output_types: conda
matrices:
- matrix:
arch: x86_64
packages:
- gcc_linux-64=11.*
- sysroot_linux-64==2.17
- matrix:
arch: aarch64
packages:
- gcc_linux-aarch64=11.*
- sysroot_linux-aarch64==2.17
- output_types: conda
matrices:
- matrix:
arch: x86_64
cuda: "11.8"
packages:
- nvcc_linux-64=11.8
- matrix:
arch: aarch64
cuda: "11.8"
packages:
- nvcc_linux-aarch64=11.8
- matrix:
cuda: "12.*"
packages:
- cuda-nvcc Which all get merged into a single conda environment in As soon as any one of the RAPIDS repos switches to GCC 13, I think the unified conda devcontainers will be broken until all of them are updated (because Since those matrices in specific:
- output_types: conda
matrices:
- matrix:
arch: x86_64
cuda: "11.*"
packages:
- gcc_linux-64=11.*
- &sysroot_x86_64 sysroot_linux-64==2.17
- matrix:
arch: x86_64
cuda: "12.*"
packages:
- gcc_linux-64>=11,<14
- *sysroot_x86_64
- matrix:
arch: aarch64
cuda: "11.*"
packages:
- gcc_linux-aarch64=11.*
- &sysroot_aarch64 sysroot_linux-aarch64==2.17
- matrix:
arch: aarch64
cuda: "12.*"
packages:
- gcc_linux-aarch64>=11,<14
- *sysroot_aarch64 And then, once every project is updated, do one more round of PRs to tighten them: specific:
- output_types: conda
matrices:
- matrix:
arch: x86_64
cuda: "11.*"
packages:
- gcc_linux-64=11.*
- &sysroot_x86_64 sysroot_linux-64==2.17
- matrix:
arch: x86_64
cuda: "12.*"
packages:
- gcc_linux-64=13.*
- *sysroot_x86_64
- matrix:
arch: aarch64
cuda: "11.*"
packages:
- gcc_linux-aarch64=11.*
- &sysroot_aarch64 sysroot_linux-aarch64==2.17
- matrix:
arch: aarch64
cuda: "12.*"
packages:
- gcc_linux-aarch64=13.*
- *sysroot_aarch64 |
This argues in favor of having centralized pinnings that we can apply across RAPIDS projects. That could be useful even outside this context |
CUDA 12.5 added support for GCC 13. Recently, conda-forge began using GCC 13 for CUDA 12 builds (conda-forge/conda-forge-pinning-feedstock#6736, conda-forge/conda-forge-pinning-feedstock#6849).
This issue proposes using GCC 13 for CUDA 12 builds of RAPIDS, to align with conda-forge.
One proposal for implementation is here: rapidsai/rmm#1773
I propose that we target this update for 25.02, to stay aligned with conda-forge.
The text was updated successfully, but these errors were encountered: