未来Arm CPU上BLIS的性能预测

Find AI Tools
No difficulty
No complicated process
Find ai tools

未来Arm CPU上BLIS的性能预测

目录

  • 引言
  • ARM的CPU IP产品线
  • Neoverse V1架构
    • 性能优化特点
    • 指令集架构和扩展
  • Fujitsu A64FX
    • 与Neoverse V1的比较
    • 微架构和优化设计
  • Neoverse V1与A64FX的性能比较
    • 微内核性能
    • L2和L3缓存性能
  • Bliss内核在Neoverse V1上的表现
    • 编译和运行过程
    • BLAS L2和L3性能
    • DJM性能
  • 总结
  • FAQ

引言

欢迎大家来到Bliss Retreat,我是John Linford。今天我将为大家展示一些关于未来的武装CPU,特别是Neoverse V1 CPU的性能预测。我们将比较Bliss内核在这两个平台上的性能,并给出一些实验结果。问题是,A64FX上开发的SVE代码能否直接移植到Neoverse V1上运行。目前,Neoverse V1还不存在,而A64FX则已推出,所以这是一个跨代的比较。A64FX是专门为领导级HPC设计的,而Neoverse V1则可以在广泛的应用领域中使用,具体取决于ARM合作伙伴的授权方式。我并不打算将A64FX与Neoverse V1进行比较,只是提供了两个实现了ARM可扩展向量扩展(SVE)的CPU的性能数据点。

ARM的CPU IP产品线

由于我们是一家基于知识产权的公司,我们向合作伙伴提供CPU设计,提供三种基本类型的CPU核心,即基础设施CPU核心、N系列CPU核心和E系列CPU核心。大家对N系列CPU核心应该已经很熟悉了,因为这也是AWS Graviton 2和Ampere Ultra中使用的CPU核心。它在廉价高性能计算(HPC)工作负载方面表现出色,特别是在计算流体动力学方面的性能表现非常好。然而由于其每个核心只有两个128位的NEON单元,所以其浮点性能总体上相对有限。而V1是ARM推出的第一个V系列核心,旨在提供卓越的性能。相比N1核心,V1核心的单线程性能提升了50%,实现了2个256位的SVE配置,并添加了对BFloat16等的支持。今天我将对Neoverse V1的架构和性能进行详细介绍,并说明我们通过模拟来评估ARM未来核心上应用性能的工具。

Neoverse V1架构

性能优化特点

Neoverse V1是ARM目前最新的核心设计,也是迄今为止最宽的微架构。它采用了新型的SVE指令集架构,支持从ARMv8.4扩展到ARMv8.6的各种扩展。V1是为了性能而设计的,旨在比N1核心的单线程性能提升50%。为此,ARM采用了2个256位的SVE配置,并添加了对BFloat16等的支持。V1与我们的片上网络CMN-700紧密集成,支持高带宽DDR5内存、PCI Gen 5和CXL等,为外部扩展卡和其他插槽提供优良的连接性。具体的实现取决于我们的合作伙伴,但我们已经看到了来自塞尔和E天的设计元素,因此我相信未来的产品将能与此模拟器相匹配。

指令集架构和扩展

Neoverse V1实现了RMv8.4指令集架构,支持从8.4扩展到8.6的指令。ARM的Simulator Simulator提供了一个高度准确的核心模拟器,与硅实现的核心相比,准确度在5%之内。由于它是软件实现,我们可以定义更多性能计数器,以获取有关核心、L1缓存、L2缓存和许多相关特性的详细架构性能信息。虽然EvE模拟器在L3缓存和离芯部分的模拟方面存在一些限制,但在核心内部,它可以提供非常详细的架构性能信息。在EVE模拟器上运行代码需要注意其限制,woss,使用简单的代码,避免动态内存分配,避免涉及系统调用,保持静态二进制文件尽可能简化等。

Fujitsu A64FX

与Neoverse V1的比较

Neoverse V1和Fujitsu A64FX都支持ARM可扩展向量扩展(SVE),但它们的微架构和设计理念有很大的不同。尽管它们都使用相同的指令集架构,但由于它们采用了不同的微架构设计,所以这里在某种程度上比较了一下ARM与富士通的设计。

微架构和优化设计

A64FX采用了512位SVE配置,每个线程具有两个512位SVE单元,并使用定制的富士通微架构。它针对Riken和日本计算社区关注的特定应用进行了协同设计,因此在微架构上具有明显的特点。与此相反,Neoverse V1是一个通用设计,可以在不仅仅是HPC领域的广泛应用中使用。此外,A64FX还采用了高带宽内存与宽矢量结合的混合设计,这在HPC应用中被证明是一个很好的设计点。因此,从性能角度来看,A64FX可以被认为是领导级HPC系统,而Neoverse V1在单线程性能成为决定因素的任何应用中,不仅仅是HPC应用中,在这些方面也会做得很好。

Neoverse V1与A64FX的性能比较

在这里,我们将侧重于比较两个平台的性能,以及使用Bliss内核的可扩展向量扩展(SVE)代码在这两个平台上的表现。

微内核性能

在模拟中,我们只能运行单个核心,而且必须将问题规模限制在相对较小的范围内。根据这些小问题规模的性能比较,我们可以看到Neoverse V1相对A64FX更快,且能够充分利用理论峰值性能的较高比例。这是由于在缓存中运行的操作较多,而V1的设计更宽,相对较短的管道长度使其能够同时处理更多操作。A64FX则是一个较窄的设计,管道较长,一旦其中一个管道出现问题,就会有很大的成本。这种差异在一些L2操作中尤为明显。在L3操作中,我们可以看到更有趣的结果。

L2和L3缓存性能

A64FX没有L3缓存,而V1支持更大的L2和L3缓存。在这个具体的问题规模下,V1的性能比A64FX好。然而,问题规模增大后,可能会有不同的情况,但由于模拟器的限制,我们无法进行更大规模的模拟。对于更大的问题规模的研究,我们需要进行更多的工作,并且最好从ARM的合作伙伴那里获得更多关于他们设计参数的信息。

Bliss内核在Neoverse V1上的表现

在模拟器中运行这些内核的一项重要优势是我们可以获得大量的性能数据。从Bliss的编译和运行过程到性能比较,我们可以得到丰富的信息。

编译和运行过程

对于A64FX,我们使用gcc 11.1编译器进行编译,并使用标准的make build过程。然后禁用系统、多线程和共享,以最简化编译过程。对于模拟器模拟中的V1,我们使用最新版本的gcc,并使用-cflags参数进行微体系结构特定的配置。根据模拟器的限制,需要避免使用多线程、系统调用和动态内存分配。编译的过程相对简单且如预期运行良好,这表明Bliss已经在模拟器上使用过,团队已经考虑过在EVE模拟器这样的环境中运行内核的问题。

BLAS L2和L3性能

BLAS L2性能测试显示,模拟的V1芯片比A64FX在这个问题规模上更快,且能够实现更高的峰值性能比例。因为这个问题规模非常小,所以在更大的问题规模下可能会有不同的结果。但是,这个结果鼓舞人心,显示了Bliss内核在未来架构上的优异性能。

BLAS L3性能测试给出了更有趣的结果。我们可以发现,模拟的V1芯片并没有超越A64FX的性能,但是它的效率更高,尤其是对于这个小问题规模。随着问题规模的增加,这个曲线可能会发生变化,但限于模拟器的限制和问题规模的大小,这是我们能够得到的结果。需要注意的是,这并不是对Bliss或A64FX的评价,而是这个特定问题规模下在这个模拟器上运行的结果。然而,这个结果仍然表明,在未对代码进行任何修改的情况下,在256位的SVE单元上的SVE代码可以在未来的架构上运行,并且表现良好。

DJM性能

通过一系列矩阵大小的DJM性能测试,我们发现模拟的V1在较小的问题规模下超过了A64FX。这是可以预料的,因为Bliss内核的实现与V1的架构非常吻合。当然,这些结果是基于相对较小的问题规模,如果问题规模更大,结果可能会有所变化。模拟器的限制使我只能使用单个核心进行性能测试,这样可能无法得到最准确的结果。然而,从当前数据来看,使用未经修改的SVE代码在未来架构上运行表现良好。

总结

总的来说,根据这些小规模性能数据以及我们对未来架构上运行Bliss内核的一些模拟,Neoverse V1在性能方面表现出色。任何使用Bliss的代码都应该具有良好的性能,并且不需要太多的调整和优化。这对于SVE代码在不同架构之间的移植非常有帮助,显示了SVE代码可以在不同硬件实现的SVE单元中顺利移植,并且获得很好的性能。

FAQ

问:Bliss在Neoverse V1上的性能是否会受到问题规模的影响?

答:是的,Bliss的性能可能会受到问题规模的影响。这些模拟中使用的问题规模相对较小,因此可能无法完全反映在更大规模上的性能表现。有待进一步研究。

问:Neoverse V1的性能优化特点有哪些?

答:Neoverse V1的设计目标是提供卓越的性能。它采用了2个256位的SVE配置,并支持BFloat16等功能。此外,它与ARM的片上网络CMN-700紧密集成,提供了高带宽DDR5内存和PCI Gen 5等连接性能。

问:Bliss内核在A64FX上的性能是否比Neoverse V1更好?

答:在这个小规模的性能测试中,Bliss在Neoverse V1上的性能略好于A64FX。然而,对于更大规模的问题,情况可能会有所不同。需要更多的测试数据来进行准确的比较。

问:Bliss内核在Neoverse V1上的性能是否仍需进一步优化?

答:从目前的测试结果来看,Bliss在Neoverse V1上已经取得了很好的性能。然而,通过进一步的调整和优化,我们可能能够获得更高的性能。

问:我可以在现有的A64FX代码上直接在Neoverse V1上运行吗?

答:是的,根据目前的测试结果,A64FX上的SVE代码可以直接在Neoverse V1上运行,而无需进行任何修改。这证明了SVE代码可以在不同的硬件实现中进行移植,并且获得良好的性能。

问:市面上有哪些使用Neoverse V1的产品?

答:目前还没有Neoverse V1上的产品上市,但我们预计在2022年会有一些合作伙伴推出相关产品。因此,我们还需要等待一段时间才能看到Neoverse V1在市场上的真实应用。

问:Bliss Retreat是什么活动?我如何参加?

答:Bliss Retreat是一个关于Bliss内核的研讨会,旨在讨论Bliss在不同架构上的性能和优化。欢迎您参加我们的研讨会,了解更多有关Bliss和Neoverse V1的信息。详细的活动信息可以在我们的官方网站上找到。

问:在模拟器上运行代码时,是否会发生性能下降?

答:是的,在模拟器上运行代码会导致性能下降。模拟器通常比硅实现慢几个数量级。因此,我们需要根据模拟器的限制和实际问题规模来解释性能数据,并需要考虑到模拟器本身引入的延迟。

问:到目前为止,Neoverse V1是ARM的最新款CPU吗?

答:是的,Neoverse V1是ARM目前推出的最新型号CPU。它具有先进的SVE功能和卓越的性能特点,被认为是ARM的标志性产品之一。

问:在Neoverse V1上编写的代码能否在其他平台上运行?

答:Neoverse V1是基于ARM架构的,因此在其他实现了相同指令集架构的平台上,这些代码应该可以直接运行。然而,由于各个厂商可能会根据自己的设计进行微调,所以在其他平台上的性能可能会有所不同。需要在实际硬件上进行测试和优化。

问:是否有其他优化工具可以帮助在Neoverse V1上获得更好的性能?

答:根据我们的测试结果,Bliss内核在Neoverse V1上已经表现出良好的性能。然而,您可以使用其他优化工具来进一步改进应用程序的性能,如编译器优化和代码调整。此外,最好参考ARM的文档和合作伙伴的建议,以获取更多针对Neoverse V1的优化策略。

Most people like

Are you spending too much time looking for ai tools?
App rating
4.9
AI Tools
100k+
Trusted Users
5000+
WHY YOU SHOULD CHOOSE TOOLIFY

TOOLIFY is the best ai tool source.