lattice / quda

QUDA is a library for performing calculations in lattice QCD on GPUs.
https://lattice.github.io/quda
Other
287 stars 94 forks source link

Make QUDA use new ROCm header locations #1415

Closed dmcdougall closed 9 months ago

dmcdougall commented 9 months ago

These header files are going to move in a future ROCm release, so we're just preparing for that change here. These new locations have been available for several ROCm releases already, so this shouldn't be a disruptive change.

maddyscientist commented 9 months ago

@dmcdougall will this fix the warnings regarding header location, and thus allow us to switch the ROCm CI target to use STRICT builds?

dmcdougall commented 9 months ago

It'll likely fix the warnings regarding header location. Switching to STRICT would need that there are no other warnings. I don't remember if we do or do not trigger compiler warnings in other parts of the codebase.

maddyscientist commented 9 months ago

@dmcdougall there is a warning from a ROCm header, which is unexpected:

/opt/rocm-5.5.0/include/rocrand/rocrand_common.h:75:6: warning: "Disabled inline asm, because the build target does not support it." [-W#warnings]
    #warning "Disabled inline asm, because the build target does not support it."

Are ROCm headers not included as system headers, which should suppress such warnings?

dmcdougall commented 9 months ago

I don't know why we're warning there at all, to be honest. It's not like we can expect the user to do anything meaningful if we don't generate inline assembly somewhere inside of rocrand for a specific hardware architecture.

Fortunately, it looks like the warning got taken away in 5.6: https://github.com/ROCmSoftwarePlatform/rocRAND/blob/release/rocm-rel-5.6/library/include/rocrand/rocrand_common.h#L69-L72

That preprocessor logic looks strange to me for other reasons, though. I'll reach out to the rocrand folks to follow up on that.