GCC 5+ with CUDA and Quantum Espresso

Hello All,

Just wanted to make a quick note if you are having issues compiling QE-gpu with GCC 5+ and CUDA 7.5 (CUDA 8.0 should support GCC 5+).

I have been testing this now, and it does appear that CUDA works with GCC 5+ and QE despite the claimed incompatibility with GCC 5+. In order to install it is properly, you need to do the following steps:

Update $PATH variable

The biggest issue I have with the QE-GPU configure script is that it does not automatically include the CUDA /bin folder when configuring. Before you run the configure script, run the following:

export PATH=/usr/local/cuda/bin:$PATH

Or wherever you have your cuda installed. The configure command is explained on the QE-GPU website: https://github.com/fspiga/QE-GPU

Update CUDA

If you have GCC > 4.9 it will die during the compilation process. The QE code is GCC 4.9 compatible, but more and more GCC 5+ will be shipped with new installation of linux. To get around this, I followed the steps outlined here: https://www.pugetsystems.com/labs/hpc/NVIDIA-CUDA-with-Ubuntu-16-04-beta-on-a-laptop-if-you-just-cannot-wait-775/

But if you want to save a click, edit /usr/local/cuda/include/host_config.h and comment out line 115:

llentz@server:~/projects$ sudo vi /usr/local/cuda/include/host_config.h

line: 115 comment out error
//#error -- unsupported GNU version! gcc versions later than 4.9 are not supported!

This might not be a good idea to keep permanently, but for QE purposes, this is a nice stop-gap measure.

Edit make.sys

The last step is a compatibility issue with GCC 5+, but is a stylistic one. If you do not add this, the CUDA part will die rather unceremoniously due to an memcpy issue. This is outlined here: https://github.com/BVLC/caffe/issues/4046. This is easily remedied by adding -D_FORCE_INLINES to the NVCCFLAGS line in make.sys:

llentz@server: vi make.sys
NVCCFLAGS        = -O3 -gencode arch=compute_35,code=sm_35 -D_FORCE_INLINES

And that should allow you to completely compile the QE-GPU version of QE. In my next post I will show some interesting scaling data for QE; both for the GPU version and the non-GPU version.

Leave a Reply

Your email address will not be published. Required fields are marked *