[gmx-users] Installation on Ubuntu 12.04LTS
mareliber27 at yahoo.com
Sun Jun 30 01:06:17 CEST 2013
Thanks guys! I think it's working now. Just in case others may run into the same difficulties, I am summarizing below what worked for me.
I installed both gcc-4.4 and gcc-4.7 from synaptic. Then updated CUDA to 5.0, with the package "cuda_5.0.35_linux_64_ubuntu11.10-1.run" available from the nvidia site. Compiling cuda toolkit will require gcc-4.4, so I had to temporarily change some links:
sudo ln -s /usr/bin/gcc-4.4 /usr/bin/gcc
sudo ln -s /usr/bin/g++-4.4 /usr/bin/g++
Then I installed the toolkit and the samples:
sudo ./cuda_5.0.35_linux_64_ubuntu11.10-1.run -toolkit
Installing the CUDA samples required some extra packages on my system:
sudo apt-get install freeglut3
sudo ln -s /usr/lib/x86_64-linux-gnu/libglut.so.3 /usr/lib/libglut.so
sudo ./cuda_5.0.35_linux_64_ubuntu11.10-1.run -samples
Then update my .bashrc:
Finally confirm that CUDA 5.0 is the defoult compiler:
Now I changed back the gcc links to install gromacs:
sudo ln -s /usr/bin/gcc-4.7 /usr/bin/gcc
sudo ln -s /usr/bin/g++-4.7 /usr/bin/g++
CUDA apparently check which gcc version is used, and will complain for gcc version above 4.6. Gromacs on the other end will require gcc-4.7. I found a solution on a blog, and comment out the compiler-check in the CUDA header file "/usr/local/cuda-5.0/include/host_config.h"
//#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 6)
//#error -- unsupported GNU version! gcc 4.7 and up are not supported!
//#endif /* __GNUC__> 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 6) */
Now I could cmake/make/install gromacs:
cmake .. -DGMX_GPU=ON -DGMX_BUILD_OWN_FFTW=ON
sudo make install
And add the /usr/local/gromacs/bin/ directory to my path.
I am still trying to fix the issues with the intel compiler. The gcc compiled version benchmark at 52ns/day with the lysozyme in water tutorial.
From: Szilárd Páll <szilard.pall at cbr.su.se>
To: Mare Libero <mareliber27 at yahoo.com>; Discussion list for GROMACS users <gmx-users at gromacs.org>
Sent: Thursday, June 27, 2013 10:47 AM
Subject: Re: [gmx-users] Installation on Ubuntu 12.04LTS
On Thu, Jun 27, 2013 at 12:57 PM, Mare Libero <mareliber27 at yahoo.com> wrote:
> Hello everybody,
> Does anyone have any recommendation regarding the installation of gromacs 4.6 on Ubuntu 12.04? I have the nvidia-cuda-toolkit that comes in synaptic (4.0.17-3ubuntu0.1 installed in /usr/lib/nvidia-cuda-toolkit) and the drivers 304.88.
> Apparently, this is not compatible with gcc-4.5 and higher. When I issue:
> $ cmake .. -DGMX_GPU=ON -DCUDA_TOOLKIT_ROOT_DIR=/usr/lib/nvidia-cuda-toolkit -DGMX_BUILD_OWN_FFTW=ON
> $ make
> the compilation ends with:
> In file included from /usr/lib/nvidia-cuda-toolkit/include/cuda_runtime.h:59:0,
> from <command-line>:0:
> /usr/include/host_config.h:82:2: error: #error -- unsupported GNU version! gcc 4.5 and up are not supported!
> If I downgrade to gcc-4.4 this error disappears, but gromacs compilation fails with a different error:
> cc1plus: error: unrecognized command line option "-fexcess-precision=fast"
> CMake Error at cuda_tools_generated_pmalloc_cuda.cu.o.cmake:198 (message):
> Error generating
> make: *** [src/gmxlib/cuda_tools/CMakeFiles/cuda_tools.dir/./cuda_tools_generated_pmalloc_cuda.cu.o] Error 1
> make: *** [src/gmxlib/cuda_tools/CMakeFiles/cuda_tools.dir/all] Error 2
> make: *** [all] Error 2
I guess what happens is that you are using gcc 4.5 for the CPU code
and gcc 4.4 as the nvcc host compiler. However, the compiler options
used for gcc (CMAKE_CXX_FLAGS) get propagated to nvcc;
-fexcess-precision=fast is supported by gcc 4.5, but not by 4.4, hence
the error when compiling CUDA code.
> Also, I tried the Intel compilers that comes with the non-commercial Intel c++ composer XE (which I believe are recommended). The compilation produces a number of warnings, and then dies with the following error:
> $ CC=/opt/intel/bin/icc cmake .. -DGMX_GPU=ON -DCUDA_TOOLKIT_ROOT_DIR=/usr/lib/nvidia-cuda-toolkit -DGMX_BUILD_OWN_FFTW=ON
> [ 63%] Building C object share/template/CMakeFiles/template.dir/template.c.o
> make: *** No rule to make target `src/gmxlib/libgmx.so.8', needed by `share/template/template'. Stop.
> make: *** [share/template/CMakeFiles/template.dir/all] Error 2
> make: *** [all] Error 2
This should work, but CUDA 4.0 is ancient surely does not support icc
13. I suggest that you get CUDA 5.0 and use gcc 4.7 (or a new icc). If
you really want to stick to CUDA 4.0, try using gcc 4.4 as the general
C++ compiler (CMAKE_CXX_COMPILER) which should avoid the above error.
> Thanks in advance for your help,
> gmx-users mailing list gmx-users at gromacs.org
> * Please search the archive at http://www.gromacs.org/Support/Mailing_Lists/Search before posting!
> * Please don't post (un)subscribe requests to the list. Use the
> www interface or send it to gmx-users-request at gromacs.org.
> * Can't post? Read http://www.gromacs.org/Support/Mailing_Lists
More information about the gromacs.org_gmx-users