Linking error in Yambo > 4.5.0 with CUDA
Posted: Sun Jan 10, 2021 4:08 am
Dear developers:
I tried to install yambo-4.5.0 parallel with GPUs. Everything went fine when compiling libraries, but I got error when linking Yambo. This error occurs in Yambo-4.5.0, 4.5.3 and 5.0.0 released in github. First it shows warning:
(actually nearly every just compiled library: -lbse, -lqp, -ltddft, et.al)
Then the error:
It seems that the code needs to be compiled with 32-bit pgcc, but it is deprecated since PGI-2017 release.
My environment includes:
1. Cuda-11.1 with Nvidia-driver V455.45.01
2. Nvidia HPC SDK (PGI version 20.11 LLVM 64-bit) pgfortran and pgcc
3. openmpi-4.0.1
4. CentOS 7.9 (Linux 3.10.0-1160.11.1.el7.x86_64)
And config.log file attached.
I tried to install yambo-4.5.0 parallel with GPUs. Everything went fine when compiling libraries, but I got error when linking Yambo. This error occurs in Yambo-4.5.0, 4.5.3 and 5.0.0 released in github. First it shows warning:
Code: Select all
nvlink warning : Skipping incompatible '/home/pwmat/yambo-master/lib/libbse.a' when searching for -lbse
nvlink warning : Skipping incompatible '/home/pwmat/yambo-master/lib/libacfdt.a' when searching for -lacfdt
...
Then the error:
Code: Select all
driver.o: In function `main':
/home/pwmat/yambo-master/lib/yambo/driver/src/driver/driver.c:50: undefined reference to `tool_init'
/home/pwmat/yambo-master/lib/yambo/driver/src/driver/driver.c:54: undefined reference to `options_maker'
/home/pwmat/yambo-master/lib/yambo/driver/src/driver/driver.c:58: undefined reference to `command_line'
/home/pwmat/yambo-master/lib/yambo/driver/src/driver/driver.c:62: undefined reference to `launcher'
/home/pwmat/yambo-master/lib/yambo/driver/src/driver/driver.c:66: undefined reference to `input_file'
pgacclnk: child process exit status 1: /usr/bin/ld
So is that mean I have to use PGI before 2016 to make yambo properly? Is there any proper environments for a successful compilation for GPU-accelerated Yambo?PGI 2017 is only available for 64-bit operating systems and does not include the ability to compile 32-bit applications for execution on either 32- or 64-bit operating systems.
My environment includes:
1. Cuda-11.1 with Nvidia-driver V455.45.01
2. Nvidia HPC SDK (PGI version 20.11 LLVM 64-bit) pgfortran and pgcc
3. openmpi-4.0.1
4. CentOS 7.9 (Linux 3.10.0-1160.11.1.el7.x86_64)
And config.log file attached.