Dear Ryan,
On Thu, Jan 30, 2020 at 11:31 PM Ryan Woltz <rlwo...@ucdavis.edu> wrote: > Dear Szilárd, > > Thank you so much for your help. I performed the following steps > and it seems to have built successfully, I'll let you know if it does not > run correctly as well. > > rm -r gromacs-2020/ > sudo apt-get install gcc-8 g++-8 > tar -xvzf gromacs-2020.tar.gz > cd gromacs-2020/ > mkdir build > cd build > CMAKE_PREFIX_PATH=/usr/:/usr/local/cuda/ cmake ../ -DGMX_BUILD_OWN_FFTW=ON > -DREGRESSIONTEST_DOWNLOAD=ON -DGMX_GPU=ON > -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda/ -DCMAKE_BUILD_TYPE=release > Note that you are still using the _default_ gcc installation, that is gcc 7 on Ubuntu 18.04. You should see on the first line on the console when you run cmake something like: -- The C compiler identification is GNU 7.4.0 -- The CXX compiler identification is GNU 7.4.0 which will clearly indicate the version of the compiler detected. Unless you tell cmake to use the apt-get installed gcc-8, it will not use it (and you can also verify that by inspecting the CMAKE_CXX_COMPILER string in the CMakeCache.txt file). make > make check > sudo make install > source /usr/local/gromacs/bin/GMXRC > > Lastly, when I was building in default and ran into trouble I like to build > in debug so it gives details about building and helps me identify source of > the problems or identify relevant information to pass to you so you can > better help me. I appreciate your comment about not building in debugging > mode, but is there a way to run release in verbose mode? When I had > problems with other programs I'd usually build my first time in debugger > mode so I can monitor the process, then make clean and rebuild in default. > Is there a better way to do this? > A "Debug" build (i.e. when you use CMAKE_BUILD_TYPE=Debug), is useful to compile a program for running in a debugger (like gdb). You seem to instead want a way to "debug" build-time issues. A debug build will not help in that, you will not get additional information about compilation issues. You can run "make VERBOSE=1" (regadless of the build type) with makefiles generated by cmake to get a detailed information on the commands executed during the build, but unless you have a compile- or link-time failure that you want to track down that sea of output is generally not too useful. Configure-time errors are stored by cmake in files listed after the usual "-- Configuring incomplete, errors occurred!" error (files called CMakeOutput/CMakeError.txt). > Once again you help was greatly appreciated, > > Ryan > > PS again a few notes (if you have time to comment on anything incorrect) I > have for people needing a fix in the future and maybe myself if I do this > again in a few years and forget how. > > CUDA version (nvcc --version) is 9.1. This is a little confusing to me > because you referenced CUDA 10.1 and I completely rebuilt this computer in > September 2019, so unless there is a new driver since then it should be > 10.1? I grabbed the newest drivers I could find but my computer is > outputting 9.1 so I guess that is my version. > CUDA is not (just) the drivers, it is a number of software components that allow compiling for and runnig computation on the GPU: - the CUDA toolkit, latest of which is version 10.2 (as you can see here: https://developer.nvidia.com/cuda-downloads?target_os=Linux), but the Ubuntu 18.04 repositories seem to only have 9.1 - a display driver, confusingly versioned with numbers like 418.88 or 430.35, the Ubuntu packages are called "nvidia-driver-VERSION" These two of course have to be compatible, so if you decide to download the CUDA 10.2 installer from NVIDIA, this will include a compatible driver. Be careful to completely remove the NVIDIA drivers installed from the Ubuntu repositories prior to installing sofware with the NVIDIA installer! when building gromacs and I specify gcc/g++ verison 5, 8, or 9 it fails > with the original error message regarding glibc 23.2. > > CMAKE_PREFIX_PATH=/usr/:/usr/local/cuda/ cmake ../ > -DGMX_GPLUSPLUS_PATH=/usr/bin/g++-8 -DCUDA_HOST_COMPILER=gcc-8 > -DCMAKE_CXX_COMPILER=g++-8 -DCMAKE_C_COMPILER=/usr/bin/gcc-8 > -DGMX_BUILD_OWN_FFTW=ON -DREGRESSIONTEST_DOWNLOAD=ON -DGMX_GPU=ON > -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda/ -DCMAKE_BUILD_TYPE=release > Not sure, but if you want to investigate further, I suggest to start with installing a more recent CUDA toolkit version, 9.1 is already about two years old. Cheers, -- Szilárd > Do you know why this is? When I started this adventure I just had sudo > apt-get install gcc g++ build-essentials. Then I used gcc-5 g++-5 and > specified the version in the build step, which failed. after taking that > out and running sudo apt-get install gcc-9 g++-9 it passes "CMAKE" but > fails in "make". Based on your suggestions I ran the commands at the top of > the email to which then worked. Would this have worked if I had just > installed gcc-8 g++-8 from the beginning and ran CMAKE with no version > specification? > > > On Thu, Jan 30, 2020 at 5:50 AM Szilárd Páll <pall.szil...@gmail.com> > wrote: > > > Dear Ryan, > > > > On Wed, Jan 29, 2020 at 10:35 PM Ryan Woltz <rlwo...@ucdavis.edu> wrote: > > > > > Dear Szilárd, > > > > > > Thank you for your quick response. You are correct, after > > > issuing sudo apt-get install gcc-9 g++-9 CMake was run with: > > > > > > > gcc 9 is not supported with CUDA, as far as I know version 8 is the > latest > > supported gcc in CUDA 10.2 (officially "native support" whatever they > mean > > by that is for 7.3 on Ubuntu 18.04.3, see > > https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html) > > > > CMAKE_PREFIX_PATH=/usr/:/usr/local/cuda/ cmake ../ > -DGMX_BUILD_OWN_FFTW=ON > > > -DREGRESSIONTEST_DOWNLOAD=ON -DGMX_GPU=ON > > > -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda/ -DCMAKE_BUILD_TYPE=Debug > > > > > > > Don't use a Debug build unless you want to debug the GROMACS tools (it's > > slow). > > > > Make sure that you cmake configuration does actually use the gcc version > > you intend to use. The default invocation as above will pick up the > default > > compiler toolchain (e.g. /us/bin/gcc in your case, you can verify that by > > opening the CMakeCache.txt file or using ccmake) -- and I think the lack > of > > proper AVX512 support in your default gcc 5 (which you are stil; using) > is > > the source of the issues you report below. > > > > You can explicitly set the compiler by passing CMAKE_CXX_COMPILER at the > > configure step; for details see > > > > > http://manual.gromacs.org/current/install-guide/index.html?highlight=cxx%20compiler#typical-installation > > > > Cheers, > > -- > > Szilárd > > > > > > > However now I'm getting an error in make > > > > > > make VERBOSE=1 > > > > > > error: > > > > > > [ 25%] Building CXX object > > > > > > > > > src/gromacs/CMakeFiles/libgromacs.dir/nbnxm/kernels_simd_2xmm/kernel_ElecEwTwinCut_VdwLJEwCombGeom_F.cpp.o > > > In file included from > > > > > > > > > /home/rlwoltz/protein_modeling/gromacs-2020/src/gromacs/simd/impl_x86_avx_512/impl_x86_avx_512.h:46:0, > > > from > > > > /home/rlwoltz/protein_modeling/gromacs-2020/src/gromacs/simd/simd.h:146, > > > from > > > > > > > > > /home/rlwoltz/protein_modeling/gromacs-2020/src/gromacs/nbnxm/nbnxm_simd.h:40, > > > from > > > > > > > > > /home/rlwoltz/protein_modeling/gromacs-2020/src/gromacs/nbnxm/kernels_simd_2xmm/kernel_ElecEwTwinCut_VdwLJEwCombGeom_F.cpp:49: > > > > > > > > > /home/rlwoltz/protein_modeling/gromacs-2020/src/gromacs/simd/impl_x86_avx_512/impl_x86_avx_512_util_float.h: > > > In function ‘void gmx::gatherLoadTransposeHsimd(const float*, const > > float*, > > > const int32_t*, gmx::SimdFloat*, gmx::SimdFloat*) [with int align = 2; > > > int32_t = int]’: > > > > > > > > > /home/rlwoltz/protein_modeling/gromacs-2020/src/gromacs/simd/impl_x86_avx_512/impl_x86_avx_512_util_float.h:422:28: > > > error: the last argument must be scale 1, 2, 4, 8 > > > tmp1 = _mm512_castpd_ps( > > > ^ > > > > > > > > > /home/rlwoltz/protein_modeling/gromacs-2020/src/gromacs/simd/impl_x86_avx_512/impl_x86_avx_512_util_float.h:424:28: > > > error: the last argument must be scale 1, 2, 4, 8 > > > tmp2 = _mm512_castpd_ps( > > > ^ > > > src/gromacs/CMakeFiles/libgromacs.dir/build.make:13881: recipe for > target > > > > > > > > > 'src/gromacs/CMakeFiles/libgromacs.dir/nbnxm/kernels_simd_2xmm/kernel_ElecEwTwinCut_VdwLJEwCombGeom_F.cpp.o' > > > failed > > > make[2]: *** > > > > > > > > > [src/gromacs/CMakeFiles/libgromacs.dir/nbnxm/kernels_simd_2xmm/kernel_ElecEwTwinCut_VdwLJEwCombGeom_F.cpp.o] > > > Error 1 > > > CMakeFiles/Makefile2:2910: recipe for target > > > 'src/gromacs/CMakeFiles/libgromacs.dir/all' failed > > > make[1]: *** [src/gromacs/CMakeFiles/libgromacs.dir/all] Error 2 > > > Makefile:162: recipe for target 'all' failed > > > make: *** [all] Error 2 > > > > > > after doing a 1 hour google I found discussions saying that the error > > > (Makefile:162: recipe for target 'all' failed) is too vague with no > > general > > > solution. I found fixes for headers and other files for other programs > > but > > > not fixes for this file. The fix linked below is for gromacs-2018 and a > > > different file but the general problem seems to suggest it still is a > > > gcc/g++ version compatibility error correct? Any suggestions for this > > > error? > > > > > > https://redmine.gromacs.org/issues/2312 > > > > > > > > > Thank you so much, > > > > > > Ryan > > > > > > PS Just to document for anyone else going through what I did for > > > Gromacs-2020 these were my steps. > > > > > > sudo apt-get install gcc g++ > > > cmake ../ -DGMX_BUILD_OWN_FFTW=ON -DREGRESSIONTEST_DOWNLOAD=ON > > -DGMX_GPU=ON > > > > > > I then received multiple errors complaining about nvcc/C++ > > > incompatibility. After researching found errors for previous gromacs > > > versions suggesting to use gcc-5 (but as you suggested this error has > > been > > > patched). > > > > > > sudo apt-get install gcc-5 g++-5 > > > CMAKE_PREFIX_PATH=/usr/:/usr/local/cuda/ cmake ../ > > > -DGMX_GPLUSPLUS_PATH=/usr/bin/g++-5 -DCUDA_HOST_COMPILER=gcc-5 > > > -DCMAKE_CXX_COMPILER=g++-5 -DCMAKE_C_COMPILER=/usr/bin/gcc-5 > > > -DGMX_BUILD_OWN_FFTW=ON -DREGRESSIONTEST_DOWNLOAD=ON -DGMX_GPU=ON > > > -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda/ -DCMAKE_BUILD_TYPE=Debug > > > -D_FORCE_INLINES=OFF > > > > > > Received different error described in previous email and solved with > your > > > suggested solution. The key might be to specifically install latest > > version > > > number i.e. > > > > > > sudo apt-get install gcc-X g++-X (with X being the largest number > > > available). > > > > > > > > > > > > > > > On Wed, Jan 29, 2020 at 2:05 AM Szilárd Páll <pall.szil...@gmail.com> > > > wrote: > > > > > > > Hi Ryan, > > > > > > > > The issue you linked has been worked around in the build system, so > my > > > > guess is that the issue you are seeing is not related. > > > > > > > > I would recommend that you update your software stack to the latest > > > version > > > > (both CUDA 9.1 and gcc 5 are a few years old). On Ubuntu 18.04 you > > should > > > > be able to get gcc 8 through the package manager. Together with > > > > upgrading to the latest CUDA might well solve your issues. > > > > > > > > Let us know if that worked! > > > > > > > > Cheers, > > > > -- > > > > Szilárd > > > > > > > > > > > > On Wed, Jan 29, 2020 at 12:14 AM Ryan Woltz <rlwo...@ucdavis.edu> > > wrote: > > > > > > > > > Hello Gromacs experts, > > > > > > > > > > First things first, I apologize for any double post but I > > > just > > > > > joined the community so I'm very new and only found 1-2 posts > related > > > to > > > > my > > > > > problem but the solutions did not work. I have been doing MD for > > about > > > > > 6-months using NAMD but want to also try out Gromacs. That being > > said I > > > > am > > > > > slightly familiar with CPU modeling programs like Rosetta, but I am > > > > totally > > > > > lost when it comes to fixing errors using GPU accelerated code for > > > CUDA. > > > > I > > > > > did find that at one point my error was fixed for an earlier > version > > of > > > > > Gromacs but Gromacs-2020 may have resurfaced the same error again, > > here > > > > is > > > > > what I think my error is: > > > > > > > > > > https://redmine.gromacs.org/issues/1982 > > > > > > > > > > I am running Ubuntu 18.04.03 LTS, and gromacs-2020 I did > > initially > > > > have > > > > > the gcc/nvcc incompatible but I think installing and using > > gcc-5/g++-5 > > > > > version command in cmake has fixed that issue. I have a NVIDIA card > > > with > > > > > CUDA-9.1 driver when I type nvcc --version. > > > > > > > > > > my cmake command is as follows: > > > > > > > > > > CMAKE_PREFIX_PATH=/usr/:/usr/local/cuda/ cmake ../ > > > > > -DGMX_GPLUSPLUS_PATH=/usr/bin/g++-5 -DCUDA_HOST_COMPILER=gcc-5 > > > > > -DCMAKE_CXX_COMPILER=g++-5 -DCMAKE_C_COMPILER=/usr/bin/gcc-5 > > > > > -DGMX_BUILD_OWN_FFTW=ON -DREGRESSIONTEST_DOWNLOAD=ON -DGMX_GPU=ON > > > > > -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda/ -DCMAKE_BUILD_TYPE=Debug > (I > > > did > > > > > try adding -D_FORCE_INLINES= based on the link above in my running > > > > command > > > > > but it did not work). I did look at the error log but it is way > over > > my > > > > > head. I have in addition deleted the CMakeCache.txt file or the > > > unpacked > > > > > Gromacs and re-unzipped it to restart the cmake process to make > sure > > it > > > > was > > > > > starting "clean". Is there any additional information I could > > provide? > > > > Does > > > > > anyone have a suggestion? Again I'm sorry if this is a duplicate, > > > > > everything I found on other sites was way over my head and I > > generally > > > > > understand what is going on but the forums I read on possible > > solutions > > > > > seem way over my head and I'm afraid I will break the driver if I > > > attempt > > > > > them (which has happened to me already and the computer required a > > full > > > > > reinstall). > > > > > > > > > > here is last lines from the build: > > > > > > > > > > -- Found HWLOC: /usr/lib/x86_64-linux-gnu/libhwloc.so (found > suitable > > > > > version "1.11.6", minimum required is "1.5") > > > > > -- Looking for C++ include pthread.h > > > > > -- Looking for C++ include pthread.h - found > > > > > -- Atomic operations found > > > > > -- Performing Test PTHREAD_SETAFFINITY > > > > > -- Performing Test PTHREAD_SETAFFINITY - Success > > > > > -- Adding work-around for issue compiling CUDA code with glibc 2.23 > > > > > string.h > > > > > -- Check for working NVCC/C++ compiler combination with nvcc > > > > > '/usr/local/cuda/bin/nvcc' > > > > > -- Check for working NVCC/C compiler combination - broken > > > > > -- /usr/local/cuda/bin/nvcc standard output: '' > > > > > -- /usr/local/cuda/bin/nvcc standard error: > > > > > '/home/rlwoltz/protein_modeling/gromacs-2020/build/gcc-5: No such > > file > > > > or > > > > > directory > > > > > ' > > > > > CMake Error at cmake/gmxManageNvccConfig.cmake:189 (message): > > > > > CUDA compiler does not seem to be functional. > > > > > Call Stack (most recent call first): > > > > > cmake/gmxManageGPU.cmake:207 (include) > > > > > CMakeLists.txt:577 (gmx_gpu_setup) > > > > > > > > > > > > > > > -- Configuring incomplete, errors occurred! > > > > > See also > > > > > > > > > > > > > > > > > > > > "/home/rlwoltz/protein_modeling/gromacs-2020/build/CMakeFiles/CMakeOutput.log". > > > > > See also > > > > > > > > > > > > > > > > > > > > "/home/rlwoltz/protein_modeling/gromacs-2020/build/CMakeFiles/CMakeError.log". > > > > > -- > > > > > Gromacs Users mailing list > > > > > > > > > > * Please search the archive at > > > > > http://www.gromacs.org/Support/Mailing_Lists/GMX-Users_List before > > > > > posting! > > > > > > > > > > * Can't post? Read http://www.gromacs.org/Support/Mailing_Lists > > > > > > > > > > * For (un)subscribe requests visit > > > > > https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-users > > or > > > > > send a mail to gmx-users-requ...@gromacs.org. > > > > > > > > > -- > > > > Gromacs Users mailing list > > > > > > > > * Please search the archive at > > > > http://www.gromacs.org/Support/Mailing_Lists/GMX-Users_List before > > > > posting! > > > > > > > > * Can't post? Read http://www.gromacs.org/Support/Mailing_Lists > > > > > > > > * For (un)subscribe requests visit > > > > https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-users > or > > > > send a mail to gmx-users-requ...@gromacs.org. > > > -- > > > Gromacs Users mailing list > > > > > > * Please search the archive at > > > http://www.gromacs.org/Support/Mailing_Lists/GMX-Users_List before > > > posting! > > > > > > * Can't post? Read http://www.gromacs.org/Support/Mailing_Lists > > > > > > * For (un)subscribe requests visit > > > https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-users or > > > send a mail to gmx-users-requ...@gromacs.org. > > -- > > Gromacs Users mailing list > > > > * Please search the archive at > > http://www.gromacs.org/Support/Mailing_Lists/GMX-Users_List before > > posting! > > > > * Can't post? Read http://www.gromacs.org/Support/Mailing_Lists > > > > * For (un)subscribe requests visit > > https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-users or > > send a mail to gmx-users-requ...@gromacs.org. > -- > Gromacs Users mailing list > > * Please search the archive at > http://www.gromacs.org/Support/Mailing_Lists/GMX-Users_List before > posting! > > * Can't post? Read http://www.gromacs.org/Support/Mailing_Lists > > * For (un)subscribe requests visit > https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-users or > send a mail to gmx-users-requ...@gromacs.org. -- Gromacs Users mailing list * Please search the archive at http://www.gromacs.org/Support/Mailing_Lists/GMX-Users_List before posting! * Can't post? Read http://www.gromacs.org/Support/Mailing_Lists * For (un)subscribe requests visit https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-users or send a mail to gmx-users-requ...@gromacs.org.