# Summary
QE 7.0/GPU compilation with Autotools fails with "Can't find include file 
fftw3.f03 (fft_scalar.FFTW3.f90: 40)"

# Version
qe-7.0-ReleasePack.tgz

# Environment
## Hardware
1. 2xAMD EPYC 7452
2. 4xNVIDIA A100
3. 512 GB RAM
## Software
1. OS: Rocky Linux release 8.5 (Green Obsidian)
2. NVHPC 22.3
3. OpenMPI 4.1.3 built with NVHPC 22.3
4. CUDA 11.3.1 with Driver 470.82.01
5. libxc 5.1.5
6. Autotools 20210128

# Steps to reproduce
## Configured with:
`./configure --prefix=$HOME/install/qe-7.0 --enable-openmp --with-scalapack=no 
--enable-cuda-env-check=no --with-cuda=$EBROOTNVHPC/Linux_x86_64/22.3/cuda/11.0 
--with-cuda-runtime=11.0 --with-cuda-cc=80`
## Prebuild options
`cp $EBROOTLIBXC/include/*.mod Modules/mod/qe_modules && export FPP='nvfortran 
-Mpreprocess -E' && export CPP='cpp -E' && export FCPP='cpp -E' && `
## make options
`make all epw`

# Observed behavior
Compilation fails with:
```
make[1]: Entering directory '/mnt/tier2/users/apps/scratchpad/qe-7.0/FFTXlib'
mpif90 -fast -Mcache_align -Mpreprocess -Mlarge_arrays -mp -D__PGI -D__CUDA 
-D__USE_CUSOLVER -D__FFTW3 -D__MPI  -cuda -gpu=cc80,cuda11.0 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//external/devxlib/src 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//external/devxlib/include -acc 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//external/devxlib/src 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//include 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//FoX/finclude   -c fft_param.f90
mpif90 -fast -Mcache_align -Mpreprocess -Mlarge_arrays -mp -D__PGI -D__CUDA 
-D__USE_CUSOLVER -D__FFTW3 -D__MPI  -cuda -gpu=cc80,cuda11.0 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//external/devxlib/src 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//external/devxlib/include -acc 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//external/devxlib/src 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//include 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//FoX/finclude   -c fft_support.f90
mpif90 -fast -Mcache_align -Mpreprocess -Mlarge_arrays -mp -D__PGI -D__CUDA 
-D__USE_CUSOLVER -D__FFTW3 -D__MPI  -cuda -gpu=cc80,cuda11.0 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//external/devxlib/src 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//external/devxlib/include -acc 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//external/devxlib/src 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//include 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//FoX/finclude   -c stick_base.f90
mpif90 -fast -Mcache_align -Mpreprocess -Mlarge_arrays -mp -D__PGI -D__CUDA 
-D__USE_CUSOLVER -D__FFTW3 -D__MPI  -cuda -gpu=cc80,cuda11.0 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//external/devxlib/src 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//external/devxlib/include -acc 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//external/devxlib/src 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//include 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//FoX/finclude   -c fft_types.f90
mpif90 -fast -Mcache_align -Mpreprocess -Mlarge_arrays -mp -D__PGI -D__CUDA 
-D__USE_CUSOLVER -D__FFTW3 -D__MPI  -cuda -gpu=cc80,cuda11.0 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//external/devxlib/src 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//external/devxlib/include -acc 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//external/devxlib/src 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//include 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//FoX/finclude   -c scatter_mod.f90
mpif90 -fast -Mcache_align -Mpreprocess -Mlarge_arrays -mp -D__PGI -D__CUDA 
-D__USE_CUSOLVER -D__FFTW3 -D__MPI  -cuda -gpu=cc80,cuda11.0 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//external/devxlib/src 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//external/devxlib/include -acc 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//external/devxlib/src 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//include 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//FoX/finclude   -c fft_scatter_2d.f90
mpif90 -fast -Mcache_align -Mpreprocess -Mlarge_arrays -mp -D__PGI -D__CUDA 
-D__USE_CUSOLVER -D__FFTW3 -D__MPI  -cuda -gpu=cc80,cuda11.0 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//external/devxlib/src 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//external/devxlib/include -acc 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//external/devxlib/src 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//include 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//FoX/finclude   -c fft_buffers.f90
mpif90 -fast -Mcache_align -Mpreprocess -Mlarge_arrays -mp -D__PGI -D__CUDA 
-D__USE_CUSOLVER -D__FFTW3 -D__MPI  -cuda -gpu=cc80,cuda11.0 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//external/devxlib/src 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//external/devxlib/include -acc 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//external/devxlib/src 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//include 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//FoX/finclude   -c fft_scatter_gpu.f90
mpif90 -fast -Mcache_align -Mpreprocess -Mlarge_arrays -mp -D__PGI -D__CUDA 
-D__USE_CUSOLVER -D__FFTW3 -D__MPI  -cuda -gpu=cc80,cuda11.0 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//external/devxlib/src 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//external/devxlib/include -acc 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//external/devxlib/src 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//include 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//FoX/finclude   -c 
fft_scatter_2d_gpu.f90
mpif90 -fast -Mcache_align -Mpreprocess -Mlarge_arrays -mp -D__PGI -D__CUDA 
-D__USE_CUSOLVER -D__FFTW3 -D__MPI  -cuda -gpu=cc80,cuda11.0 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//external/devxlib/src 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//external/devxlib/include -acc 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//external/devxlib/src 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//include 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//FoX/finclude   -c fft_ggen.f90
mpif90 -fast -Mcache_align -Mpreprocess -Mlarge_arrays -mp -D__PGI -D__CUDA 
-D__USE_CUSOLVER -D__FFTW3 -D__MPI  -cuda -gpu=cc80,cuda11.0 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//external/devxlib/src 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//external/devxlib/include -acc 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//external/devxlib/src 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//include 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//FoX/finclude   -c fft_scalar.DFTI.f90
mpif90 -fast -Mcache_align -Mpreprocess -Mlarge_arrays -mp -D__PGI -D__CUDA 
-D__USE_CUSOLVER -D__FFTW3 -D__MPI  -cuda -gpu=cc80,cuda11.0 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//external/devxlib/src 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//external/devxlib/include -acc 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//external/devxlib/src 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//include 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//FoX/finclude   -c fft_scalar.ESSL.f90
NVFORTRAN-W-0006-Input file empty (fft_scalar.ESSL.f90)
NVFORTRAN/x86-64 Linux 22.3-0: compilation completed with warnings
mpif90 -fast -Mcache_align -Mpreprocess -Mlarge_arrays -mp -D__PGI -D__CUDA 
-D__USE_CUSOLVER -D__FFTW3 -D__MPI  -cuda -gpu=cc80,cuda11.0 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//external/devxlib/src 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//external/devxlib/include -acc 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//external/devxlib/src 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//include 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//FoX/finclude   -c fftw_interfaces.f90
mpif90 -fast -Mcache_align -Mpreprocess -Mlarge_arrays -mp -D__PGI -D__CUDA 
-D__USE_CUSOLVER -D__FFTW3 -D__MPI  -cuda -gpu=cc80,cuda11.0 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//external/devxlib/src 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//external/devxlib/include -acc 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//external/devxlib/src 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//include 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//FoX/finclude   -c fft_scalar.FFTW.f90
NVFORTRAN-W-0006-Input file empty (fft_scalar.FFTW.f90)
NVFORTRAN/x86-64 Linux 22.3-0: compilation completed with warnings
mpif90 -fast -Mcache_align -Mpreprocess -Mlarge_arrays -mp -D__PGI -D__CUDA 
-D__USE_CUSOLVER -D__FFTW3 -D__MPI  -cuda -gpu=cc80,cuda11.0 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//external/devxlib/src 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//external/devxlib/include -acc 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//external/devxlib/src 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//include 
-I/mnt/tier2/users/apps/scratchpad/qe-7.0//FoX/finclude   -c 
fft_scalar.FFTW3.f90
NVFORTRAN-F-0906-Can't find include file fftw3.f03 (fft_scalar.FFTW3.f90: 40)
NVFORTRAN/x86-64 Linux 22.3-0: compilation aborted
make[1]: *** [../make.inc:16: fft_scalar.FFTW3.o] Error 2
make[1]: Leaving directory '/mnt/tier2/users/apps/scratchpad/qe-7.0/FFTXlib'
make: *** [Makefile:196: libfft] Error 1
```

# Questions
1. What do I do wrong?
2. Why configure didn't fail if FFTW is mandatory?
3. Is it possible to configure the build system to use cuFFT instead?

Dr. rer. nat. Robert Mijaković | HPC System Software Architect

LuxProvide
3, Op der Poukewiss | L-7795 Bissen
Grand-Duchy of Luxembourg
M (+352) 691 396 474
robert.mijako...@lxp.lu<mailto:robert.mijako...@lxp.lu> | 
www.luxprovide.lu<http://www.luxprovide.lu/>

_______________________________________________
The Quantum ESPRESSO community stands by the Ukrainian
people and expresses its concerns about the devastating
effects that the Russian military offensive has on their
country and on the free and peaceful scientific, cultural,
and economic cooperation amongst peoples
_______________________________________________
Quantum ESPRESSO is supported by MaX (www.max-centre.eu)
users mailing list users@lists.quantum-espresso.org
https://lists.quantum-espresso.org/mailman/listinfo/users

Reply via email to