Thanks Mat
NVIDIA dropped support for ppc64le is not good news.
However I did two link cases:
THE FIRST ONE:
<iannone@xcrescox001 ~/private/src/hpl-2.3/testing/ptest/PPI64> mpif90 -Mnomain -L/afs/.enea.it/software/xcresco/cineca/prod/opt/compilers/cuda/12.3/none/Linux_ppc64le/24.1/compilers/lib/ -lblas -v -o /afs/enea.it/fra/user/iannone/private/src/hpl-2.3/bin/PPI64/xhpl HPL_pddriver.o HPL_pdinfo.o HPL_pdtest.o -L/afs/.enea.it/software/xcresco/cineca/prod/opt/compilers/cuda/12.3/none/Linux_ppc64le/24.1/compilers/lib/ -lblas -L/usr/lib64 -lpthread -L /afs/enea.it/fra/user/iannone/private/src/hpl-2.3/lib/PPI64 -lhpl -L /afs/.enea.it/software/xcresco/cineca/prod/opt/compilers/cuda/12.3/none//Linux_ppc64le/24.1/comm_libs/12.3/openmpi4/latest/lib -lmpi
Export NVCOMPILER=/afs/.enea.it/software/xcresco/cineca/prod/opt/compilers/cuda/12.3/none/Linux_ppc64le/24.1
Export PGI=/afs/.enea.it/software/xcresco/cineca/prod/opt/compilers/cuda/12.3/none
/usr/bin/ld /usr/lib64/crt1.o /usr/lib64/crti.o /usr/lib/gcc/ppc64le-redhat-linux/11//crtbegin.o --eh-frame-hdr -dynamic-linker /lib64/ld64.so.2 -T /afs/.enea.it/software/xcresco/cineca/prod/opt/compilers/cuda/12.3/none/Linux_ppc64le/24.1/compilers/lib/nvhpc.ld --no-tls-optimize -L/afs/.enea.it/software/xcresco/cineca/prod/opt/compilers/cuda/12.3/none/Linux_ppc64le/24.1/compilers/lib/ -L/afs/.enea.it/software/xcresco/cineca/prod/opt/compilers/cuda/12.3/none/Linux_ppc64le/24.1/compilers/lib/ -L/usr/lib64 -L/afs/enea.it/fra/user/iannone/private/src/hpl-2.3/lib/PPI64 -L/afs/.enea.it/software/xcresco/cineca/prod/opt/compilers/cuda/12.3/none//Linux_ppc64le/24.1/comm_libs/12.3/openmpi4/latest/lib -L/afs/.enea.it/software/xcresco/cineca/prod/opt/compilers/cuda/12.3/none//Linux_ppc64le/24.1/comm_libs/12.3/openmpi4/latest/lib -L/afs/.enea.it/software/xcresco/cineca/prod/opt/compilers/cuda/12.3/none//Linux_ppc64le/24.1/comm_libs/12.3/openmpi4/latest/lib -L/afs/.enea.it/software/xcresco/cineca/prod/opt/compilers/cuda/12.3/none//Linux_ppc64le/24.1/cuda/lib64 -L/afs/.enea.it/software/xcresco/cineca/prod/opt/compilers/cuda/12.3/none/Linux_ppc64le/24.1/compilers/lib -L/usr/lib64 -L/usr/lib/gcc/ppc64le-redhat-linux/11/ -lblas HPL_pddriver.o HPL_pdinfo.o HPL_pdtest.o -lblas -lpthread -lhpl -lmpi -rpath /afs/.enea.it/software/xcresco/cineca/prod/opt/compilers/cuda/12.3/none//Linux_ppc64le/24.1/comm_libs/12.3/openmpi4/latest/lib -lmpi_usempif08 -lmpi_usempi_ignore_tkr -lmpi_mpifh -lmpi -rpath /afs/.enea.it/software/xcresco/cineca/prod/opt/compilers/cuda/12.3/none/Linux_ppc64le/24.1/compilers/lib -o /afs/enea.it/fra/user/iannone/private/src/hpl-2.3/bin/PPI64/xhpl -L/usr/lib/gcc/ppc64le-redhat-linux/11//…/…/…/…/lib64 -lnvf -lnvomp -ldl --as-needed -latomic -lnvhpcatm --no-as-needed -ldl -lpthread -lnvcpumath -lnvc -lrt -lpthread -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed -lm /usr/lib/gcc/ppc64le-redhat-linux/11//crtend.o /usr/lib64/crtn.o
/usr/bin/ld: /afs/enea.it/fra/user/iannone/private/src/hpl-2.3/lib/PPI64/libhpl.a(HPL_idamax.o): in function `HPL_idamax(int, double const*, int)':
/afs/enea.it/fra/user/iannone/private/src/hpl-2.3/src/blas/PPI64/…/HPL_idamax.c:159: undefined reference to `idamax_(int const*, double const*, int const*)’
/usr/bin/ld: /afs/enea.it/fra/user/iannone/private/src/hpl-2.3/lib/PPI64/libhpl.a(HPL_dgemv.o): in function `HPL_dgemv(HPL_ORDER, HPL_TRANS, int, int, double, double const*, int, double const*, int, double, double*, int)':
/afs/enea.it/fra/user/iannone/private/src/hpl-2.3/src/blas/PPI64/…/HPL_dgemv.c:(.text+0xb4): undefined reference to `dgemv_(char*, int const*, int const*, double const*, double const*, int const*, double const*, int const*, double const*, double*, int const*, int)’
/usr/bin/ld: /afs/enea.it/fra/user/iannone/private/src/hpl-2.3/lib/PPI64/libhpl.a(HPL_dcopy.o): in function `HPL_dcopy(int, double const*, int, double*, int)':
/afs/enea.it/fra/user/iannone/private/src/hpl-2.3/src/blas/PPI64/…/HPL_dcopy.c:161: undefined reference to `dcopy_(int const*, double const*, int const*, double*, int const*)’
/usr/bin/ld: /afs/enea.it/fra/user/iannone/private/src/hpl-2.3/lib/PPI64/libhpl.a(HPL_daxpy.o): in function `HPL_daxpy(int, double, double const*, int, double*, int)':
/afs/enea.it/fra/user/iannone/private/src/hpl-2.3/src/blas/PPI64/…/HPL_daxpy.c:168: undefined reference to `daxpy_(int const*, double const*, double const*, int const*, double*, int const*)’
/usr/bin/ld: /afs/enea.it/fra/user/iannone/private/src/hpl-2.3/lib/PPI64/libhpl.a(HPL_dscal.o): in function `HPL_dscal(int, double, double*, int)':
/afs/enea.it/fra/user/iannone/private/src/hpl-2.3/src/blas/PPI64/…/HPL_dscal.c:172: undefined reference to `dscal_(int const*, double const*, double*, int const*)’
/usr/bin/ld: /afs/enea.it/fra/user/iannone/private/src/hpl-2.3/lib/PPI64/libhpl.a(HPL_dtrsv.o): in function `HPL_dtrsv(HPL_ORDER, HPL_UPLO, HPL_TRANS, HPL_DIAG, int, double const*, int, double*, int)':
/afs/enea.it/fra/user/iannone/private/src/hpl-2.3/src/blas/PPI64/…/HPL_dtrsv.c:495: undefined reference to `dtrsv_(char*, char*, char*, int const*, double const*, int const*, double*, int const*, int, int, int)’
/usr/bin/ld: /afs/enea.it/fra/user/iannone/private/src/hpl-2.3/lib/PPI64/libhpl.a(HPL_dger.o): in function `HPL_dger(HPL_ORDER, int, int, double, double const*, int, double*, int, double*, int)':
/afs/enea.it/fra/user/iannone/private/src/hpl-2.3/src/blas/PPI64/…/HPL_dger.c:(.text+0x98): undefined reference to `dger_(int const*, int const*, double const*, double const*, int const*, double const*, int const*, double*, int const*)’
/usr/bin/ld: /afs/enea.it/fra/user/iannone/private/src/hpl-2.3/lib/PPI64/libhpl.a(HPL_dgemm.o): in function `HPL_dgemm(HPL_ORDER, HPL_TRANS, HPL_TRANS, int, int, int, double, double const*, int, double const*, int, double, double*, int)':
/afs/enea.it/fra/user/iannone/private/src/hpl-2.3/src/blas/PPI64/…/HPL_dgemm.c:(.text+0x118): undefined reference to `dgemm_(char*, char*, int const*, int const*, int const*, double const*, double const*, int const*, double const*, int const*, double const*, double*, int const*, int, int)’
/usr/bin/ld: /afs/enea.it/fra/user/iannone/private/src/hpl-2.3/lib/PPI64/libhpl.a(HPL_dtrsm.o): in function `HPL_dtrsm(HPL_ORDER, HPL_SIDE, HPL_UPLO, HPL_TRANS, HPL_DIAG, int, int, double, double const*, int, double*, int)':
/afs/enea.it/fra/user/iannone/private/src/hpl-2.3/src/blas/PPI64/…/HPL_dtrsm.c:(.text+0x114): undefined reference to `dtrsm_(char*, char*, char*, char*, int const*, int const*, double const*, double const*, int const*, double*, int const*, int, int, int, int)’
nvfortran-Fatal-linker completed with exit code 1
THE SECOND ONE:
<iannone@xcrescox001 ~/private/src/hpl-2.3/testing/ptest/PPI64> mpif90 -Mnomain -L/afs/.enea.it/software/xcresco/cineca/prod/opt/compilers/cuda/12.3/none/Linux_ppc64le/24.1/compilers/lib/ -lblas -v -o /afs/enea.it/fra/user/iannone/private/src/hpl-2.3/bin/PPI64/xhpl HPL_pddriver.o HPL_pdinfo.o HPL_pdtest.o -L/afs/.enea.it/software/xcresco/cineca/prod/opt/compilers/cuda/12.3/none/Linux_ppc64le/24.1/compilers/lib/ -lblas -L/usr/lib64 -lpthread -L /afs/enea.it/fra/user/iannone/private/src/hpl-2.3/lib/PPI64 -lhpl -L /afs/.enea.it/software/xcresco/cineca/prod/opt/compilers/cuda/12.3/none//Linux_ppc64le/24.1/comm_libs/12.3/openmpi4/latest/lib -lmpi -L/afs/.enea.it/software/xcresco/cineca/prod/opt/compilers/cuda/12.3/none/Linux_ppc64le/24.1/compilers/lib/ -lblas
Export NVCOMPILER=/afs/.enea.it/software/xcresco/cineca/prod/opt/compilers/cuda/12.3/none/Linux_ppc64le/24.1
Export PGI=/afs/.enea.it/software/xcresco/cineca/prod/opt/compilers/cuda/12.3/none
/usr/bin/ld /usr/lib64/crt1.o /usr/lib64/crti.o /usr/lib/gcc/ppc64le-redhat-linux/11//crtbegin.o --eh-frame-hdr -dynamic-linker /lib64/ld64.so.2 -T /afs/.enea.it/software/xcresco/cineca/prod/opt/compilers/cuda/12.3/none/Linux_ppc64le/24.1/compilers/lib/nvhpc.ld --no-tls-optimize -L/afs/.enea.it/software/xcresco/cineca/prod/opt/compilers/cuda/12.3/none/Linux_ppc64le/24.1/compilers/lib/ -L/afs/.enea.it/software/xcresco/cineca/prod/opt/compilers/cuda/12.3/none/Linux_ppc64le/24.1/compilers/lib/ -L/usr/lib64 -L/afs/enea.it/fra/user/iannone/private/src/hpl-2.3/lib/PPI64 -L/afs/.enea.it/software/xcresco/cineca/prod/opt/compilers/cuda/12.3/none//Linux_ppc64le/24.1/comm_libs/12.3/openmpi4/latest/lib -L/afs/.enea.it/software/xcresco/cineca/prod/opt/compilers/cuda/12.3/none/Linux_ppc64le/24.1/compilers/lib/ -L/afs/.enea.it/software/xcresco/cineca/prod/opt/compilers/cuda/12.3/none//Linux_ppc64le/24.1/comm_libs/12.3/openmpi4/latest/lib -L/afs/.enea.it/software/xcresco/cineca/prod/opt/compilers/cuda/12.3/none//Linux_ppc64le/24.1/comm_libs/12.3/openmpi4/latest/lib -L/afs/.enea.it/software/xcresco/cineca/prod/opt/compilers/cuda/12.3/none//Linux_ppc64le/24.1/cuda/lib64 -L/afs/.enea.it/software/xcresco/cineca/prod/opt/compilers/cuda/12.3/none/Linux_ppc64le/24.1/compilers/lib -L/usr/lib64 -L/usr/lib/gcc/ppc64le-redhat-linux/11/ -lblas HPL_pddriver.o HPL_pdinfo.o HPL_pdtest.o -lblas -lpthread -lhpl -lmpi -lblas -rpath /afs/.enea.it/software/xcresco/cineca/prod/opt/compilers/cuda/12.3/none//Linux_ppc64le/24.1/comm_libs/12.3/openmpi4/latest/lib -lmpi_usempif08 -lmpi_usempi_ignore_tkr -lmpi_mpifh -lmpi -rpath /afs/.enea.it/software/xcresco/cineca/prod/opt/compilers/cuda/12.3/none/Linux_ppc64le/24.1/compilers/lib -o /afs/enea.it/fra/user/iannone/private/src/hpl-2.3/bin/PPI64/xhpl -L/usr/lib/gcc/ppc64le-redhat-linux/11//…/…/…/…/lib64 -lnvf -lnvomp -ldl --as-needed -latomic -lnvhpcatm --no-as-needed -ldl -lpthread -lnvcpumath -lnvc -lrt -lpthread -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed -lm /usr/lib/gcc/ppc64le-redhat-linux/11//crtend.o /usr/lib64/crtn.o
/usr/bin/ld: /afs/enea.it/fra/user/iannone/private/src/hpl-2.3/lib/PPI64/libhpl.a(HPL_idamax.o): in function `HPL_idamax(int, double const*, int)':
/afs/enea.it/fra/user/iannone/private/src/hpl-2.3/src/blas/PPI64/…/HPL_idamax.c:159: undefined reference to `idamax_(int const*, double const*, int const*)’
/usr/bin/ld: /afs/enea.it/fra/user/iannone/private/src/hpl-2.3/lib/PPI64/libhpl.a(HPL_dgemv.o): in function `HPL_dgemv(HPL_ORDER, HPL_TRANS, int, int, double, double const*, int, double const*, int, double, double*, int)':
/afs/enea.it/fra/user/iannone/private/src/hpl-2.3/src/blas/PPI64/…/HPL_dgemv.c:(.text+0xb4): undefined reference to `dgemv_(char*, int const*, int const*, double const*, double const*, int const*, double const*, int const*, double const*, double*, int const*, int)’
/usr/bin/ld: /afs/enea.it/fra/user/iannone/private/src/hpl-2.3/lib/PPI64/libhpl.a(HPL_dcopy.o): in function `HPL_dcopy(int, double const*, int, double*, int)':
/afs/enea.it/fra/user/iannone/private/src/hpl-2.3/src/blas/PPI64/…/HPL_dcopy.c:161: undefined reference to `dcopy_(int const*, double const*, int const*, double*, int const*)’
/usr/bin/ld: /afs/enea.it/fra/user/iannone/private/src/hpl-2.3/lib/PPI64/libhpl.a(HPL_daxpy.o): in function `HPL_daxpy(int, double, double const*, int, double*, int)':
/afs/enea.it/fra/user/iannone/private/src/hpl-2.3/src/blas/PPI64/…/HPL_daxpy.c:168: undefined reference to `daxpy_(int const*, double const*, double const*, int const*, double*, int const*)’
/usr/bin/ld: /afs/enea.it/fra/user/iannone/private/src/hpl-2.3/lib/PPI64/libhpl.a(HPL_dscal.o): in function `HPL_dscal(int, double, double*, int)':
/afs/enea.it/fra/user/iannone/private/src/hpl-2.3/src/blas/PPI64/…/HPL_dscal.c:172: undefined reference to `dscal_(int const*, double const*, double*, int const*)’
/usr/bin/ld: /afs/enea.it/fra/user/iannone/private/src/hpl-2.3/lib/PPI64/libhpl.a(HPL_dtrsv.o): in function `HPL_dtrsv(HPL_ORDER, HPL_UPLO, HPL_TRANS, HPL_DIAG, int, double const*, int, double*, int)':
/afs/enea.it/fra/user/iannone/private/src/hpl-2.3/src/blas/PPI64/…/HPL_dtrsv.c:495: undefined reference to `dtrsv_(char*, char*, char*, int const*, double const*, int const*, double*, int const*, int, int, int)’
/usr/bin/ld: /afs/enea.it/fra/user/iannone/private/src/hpl-2.3/lib/PPI64/libhpl.a(HPL_dger.o): in function `HPL_dger(HPL_ORDER, int, int, double, double const*, int, double*, int, double*, int)':
/afs/enea.it/fra/user/iannone/private/src/hpl-2.3/src/blas/PPI64/…/HPL_dger.c:(.text+0x98): undefined reference to `dger_(int const*, int const*, double const*, double const*, int const*, double const*, int const*, double*, int const*)’
/usr/bin/ld: /afs/enea.it/fra/user/iannone/private/src/hpl-2.3/lib/PPI64/libhpl.a(HPL_dgemm.o): in function `HPL_dgemm(HPL_ORDER, HPL_TRANS, HPL_TRANS, int, int, int, double, double const*, int, double const*, int, double, double*, int)':
/afs/enea.it/fra/user/iannone/private/src/hpl-2.3/src/blas/PPI64/…/HPL_dgemm.c:(.text+0x118): undefined reference to `dgemm_(char*, char*, int const*, int const*, int const*, double const*, double const*, int const*, double const*, int const*, double const*, double*, int const*, int, int)’
/usr/bin/ld: /afs/enea.it/fra/user/iannone/private/src/hpl-2.3/lib/PPI64/libhpl.a(HPL_dtrsm.o): in function `HPL_dtrsm(HPL_ORDER, HPL_SIDE, HPL_UPLO, HPL_TRANS, HPL_DIAG, int, int, double, double const*, int, double*, int)':
/afs/enea.it/fra/user/iannone/private/src/hpl-2.3/src/blas/PPI64/…/HPL_dtrsm.c:(.text+0x114): undefined reference to `dtrsm_(char*, char*, char*, char*, int const*, int const*, double const*, double const*, int const*, double*, int const*, int, int, int, int)’
nvfortran-Fatal-linker completed with exit code 1