欢迎光临
我们一直在努力

在 Linux 上安装 GPU 版本 LAMMPS 完整指南

LAMMPS(Large-scale Atomic/Molecular Massively Parallel Simulator)是材料科学和分子动力学模拟领域最常用的开源软件之一。随着 GPU 加速计算的发展,利用 NVIDIA GPU 加速 LAMMPS 计算已成为提升模拟效率的重要手段。感兴趣的友友给博主点个免费的关注吧,需要GPU算力代跑服务的小伙可以私信我~

本文基于实际安装经验,详细记录在 Ubuntu/Debian 系统上编译安装 GPU 版本 LAMMPS 的全过程,包括遇到的各种问题及其解决方案。

系统环境:

  • OS: Ubuntu/Debian Linux
  • GPU: NVIDIA A100-SXM4-40GB (Ampere 架构)
  • CUDA: 12.2/13.0
  • LAMMPS: 2025年7月22日版本

环境准备

1. 基础依赖安装

# 更新系统
sudo apt update && sudo apt upgrade -y

# 安装基础编译工具
sudo apt install -y build-essential cmake git wget gfortran

# 安装 MPI 库(必需)
sudo apt install -y libopenmpi-dev openmpi-bin

# 验证 MPI 安装
mpirun –version
mpicc –version

2. CUDA 环境检查

# 检查 CUDA 版本
nvcc –version

# 检查 GPU 信息
nvidia-smi

重要提示:CUDA 版本与 GCC 版本有严格的兼容性要求:

CUDA 版本支持的 GCC 版本
CUDA 11.x GCC 10 及以下
CUDA 12.0-12.3 GCC 11 及以下
CUDA 12.4+ GCC 13 及以下

3. 下载 LAMMPS 源码

# 下载最新稳定版
wget https://download.lammps.org/tars/lammps-stable.tar.gz
tar -xzvf lammps-stable.tar.gz
cd lammps-22Jul2025 # 根据实际版本调整


常见问题与解决方案

问题一:GCC 版本不兼容

错误信息:

#error — unsupported GNU version! gcc versions later than 12 are not supported!

原因:CUDA 12.2 不支持 GCC 13 或更高版本。

解决方案:安装 GCC 12 并指定使用

# 安装 GCC 12
sudo apt install -y gcc-12 g++-12

# 在 CMake 配置中指定编译器
cmake ... \\
-D CMAKE_C_COMPILER=gcc-12 \\
-D CMAKE_CXX_COMPILER=g++-12 \\
...


问题二:找不到 MPI 库

错误信息:

Could NOT find MPI (missing: MPI_CXX_FOUND CXX)

原因:未安装 OpenMPI 或 CMake 无法找到 MPI。

解决方案:

# 安装 OpenMPI
sudo apt install -y libopenmpi-dev openmpi-bin

# 或禁用 MPI(仅限单机测试)
cmake ... -D BUILD_MPI=no ...


问题三:无法检测 GPU 架构

错误信息:

CUDA enabled but no NVIDIA GPU architecture currently enabled and auto-detection failed.
Please give one -DKokkos_ARCH_{..}=ON' to enable an NVIDIA GPU architecture.

原因:CMake 无法自动检测 GPU 计算能力,需要手动指定。

解决方案:根据 GPU 型号手动指定架构

常见 GPU 架构对照表:

GPU 型号计算能力CMake 参数
GTX 1060/1070/1080 6.1 Kokkos_ARCH_PASCAL61=ON
RTX 2060/2070/2080 7.5 Kokkos_ARCH_TURING75=ON
RTX 3060/3070/3080/3090 8.6 Kokkos_ARCH_AMPERE86=ON
A100 8.0 Kokkos_ARCH_AMPERE80=ON
RTX 4090 8.9 Kokkos_ARCH_ADA89=ON
H100 9.0 Kokkos_ARCH_HOPPER90=ON

查询 GPU 计算能力:

# 查看 GPU 型号和计算能力
nvidia-smi –query-gpu=name,compute_cap –format=csv

# 或编译测试程序
cd /tmp
cat > test_gpu.cu << 'EOF'
#include <stdio.h>
int main() {
cudaDeviceProp prop;
cudaGetDeviceProperties(&prop, 0);
printf("GPU: %s\\n", prop.name);
printf("Compute Capability: %d.%d\\n", prop.major, prop.minor);
return 0;
}
EOF

nvcc test_gpu.cu -o test_gpu && ./test_gpu


完整安装流程

基于上述问题,以下是完整的安装步骤:

步骤 1:环境准备

# 安装所有依赖
sudo apt update
sudo apt install -y build-essential cmake git wget gfortran
sudo apt install -y gcc-12 g++-12 # 与 CUDA 12.2 兼容
sudo apt install -y libopenmpi-dev openmpi-bin

# 验证安装
gcc-12 –version
g++-12 –version
mpirun –version
nvidia-smi

步骤 2:下载并解压 LAMMPS

wget https://download.lammps.org/tars/lammps-stable.tar.gz
tar -xzvf lammps-stable.tar.gz
cd lammps-22Jul2025

步骤 3:创建构建目录

mkdir build
cd build

步骤 4:CMake 配置

针对 NVIDIA A100 的配置:

cmake -C ../cmake/presets/basic.cmake \\
-C ../cmake/presets/kokkos-cuda.cmake \\
-D CMAKE_C_COMPILER=gcc-12 \\
-D CMAKE_CXX_COMPILER=g++-12 \\
-D PKG_KOKKOS=yes \\
-D Kokkos_ENABLE_CUDA=yes \\
-D Kokkos_ARCH_AMPERE80=ON \\
-D Kokkos_ENABLE_OPENMP=yes \\
-D BUILD_MPI=yes \\
-D FFT_KOKKOS=CUFFT \\
../cmake

关键参数说明:

参数说明
CMAKE_C_COMPILER / CMAKE_CXX_COMPILER 指定 GCC 12 编译器,确保与 CUDA 兼容
PKG_KOKKOS=yes 启用 KOKKOS 包,提供 GPU 加速支持
Kokkos_ENABLE_CUDA=yes 启用 CUDA 后端
Kokkos_ARCH_AMPERE80=ON 指定 GPU 架构为 Ampere 8.0(A100)
Kokkos_ENABLE_OPENMP=yes 启用 OpenMP 支持,实现 CPU+GPU 混合并行
BUILD_MPI=yes 启用 MPI 支持,实现多节点并行
FFT_KOKKOS=CUFFT 使用 NVIDIA cuFFT 进行快速傅里叶变换

步骤 5:编译安装

# 并行编译(使用所有 CPU 核心)
make -j $(nproc)

# 安装(可选)
sudo make install

编译过程可能需要 10-30 分钟,取决于系统性能。


验证与运行

1. 验证安装

# 检查 LAMMPS 版本和编译选项
./lmp -h | head -20

# 应看到 KOKKOS 和 CUDA 相关的包已启用

2. 运行测试

单 GPU 运行:

./lmp -k on g 1 -sf kk -in ../bench/in.lj

参数说明:

  • -k on:启用 KOKKOS
  • g 1:使用 1 个 GPU
  • -sf kk:自动为支持的命令添加 kk 后缀,启用 KOKKOS 加速

多 GPU + MPI 运行:

mpirun -np 4 ./lmp -k on g 4 -sf kk -in input.script

GPU + OpenMP 混合并行:

mpirun -np 1 ./lmp -k on g 1 t 8 -sf kk -in input.script

  • t 8:使用 8 个 OpenMP 线程

3. 性能对比

可以通过以下方式对比 CPU 和 GPU 性能:

# CPU 版本(仅 MPI)
mpirun -np 8 ./lmp -in input.script

# GPU 版本(KOKKOS)
mpirun -np 1 ./lmp -k on g 1 -sf kk -in input.script


总结

本文详细介绍了在 Linux 系统上安装 GPU 版本 LAMMPS 的完整流程,总结关键要点如下:

关键步骤回顾

  • 环境准备:安装 GCC 12(与 CUDA 兼容)、OpenMPI、CMake 等依赖
  • 架构指定:根据 GPU 型号手动指定 Kokkos_ARCH_* 参数
  • 编译配置:使用 KOKKOS 包启用 CUDA 加速
  • 运行优化:合理使用 -k on g {n} 和 -sf kk 参数
  • 常见问题速查

    问题解决方案
    GCC 版本不兼容 安装 GCC 12 并在 CMake 中指定
    找不到 MPI 安装 libopenmpi-dev 和 openmpi-bin
    GPU 架构检测失败 手动指定 Kokkos_ARCH_AMPERE80 等参数
    编译失败 清理 build 目录后重新配置

    后续优化建议

  • 性能调优:根据体系大小调整 GPU 线程数和 MPI 进程数
  • 多节点运行:在集群环境中结合 MPI 实现多节点 GPU 并行
  • 监控工具:使用 nvidia-smi 监控 GPU 利用率和内存使用
  • 通过 GPU 加速,LAMMPS 的分子动力学模拟可以获得数倍甚至数十倍的性能提升,显著缩短科研计算时间。


    参考资源:

    • LAMMPS 官方文档
    • KOKKOS 编程指南
    • NVIDIA CUDA 文档

    本文基于实际安装经验撰写,环境为 NVIDIA A100 + CUDA 12.2 + Ubuntu Linux。不同环境可能需要适当调整。

    赞(0)
    未经允许不得转载:171主机测评 » 在 Linux 上安装 GPU 版本 LAMMPS 完整指南
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址