Closed ndtrung81 closed 2 years ago
Hi, unfortunately GIPAW cannot yet take full advantage of GPUs even if you succeed compiling and linking. Porting GIPAW to GPUs requires (minor) code changes. I'm planning to work on it soon. I need "the force to be with me" or a padawan. Best, D.
Thanks for the info, I will build GIPAW against the QE version without CUDA support for now.
Cheers, -Trung
Hi,
I have built QE 7.0 with CUDA support successfully under '/path/to/qe-7.0-src/
./configure --with-cuda=/software/nvhpc-20.11-el8-x86_64/Linux_x86_64/20.11/cuda --with-cuda-cc=70 --with-cuda-runtime=11.1 --prefix=/path/to/qe-7.0-src/install make all -j4 make install
The binaries are generated under install/bin as expected.Then, I did
make gipaw
with QE 7.0 and got a bunch of errors at the final linking stage:mpif90 -cuda -gpu=cc70,cuda11.1 -acc -o gipaw.i gipaw_module.o gipaw_main.o ....
nvlink error : Multiple definition of 'gpu_threaded_backassign_380_gpu' in '/path/to/qe-7.0-src/KS_Solvers/libks_solvers.a:generic_cublas.o', first defined in '/path/to/qe-7.0-src/KS_Solvers/PPCG/libppcg.a:generic_cublas.o' nvlink error : Multiple definition of 'gpu_threaded_backassign_327_gpu' in '/path/to/qe-7.0-src/KS_Solvers/libks_solvers.a:generic_cublas.o', first defined in '/path/to/qe-7.0-src/KS_Solvers/PPCG/libppcg.a:generic_cublas.o'
and the last message was
nvlink fatal : merge_elf failed
It seems that these _gpu symbols are defined in the libraries libks_solvers.a and lib_ppcg.a.I am wondering if this issue has been raised and resolved before, and if they are due to the upstream QE with CUDA support, and has nothing to do with gipaw. Any suggestions would be highly appreciated.
Thanks, -Trung