基于GPU的kokkos加速安装
- 基于GPU的kokkos加速安装
- 1. 安装lammps
- 2. 安装cmake
- 3. cmake相关文件修改
- 4. cmake编译
- 5. 测试
安装lammps及相关库的步骤网上很多,这里介绍在前期步骤准备好的情况下,如果in文件中包含反应力 场以及需要通过voronoi库计算应力,如何通过基于gpu架构的kokkos+openmp实现计算加速
基于GPU的kokkos加速安装
1. 安装lammps
下载lammps稳定版本安装包,在同目录下键入命令行:tar -xvzf lammpsxxx.tar.gz
2. 安装cmake
具体方法参照 ubuntu安装cmake_yuanzhoulvpi的博客-CSDN博客_ubuntu安装cmake
安装完成后cmake --version查看安装版本,which cmake 查看安装路径
3. cmake相关文件修改
在解压好的lammps目录下执行如下命令行:
mkdir build_kokkos_cuda
cd build_kokkos_cuda
修改 / c m a k e / p r e s e t s \rm /cmake/presets /cmake/presets 文件夹中的 b a s i c . m a k e \rm basic.make basic.make文件,根据自己需要安装的 p a c k a g e \rm package package 在文件中 进行修改,也可以不修改,后面在命令行中添加即可。将 k o k k o s − c u d a . c m a k e \rm kokkos-cuda.cmake kokkos−cuda.cmake文件中带有 A R C H _ G P U A R C H \rm ARCH\_GPUARCH ARCH_GPUARCH那一行删
4. cmake编译
在build_kokkos_cuda目录下进行编译,对于多核+gpu,
参考官方网址
3.7. Packages with extra build options — LAMMPS documentation,
编译需要设置如下变量:
其中HOSTARCH以及GPUARCH需要根据自己机器型号参考官网给出的表进行修改, 机器具体型号可参考官网:https://ark.intel.com/content/www/us/en/ark.html#@Processors
使用如下命令行设置上述相关变量:
cmake -C ../cmake/presets/basic.cmake -C ../cmake/presets/kokkos-cuda.cmake DKokkos_ENABLE_OPENMP=on -DKokkos_ARCH_SKX=on -DBUILD_OMP=on ../cmake
cmake -C ../cmake/presets/basic.cmake -C ../cmake/presets/kokkos-cuda.cmake DKokkos_ARCH_AMPERE86=on -DKokkos_ENABLE_CUDA=on -DCMAKE_CXX_COMPILER= ${HOME}/lammps/lib/kokkos/bin/nvcc_wrapper ../cmake
注意这里的 n v c c _ w r a p p e r nvcc\_wrapper nvcc_wrapper 需要写绝对路径,一般在安装好的 l a m m p s / l i b / k o k k o s / b i n \rm lammps/lib/kokkos/bin lammps/lib/kokkos/bin 目录下变量设置完成后使用如下命令行进行编译,后面的20为编译时使用的核数:
cmake --build . -- -j20
编译完成后会在 b u i l d _ k o k k o s _ c u d a \rm build\_kokkos\_cuda build_kokkos_cuda 目录下生成可执行文件 l m p \rm lmp lmp
5. 测试
使用 l a m m p s lammps lammps 自带的 e x a m p l e example example 进行测试,找到 / e x a m p l e s / r e a x f f \rm /examples/reaxff /examples/reaxff 目录,将 i n . r e a x f f . r d x \rm in.reaxff.rdx in.reaxff.rdx 文件 中的 p a i r _ s t y l e \rm pair\_style pair_style 改成 r e a x f f / k k \rm reaxff/kk reaxff/kk,在此目录下键入如下命令
mpirun -np 2 /home/groupc/lammps-new/lammps-3Nov2022/build_kokkos_cuda/lmp -k on g 1 sf kk -pk kokkos newton on neigh half -in in.reaxff.rdx