Fix use of OpenMP with Cuda or HIP as compile language #6972
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.
We recently discovered that configuring with
was broken and that the compiler flags to enable OpenMP support were not properly set, triggering an internal sanity check at compile time
This PR adds these flag for compiling the CUDA/HIP source files. In contrast to the solution suggested by Daniel in #6965 (review), I am adding these flags in the cmake file that handles TPLs. The reason for doing it there instead of in the
kokkos_arch.cmake
file is that TPLs are only processed after which means thatOpenMP_CXX_FLAGS
is not defined the first time Kokkos is configured. I expect it only worked for Daniel because it was a reconfigure (that is 2nd time parsing the file with OpenMP now having been found).I have tested (might be a strong word, I only checked the flag is properly added and the library builds) on Frontier with ROCm 5.7.1 but I did not check that it works for CUDA. @masterleinad do you mind testing it?