Fix the internal compiler error with gcc 12/13 and CUDA 12.4/12.5 #2282
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Compiling qiskit-aer with CUDA support and gcc 12/13 resulted in some internal compiler error, see #2227.
The error was resolved by removing the
const
expression in from of the lambda functions. The issue is that the aboveconst
declared variables are passed to the lambda function using&
as the default capture of the lambda function. Passing a constant value by reference to a lambda function causes issues by gcc 12/13.Details and comments
Removing the
const
expression allows the code to compile with gcc 12/13 using CUDA 12.4/12.5. I have not yet checked if the issue us specific to Grace Grace and Grace Hopper which is ARM.