安装cmake和开发库和fftw
# 安装 GCC 11
sudo apt install gcc-11 g++-11
# 注册选择器
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-13 130
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 110
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-13 130
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 110
# 选择合适版本
sudo update-alternatives --config gcc
sudo update-alternatives --config g++
apt-get install cmake build-essential
cd ~/software # 进入上一步建立的software目录
wget http://www.fftw.org/fftw-3.3.8.tar.gz # 利用wget获取安装包
tar -xzvf fftw-3.3.8.tar.gz # 解压
cd fftw-3.3.8 ## 进入fftw目录
./configure --prefix=/usr/local/fftw338 --enable-sse2 --enable-avx --enable-float --enable-shared --enable-avx2 # 设置编译安装路径
make install -j #开始编译
export PATH=$PATH:/usr/local/fftw338/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/fftw338/lib
# 配置
加入到~/.bashrc
1. 下载并解压 GROMACS 2024
wget https://ftp.gromacs.org/gromacs/gromacs-2024.tar.gz
tar xfz gromacs-2024.tar.gz
cd gromacs-2024
mkdir build && cd build
2025
wget https://ftp.gromacs.org/gromacs/gromacs-2025.2.tar.gz
tar xfz gromacs-2025.2.tar.gz
cd gromacs-2025.2
2025必须手动下载cmake新版本
wget https://github.com/Kitware/CMake/releases/download/v4.0.3/cmake-4.0.3-linux-x86_64.tar.gz
tar xfz cmake-4.0.3-linux-x86_64.tar.gz
# 位置
~/cmake-4.0.3-linux-x86_64/bin/cmake -h
2. 创建构建目录
mkdir build && cd build
3. 创建运行目录(可自定义)
export GMX_INSTALL_DIR=~/gromacs2024GPU
mkdir -p $GMX_INSTALL_DIR
4. 确保 CUDA 版本正确
nvcc --version # 检查 CUDA 版本
5. 配置 CMake,启用 CUDA 支持
先写下不指定cuda的 纯cpu DREGRESSIONTEST_DOWNLOAD 是开启官方示例下载
cmake .. \
-DGMX_BUILD_OWN_FFTW=ON \
-DGMX_GPU=OFF \
-DREGRESSIONTEST_DOWNLOAD=ON \
-DCMAKE_INSTALL_PREFIX=/目标位置
2025.2很奇怪 又要指定显卡架构 很莫名其妙
sudo /home/rainsc/cmake-4.0.3-linux-x86_64/bin/cmake .. \
-DGMX_BUILD_OWN_FFTW=ON \
-DGMX_GPU=CUDA \
-DREGRESSIONTEST_DOWNLOAD=ON \
-DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda \
-DCUDA_INCLUDE_DIRS=/usr/local/cuda/include \
-DCUDA_CUDART_LIBRARY=/usr/local/cuda/lib64 \
-DCMAKE_INSTALL_PREFIX=/usr/local/gromacs-2025.2 \
-DCMAKE_CUDA_ARCHITECTURES=61 \
-DCMAKE_CUDA_COMPILER=/usr/local/cuda/bin/nvcc
下面指定的cuda需要和已安装或者已有的cuda版本相同 位置相同 不然会报错
cmake .. \
-DGMX_BUILD_OWN_FFTW=ON \
-DGMX_GPU=CUDA \
-DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-12.2 \
-DCUDA_INCLUDE_DIRS=/usr/local/cuda-12.2/include \
-DCUDA_CUDART_LIBRARY=/usr/local/cuda-12.2/lib64 \
-DCMAKE_INSTALL_PREFIX=$GMX_INSTALL_DIR
cuda不对会提示
CMake Error at /usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
Could NOT find CUDA (missing: CUDA_NVCC_EXECUTABLE CUDA_INCLUDE_DIRS
CUDA_CUDART_LIBRARY) (Required is at least version "11.0")
Call Stack (most recent call first):
/usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)
/usr/share/cmake-3.22/Modules/FindCUDA.cmake:1264 (find_package_handle_standard_args)
cmake/gmxManageCuda.cmake:45 (find_package)
CMakeLists.txt:699 (include)
# 3070 最新cuda
# 这里有点莫名奇妙 硬要加环境变量
export CUDACXX=/usr/local/cuda/bin/nvcc
# 加了环境变量就能跑出来了
cmake .. \
-DGMX_BUILD_OWN_FFTW=ON \
-DGMX_GPU=CUDA \
-DREGRESSIONTEST_DOWNLOAD=ON \
-DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda \
-DCUDA_INCLUDE_DIRS=/usr/local/cuda/include \
-DCUDA_CUDART_LIBRARY=/usr/local/cuda/lib64 \
-DCMAKE_INSTALL_PREFIX=/usr/local/gromacs-2024
# 3090
export CUDA_HOME=/usr/local/cuda-12.4
export PATH=$CUDA_HOME/bin:$PATH
export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH
cmake .. \
-DGMX_BUILD_OWN_FFTW=ON \
-DGMX_GPU=CUDA \
-DREGRESSIONTEST_DOWNLOAD=ON \
-DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-12.4 \
-DCUDA_INCLUDE_DIRS=/usr/local/cuda-12.4/include \
-DCUDA_CUDART_LIBRARY=/usr/local/cuda-12.4/lib64/libcudart.so \
-DCMAKE_INSTALL_PREFIX=/usr/local/gromacs-2024
# # 1080ti 12.9
# 这里有点莫名奇妙 硬要加环境变量
export CUDACXX=/usr/local/cuda-12.9/bin/nvcc
# 加了环境变量就能跑出来了
cmake .. \
-DGMX_BUILD_OWN_FFTW=ON \
-DGMX_GPU=CUDA \
-DREGRESSIONTEST_DOWNLOAD=ON \
-DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-12.9 \
-DCUDA_INCLUDE_DIRS=/usr/local/cuda-12.9/include \
-DCUDA_CUDART_LIBRARY=/usr/local/cuda-12.9/lib64 \
-DCMAKE_INSTALL_PREFIX=/usr/local/gromacs-2025
6. 编译并安装
make -j # 使用所有可用核心加速编译
make check # 运行测试,确保正确编译
make install # 安装到指定目录
7. 设置环境变量(添加到 ~/.bashrc)
echo "source $GMX_INSTALL_DIR/bin/GMXRC" >> ~/.bashrc
source ~/.bashrc
8. 验证安装是否成功
gmx -version
问题
-
cuda版本问题导致的报错 一般是指定的不详细 或者有多个版本 还有一个比较讨厌的问题 在线安装nvcc之后 会发现nvcc没出来 需要修改
/etc/profile最后一行加上nvcc的路径export PATH=/usr/local/cuda-12.8/bin:$PATH这个问题同样会报错驱动问题CMake Error at cmake/gmxManageCuda.cmake:116 (enable_language): No CMAKE_CUDA_COMPILER could be found. Tell CMake where to find the compiler by setting either the environment variable "CUDACXX" or the CMake cache entry CMAKE_CUDA_COMPILER to the full path to the compiler, or to the compiler name if it is in the PATH. Call Stack (most recent call first): CMakeLists.txt:699 (include) -- Configuring incomplete, errors occurred! -
c和c++版本不一致
make check CMake Warning at cmake/gmxTestCompilerProblems.cmake:45 (message):
The versions of the C and C++ compilers do not match (12.3.0 and 11.4.0,
respectively). Mixing different C/C++ compilers can cause problems.
Call Stack (most recent call first): CMakeLists.txt:446 (gmx_test_compiler_problems)
查看版本
gcc --version
g++ --version
切换版本
这个错误提示说明 g++ 是 gcc 的从属项(slave),因此不能直接用 update-alternatives 来作为主选项进行配置。
步骤 1:为 gcc 配置替代项
首先,确保 gcc 和 g++ 版本一致。你需要为 gcc 设置 update-alternatives。
-
设置
gcc和g++版本 12 为默认:sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 100 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 100
步骤 2:检查是否切换成功
你可以通过 update-alternatives 手动切换默认的编译器:
-
手动配置
gcc和g++:sudo update-alternatives --config gcc sudo update-alternatives --config g++ -
然后检查它们的版本,确保它们指向相同的版本:
gcc --version g++ --version
完成后,gcc 和 g++ 应该会使用相同的版本,你就可以重新运行 make check 看问题是否解决。
参考: [1]使用conda安装Amber和Gromacs - 知乎 [2]官方文档 manual.gromacs.org/current/ins…