https://community.arm.com/developer/tools-software/hpc/b/hpc-blog/posts/new-nvidia-hpc-developer-kit-for-arm-developers
fixxxer2021年4月14日
期待已久的NVIDIA GTC21终于揭开序幕,这是我个人期待已久的事件。这次会议汇集了主题演讲,实验室,技术讲座,小组讨论等等,就像是开发人员的虚拟游乐场。来自世界各地的行业领导者,专家,教育者,发烧友和技术传道者在这里学习和分享技术领域必将经历数年的爆炸式增长和创新。
我相信GTC还会发布更多精彩的公告和精彩的内容。尽管如此,我还是想首先引起您的注意,在周一的开幕主题演讲中提到了NVIDIA Arm HPC开发人员工具包。
NVIDIA首席执行官黄仁勋(Jensen Huang)宣布推出新的Ampere Altra + NVIDIA A100 HPC开发人员套件(左二)。
该博客快速概述了新的HPC开发人员工具包。我们讨论了已经强大的NVIDIA和Arm开发人员工具套件(例如NVIDIA HPC SDK和Arm Allinea Studio),最后,我们深入研究了Ampere Altra CPU + NVIDIA A100设置的性能。在此博客的结尾,您还将找到一种简单的方法来表达您对该套件的早期兴趣,并在NVIDIA即将面世时选择采用NVIDIA的更新。
现在,让我们看看这个工具包。
NVIDIA Arm HPC开发人员套件
在GTC开幕主题演讲中,此HPC开发人员工具包的图形引起了我的注意。配备一个Ampere®Altra®CPU,具有80个Arm Neoverse内核,运行频率高达3.3GHz;当然,我必须仔细看一下两个NVIDIA A100 GPU和两个NVIDIABlueField-2®DPU。
- 服务器Sku :技嘉G242-P32
- 构成因素 : 2U机架(87.5 x 438 x 820mm; 3.44“ x 17.24” x 32.28“)
- 中央处理器 :1个安培运算Altra Q80-30
- 记忆 :512G DDR4
- 贮存 :6TB SAS / SATA 3.5英寸
- 显卡 :2个A100 PCIe 40GB
- 网络 :2个BF2(IB单端口,MBF2M345A-HESOT)
显然,该系统的设置可以有效地驱动各种各样的工作负载,更不用说两个NVIDIABlueField-2®DPU,它们可以加快网络,存储和安全性。通过将该工具包与NVIDIA HPC SDK和Arm Allinea Studio工具套件结合使用,开发人员可以在GPU加速的基于Arm的硬件上创建,迁移和测试其HPC和AI应用程序的限制。对于Arm开发人员来说,情况一直在变好。
现在该探讨工具生态系统和一些基准,这些基准可能有助于说明此新开发人员工具包的功能。
工具和性能调查
用于基于Arm的平台的NVIDIA HPC SDK
NVIDIA的HPC SDK 是NVIDIA平台上的HPC开发人员必不可少的工具套件。
HPC SDK支持将重要的社区和独立软件供应商(ISV)应用程序移植到具有多处理器Arm CPU和NVIDIA数据中心GPU的系统。NVIDIA Fortran,C和C ++编译器针对多处理器CPU和NVIDIA GPUS进行了全面优化,使HPC开发人员可以使用GPU加速的数学库,标准的Fortran / C ++并行语言功能为异构CPU + GPU服务器编写和调整并行应用程序,并行的OpenACC和OpenMP指令以及CUDA。
NVIDIA数学库为HPC基本的线性代数和信号处理算法提供了嵌入式,高度优化的GPU加速。数学库除了为GPU加速提供方便的加速外,还为受支持的API提供光速性能,并使用户可以在发布新GPU架构时自动受益。
NVIDIA对异构多处理器CPU + GPU系统进行编程的愿景:首先使用嵌入式,GPU优化的数学库。使用标准的C ++ 17并行算法和Fortran并行语言功能实现GPU的初始加速。使用编译指示和指令来填补标准语言空白(例如,数据移动),最后使用CUDA优化性能。
HPC SDK是:
- 截至2019年11月,全球500强HPC系统中的99%受支持,包括Arm和Arm + GPU
- 唯一包含全面支持使用C ++和Fortran中的标准语言构造,OpenACC和OpenMP指令以及CUDA对GPU进行编程的产品
- 完善了针对CPU和GPU的优化数学和通信库以及性能分析和调试工具
- 与第三方工具完全可互操作
- 免费提供(全年发行多个版本)
Arm Allinea Studio的附加功能
除 NVIDIA HPC SDK外,Arm Allinea Studio是针对HPC应用程序开发人员的一套可扩展,经过Arm优化的开发人员工具。它使最终用户能够为基于Arm的HPC系统(尤其是具有GPU加速器的系统)创建,迁移和创新串行和并行代码。HPC应用程序通常用多种语言编写,并且涉及多层并行性,因此Arm Allinea Studio支持C,C ++,Fortran,Python,MPI和OpenMP。
Arm Allinea Studio的三个主要组件是用于Linux的Arm编译器(ACfL),Arm Performance Libraries(ArmPL)和Arm Forge。ACfL是用于服务器级AArch64平台的基于LLVM的CPU编译器。它支持C,C ++和Fortran中的自动向量化(SVE和Neon),并包括利用LSE原子等硬件功能的优化运行时库。ACfL与主要的MPI发行版(如OpenMPI,HPE MPI和MVAPICH)完全兼容。
ArmPL实现了BLAS,LAPACK和FFTW接口,以微架构优化的数学库进行科学计算。它支持ACfL和GCC编译器,并与ScalaPACK等并行数学库配合使用。它是处理密集的单精度和双精度实数据以及复杂数据的绝佳选择。它还使用检查器-执行器框架,包括了越来越多的稀疏矩阵函数集(例如SPMV),用于高性能的稀疏解决方案。
调试和性能分析由Arm Forge提供。Forge的DDT可扩展调试器因其在CPU,GPU,Intel,POWER和Arm架构上对C,C ++,Fortran和Python并行应用程序的跨平台支持而广受全球HPC中心的欢迎。Forge的MAP探查器是用于性能表征的高度可扩展的低开销解决方案。它通过揭示性能降低的原因来帮助开发人员加速其代码,并且通常在从多处理器Linux工作站到最大的超级计算机的范围内使用。运行时开销通常在5%以下,并且完全支持C,C ++和Fortran,而无需重新链接,检测或代码更改。
Ampere Altra + NVIDIA A100性能研究
为了预见NVIDIA Arm HPC开发人员工具包的推出,Arm和NVIDIA在Ampere Altra,NVIDIA A100和AMD EPYC 7742上已经展示了超过两个主要HPC应用程序的性能。我们使用了NVIDIA HPC SDK,Arm Allinea Studio。以及Gnu 10.2工具链,并结合了NVIDIA和Arm的优化数学库。我们从x86和Arm平台中选择了最佳时间,但没有更改应用程序源代码。可能会有更好的性能,但这代表了科学家和工程师的“开箱即用”的经验。
在比较基于x86和基于Arm的计算平台上GPU加速的应用程序的性能时,我们发现平均应用程序性能是相同的。仅限内存的CPU应用程序在两个平台上的性能也相似,但是在少数情况下,基于Arm的Ampere Altra的性能优于AMD EPYC 7742。
为了更好地理解这些加速的原因,我们使用了Arm Allinea Studio中的Arm Forge来表征基于x86和基于Arm的平台上的应用程序性能。跨平台的逐个比较表明,性能是由于Altra每个内核的L1和L2数据缓存是EPYC的两倍。具有大型稀疏工作集的纯CPU应用程序受益于Altra每个内核的高缓存。GPU加速的应用程序受益于低的内核启动延迟,并且在所有情况下均享有较低的CPU功耗。有关更多详细信息,请参阅NVIDIA GTC会议 S32758“ HPC应用在Arm上+ NVIDIA A100 ”。
获取套件
如果您像我一样对这些新套件感到兴奋,并且想了解更多信息,请继续浏览NVIDIA Arm HPC开发人员套件登陆页面,(https://developer.nvidia.com/arm-hpc-devkit)以表达您对该硬件的早期兴趣。
了解有关GTC的更多信息: https://www.nvidia.com/gtc/