Ubuntu下的lammps GPU加速(真的香)

參考

Lammps實現GPU加速,博客界面很好看。

顯卡驅動安裝(本文默認爲英偉達)

- 檢查自己的驅動是否安裝成功

nvidia-smi

如果安裝成功會有如下輸出:
在這裏插入圖片描述
如果未安裝會有如下結果:

nvidia-smi command not found

- 安裝驅動

ubuntu-drivers devices  			 # 查詢所有ubuntu推薦的驅動
sudo ubuntu-drivers autoinstall

禁用nouveau driver

nouveau開源驅動,性能很差,基本都禁用它,之前安裝Ubuntu系統時,引導文件裏就進行了禁用:

sudo vi /etc/modprobe.d/blacklist.conf

最後添加:

blacklist nouveau
options nouveau modeset=0

保存退出後,終端輸入:

sudo update-initramfs -u
sudo reboot

reboot之後輸入:

lsmod | grep nouveau

無輸出代表禁用成功

CUDA Toolkit 安裝

上NVIDIA官網進行下載:CUDA Toolkit 10.2 Download,安裝流程很詳細,但是網速很感人,建議大家翻牆…
在這裏插入圖片描述
安裝完cuda之後添加環境變量:

vi .bashrc
export PATH=$PATH:/usr/local/cuda-10.2/bin

之後輸入:nvcc -V,就會以下信息:

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Wed_Oct_23_19:24:38_PDT_2019
Cuda compilation tools, release 10.2, V10.2.89

Generic Linux Makefile for CUDA文件配置

進入gpu目錄,修改Makefile.linux

cd lammps-3Mar20/lib/gpu
vim Makefile.linux

修改以下信息,符合自己的機子和計算要求即可:

CUDA_HOME = /usr/local/cuda-10.2			#注意版本
# Turing hardware
CUDA_ARCH = -arch=sm_75
CUDA_PRECISION = -D_SINGLE_DOUBLE		#我選的計算過程中的精度

hardware參數可以見維基的介紹CUDA,我的gtx 1660ti對應的Micro-architecture和Compute capability (version)分別爲Turing,7.5,所以應該選擇sm_75。
在這裏插入圖片描述
之後進行make:

make -f Makefile.linux

如果之後更改Makefile.linux 中的內容之後需要重新編譯需要先 make clean 一下:

make -f Makefile.linux clean

Lammps GPU package

cd lammps-3Mar20/src
make package-status				#查閱自己的package安裝信息
make yes-gpu					#添加gpu包
make mpi						#編譯mpi

如果編譯過mpi文件,則可以先clean一波:make clean-all,如果還是有問題,可以考慮萬能的sudo

測試

官網的例子,還是shear:

cd lammps/lammps-3Mar20/examples/shear

12線程無CPU:

mpirun -np 12 lmp_mpi < in.shear

12線程1CPU:

mpirun -np 12 lmp_mpi -sf gpu -pk gpu 1 -in in.friction

由於是小體系的example,GPU加速效果不是很明顯,甚至慢很多,但是跑自己的程序,原子數目一多,GPU加速特別明顯!!!!!!!!!!!!大概是五倍以上的速度!!!!

一萬多原子,4000步摩擦,12線程無GPU花了3:28s,12線程1GPU只花了37s,真的太香了。

每10秒輸出一次顯卡狀態:

watch -n 10 nvidia-smi

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章