启用尽可能多的功能包,并开启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

标签: linux, GPU, lammps

添加新评论