You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
referenced by pio_rearrange.c
pio_rearrange.c.o:(define_iodesc_datatypes) in archive ../external/scorpio/src/clib/libpioc.a
referenced by pio_rearrange.c
pio_rearrange.c.o:(compute_counts) in archive ../external/scorpio/src/clib/libpioc.a
referenced by pio_rearrange.c
pio_rearrange.c.o:(compute_counts) in archive ../external/scorpio/src/clib/libpioc.a
referenced 45 more times
clang-15: error: linker command failed with exit code 1 (use -v to see invocation)
Poking around a bit online, it seems like people who see this with other libs seem to point to the cray wrappers (CC) as a potential source - is scorpio not being built with CC? The crayclang cpu option works fine. It only fails with a gpu build.
This was using omega_build.sh after the Cmake invocation:
cmake -DOMEGA_CIME_MACHINE=frontier -DOMEGA_CIME_COMPILER=crayclanggpu -DOMEGA_ARCH=HIP -DOMEGA_PARMETIS_ROOT=${PARMETIS_ROOT} -DOMEGA_BUILD_TEST=ON ..
The text was updated successfully, but these errors were encountered:
@philipwjones , Scorpio is being built with CC cray compiler wrapper, but testDecomp.exe is compiled and linked with hipcc when OMEGA_ARCH is set to HIP.
I think what happened was that the hipcc just could not find the symbols of : __cray_sset_detect and __cray_dset_detect during linking testDecomp.exe because it is not a cray wrapper.
After some tries, I found that adding C language support in "$E3SM/compoinets/omega/CMakeLists.txt" fixed the issue in my test cases:
BEFORE:
project(${OMEGA_PROJECT_NAME}
LANGUAGES CXX
)
AFTER:
project(${OMEGA_PROJECT_NAME}
LANGUAGES C CXX
)
Adding C language support seems to configure several language-specific cmake-internal variables such as MPI flags, additional library for linking, etc. While it is not clear to me why the change fixed this issue, so far all the tests that I have done were passed on Frontier.
When trying to build omega for gpu on frontier, I get some link errors like:
ld.lld: error: undefined symbol: __cray_sset_detect
Poking around a bit online, it seems like people who see this with other libs seem to point to the cray wrappers (CC) as a potential source - is scorpio not being built with CC? The crayclang cpu option works fine. It only fails with a gpu build.
This was using omega_build.sh after the Cmake invocation:
cmake -DOMEGA_CIME_MACHINE=frontier -DOMEGA_CIME_COMPILER=crayclanggpu -DOMEGA_ARCH=HIP -DOMEGA_PARMETIS_ROOT=${PARMETIS_ROOT} -DOMEGA_BUILD_TEST=ON ..
The text was updated successfully, but these errors were encountered: