计算化学公社

标题: 求助:GPU支持的Gromacs2018.4安装总是出错。 [打印本页]

作者
Author:
lao7    时间: 2020-11-5 18:21
标题: 求助:GPU支持的Gromacs2018.4安装总是出错。
本帖最后由 lao7 于 2020-11-5 18:24 编辑

1、按照SOB之前的教程安装GPU加速下的Gromacs 2018.4。GPU 2070s驱动和cuda已经安装,且nvidia-msi检查完全正常。cmake3、fftw也已经顺利安装。但是到编译gromacs这一步出了问题了,请看照片(黑行是命令行,下面全部是生成的进度),似乎总是cmake3编译不过去。请各位帮助提提意见,看看到底咋回事?
2、如果只不编译GPU部分,也是出现相同的错误,说明不是GPU的问题,还是编译出现的问题。但是系统都装了两次、cmake3用了网上下载升级的和离线的,都出现相同问题。
3、以前我按照SOB的视频,都安装好了,只是这次计算机一不小心升级崩溃了,重新用centos 7.6安装一次,但总是Gromacs的cmake3最后一步出错。

谢谢各位!

作者
Author:
abin    时间: 2020-11-5 19:31
错误信息是nvcc fatal那一行。
然后自己动手处理吧。
作者
Author:
lao7    时间: 2020-11-5 19:43
abin 发表于 2020-11-5 19:31
错误信息是nvcc fatal那一行。
然后自己动手处理吧。

能否给予详细指示?这是咋回事?谢谢!实在不懂咋回事。
作者
Author:
liuyuje714    时间: 2020-11-5 20:00
既然你选择高版本的cuda11.1,那么最简单的解决方法就是使用gromacs2020.4,完全兼容cuda11。如果坚持使用其他低版本gmx,就必须删掉小于等于compute_30部分的配置,具体更改文件位置是源码包中cmake文件夹下一个叫gmxManageNvccConfig.cmake文件
作者
Author:
lao7    时间: 2020-11-5 21:19
liuyuje714 发表于 2020-11-5 20:00
既然你选择高版本的cuda11.1,那么最简单的解决方法就是使用gromacs2020.4,完全兼容cuda11。如果坚持使用 ...

谢谢 我还是把cuda重新降级吧 谢谢!如果不懂我再请教您。
作者
Author:
lao7    时间: 2020-11-5 23:44
liuyuje714 发表于 2020-11-5 20:00
既然你选择高版本的cuda11.1,那么最简单的解决方法就是使用gromacs2020.4,完全兼容cuda11。如果坚持使用 ...

你说的是对的!终于搞定了。我把cuda 降到10.1就可以了。十分感谢!
作者
Author:
jimulation    时间: 2021-1-6 14:34
lao7 发表于 2020-11-5 23:44
你说的是对的!终于搞定了。我把cuda 降到10.1就可以了。十分感谢!

求教CUDA的降级方法
作者
Author:
lao7    时间: 2021-1-6 15:44
jimulation 发表于 2021-1-6 14:34
求教CUDA的降级方法

在cuda安装系统里面删除以前安装的,重新安装旧的就可以了。Cuda自带的有删除以往版本的方法,在安装选择那里。
作者
Author:
jimulation    时间: 2021-1-6 16:00
本帖最后由 jimulation 于 2021-1-6 16:10 编辑
lao7 发表于 2021-1-6 15:44
在cuda安装系统里面删除以前安装的,重新安装旧的就可以了。Cuda自带的有删除以往版本的方法,在安装选择 ...

我的/usr/local下有cuda和cuda-11.0两个文件夹,请问是直接删掉这俩吗?这俩是显卡驱动还是toolkit呀,比较懵我参照这个链接https://developer.nvidia.com/cuda-10.1-download-archive-base?target_os=Linux&target_arch=x86_64&target_distro=CentOS&target_version=7&target_type=rpmlocal中的Installation Instructions,依次执行:
sudo rpm -i cuda-repo-rhel7-10-1-local-10.1.105-418.39-1.0-1.x86_64.rpm
sudo yum clean all
sudo yum install cuda
然后在/usr/local下多了一个cuda-10.1文件夹,过程中并未提示删除已安装的内容,这个正常么?

作者
Author:
牧生    时间: 2021-1-6 16:32
本帖最后由 牧生 于 2021-1-6 16:36 编辑

补充一个比较自欺欺人的,在较低版本的gromacs使用cuda11的方法:

1、先正常步骤安装nvidia驱动(比如我的是1080TI显卡,就装NVIDIA-Linux-x86_64-440.64.run),cuda10(我用的是cuda_10.2.89_440.33.01_linux.run),gromacs 2019.6 ,保证可以正常进行运行

2、再重启机器,不卸载任何的驱动和cuda,直接在命令行界面安装最新本的驱动,且只安装驱动(比如NVIDIA-Linux-x86_64-455.23.04)

3、重启机器,那么,对于1080TI,gromacs2019.6,也显示用的cuda11了。

实际上,在使用过程中并没有什么区别。

但好处是,可以运行较低版本的gromacs。比如gromacs 2019.6,且让同一台仪器上同时使用1080TI和3090两个显卡。

作者
Author:
k64_cc    时间: 2021-1-6 16:38
牧生 发表于 2021-1-6 16:32
补充一个比较自欺欺人的,在较低版本的gromacs使用cuda11的方法:

1、先正常步骤安装nvidia驱动(比如我 ...

按理说你直接装最新驱动就行啊,cuda toolkit其实可以拿来直接用,并不需要“安装”
作者
Author:
liuyuje714    时间: 2021-1-6 16:41
本帖最后由 liuyuje714 于 2021-1-6 16:43 编辑
  1. #!/bin/bash

  2. Check_Cuda11()
  3. {
  4.     if [[ `which nvcc |grep nvcc` ]];then
  5.         cuda_version=$(nvcc --version |grep release |\
  6.         awk '{gsub(/.+release/, "", $0);gsub(/,.+$/, "" , $0);print $0+0}')
  7.         echo -e "\nCUDA version is $cuda_version"
  8.         Yes_Cuda11=`awk -v cv=$cuda_version 'BEGIN {print (cv>=11.0)}'`
  9.         if [[ $Yes_Cuda11 -eq 0 ]];then
  10.             echo "CUDA version is less than 11.0, so skip patch..."
  11.             exit 1
  12.         else
  13.             echo -e "\nPatch..."
  14.         fi
  15.     else
  16.         echo -e "\nCUDA can not be detected! Please check it"
  17.         exit 1
  18.     fi
  19. }

  20. Patch_Cuda11()
  21. {
  22.     cd ../cmake
  23.     file="gmxManageNvccConfig.cmake"
  24.     if [[ ! -f $file ]];then
  25.         echo -e "\nError! $file not found in cmake directory"
  26.         echo "Maybe your GROMACS version is too old?"
  27.     else
  28.         sed -E -i '/list.+sm_[2?3]0/d' $file
  29.         echo -e "\nPatch done!"
  30.     fi
  31. }

  32. Check_Cuda11 && Patch_Cuda11
复制代码

你们真的是够折腾的。。。低于2020.4版本的gromacs自己打个cuda11的补丁不就行了(也就是删除几行的事)。我这里提供一个,使用编译gromacs的时候把bash脚本丢到build路径下然后执行bash patch_cuda11.bsh即可。脚本内容如上

作者
Author:
牧生    时间: 2021-1-6 16:42
k64_cc 发表于 2021-1-6 16:38
按理说你直接装最新驱动就行啊,cuda toolkit其实可以拿来直接用,并不需要“安装”

因为希望用较低版本的gromacs,且同时用新旧两个显卡。

我的几次经验是,必须按照这个步骤来,否则编译gromacs不一定能通过。cuda toolkit也不一定是直接就可以拿来用。
作者
Author:
k64_cc    时间: 2021-1-6 17:16
牧生 发表于 2021-1-6 16:42
因为希望用较低版本的gromacs,且同时用新旧两个显卡。

我的几次经验是,必须按照这个步骤来,否则编 ...

你甚至可以不装driver编译成功……
作者
Author:
annaqz    时间: 2021-8-12 11:48
liuyuje714 发表于 2020-11-5 20:00
既然你选择高版本的cuda11.1,那么最简单的解决方法就是使用gromacs2020.4,完全兼容cuda11。如果坚持使用 ...

请问gromacs2020.6是否兼容cuda11.2

作者
Author:
lisanoid    时间: 2022-5-10 18:24
本帖最后由 lisanoid 于 2022-5-10 18:26 编辑
liuyuje714 发表于 2021-1-6 16:41
你们真的是够折腾的。。。低于2020.4版本的gromacs自己打个cuda11的补丁不就行了(也就是删除几行的事)。 ...

前辈你好,我用此脚本时出现报错:
patch_cuda11.bsh: line 2: $'\r': command not found
patch_cuda11.bsh: line 3: syntax error near unexpected token `$'\r''
'atch_cuda11.bsh: line 3: `Check_Cuda11()
centos7.6版本,打算杆状的gromacs是2018.8
具体操作是:将代码复制后,在win下新建的txt文档中粘贴,在复制到准备安装gromacs文件夹下的build文件夹,运行命令后即上述报错,请问这个是哪里出现问题了呢?

作者
Author:
lisanoid    时间: 2022-5-10 20:03
问题已解决,原因是给的代码里,显示有^M的换行,搜索了一下,发现是win下的文本与linux中的换行符不一致,解决方法是把脚本中内容替换一下,命令
cat patch_cuda11.bsh | tr -s "\r\n" "\n" > cuda.bsh
然后运行新命令就可以继续了。
然后再参考社长博文 http://sobereva.com/457,就可以安装cuda加速的gromacs了





欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3