计算化学公社

 找回密码 Forget password
 注册 Register
Views: 8517|回复 Reply: 13

[GROMACS] GROMACS-GPU版在WSL2-Ubuntu中的安装方法

[复制链接 Copy URL]

26

帖子

1

威望

676

eV
积分
722

Level 4 (黑子)

发表于 Post on 2021-9-29 22:00:17 | 显示全部楼层 Show all |阅读模式 Reading model
本帖最后由 Medivan 于 2022-4-6 09:19 编辑

首发于:2021/09/30    更新于:2022/04/06

……
  

目前NVIDIA只提供了WSL-Ubuntu驱动包,其他发行版可以使用只安装cuda-toolkit-版本号的方法,runfile都是同一个
  
vm等虚拟机无法使用此方法来使用实体机GPU,不可照搬
   
除了此方法还可以用Nvidia-docker调用gpu,gmx-docker官方也是有提供的
  

一、在Windows下安装cuda on wsl 驱动  
cuda on wsl  
无核显用户请在安装驱动包时请勾选清洁安装以减少出现不必要的麻烦;  
有核显用户请先用DDU将独显驱动卸载干净。  

二、WSL2的环境搭建  
1、安装Ubuntu,18.04或20.04都行
在win下已经安装cuda for wsl后,在进入linux后使用非root用户输入 nvidia-smi 命令即可查看到GPU状态。  
注:root用户无法直接使用nvidia-smi查看GPU信息!  

进行下文操作前请用su命令转换成root用户。若不方便,请获取sudo权限,并在下列命令中灵活使用sudo。  
建议在用户目录下新建文件夹存放安装包,如:  
非root用户home目录下或root目录下:mkdir softPackage  
使用wget、git等下载包时cd进入softPackage文件夹再运行命令,即可默认下载到当前softPackage目录  
使用root安装软件xxx,建议安装在 /usr/local/xxx路径下以便管理和其他用户的使用。  
   
2、安装cuda toolkit:  
参考官网 Building Your Own GPU-accelerated Application on WSL 2  
NVIDIA提供了两种安装方法,一种是直接装WSL-Ubuntu的cuda,一种是装正常Ubuntu的cuda,但是只装cuda-toolkit-版本号  
  
以ubuntu20.04下安装cuda-11.4为例  
  
# 方法一,装cuda-wsl-ubuntu
wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin  
sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600  
wget https://developer.download.nvidia.com/compute/cuda/11.4.0/local_installers/cuda-repo-wsl-ubuntu-11-4-local_11.4.0-1_amd64.deb  
sudo dpkg -i cuda-repo-wsl-ubuntu-11-4-local_11.4.0-1_amd64.deb  
sudo apt-key add /var/cuda-repo-wsl-ubuntu-11-4-local/7fa2af80.pub  
sudo apt-get update  
sudo apt-get -y install cuda  
  
  
# 方法二,装cuda-toolkit-11-4(Ubuntu-20.04)
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin  
sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600  
wget https://developer.download.nvidia.com/compute/cuda/11.4.0/local_installers/cuda-repo-ubuntu2004-11-4-local_11.4.0-470.42.01-1_amd64.deb   
sudo dpkg -i cuda-repo-ubuntu2004-11-4-local_11.4.0-470.42.01-1_amd64.deb  
sudo apt-key add /var/cuda-repo-ubuntu2004-11-4-local/7fa2af80.pub  
sudo apt-get update  
后面一步与实体机linux装cuda不同,需要选择toolkit且指定版本号
sudo apt-get install -y cuda-toolkit-11-4  
  
  
# 以上两种方法装完后都需要修改.bashrc  
export PATH=$PATH:/usr/local/cuda-11.4/bin  
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.4/lib64  
此时重启终端后已经可以使用nvcc --version查看cuda toolkit版本。   
  
  
在cuda版本号上有其他需求请自行更改命令。  
NVIDIA-search搜索CUDA Toolkit 11.x wsl-ubuntu即可查看到相关命令(x为你所需要的版本号)
  
11.1.011.2.011.3.011.4.311.5.111.6.0   
  
选择linux - x86_64 - WSL-Ubuntu - 2.0 - deb(local)即为方法一  
选择linux - x86_64 - Ubuntu - 18.04or20.04 - deb(local)即为方法二,务必注意方法二只需安装toolkit!  
  
多个版本的cuda可以共存,在.bashrc中更改PATH路径即可  
需注意在/usr/local/cuda以及/usr/local/cuda-11均为指向你最后安装的cudu版本的软链接  
我在后文gmx安装中使用的是具体到版本号的实际安装文件夹/usr/local/cuda-11.4而没有使用上述两个软链接  
  
  
三、WSL2下安装Gromacs  参考社长 http://bbs.keinsci.com/thread-11821-1-1.html  
注1:需下载2020.x及以上版本,早期版本无法正确识别wsl下的GPU。下文以2020.6为例。Ubuntu20.04同样适用。  
注2:目前apt默认安装的cmake版本>3.13,可以安装2021.x,理论上版本越新加速效果越好。
注3:-DCMAKE_INSTALL_PREFIX是gmx安装路径;-DGMX_GPU=ON开启GPU检测;-DCUDA_TOOLKIT_ROOT_DIR是=前面cuda toolkit的安装路径,先前使用apt安装则默认安装在/usr/local/下。  
注4:若编译过程中出现错误中止,请查看报错信息自行检查纠正,并在下一次make前先执行 make clean。

1、安装cmake:
# 命令如下,apt默认安装路径在usr/bin下  
sudo apt-get install -y cmake  
  
2、安装fftw:
# 进入1所述的softPackage目录  
cd ~/softPackage  
# 获取安装包  
wget http://www.fftw.org/fftw-3.3.8.tar.gz  
# 解压到当前目录  
tar -xzvf fftw-3.3.8.tar.gz  
# 进入fftw目录  
cd fftw-3.3.8  
# 设置编译安装路径,建议安装在/usr/local/fftw338下,CPU不支持AVX2则删除--enable-avx2  
./configure --prefix=/usr/local/fftw338 --enable-sse2 --enable-avx --enable-float --enable-shared --enable-avx2  
# 编译安装
make install -j  
# 修改.bashrc  
export PATH=$PATH:/usr/local/fftw338/bin  
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/fftw338/lib  

3、安装Gromacs  
# 进入softPackage目录
cd softPackage  
# 获取安装包  
wget ftp://ftp.gromacs.org/gromacs/gromacs-2020.6.tar.gz  
tar -xzvf gromacs-2020.6.tar.gz  
cd gromacs-2020.6  
# 编译  
mkdir build  
cd build  
export CMAKE_PREFIX_PATH=/usr/local/fftw338  
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/gmx2020.6 -DGMX_USE_RDTSCP=ON -DGMX_GPU=ON -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-11.4 装了其他版本的记得改尾号)
make -j  
make check  
make install  
#无报错后在.bashrc中加入  
# gmx2020.6  
source /usr/local/gmx2020.6/bin/GMXRC  


保存退出,重启终端  

输入gmx --version可以看到版本输出

done,enjoy  




评分 Rate

参与人数
Participants 6
威望 +1 eV +25 收起 理由
Reason
ahxb + 5 谢谢分享
SANSLEAKING + 5
Aridea + 5 GJ!
zsu007 + 5 谢谢分享
sobereva + 1
puzhongji + 5 精品内容

查看全部评分 View all ratings

26

帖子

1

威望

676

eV
积分
722

Level 4 (黑子)

 楼主 Author| 发表于 Post on 2021-10-14 15:35:46 | 显示全部楼层 Show all
本帖最后由 Medivan 于 2022-2-17 17:59 编辑

有WSL2以及WSLg后在使用gmx以及后续处理时非常舒适,相当于实体机ubuntu了  
在windows上使用有图形化界面的64位vmd  
apt install grace后可以直接调用xmgrace  

wslg报错的解决方法诸位可以看这里http://bbs.keinsci.com/thread-27112-1-1.html

就是界面与win11风格不统一强迫症会不适  

312

帖子

1

威望

3106

eV
积分
3438

Level 5 (御坂)

发表于 Post on 2021-10-15 08:54:00 | 显示全部楼层 Show all
WSL2自带GUI,可能是很多一批人升级win11的主要动力。

114

帖子

0

威望

767

eV
积分
881

Level 4 (黑子)

发表于 Post on 2021-11-2 05:05:02 | 显示全部楼层 Show all
亲测比虚拟机好用多了,WSL2+WSLg真是神器。

26

帖子

0

威望

2199

eV
积分
2225

Level 5 (御坂)

发表于 Post on 2021-11-2 05:15:09 | 显示全部楼层 Show all
请问有测试过wsl里gpu加速的效率吗?和原生Ubuntu比起来怎么样

116

帖子

0

威望

1387

eV
积分
1503

Level 5 (御坂)

发表于 Post on 2021-11-9 16:32:59 | 显示全部楼层 Show all
所以现在建议升级win11么

49

帖子

0

威望

380

eV
积分
429

Level 3 能力者

发表于 Post on 2021-12-17 10:28:35 | 显示全部楼层 Show all
你好,想请教一下,为何我在win下安装完Ubuntu-WSL2,cmd可以显示smidia-smi和nvcc -V,但是在linux下nvidia-smi提示:
Failed to initialize NVML: GPU access blocked by the operating system
Failed to properly shut down NVML: GPU access blocked by the operating system
这个错?linux未安装驱动,装完cuda,nvcc -V可正常显示,但nvidia-smi依旧报错如上。
uname -r :5.10.60.1
win版本:20H2(家庭版)
操作系统内部版本:19042.1415
linux为18.04

26

帖子

1

威望

676

eV
积分
722

Level 4 (黑子)

 楼主 Author| 发表于 Post on 2021-12-17 16:43:24 | 显示全部楼层 Show all
冷血 发表于 2021-12-17 10:28
你好,想请教一下,为何我在win下安装完Ubuntu-WSL2,cmd可以显示smidia-smi和nvcc -V,但是在linux下nvidi ...

大概率是windows版本问题,最好win10-21H2以上或者直接win11

26

帖子

1

威望

676

eV
积分
722

Level 4 (黑子)

 楼主 Author| 发表于 Post on 2021-12-17 16:47:05 | 显示全部楼层 Show all
nianbin 发表于 2021-11-9 16:32
所以现在建议升级win11么

我是选了dev,这几个月体验下来除了吐槽许久的磁贴、右键问题,以及遇上了两次莫名其妙的绿屏,其他方面用起来还挺舒服,文件管理器卡顿的问题已经不存在了

26

帖子

1

威望

676

eV
积分
722

Level 4 (黑子)

 楼主 Author| 发表于 Post on 2021-12-17 16:49:18 | 显示全部楼层 Show all
zhouoh 发表于 2021-11-2 05:15
请问有测试过wsl里gpu加速的效率吗?和原生Ubuntu比起来怎么样

不用测都知道是原生系统显卡直通效率高,wsl毕竟是虚拟机,但好在同机windows和linux可以一起用且不用通过第三方软件

1464

帖子

1

威望

2591

eV
积分
4075

Level 6 (一方通行)

喵星人

发表于 Post on 2021-12-19 20:03:27 | 显示全部楼层 Show all
Medivan 发表于 2021-12-17 16:49
不用测都知道是原生系统显卡直通效率高,wsl毕竟是虚拟机,但好在同机windows和linux可以一起用且不用通 ...

效率已经相当高了,同机器测下来90%左右

114

帖子

0

威望

2431

eV
积分
2545

Level 5 (御坂)

发表于 Post on 2022-3-8 13:09:44 | 显示全部楼层 Show all
请问楼主,我在ubuntu2004里面make install的时候报错是怎么回事呢?gcc版本太高了?


...
...
...
/home/xx/anaconda3/envs/cp2k/x86_64-conda-linux-gnu/include/c++/9.3.0/optional(1230): error: too few template parameters -- does not match previous declaration (declared
/home/xx/anaconda3/envs/cp2k/x86_64-conda-linux-gnu/include/c++/9.3.0/array(243): here)

/home/xx/anaconda3/envs/cp2k/x86_64-conda-linux-gnu/include/c++/9.3.0/optional(1230): error: expected a ";"

/home/xx/anaconda3/envs/cp2k/x86_64-conda-linux-gnu/include/c++/9.3.0/bits/unordered_map.h(1151): error: argument list for class template "std::unordered_map" is missing

/home/xx/anaconda3/envs/cp2k/x86_64-conda-linux-gnu/include/c++/9.3.0/bits/unordered_map.h(1151): error: expected a ")"

/home/xx/anaconda3/envs/cp2k/x86_64-conda-linux-gnu/include/c++/9.3.0/bits/unordered_map.h(1151): error: template parameter "_InputIterator" may not be redeclared in this scope

/home/xx/anaconda3/envs/cp2k/x86_64-conda-linux-gnu/include/c++/9.3.0/bits/unordered_map.h(1152): error: expected a ";"

/home/xx/anaconda3/envs/cp2k/x86_64-conda-linux-gnu/include/c++/9.3.0/bits/unordered_map.h(1164): error: argument list for class template "std::unordered_map" is missing

Error limit reached.
100 errors detected in the compilation of "/opt/softs/gromacs-2020.6/src/gromacs/nbnxm/cuda/nbnxm_cuda.cu".
Compilation terminated.
CMake Error at libgromacs_generated_nbnxm_cuda.cu.o.Release.cmake:280 (message):
  Error generating file
  /opt/softs/gromacs-2020.6/build/src/gromacs/CMakeFiles/libgromacs.dir/nbnxm/cuda/./libgromacs_generated_nbnxm_cuda.cu.o


make[2]: *** [src/gromacs/CMakeFiles/libgromacs.dir/build.make:65: src/gromacs/CMakeFiles/libgromacs.dir/nbnxm/cuda/libgromacs_generated_nbnxm_cuda.cu.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:4200: src/gromacs/CMakeFiles/libgromacs.dir/all] Error 2
make: *** [Makefile:163: all] Error 2

26

帖子

1

威望

676

eV
积分
722

Level 4 (黑子)

 楼主 Author| 发表于 Post on 2022-3-10 19:07:37 | 显示全部楼层 Show all
neocc 发表于 2022-3-8 13:09
请问楼主,我在ubuntu2004里面make install的时候报错是怎么回事呢?gcc版本太高了?

不是很懂是什么问题,我安装时gcc版本都是用9.4.0了,应该不是这个问题。可能和anaconda的环境有关。建议单独发帖问一下。
另不需gpu的话版本建议选2018.8,要gpu加速的话gmx版本越新加速效果越好。

35

帖子

0

威望

1091

eV
积分
1126

Level 4 (黑子)

发表于 Post on 2022-4-8 18:18:57 | 显示全部楼层 Show all
记录一下自己折腾的过程中遇到的问题:
点进cuda on wsl的链接后默认装最新驱动,目前对应的CUDA版本为11.4,需要注意驱动版本与CUDA版本对应
在Ubuntu 20.04 LTS中编译gromacs时,执行cmake那一句前需要执行sudo apt-get install python3-dev,否则会报错
由于WSL2的特性,用全核编译可能因内存不足报错,可适当降低并行核数

评分 Rate

参与人数
Participants 1
eV +1 收起 理由
Reason
Medivan + 1

查看全部评分 View all ratings

本版积分规则 Credits rule

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2023-2-2 21:53 , Processed in 0.429319 second(s), 22 queries .

快速回复 返回顶部 返回列表 Return to list