Skip to content
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

Fix Linux CUDA 11.8 GCC 11 builds #29

Closed
jakirkham opened this issue May 2, 2024 · 2 comments · Fixed by #31
Closed

Fix Linux CUDA 11.8 GCC 11 builds #29

jakirkham opened this issue May 2, 2024 · 2 comments · Fixed by #31

Comments

@jakirkham
Copy link
Member

jakirkham commented May 2, 2024

Recently when adding CUDA 11.8 builds in PR ( #26 ), we ran into some issues with the Linux builds. On further investigation, it appears that the issue was related to the use of GCC 11 in the Linux CUDA 11.8 builds

Looking at the result from CI (also attached log for posterity), we saw errors like this one:

/home/conda/feedstock_root/build_artifacts/cudadecon_1698498913015/_build_env/x86_64-conda-linux-gnu/include/c++/11.4.0/type_traits:79:52: error: redefinition of 'constexpr const _Tp std::integral_constant<_Tp, __v>::value'
   79 |   template<typename _Tp, _Tp __v>
      |                                                    ^                           
/home/conda/feedstock_root/build_artifacts/cudadecon_1698498913015/_build_env/x86_64-conda-linux-gnu/include/c++/11.4.0/type_traits:67:29: note: 'constexpr const _Tp value' previously declared here
   67 |       static constexpr _Tp                  value = __v;
      |      

This error did not occur with GCC 10. So something changed between GCC 10 & 11. Maybe the compiler got stricter and so is catching an error? Would need further investigation to know for sure

For now we have pinned to GCC 10 in the CUDA 11.8 builds as a workaround, which allows those to pass. Have highlighted the relevant lines below

# For Linux CUDA 11.8 builds, pin to GCC 10 to workaround issues with GCC 11.
# xref: https://github.com/conda-forge/cudadecon-feedstock/issues/29
- {{ compiler('c') }} # [not (linux and cuda_compiler_version == "11.8")]
- {{ compiler('cxx') }} # [not (linux and cuda_compiler_version == "11.8")]
- {{ c_compiler }}_{{ target_platform }} 10 # [linux and cuda_compiler_version == "11.8"]
- {{ cxx_compiler }}_{{ target_platform }} 10 # [linux and cuda_compiler_version == "11.8"]

Once the underlying issue is resolved we should remove the workaround by reverting commit: 4cb1263

@jakirkham
Copy link
Member Author

Also worth noting we saw the same error with CUDA 12 upstream ( scopetools/cudadecon#29 (comment) ). Likely we need the same fixes as in that upstream PR ( scopetools/cudadecon#29 )

@jakirkham
Copy link
Member Author

Raised an issue specific to this upstream: scopetools/cudadecon#37

Upstream work is happening in PR: scopetools/cudadecon#39

Once that is done, we will want to update the recipe here accordingly as part of the next release

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant