GROMACS分子动力学模拟计算显卡性能测试

GROMACS是一款开源、高性能的分子动力学(MD)模拟软件包,主要用来模拟研究蛋白质、脂质、核酸等生物分子的性质。

GROMACS可以使用GPU加速计算,使用晨涧云云容器的GROMACS镜像。

这里使用GROMACS的测试用例比较3080、3090、4090三张显卡在分子动力学模拟这类科学计算场景下的性能表现。

GROMACS测试用例

这里参考了AutoDL上Gromacs的测试用例,这个测试用例的输入数据集较小,所以可能有一定的应用场景局限性,CPU核数配置及GPU的选择需要用户根据自己的输入数据集大小进行灵活调整。

各显卡测试对比

Gromacs会使用CPU的并行计算能力,在多核多线程场景下可以看到几乎所有核的CPU利用率都跑满,但相应的GPU利用率不会跑满。Gromacs的CPU核GPU是协同工作的,且对CPU的依赖度更高,测试发现,不同显卡不同数据集使用场景需要调整合适的CPU核数和GPU的配比,才能使性能最优。

而且,算力越强大的GPU需要对应主频更强劲的CPU,或者配置更多的CPU核数,才能使GPU的算力尽可能的用起来。详见测试:

3080 测试

CPU型号:Intel® Xeon® Platinum 8275CL CPU @ 3.00GHz

16核

计算结果:
3080-16C-计算结果

显卡使用情况:
3080-16C-显卡使用情况

24核

计算结果:
3080-24C-计算结果

显卡使用情况:
3080-24C-显卡使用情况

3090 测试

CPU型号:Intel® Xeon® Platinum 8275CL CPU @ 3.00GHz

16核

计算结果:
3090-16C-计算结果

显卡使用情况:
3090-16C-显卡使用情况

24核

计算结果:
3090-24C-计算结果

显卡使用情况:
3090-24C-显卡使用情况

4090 测试

CPU型号:Intel® Xeon® Platinum 8473C

16核

计算结果:
4090-16C-计算结果
显卡使用情况:
4090-16C-显卡使用情况

24核

计算结果:
4090-24C-计算结果
显卡使用情况:
4090-24C-显卡使用情况

4090同时测试了32核的性能表现:

32核

计算结果:
4090-32C-计算结果

显卡使用情况:
4090-32C-显卡使用情况

测试结果解释

计算结果的指标解释:

  • Core t (s)总 CPU 时间 (Total CPU Time)。是所有 CPU 核心或线程在模拟过程中消耗的时间总和,单位为秒 (s)。
  • Wall t (s)墙钟时间 / 实际运行时间 (Wall-Clock Time / Elapsed Time)。 是从模拟开始到结束所实际流逝的时间,单位为秒 (s)。
  • (%)并行效率 (Parallel Efficiency) 或加速比 (Speedup) 百分比。计算方式通常是 Core t (s) / Wall t (s) × 100 % \text{Core t (s)} / \text{Wall t (s)} \times 100\% Core t (s)/Wall t (s)×100%。理想情况下,如果使用了 N N N 个核心,这个百分比应该接近 N * 100%。数值越大越好
  • (ns/day)关键性能指标模拟速度 (Simulation Speed),单位是每天模拟多少纳秒
  • (hour/ns)每纳秒模拟时间所需的实际时间,单位是每纳秒 (ns) 需要多少小时 (hour)。是模拟速度 ( ns/day \text{ns/day} ns/day) 的倒数形式,表示模拟的“成本”,是模拟速度 ( ns/day \text{ns/day} ns/day) 的倒数形式,表示模拟的“成本”,数值越小越好

主要看(hour/ns)这个指标,反应计算的性能表现。

GPU核数ns/day峰值GPU利用率
308016751.486%
308024637.680%
309016713.487%
309024631.380%
409016760.162%
409024910.070%
409032760.961%

测试中发现,当CPU核数太少或者太多时都不利用Gromacs性能指标ns/day的最大化,且不同GPU需要适配不同的CPU核数。

当CPU核数较少时,没办法充分释放GPU的算力,导致整体性能表现不佳,这个比较好解释;但当CPU核数过大是也会导致模拟速度的下降,问了下大模型,解释如下:

GROMACS 在 GPU 加速计算中常见的性能瓶颈问题,主要与 CPU-GPU 通信负载平衡以及 Amdahl 定律有关。

当 GROMACS 使用 GPU 进行计算加速时(特别是对于较小的模拟体系),增加分配给模拟的 CPU 核数反而可能导致性能下降 ( ns/day \text{ns/day} ns/day 减小) 和 GPU 利用率降低。核心原因在于任务分配不均数据传输开销

在 GROMACS 中,计算任务通常被分配如下:

  • GPU 任务(计算密集型): 主要负责非键相互作用(Non-bonded forces)的计算,这是 MD 模拟中最耗时的部分。
  • CPU 任务(管理与串行): 主要负责键合相互作用水模型约束(如 P-LINCS/SETTLE)、长程静电(如 PME 粒子网格)的傅里叶变换部分、数据管理I/O 以及 CPU-GPU 之间的数据传输

当您增加 CPU 核数时,会发生以下情况:

  • 并行开销增加: 额外的 CPU 核需要相互通信和同步,多核同步的开销(Overhead)会随着核数增加而非线性增长。
  • PME 傅里叶瓶颈: GROMACS 的 PME (Particle Mesh Ewald) 算法在傅里叶空间部分的计算通常在 CPU 上运行,并且是串行或并行效率较低的部分。随着 CPU 核数的增加,分配给每个核的 PME 任务量相对减少,但通信和同步等待时间却显著增加。

另外,还有发现3090在这个数据集场景下整体算力性能还不如3080,这个比较奇怪,但3090和3080本身算力差异没有很大,所以可能也有测试本身的随机性影响。

GPU和CPU选择

从上述测试来看,根据输入数据的大小和计算复杂度选择合适的GPU和CPU,可以带来更有的算力性价比。

  • Gromacs非常依赖CPU,所以选择高性能的CPU;
  • 根据输入数据和计算的紧迫性选择合适的GPU,更高算力的GPU会带来更优的性能;
  • 选择高性能的GPU的同时,需要配置更好的CPU及更多的CPU核数,才能体现出高性能GPU的算力;
  • 根据数据集大小,结合GPU的性能,配置合理的CPU核数,小数据集较低GPU不要配置过多的CPU核数;
  • 对于小数据集,3080 20G显卡具有非常不错的算力性价比。
基于径向基函数神经网络RBFNN的自适应滑模控制学习(Matlab代码实现)内容概要:本文介绍了基于径向基函数神经网络(RBFNN)的自适应滑模控制方法,并提供了相应的Matlab代码实现。该方法结合了RBF神经网络的非线性逼近能和滑模控制的强鲁棒性,用于解决复杂系统的控制问题,尤其适用于存在不确定性和外部干扰的动态系统。文中详细阐述了控制法的设计思路、RBFNN的结构与权重更新机制、滑模面的构建以及自适应律的推导过程,并通过Matlab仿真验证了所提方法的有效性和稳定性。此外,文档还列举了大量相关的科研方向和技术应用,涵盖智能优化法、机器学习、电系统、路径规划等多个领域,展示了该技术的广泛应用前景。; 适合人群:具备一定自动控制理论基础和Matlab编程能的研究生、科研人员及工程技术人员,特别是从事智能控制、非线性系统控制及相关领域的研究人员; 使用场景及目标:①学习和掌握RBF神经网络与滑模控制相结合的自适应控制策略设计方法;②应用于电机控制、机器人轨迹跟踪、电电子系统等存在模型不确定性或外界扰动的实际控制系统中,提升控制精度与鲁棒性; 阅读建议:建议读者结合提供的Matlab代码进行仿真实践,深入理解法实现细节,同时可参考文中提及的相关技术方向拓展研究思路,注重理论分析与仿真验证相结合。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值