计算化学公社

标题: WSL2下gpu版lammps编译详细版 [打印本页]

作者
Author:
zzzhoujm    时间: 2022-1-27 22:21
标题: WSL2下gpu版lammps编译详细版
本帖最后由 zzzhoujm 于 2022-1-27 23:33 编辑

鉴于课题组公用电脑需要做comsol以及连接了两台OM,实在无力做双系统,考虑到win11下wsl2对比linux牺牲相当的小性能,于是觉得wsl也是一个非常不错的选择。在网上没有有关于利用WSL2编译gpu版lammps少之又少,而且多是传统编译(我尝试了三天各种姿势死活都没过gpu包),因此决定学习用cmake编译,虽然还是踩了不少坑但是最终还是编译成功了,在此分享一下。第一次发帖,水平不如大佬们希望别介意。

一、安装CUDA 510.06
如果你的NVIDIA-panel 高于510.06,请千万不要头铁,一定要点击链接安装NVIDIA Drivers for CUDA on WSL。在安装完以后即可在wsl中输入nvidia-smi看到你的GPU(我在高于这个版本时输入并没有看到)。同时,请一定要确认你的版本是21H2,我在21H1的时候也试了很久。。。利用winver可以查看版本,如果你确实是21H2请善用windows更新帮手升级(只针对win10,win11并不需要)。


二、安装WSL2-UBUNTU(1804,2004,1604均可)
这个网上一搜一大把,在这就不赘述。


三、安装各种配置环境
由于wsl2不会自带任何gcc以及fftw,这里预先装好(ubuntu 每一种版本都可以,lammps对于配置环境要求跟gromacs不同)
sudo apt-get install gcc;
sudo apt-get install g++;
sudo apt-get install gfortran;
sudo apt-get install mpi-default-*
sudo apt-get install libfftw3*


四、安装CUDA-toolkit
这里主要参考了[url=GROMACS-GPU版在WSL2-Ubuntu中的安装方法 http://bbs.keinsci.com/forum.php ... 25516&fromuid=21856]GROMACS-GPU版在WSL2-Ubuntu中的安装方法[/url],在nvidia-smi下可以看到你的CUDA版本,这里以我的11.6举例 对于不同版本的CUDA还是应该去NVIDIA.cn上看一下,记得wsl2也是在linux版CUDA下面,请不要像我一样在windows下面找半天然后想骂老黄。
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.6.0/local_installers/cuda-repo-wsl-ubuntu-11-6-local_11.6.0-1_amd64.deb
sudo dpkg -i cuda-repo-wsl-ubuntu-11-6-local_11.6.0-1_amd64.deb
sudo apt-key add /var/cuda-repo-wsl-ubuntu-11-6-local/7fa2af80.pub
sudo apt-get update
sudo apt-get -y install cuda-toolkit-11-6
安装完以后通过vim ~/.bashrc 在最后加入
export PATH=$PATH:/usr/local/cuda-11.6/bin  
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.6/lib64  并重启wsl即可通过 nvcc -V 或者 nvcc --version 看到安装完成。


五、安装lammps
wget https://download.lammps.org/tars/lammps-stable.tar.gz 下载lammps 并用tar -xzf解压
mkdir build; cd build 进入build文件夹
git checkout master 这里我想在master分支下做mpi(主要是怕出错)
cmake -D  BUILD_MPI = yes -D  (这里加上你要的包如MOLECULE , MANYBODY等等)PKG_GPU = on   -D  GPU_API = cuda -D  GPU_ARCH = sm_80 -DCMAKE_LIBRARY_PATH = /usr/ local /cuda/lib64/stubs ../ cmake   这里的ARCH要看你的显卡是啥,可以通过维基百科搜索CUDA在通过你的显卡来进行判断,如果你实在不知道应该输入啥,可以去lammps/lib/gpu/Makefile.linux看两眼。
make -j  
如果在cmake期间遇到错误,请将构建的目录clean清空并重试
由于cmake编译所以lammps始终会是以lmp形式而非传统编译下的lmp_mpi或者lmp_serial出现(也省得改名了)
安装完以后同样通过vim ~/.bashrc 在最后加入
export PATH=$PATH:/home/(你的用户名)/lammps/build (如果你实在不知道是啥请用pwd)
重启wsl后大功告成!


在这里用examples里shear测试了一下 电脑是10900+3060
mpirun -np 10 条件下为 285.512ns/day
lmp -sf gpu -in 条件下为368.660ns/day
加速没有那么明显的主要原因是由于体量太小了,通过测试我个人文件(2W原子左右)加速程度在5到6倍,还是很可观的,当然我主要显卡也不行 如果3080ti想必是起飞了。




作者
Author:
brantgao    时间: 2022-4-19 16:59
请问,512版本的是不是就得回退到510.06?
作者
Author:
luzujia    时间: 2023-4-18 19:18
大佬,下面这段是不是有排版问题啊,中间是不是有换行还多了几个空格?没用过cmake,看不懂啊。





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