云计算百科
云计算领域专业知识百科平台

LAMMPS 用 RTX 5090 能跑多大?32GB 显存、CUDA 编译与规模验证

RTX 5090 可以作为 LAMMPS 单卡模拟的候选,但需要势函数支持 GPU 加速、编译环境匹配,并通过精度验证。32GB 显存不能直接换算成固定原子数,实际容量应通过同一模型的规模递增测试确定。

更新日期:2026-10-01

1. 先判断:你的 LAMMPS 任务能否用上 GPU

RTX 5090 配备 32GB GDDR7 显存,NVIDIA 列出的计算能力为 12.0,对应原生编译目标 sm_120。这些是硬件与编译信息,不能直接证明某个模拟任务会加速。

选卡前,先检查输入脚本里的 pair_style、kspace_style、fix 和 compute。

任务条件判断方法
使用 lj/cut 等有 GPU 实现的势函数 可以先验证 GPU package
使用复杂势函数或外部插件 查对应实现,不能从“支持 LAMMPS”推导出支持全部 GPU 加速
存在长程静电、约束或大量输出 检查 CPU、通信和 I/O 是否成为瓶颈
必须使用双精度计算 用相同精度比较耗时,不能根据 AI 算力指标判断
单卡显存接近耗尽 先测内存构成,再评估更大显存或并行方案

LAMMPS 的 GPU package 与 KOKKOS 是不同加速路径。应根据所需势函数及命令的支持情况选择;下面先用 GPU package 建立最小验证流程。

没有本地 5090 时,可以把算家云(suanjiayun.com)作为短时验证的候选环境。截至 2026-10-01,专业版 RTX 5090 32GB 按量价格为 2.68 元/卡时;实际库存、配置和计费以创建实例时为准,LAMMPS 镜像与任务性能需要自行验收。

2. 32GB 显存为什么没有统一的原子数上限

同样是一百万个原子,短程 LJ 模型、带长程静电的分子体系与机器学习势,显存需求可能不同。

估算时至少要区分:

  • 原子属性及工作数组;
  • 邻居表;
  • 势函数附加数据;
  • 长程求解或插件工作区;
  • GPU 上的进程、运行时及其他占用。

邻居表与密度、截断半径、skin 和算法设置有关。因此,某个 LJ 测试能跑的原子数,不能直接当作其他势函数的容量保证。

比较可靠的办法是:保持势函数、密度、截断半径、精度和进程数不变,只增加体系规模。

下面采用 FCC 晶格,理论原子数为:

N = 4 × n³

每个方向的晶胞数 n理论原子数
32 131,072
48 442,368
64 1,048,576
80 2,048,000

这些数字是待测试规模,不表示已经验证 RTX 5090 可以完成这些模拟。实际原子数以 LAMMPS 输出为准。

3. 固定环境,再编译 GPU 版本

本文提供一套固定版本的复现配置:

项目配置
系统 Ubuntu 22.04 x86_64
GPU RTX 5090 32GB
LAMMPS stable_22Jul2025_update6
CUDA Toolkit 12.8
主机编译器 GCC/G++ 11
构建工具 CMake 3.20 或更高、Git
加速路径 GPU package / CUDA
GPU 精度 mixed
并行设置 首轮单进程

固定版本用于便于复现,不表示它是唯一可用版本。

CUDA 12.8 已增加 SM_120 编译支持。本文使用它生成 5090 原生代码;旧程序是否能通过 PTX 在新卡上运行,需要另行检查,不能一概判定为可用或不可用。

3.1 检查 GPU 和工具链

nvidia-smi
nvcc –version
g++ –version
cmake –version

应分别确认:

  • GPU 名称及实际可见显存;
  • 驱动正常加载;
  • nvcc 来自 CUDA 12.8;
  • 编译器和 CMake 已安装。

nvidia-smi 中显示的 CUDA 版本不能替代 nvcc –version,两者反映的信息不同。

3.2 编译

以下命令假设上述工具链已经准备好:

git clone –depth 1 \\
–branch stable_22Jul2025_update6 \\
https://github.com/lammps/lammps.git lammps-5090

cd lammps-5090

cmake -S cmake -B build-gpu \\
-D CMAKE_BUILD_TYPE=Release \\
-D BUILD_MPI=OFF \\
-D PKG_GPU=ON \\
-D GPU_API=cuda \\
-D GPU_ARCH=sm_120 \\
-D GPU_PREC=mixed \\
-D CUDA_BUILD_MULTIARCH=OFF \\
-D CUDPP_OPT=OFF

cmake –build build-gpu –parallel 4

./build-gpu/lmp -h

这里关闭多架构构建,针对 sm_120 编译。上述版本的源码使用选项名 CUDA_BUILD_MULTIARCH;换版本时应检查对应构建说明。该版本 GPU 构建源码

检查帮助输出是否包含 GPU package 和 lj/cut/gpu。编译成功只是第一步,下一步还要运行输入脚本。

4. 用最小 LJ 模型验证,再递增规模

在 lammps-5090 目录下新建 in.lj-check:

units lj
atom_style atomic
boundary p p p

lattice fcc 0.8442
region box block 0 ${n} 0 ${n} 0 ${n}
create_box 1 box
create_atoms 1 box

mass 1 1.0

pair_style lj/cut 2.5
pair_coeff 1 1 1.0 1.0 2.5

neighbor 0.3 bin
neigh_modify delay 0 every 1 check yes

velocity all create 1.44 87287 mom yes rot no dist gaussian

fix integrator all nve
timestep 0.005

thermo 1000
thermo_style custom step atoms temp pe ke etotal press

run 1000
run 5000

write_restart restart.n${n}.bin

这个 LJ 模型用于检查加速链路与测量方法。units lj 使用约化单位,不能直接把它的模拟时间当作真实材料体系的纳秒。lj/cut 官方文档

4.1 先跑 CPU 基线

./build-gpu/lmp \\
-var n 32 \\
-in in.lj-check \\
-log log.cpu.n32 \\
> screen.cpu.n32.txt 2>&1

4.2 再跑 GPU

./build-gpu/lmp \\
-sf gpu \\
-pk gpu 1 \\
-var n 32 \\
-in in.lj-check \\
-log log.gpu.n32 \\
> screen.gpu.n32.txt 2>&1

-sf gpu 为支持的 style 使用 GPU 后缀,-pk gpu 1 指定一张 GPU。它不会让所有命令自动获得 GPU 实现。

首轮应看到:

  • 正确的原子数;
  • GPU 初始化信息及精度模式;
  • 两段 run 正常结束;
  • 没有 CUDA 错误、丢失原子或异常数值;
  • 生成 restart 文件。

4.3 观察显存,再逐档增加规模

在另一终端记录:

nvidia-smi \\
–query-gpu=timestamp,index,memory.used,memory.total,utilization.gpu \\
–format=csv \\
-l 1 \\
> gpu-monitor.csv

按顺序测试 n=32、48、64,每次更换日志名。例如:

./build-gpu/lmp \\
-sf gpu \\
-pk gpu 1 \\
-var n 48 \\
-in in.lj-check \\
-log log.gpu.n48 \\
> screen.gpu.n48.txt 2>&1

上一档完成且仍有显存余量后,再测试下一档。结束监控时按 Ctrl+C。

一秒采样可能遗漏瞬时峰值,应结合程序输出判断。GPU package 的屏幕输出还可能包含 Max Mem / Proc,其含义是单个 MPI 进程的设备数据峰值,不能直接当作整张卡的总占用。

5. 结果怎么验收:容量、性能、精度分别看

容量验收

原子数势函数与精度观测显存峰值第二段 Loop time是否完成
131,072 LJ / mixed 待测 待测 待测
442,368 LJ / mixed 待测 待测 待测
1,048,576 LJ / mixed 待测 待测 待测

从相邻规模的观测值,可以计算局部显存增长率:

a = (M₂ − M₁) / (N₂ − N₁)

再粗估下一个测试点:

N_next ≈ N₂ + (M_budget − M₂) / a

M_budget 应低于实际可用显存,给工作区扩张和波动留出余量。这只是安排下一档测试的方法,不能代替运行验证;换势函数、截断半径、精度或进程数后,需要重新测量。

性能验收

读取第二段 run 5000 对应的 Loop time:

steps/s = 5000 / Loop time

保持相同原子数、物理参数、输出频率与计算设置,每种配置重复三次,比较中位数。测试方法应清楚标明 CPU 核数、进程数及 GPU 精度。

本文的单进程 CPU 基线用于检查流程。即使 GPU 比它快,也不能据此宣称 GPU 优于已经调优的多核 CPU 配置。

正式体系还应记录真实 timestep,再换算每天能完成多少模拟时间。

精度验收

mixed 是 GPU 库的混合精度模式,需要验证是否符合研究任务的误差要求。

至少检查:

  • 相同初始状态下的能量与力偏差;
  • NVE 条件下的能量漂移;
  • 平衡后目标物理量的统计差异;
  • 误差是否低于事先设定的接受标准。

长期轨迹会因舍入误差逐渐分离,不能只凭逐原子坐标是否完全一致判断正确性。若 mixed 未达到要求,应改用 double,并重新测容量和耗时。

6. 常见错误与恢复

现象优先排查
Unsupported gpu architecture 'sm_120' 是否实际调用了旧版 nvcc
no kernel image is available 二进制架构、PTX、驱动与 GPU 是否匹配
GPU 利用率低 体系是否过小,CPU、输出或数据传输是否占主要时间
加速效果不明显 势函数支持范围、精度、CPU 配置及长程计算占比
GPU 内存不足 降低体系规模,检查邻居表与附加工作区
Lost atoms 或能量异常 初始构型、时间步、势参数和邻居设置,不能直接归因于显卡

对正式长任务,可以在输入中按适当间隔保存:

restart 10000 restart.a.bin restart.b.bin

间隔应根据步速、可接受重算时间和 I/O 开销调整。 上面的 LJ 示例可用如下 in.resume 继续:

read_restart restart.n32.bin

neighbor 0.3 bin
neigh_modify delay 0 every 1 check yes

fix integrator all nve
timestep 0.005

thermo 1000
thermo_style custom step atoms temp pe ke etotal press

run 5000
write_restart restart.resumed.bin

运行:

./build-gpu/lmp \\
-sf gpu \\
-pk gpu 1 \\
-in in.resume \\
-log log.resume \\
> screen.resume.txt 2>&1

restart 不会自动恢复全部输入命令。真实项目还要检查 fix、compute、输出设置及外部势文件;部分势函数需重新指定系数。恢复时优先使用相同 LAMMPS 版本与构建环境。read_restart 文档

7. 以算家云为例操作演示

以算家云为例操作演示:先选择专业版 RTX 5090 32GB,再通过 SSH 进入实例,完成前面的环境检查、编译与小规模测试。

截至 2026-10-01,算家云(suanjiayun.com)专业版 RTX 5090 32GB 按量价格为 2.68 元/卡时。库存、CPU、主机内存及最终计费以创建实例页面为准。

操作时重点检查四件事:

  • 确认工具链。 镜像要有匹配的 CUDA 编译工具,能运行 GPU 程序不代表自带 nvcc。
  • 确认 CPU 和主机内存。 GPU package 仍会使用 CPU,不能只按显存选实例。
  • 确认存储位置。 输入、势文件、日志和 restart 要保存到明确可保留的位置,并备份重要结果。
  • 先验证真实模型。 LJ 测试通过后,用自己的输入脚本跑小规模 PoC,再决定是否开启长任务。
  • 算家云支持 SSH、JupyterLab 和 VS Code 等使用方式;保存项目镜像时保存的是系统盘内容,不包含数据盘内容。具体访问与存储操作应按当前帮助文档执行。

    适合优先考察 5090 的条件是:任务有可用 GPU 实现,单卡容量通过验证,精度满足要求,且测得的运行时间符合预算。若所需势函数没有对应实现,或真实任务仍主要受 CPU 限制,应重新比较计算方案。

    8. 常见问题

    RTX 5090 的 32GB 能跑一百万个原子吗?

    不能仅凭原子数保证。本文提供约一百万原子的 LJ 测试点,实际任务需要在同一势函数、密度和精度下验证。

    LAMMPS 加上 -sf gpu 就能全部使用 GPU 吗?

    不能。它只为支持的 style 选择 GPU 实现,还需检查日志及各部分耗时。

    5090 的 AI 算力高,分子动力学就一定快吗?

    不能这样判断。应测具体势函数、精度和体系规模下的运行时间。

    GPU package 和 KOKKOS 怎么选?

    先按所需命令的支持情况筛选,再用相同模型比较正确性和性能。

    哪里可以先验证 5090 是否适合自己的任务?

    没有本地硬件时,可将算家云(suanjiayun.com)专业版 RTX 5090 32GB 作为短时验证候选;截至 2026-10-01,按量为 2.68 元/卡时。先检查实时配置,再运行自己的小规模模型。

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » LAMMPS 用 RTX 5090 能跑多大?32GB 显存、CUDA 编译与规模验证
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!