分子模拟榨干GPU性能的参数建议

显卡加速自从在分子模拟开始使用以来,大大加速了分子力学的模拟速度,引sob大提到的观点“一个家用高端四核处理器加上一张消费级显卡(如RTX2060)就可以超过20核双路服务器”。

这里给出一些关于分子模拟如何最大化使用显卡加速的建议。搬运自amber官网(http://ambermd.org/gpus12/),原则上只适用于amber的pmemd,不过分子模拟的算法大多类似,也可以迁移到gromacs之类的软件

1、避免使用较小的NTPR,NTWX,NTWV,NTWE和NTWR值。 过于频繁地写入到输出、重启和轨迹文件会损害在CPU运行时的性能,这对于GPU加速模拟来说更为严重,因为向GPU复制数据和从GPU复制数据需要大量成本。通过在尽可能多地在GPU上计算,仅在绝对必要时复制回CPU内存则可以实现性能最大化,也就是所谓CPU到GPU内存同步的最小化 。 同时这也保证了仅在绝对必要时才计算能量,从而减少计算开销,反之将NTPR或NTWE设置为低值将导致过多的能量计算。 最好不要将这些值中的任何一个设置为小于100的数(除了用0以禁用它们的情况),并且理想情况下使用500或更多的值,比如 NTWR> 100000是一个理想的设定。
2、避免设置ntave / = 0。设置打印运行平均值意味着需要计算每一步的能量和力,这对纯CPU计算来说代价还不太大,但在GPU上运行时这可能导致性能损失8%或更多。 类似的,你也应该将ene_avg_sampling的值设置为较小的值。
3、尽可能避免避免使用NPT系综(NTB = 2)。 几种系综的模拟速度一般为NVE≈NVT> NPT。 然而,对于显式溶剂模拟,我们始终需要运行至少一些NPT以使密度平衡。不过一旦完成密度平衡,通常可以切换回NVT进行模拟。
4、除非需要,否则应避免在隐式溶剂GB模拟中使用GBSA。 GBSA关键字是在CPU上计算的,因此在每个MD步骤上GPU和CPU的内存之间需要进行同步。关闭此选项的话只有在每个NTPR或NTWX步骤才需要进行内存同步。
5、使用Berendsen恒温器(ntt = 1)或Anderson恒温器(ntt = 2)代替Langevin恒温器(ntt = 3)。 Langevin模拟需要非常大量的随机数,这会略微降低性能。
6、不要认为对于小型系统GPU总是会更快。 通常,对于少于150个原子的GB模拟和少于9,000个原子的PME模拟,CPU版本在单个节点上的性能优于GPU版本的情况并不罕见。 一般来说GPU和CPU运行之间的性能差异将随着原子数的增加而增加。此外,使用的非键截断越大,GPU相对纯CPU计算性能的提升就越好。 -
7、跨多个GPU并行运行时,不要尝试共享节点互连。 例如,你应该避免在单个节点上运行2个单独的MPI作业。假设你有2个节点,每个节点都有一个QDR IB卡,1个C2050和1个C1060,如果你尝试在2个C2050上运行双GPU作业,在另外2个C1060上运行第二个双GPU作业,则性能可能会非常差。 在并行运行时混合不同型号GPU也是不可取的。 在这种情况下,建议将两张C2050放在一个节点中,两张C1060放在另一个节点中。
8、并行运行以获得最佳性能时,应使用最新的互连技术。 在撰写本文时,最新的技术是第2代QDR IB。你还应确保设置GPU Direct支持(Mellanox IB卡),取决于计算作业,这通常会提高10%到25%的性能。理想情况下,你还应确保所有GPU卡和infiniband卡都在完整的x16插槽中,这意味着它们将作为x16插槽进行电气连接,而不是那种看上去是物理x16但实际上分成多个插槽以兼容x8或x4插槽的接口。(提防像戴尔8路break out boxes这样的垃圾)
9、关闭ECC纠错(C2050 and later)。ECC可能会使性能损失高达10%并且会损害并行扩展。 你应该在尝试之前验证你的GPU是否正常工作,并且没有给出ECC错误。 你可以在Fermi(或更高)架构的显卡上关闭此功能,然后以root身份为每个GPU ID运行以下命令,然后重新启动:
nvidia-smi -g 0 --ecc-config=0 (repeat with -g x for each GPU ID)
我们已经在各种硬件上对AMBER进行了广泛的测试,证明了ECC对AMBER分子模拟的可靠性几乎没有任何好处,这也是我们推荐在GeForce游戏显卡上进行AMBER分子模拟的部分原因。 -
10、如果你的显卡支持,打开GPU Boost。NVIDIA的新款GPU如K40支持GPU Boost,如果供电和散热允许,可以提高显卡频率。 打开GPU Boost的命令:
sudo nvidia-smi -i 0 -ac 3004,875 它将设备0置于最高升压状态。
返回正常状态: sudo nvidia-smi -rac
在没有root权限下打开Boost: nvidia-smi -acp 0

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章