Ubuntu 24.04 编译安装GPU加速的LAMMPS
启用尽可能多的功能包,并开启GPU加速支持,特别针对GTX 1060和服务器环境进行了优化配置。采用 nvidia-driver-575-server
版本驱动和 12.9
版本CUDA。
1. 系统环境准备
1.1 更新系统包
sudo apt update && sudo apt upgrade -y
1.2 安装基础编译工具
sudo apt install -y build-essential cmake git wget curl
sudo apt install -y gcc g++ gcc-14 g++-14 gfortran
sudo apt install -y pkg-config autoconf automake libtool
2. 安装依赖库
2.1 MPI并行库
# 安装OpenMPI
sudo apt install -y openmpi-bin openmpi-common libopenmpi-dev
# 或者安装MPICH(二选一)
# sudo apt install -y mpich libmpich-dev
2.2 数学库
# BLAS/LAPACK
sudo apt install -y libopenblas-dev liblapack-dev
# FFTW3
sudo apt install -y libfftw3-dev libfftw3-mpi-dev
# Eigen3
sudo apt install -y libeigen3-dev libzstd-dev
2.3 基础图像处理库(无GUI环境)
sudo apt install -y libpng-dev libjpeg-dev
sudo apt install -y zlib1g-dev
sudo apt install -y libgsl-dev
2.4 Python支持
sudo apt install -y python3-dev python3-pip python3-numpy
sudo apt install -y python3-matplotlib python3-scipy
2.5 编译安装plumed
cd /tmp
wget https://github.com/plumed/plumed2/releases/download/v2.9.3/plumed-2.9.3.tgz
tar -xzf plumed-2.9.3.tgz
cd plumed-2.9.3
make clean # 清理旧配置留下的对象文件;如提示无目标可忽略
./configure CXX=mpicxx CC=mpicc \
--prefix=/usr/local \ # 可省略,默认就是 /usr/local
--enable-modules=all \ # 打开全部可选模块
--enable-openmp \ # 保持 OpenMP
--enable-fftw \ # 使用系统 FFTW
--enable-rpath \ # 在可执行文件里记录库路径
--enable-shared # 显式生成 .so(默认就是 ON)
make -j$(nproc)
sudo make install
sudo ldconfig # 更新动态链接器缓存
echo 'export PLUMED_KERNEL=/usr/local/lib/libplumedKernel.so' >> ~/.bashrc
source ~/.bashrc
2.5 其他有用的库
sudo apt install -y libhdf5-dev libhdf5-mpi-dev
sudo apt install -y libnetcdf-dev # libnetcdf-cxx-legacy-dev
sudo apt install -y libyaml-dev libvoro++1 voro++-dev libadios2-common-core-dev libadios2-mpi-core-dev
3. CUDA环境配置(GPU加速)
3.1 安装NVIDIA驱动
# 安装服务器版NVIDIA驱动(无GUI)
sudo apt install -y nvidia-driver-575
# 重启系统
sudo reboot
3.2 安装CUDA Toolkit
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt update
sudo apt install --no-install-recommends cuda-toolkit-12-9
# 写入环境变量
echo 'export PATH=/usr/local/cuda-12.9/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-12.9/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc
3.3 验证CUDA安装
nvcc --version # => release 12.9
nvidia-smi # Driver Version ≥ 575.*
4. 下载LAMMPS源码
cd ~/
git clone -b stable https://github.com/lammps/lammps.git
cd lammps
mkdir build
cd build
5. CMake配置
5.1 CMake内容
使用most.cmake
开启尽可能夺的功能,并将程序路径设置为/opt/lammps
。
cmake -C ../cmake/presets/most.cmake \
-D CMAKE_INSTALL_PREFIX=/opt/lammps \
-D PKG_KOKKOS=on \
-D Kokkos_ENABLE_CUDA=on \
-D Kokkos_ENABLE_OPENMP=ON \
-D Kokkos_ARCH_PASCAL61=on \
-D Kokkos_ENABLE_CUDA_LAMBDA=on \
-D PKG_GPU=on \
-D GPU_API=cuda \
-D GPU_ARCH=sm_61 \
-D BUILD_MPI=on \
-D BUILD_OMP=on \
-D CMAKE_CUDA_STANDARD=17 \
../cmake
cmake -C ../cmake/presets/most.cmake \
-D CMAKE_INSTALL_PREFIX=/opt/lammps \
-D BUILD_OMP=ON \
-D PKG_OPENMP=ON \
-D PKG_KOKKOS=ON \
-D Kokkos_ENABLE_OPENMP=ON \
-D Kokkos_ENABLE_CUDA=ON \
-D Kokkos_ENABLE_HWLOC=ON \
-D Kokkos_ARCH_PASCAL61=ON \
-D Kokkos_ENABLE_CUDA_LAMBDA=ON \
-D PKG_GPU=ON -D GPU_API=cuda -D GPU_ARCH=sm_61 \
-D BUILD_MPI=ON \
-D BUILD_SHARED_LIBS=ON \
-D LAMMPS_EXCEPTIONS=ON \
-D CMAKE_CUDA_STANDARD=17 \
../cmake
cmake -C ../cmake/presets/most.cmake \
-D CMAKE_INSTALL_PREFIX=/opt/lammps \
-D CMAKE_INSTALL_RPATH=/opt/lammps/lib \
-D CMAKE_INSTALL_RPATH_USE_LINK_PATH=ON \
-D PKG_OPENMP=ON \
-D PKG_KOKKOS=ON -D Kokkos_ENABLE_CUDA=ON -D Kokkos_ENABLE_OPENMP=ON \
-D Kokkos_ENABLE_HWLOC=ON -D Kokkos_ARCH_PASCAL61=ON \
-D PKG_GPU=ON -D GPU_API=cuda -D GPU_ARCH=sm_61 \
-D PKG_VORONOI=ON \
-D PKG_PTM=ON \
-D PKG_H5MD=ON \
-D BUILD_LIB=ON -D BUILD_SHARED_LIBS=ON \
-D BUILD_MPI=ON -D BUILD_OMP=ON \
-D LAMMPS_EXCEPTIONS=ON -D CMAKE_CUDA_STANDARD=17 \
../cmake
5.2 其他
export NVCC_PREPEND_FLAGS="-Wno-deprecated-gpu-targets" # 忽略旧GPU提醒
6. 编译和安装
6.1 编译(使用多核心加速)
# 使用所有可用CPU核心编译
cmake --build . -- -j$(nproc)
6.2 安装
sudo cmake --install .
6.3 添加到PATH
echo 'export PATH=/opt/lammps/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
7. 验证安装
7.1 检查LAMMPS版本和功能
lmp -help
7.2 测试GPU功能
cd ~/lammps/examples/melt
mpirun -np 1 lmp -sf gpu -pk gpu 1 -in in.melt
7.3 测试并行功能
mpirun -np 2 lmp -in in.melt
8. 性能优化配置
如果GPU加速正常,则不要执行以下内容
8.1 针对GTX 1060的GPU优化设置
在LAMMPS输入脚本中添加:
# GPU包设置
package gpu 1 neigh yes newton off
8.2 OpenMP线程设置
export OMP_NUM_THREADS=4 # 根据CPU核心数调整
9. 常见问题解决
9.1 CUDA编译错误
如果遇到CUDA相关编译错误:
# 确保CUDA环境变量正确
echo $CUDA_HOME
echo $PATH | grep cuda
# 检查GPU架构设置
nvidia-smi --query-gpu=compute_cap --format=csv
9.2 MPI相关错误
# 检查MPI安装
mpirun --version
which mpirun
# 测试MPI
mpirun -np 2 hostname
9.3 内存不足问题
对于GTX 1060 6GB显存:
- 适当减小GPU包中的
neigh
参数 - 使用较小的测试系统
- 监控显存使用:
nvidia-smi
10. 安装后的简便测试
创建简单的性能测试脚本:
#!/bin/bash
echo "Testing CPU performance..."
time mpirun -np 4 lmp -in ~/lammps/examples/melt/in.melt
echo "Testing GPU performance..."
time mpirun -np 1 lmp -sf gpu -pk gpu 1 -in ~/lammps/examples/melt/in.melt