madgraph5/madgraph4gpu

Problems with std filesystem support in LUMI compilers

Closed this issue · 2 comments

I am having several issues with the filesystem headers on LUMI, while working on PR #801 to add Jorgen's HIP support.

For the hipcc compilation of GPU objects, I replaced filesystem by experimental/filesystem (using HIPCC as a macro to decide in hipcc compilation)
9809728
And then I had to manuallly add the stdc++-fs library
0b2060a
This was using gfortran, gcc and hipcc.

However, because of the linking issues when mixing fortran, hip and c++ as described in #802, I am now thinking of trying flang, clang and hipcc, which are all compatible. The problem is that then the same filesystem issue descrobed above for hipcc also appears in the LUMI rocm clang14: I should use experimental/filesystem instead of filesystem. However, there is no way it seems to distinguish the rocm clang from the default clang, i.e. I have no way to distinguish whether filesystem or experimental filesystem should be used (I tried the usual $CXX -x c++ -E -dM - < /dev/null).

I checked and filesystem is only used in three source code files. I will try to just get rid of that instead. My impression is that the c++17 support in rocm clang is incomplete (or maybe this depends also on LUMI hardware, not sure...).

By the way I could not find any doc for that. The only vague mention of this is here
https://rocm.docs.amd.com/en/docs-5.4.3/CHANGELOG.html#id79

This is fixed in PR #801.

I completely got rid of filesystem headers (I commented them out but left them there foir reference)
5c27ed6

This can be closed