1、这里使用的是GPU库加速,没有包含Kokkos包,因为用的是RTX游戏显卡,双精度计算不行
2、我是rocky linux release 8.10 green obsidian版本系统,自带GCC8的编译器,跳过编译器安装
3、需要首先安装cuda,我这里是加载是服务器的nvhpc25的模块。记得检查环境变量是否加载好
4、openmpi-4.1.5安装
cd openmpi-4.1.5
./configure –prefix=/public/softwares/openmpi-4.1.4 –with-cuda #prefix指定安装路径, 如果提示找不到cuda,使用–with-cuda=你的cuda安装主目录
##最后导入环境变量
5、lammps编译
cd lammps安装目录/lib/gpu
vim Makefile.linux #修改以下变量
CUDA_HOME =/usr/local/cuda ##cuda安装地址
CUDA_ARCH = -arch=sm_89 ##显卡是计算性能指标,他里面都写目前已知的算力指标,把符合你显卡的指标取消注释就行。 显卡计算能力可查:https://en.wikipedia.org/wiki/CUDA#GPUs_supported
make -f Makefile.linux -j 16 #16核来编译gpu库
cd ../../src #进入到src目录下
make yes-most ##这个看自己,但几个常用的应该包含,GPU包也应该在
make no-lib
make no-ext
make package-update ##重新处理依赖关系
make mpi -j16 ##编译mpi版本
6、gpu加速lammps
配置好所有的环境变量,如下命令提交任务
mpirun -np $SLURM_NTASKS lmp_mpi -sf gpu -pk gpu 4 -in $INPUT_FILE &> runlammps.log
值得注意的是GPU计算目前好像不支持混合pair_hybrid。 ERROR: GPU package styles must not be used multiple times (../pair_hybrid.cpp:608)
参考
lammps gpu版编译(kokkos+cuda) – 知乎
[BUG] Using pair style hybrid with GPU package and neighbor lists on GPU · Issue #2621 · lammps/lammps