dceresoli / qe-gipaw

QE-GIPAW for Quantum-Espresso (official repository)
GNU General Public License v2.0
30 stars 11 forks source link

Builds with QE 7.0 with CUDA support #12

Closed ndtrung81 closed 2 years ago

ndtrung81 commented 2 years ago

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

dceresoli commented 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.

ndtrung81 commented 2 years ago

Thanks for the info, I will build GIPAW against the QE version without CUDA support for now.

Cheers, -Trung