首页 > 其他分享 >【LAMMPS学习】七、加速性能(4)加速器包

【LAMMPS学习】七、加速性能(4)加速器包

时间:2024-04-05 15:31:15浏览次数:14  
标签:LAMMPS 样式 性能 KOKKOS 加速器 GPU 加速

7. 加速性能

7.1.基准测试

7.2.测试性能

7.3.通用技巧

7.4.加速器包

LAMMPS 中添加了各种pair_style、fixes、compute 和其他命令的加速版本,其运行速度通常比标准非加速版本更快。有些需要您的系统上存在适当的硬件,例如GPU 或 Intel Xeon Phi 协处理器。

所有这些命令都包含在 LAMMPS 提供的软件包中。软件包页面上提供了包的概述。

以下为当前 LAMMPS 中的加速器包:

GPU Package

通过 CUDA、OpenCL 或 ROCm HIP 适用于 GPU

INTEL Package

适用于 Intel CPU 和 Intel Xeon Phi

KOKKOS Package

适用于 NVIDIA GPU、Intel Xeon Phi 和 OpenMP 线程

OPENMP Package

用于 OpenMP 线程和通用 CPU 优化

OPT Package

通用 CPU 优化

反过来,LAMMPS 目前通过列出的软件包对三种硬件提供加速支持:

Many-core CPUs

INTELKOKKOSOPENMPOPT 软件包

GPUs

GPUKOKKOS 软件包

Intel Phi/AVX

INTELKOKKOS 软件包

哪个包对于您的硬件来说速度最快可能取决于您正在运行的大小问题以及输入脚本调用的命令(加速和非加速)。虽然这些文档页面包含性能指南,但尝试适合您的硬件的不同软件包是无可替代的。

任何加速样式都与相应的标准样式具有相同的名称,只是附加了后缀。否则,使用该样式的命令的语法是相同的,它们的功能是相同的,并且它产生的数值结果也应该是相同的,除了精度和舍入效果之外。

例如,所有这些样式都是 Lennard-Jonespair_style lj/cut 的加速变体:

要查看当前可用于特定样式的加速样式,请在命令样式页面中找到样式名称(fix,compute,pair等),并查看列出的后缀(g、i、k、o、t) 。各个命令的文档页面(例如pair lj/cut 或fix nve)还列出了该样式可用的任何加速变体。

要在 LAMMPS 中使用加速器包及其提供的一种或多种样式,请按照以下常规步骤操作。详细信息因软件包而异,并在上面列出的各个加速器文档页面中进行了解释:

build the accelerator library
构建加速器库

only for GPU package 仅适用于 GPU 封装

install the accelerator package
安装加速包

make yes-opt, make yes-intel, etc
制作 yes-opt、制作 yes-intel 等

add compile/link flags to Makefile.machine in src/MAKE
将编译/链接标志添加到 src/MAKE 中的 Makefile.machine

only for INTEL, KOKKOS, OPENMP, OPT packages
仅适用于 INTEL、KOKKOS、OPENMP、OPT 封装

re-build LAMMPS 重建LAMMPS

make machine 制造机器

prepare and test a regular LAMMPS simulation
准备并测试常规 LAMMPS 模拟

lmp_machine -in in.script; mpirun -np 32 lmp_machine -in in.script
lmp_machine -in in.script; mpirun -np 32 lmp_machine -in in.script

enable specific accelerator support via ‘-k on’ command-line switch,
通过“-k on”命令行开关启用特定加速器支持,

only needed for KOKKOS package
仅 KOKKOS 包需要

set any needed options for the package via “-pk” command-line switch or package command,
通过“-pk”命令行开关或 package 命令设置包所需的任何选项,

only if defaults need to be changed
仅当需要更改默认值时

use accelerated styles in your input via “-sf” command-line switch or suffix command
通过“-sf”命令行开关或后缀命令在输入中使用加速样式

lmp_machine -in in.script -sf gpu

请注意,前 4 个步骤可以通过适当的 make 命令调用作为单个命令来完成。这在 Packages 文档页面上进行了讨论,其使用在各个加速器部分中进行了说明。通常,这些步骤只需完成一次,即可创建使用一个或多个加速器包的可执行文件。 

最后 4 个步骤都可以在启动 LAMMPS 时从命令行完成,而无需更改输入脚本,如各个加速器部分所示。或者您可以将包和后缀命令添加到输入脚本中。

注:除了少数例外,您可以构建一个安装了所有加速器包的 LAMMPS 可执行文件。但请注意,INTEL 和 KOKKOS 软件包要求您在针对特定平台进行构建时选择其硬件选项之一。 IE。 INTEL 封装的 CPU 或 Phi 选项。或者 KOKKOS 包的 OpenMP、CUDA、HIP、SYCL 或 Phi 选项。或者 GPU 包的 OpenCL、HIP 或 CUDA 选项。

这些都是例外。您不能使用以下命令构建单个可执行文件:

  • INTEL Phi 和 KOKKOS Phi 选项

  • INTEL Phi 或 Kokkos Phi 选项以及 GPU 包

如上所述,LAMMPS 网站的基准页面给出了多个标准 LAMMPS 基准问题的各种加速器包的性能结果,作为不同硬件平台上问题大小和计算节点数量的函数。

以下是各种软件包提供的内容的简要总结。详细信息位于各个加速器部分。

  • 带有“gpu”后缀的样式是 GPU 包的一部分,可以在 Intel、NVIDIA 或 AMD GPU 上运行。 GPU 的加速取决于多种因素,这些因素将在加速器部分讨论。
  • 带有“intel”后缀的样式是 INTEL 包的一部分。除了全双精度之外,这些样式还支持矢量化单精度和混合精度计算。在极端情况下,这可以使 CPU 加速超过 3.5 倍。该软件包还支持英特尔(R) 至强融核(TM) 协处理器的“卸载”模式加速。根据硬件配置,这可能会导致超过 2 倍的额外加速。
  • 带有“kk”后缀的样式是 KOKKOS 包的一部分,可以在多核 CPU、NVIDIA 或 AMD GPU 或 Intel Xeon Phi 上以“本机”模式运行 OpenMP。正如 KOKKOS 加速器页面上所讨论的,加速取决于多种因素。
  • 带有“omp”后缀的样式是 OPENMP 包的一部分,允许使用 OpenMP 在多线程模式下运行对样式。当使用比核心更少的 MPI 进程时,这对于具有高核心数量的节点非常有用,例如当使用 PPPM 运行以便 FFT 在较少的 MPI 处理器上运行时,或者当许多 MPI 任务会使通信的可用带宽过载时。
  • 带有“opt”后缀的样式是 OPT 包的一部分,通常可以将 CPU 上的模拟成对计算速度加快 5-25%。

各个加速器包文档页面解释了:

  • 加速包需要哪些硬件和软件
  • 如何使用加速包构建 LAMMPS
  • 如何通过命令行开关或修改输入脚本来运行加速包
  • 预期的加速
  • 最佳性能指南
  • 限制

7.5.加速器包比较

标签:LAMMPS,样式,性能,KOKKOS,加速器,GPU,加速
From: https://blog.csdn.net/monian000/article/details/137230731

相关文章

  • 分布式进阶(四)——分布式框架之高性能:消息丢失
    作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!阶段1、深入多线程阶段2、深入多线程设计模式阶段3、深入juc源码解析阶段4、深入jdk其余源码解析......
  • 分布式进阶(五)——分布式框架之高性能:消息有序性
    作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!阶段1、深入多线程阶段2、深入多线程设计模式阶段3、深入juc源码解析阶段4、深入jdk其余源码解析......
  • 我的C++奇迹之旅:值和引用的本质效率与性能比较
    文章目录......
  • Spark进阶(四)Spark性能优化和调优
    一、Spark的性能优化工具和技术Spark的性能优化工具和技术主要包括以下几个方面:数据分区和缓存:合理地将数据进行划分和缓存,可以提高数据的访问效率。可以使用repartition或coalesce进行数据分区,使用persist或cache进行数据缓存。并行度设置:通过调整并行度,可以提高Spark......
  • Java面试题:简述数据库性能优化的常见手段,如索引优化、SQL语句优化等。
    数据库性能优化是确保数据库系统高效运行的关键步骤。以下是一些常见的数据库性能优化手段:1.索引优化:创建索引:为经常用于查询条件的字段创建索引,可以大大加快查询速度。避免过多索引:虽然索引可以加快查询,但过多索引会减慢写操作,并占用额外空间。使用复合索引:当查询条件包......
  • IQMath定点数运算库性能测试
    基本信息单片机:GD32F303RC,运行主频:120MHz,SRAM:48KB,Flash:256KB,带单精度FPU编译环境:ARMCC5.06update6(build750)由于iq数的底层数据类型是4字节的int32_t因此_iq30~_iq1尽管表示的精度不同,但是运算速度是相同的。下列测试使用_iq15作为被测数据类型,能表示的范围从-65536......
  • 如何让 LLM 应用性能登峰造极
    作者:云中江树微信:zephyr_ai社区:langgpt.ai好久没写文章了,本文为LangGPT社区技术分享系列的第三篇文章,在上一篇讲了提示链(PromptChain)后,很多朋友期待我谈谈微调等其他内容,因着各种原因一直没能落笔。最近看了OpenAI开发者大会“HowtoMaximizeLLMPerformance”......
  • 深入iPhone GPU:探索其性能和架构
    摘要了解你的显卡对于在电脑上玩现代图形要求高的游戏非常重要。本文介绍了如何轻松查看你的显卡型号以及为什么显卡在玩电脑游戏时如此关键。引言随着电脑游戏的发展,现代游戏对硬件性能的要求越来越高。十年前发布的显卡已经无法满足当前游戏的需求。因此,了解你的显卡......
  • window.getComputedStyle会有性能问题吗
    window.getComputedStyle()方法被用来获取指定元素在浏览器中计算后的最终样式,包括继承样式、浏览器默认样式、用户自定义样式表、行内样式以及动画和过渡效果等。虽然它是一个非常有用的工具,但正如任何JavaScript操作一样,频繁或不当使用确实可能引发性能问题。以下是可能导致......
  • ASP.NET Zero Authenticate 性能问题
    前言​伴随着ASP.NETZero系统日渐运行,通过/api/TokenAuth/Authenticate获取Token的速度会逐渐变慢,到最后会呈现出一次获取会超过20秒或者导致超时的现象。先说结论导致问题产生的代码:​ TokenAuthController>CreateJwtClaims>AddTokenValidityKeyAsyncawait_userManag......