Issue with CUDA on ABINIT 9.6.2

Greetings!
I am just taking my first baby steps toward ABINIT. I am struggling with ABINIT configuration on Ubuntu 20.04. I followed this recipe:

#! /bin/bash

# Abinit dependencies

apt-get update
apt-get -y install gcc g++ gfortran
apt-get -y install build-essential gfortran
apt-get -y install libblas-dev
apt-get -y install libblas-test
apt-get -y install libnetcdf-dev
apt-get -y install libatlas-base-dev
apt-get -y install liblapack-dev
apt-get -y install fftw3
apt-get -y install libfftw3-dev
apt-get -y install openmpi-bin
apt-get -y install libopenblas-base
apt-get -y install libopenblas-dev
apt-get -y install libxc-dev
apt install mpi-default-dev -y
apt install libnetcdff-dev libpnetcdf-dev -y
apt-get install libomp-dev -y
apt-get -y install wannier90 

###Python installation and symbolic link
apt-get install software-properties-common -y
echo -ne '\n' | add-apt-repository ppa:deadsnakes/ppa
apt-get update
apt-get install python3
ln -s /usr/bin/python3 /usr/bin/python
apt install python3-dev -y


# Abinit directory

cd $HOME && mkdir src && cd src
apt-get install wget -y
wget https://www.abinit.org/sites/default/files/packages/abinit-9.6.2.tar.gz && tar -xvf abinit-9.6.2.tar.gz 

In addition, I work within a “docker” container managed with ENROOT. This container supports NVIDIA and CUDA:

root@dgx-node-0-0:~/src/abinit-9.6.2# nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2020 NVIDIA Corporation
Built on Mon_Oct_12_20:09:46_PDT_2020
Cuda compilation tools, release 11.1, V11.1.105
Build cuda_11.1.TC455_06.29190527_0

Moreover, I installed NVidia HPC SDK compatible with CUDA-11.1.:

root@dgx-node-0-0:/opt/nvidia/hpc_sdk/Linux_x86_64/20.11# ls
REDIST  comm_libs  compilers  cuda  examples  math_libs  profilers

After downloading and unpacking ABINIT tarball, I made a build directory within ABINIT directory. This is the .ac file:

enable_openmp="yes"
#MPI settings
with_mpi="yes"
enable_mpi_io="yes"

#linear algebra settings
with_linalg_flavor="netlib"
LINALG_LIBS="-L/usr/lib/x86_64-linux-gnu -llapack -lblas"

#fast fourier settings
with_fft_flavor="fftw3"
FFTW3_CPPFLAGS="-I/usr/include"
FFTW3_FCFLAGS="-I/usr/include"
FFTW3_LIBS="-L/usr/lib/x86_64-linux-gnu -lfftw3 -lfftw3f"

#mandatory libraries
with_libxc="yes"
with_hdf5="yes"
with_netcdf="yes"
with_netcdf_fortran="yes"

with_gpu="/usr/local/cuda"
with_gpu_flavor="cuda-double"
GPU_CPPFLAGS="-I/usr/local/cuda-11.1/include"
GPU_FCFLAGS="-I/usr/local/cuda-11.1/include"
GPU_LIBS="-L/usr/local/cuda-11.1/lib64 -lcublas -lcufft -lcudart"

However, it did not work. This is the error:

../configure: line 10672: ${GPU_CPPFLAGS}${GPU_CFLAGS${GPU_CXXFLAGS}}${GPU_FCFLAGS}${GPU_LDFLAGS}${GPU_LIBS}: bad substitution

Would anyone have any idea why is this happening? Sorry, given that I am a new user, I am not able to share files.
Thank you kindly!
Please help :pensive:

1 Like

Hi,

Fixed in develop branch… ( typo : matching parenthesis )

In the meantime, you can edit the configure file and replace this line ( around line 10678 ) :

tmp_gpu_vars="${GPU_CPPFLAGS}${GPU_CFLAGS${GPU_CXXFLAGS}}${GPU_FCFLAGS}${GPU_LDFLAGS}${GPU_LIBS}"

by

tmp_gpu_vars="${GPU_CPPFLAGS}${GPU_CFLAGS}${GPU_CXXFLAGS}${GPU_FCFLAGS}${GPU_LDFLAGS}${GPU_LIBS}"

jmb

2 Likes

It works, thank you @beuken. :smile:

Hi,
As my workstation has only 32 CPUs I am going to compile abinit using GPUs.
I am following the same configuration you’ve done as I am having the same Linux (ubuntu).
Could you please provide us (me) with the link of the docker you used for your NVIDIA Card.
This is the NVIDIA of my workstation: NVIDIA Corporation GK104GL [Quadro K5000] (rev a1).
Do you think the docker you used would be OK for mine?
Many many thanks in advance,
Samir