0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于ARMv8A的处理器——Graviton系列

Linux阅码场 来源:Linux阅码场 作者:Linux阅码场 2022-07-01 10:04 次阅读

2011年ARM公司的年度技术会议TechCon发布了全新的ARMv8架构[1],同一年,在以色列,Nafea Bshara和Bilik Hrvoye从他们的前老板获得2000万美元的投资,创建了Annapurna Labs。四年之后的2015年,亚马逊用35亿美元收购了这家公司。Annapurna Labs从此成为亚马逊的一个部门,这个部门相继设计了3代基于ARMv8A的处理器——也就是Graviton系列。

话不多说,先上参数

583f029c-f8d3-11ec-ba43-dac502259ad0.png

数据整理:健哥。

原始地址:https://fvot4kwt4n.feishu.cn/sheets/shtcn69s9nbcvYxX0bAnDgxiAUb

Graviton3们,等等,这里为什么用们?因为Graviton3这颗“芯片”(Chip)里面是由7颗芯片(die)组成的。虽然没有召唤出神龙,Graviton3的引力吸引到了4个DDR控制器die(每个die又有两个DDR5通道)和两个PCIe5.0控制器die。

把多个die封装到一个芯片中的技术称为chiplet技术,这样的好处是,如果将来亚马逊有了更快的CPU,而周围的DDR和PCIe控制器不变,则不需要重新设计制造DDR和PCIe控制器芯片,可以把新的CPU和已有的控制器封装到一起。这样,系统设计可以更加灵活。前面表格的华为鲲鹏920,也采用了这项技术。

芯片整体性能方面,官方的说法是每个核心的性能至少快了25%。下面的SPEC CPU 2017测试也可以说明这一点。图中的蓝色是Graviton2,绿色是Graviton3。SPEC CPU是业内通行的测试CPU性能的benchmark,包括整数测试,浮点测试等等,大多数的用例都取自最终用户的应用,例如perl解释器,视频压缩,3D渲染等等[3]。

5880905e-f8d3-11ec-ba43-dac502259ad0.png

来源:AWS re:invent 2021

Nginx的负载均衡测试里面,Graviton3比前一代好了一倍。

58b09092-f8d3-11ec-ba43-dac502259ad0.png

来源:AWS re:invent 2021

对于Nodejs,则提高了40%

58d007e2-f8d3-11ec-ba43-dac502259ad0.png

来源:AWS re:invent 2021

视频编码提高了50%

58f71814-f8d3-11ec-ba43-dac502259ad0.png

来源:AWS re:invent 2021

机器学习提高了几乎150%

591c6ae2-f8d3-11ec-ba43-dac502259ad0.png

来源:AWS re:invent 2021

由于亚马逊做了软硬件垂直优化,不光是芯片本身的迭代,整个服务器的结构也有改进,这次一个主板上(下图右侧)支持三颗Graviton3芯片。

594117de-f8d3-11ec-ba43-dac502259ad0.png

来源:AWS re:invent 2021

最后,让我们“打开”芯片,看看里面的CPU。Graviton3使用了ARM Neoverse V1。V1主要是支持ARMv8.4的特性(上次说的苹果M2支持到ARMv8.5特性),包括MPAM,SVE,嵌套虚拟化等。

595db4f2-f8d3-11ec-ba43-dac502259ad0.png

来源:https://community.arm.com/arm-community-blogs/b/architectures-and-processors-blog/posts/neoverse-v1-platform-a-new-performance-tier-for-arm

ARMv8.4的MPAM是内存的分区和监控功能,通过Partition ID对cache的容量和内存带宽进行划分。SVE是ARM在NEON的下一代SIMD(单指令多数据)指令集,关于SVE指令,2020年的超级计算机排行榜的第一名的Fugaku,就是基于ARM架构并使用了SVE指令集。[4]

ARMv8.4还支持了安全世界的虚拟化(Secure EL2),平时咱们用的Linux/Android都运行在Normal World(非安全世界,和安全世界相对)。安全世界运行需要更高安全性的能力,例如手机的指纹识别,版权视频播放等等。安全世界的虚拟化就是允许安全世界运行多个安全操作系统

59932a7e-f8d3-11ec-ba43-dac502259ad0.png

来源:https://en.wikipedia.org/wiki/Bfloat16_floating-point_format

ARMv8.6的Bfloat16不仅支持了Bfloat16浮点类型,还支持了该类型的点积和矩阵运算,以及从单精度浮点(32位)转换到Bfloat16的命令。Bfloat16格式是由Google Brain团队开发的格式,如上图,指数有8位,小数有7位。该格式很适合机器学习使用。

59b3a4c0-f8d3-11ec-ba43-dac502259ad0.png

来源:AWS re:invent 2021

Graviton3的CPU性能如何呢?有大神做了详细的测试[5],健哥选了其中的时延测试。下图的Amphere Altra和Graviton2一样都采用了Neoverse N1,下图是二者和Graviton3的memory时延对比,可以看出Graviton3的L3 cache性能(下图虚线,第三个台阶)明显比另外两个处理器好。但是由于DDR5本身的延迟比DDR4大一些,再加上DDR5在另外的die上面,所以Graviton3的主内存时延比另外两个稍稍大一些(下图第四个台阶,图片的右上角)。

59d74ace-f8d3-11ec-ba43-dac502259ad0.png

Graviton3在亚马逊云服务上已经上线,一根豪华冰棍的钱(每小时15.5RMB)就能愉快的玩耍64个vCPU的虚拟机1小时,相比之下,1vCPU2G内存的虚拟机只需要每小时两毛四。64个CPU意味着单个Graviton3的芯片完全被你所用,系统cache和内存带宽都是你一个人的。

59f6898e-f8d3-11ec-ba43-dac502259ad0.png

对ARM架构和调测调优感兴趣的小伙伴可以进群咨询了解健哥的课程

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    18242

    浏览量

    222031
  • 芯片
    +关注

    关注

    446

    文章

    47732

    浏览量

    409028
  • ARM
    ARM
    +关注

    关注

    134

    文章

    8647

    浏览量

    361743

原文标题:从外到内揭开亚马逊的自研ARM芯片:Graviton3

文章出处:【微信号:LinuxDev,微信公众号:Linux阅码场】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    ARM Cortex-M处理器对比表

    Cortex-M处理器系列针对低成本、高能效的微控制进行了优化。 这些处理器可以在各种应用中找到,包括物联网、工业和日常消费设备。 该处理器
    发表于 08-29 07:00

    如何将软件应用程序从ARMv5迁移到ARMv7-A/R

    5。 本应用笔记还假设您具有ARMv5的软件开发经验。 假设主目标平台是围绕ARMv7-A处理器构建的。 由于ARMv7-AARMv7-R
    发表于 08-29 06:51

    ARM Cortex®-A72 MPCore处理器技术参考手册

    Cortex-A72处理器是一款实现ARMv8-A架构的高性能、低功耗处理器。 它在带有L1和L2缓存子系统的单处理器设备中具有一到四个核心
    发表于 08-25 06:27

    ARMv8-A处理器的裸机引导代码

    熟悉ARM软件开发。 它旨在帮助您编写ARMv8-A处理器的引导代码。 您可以参考本应用笔记中的引导代码示例,并为基于ARMv8-A处理器的裸机系统编写自己的引导代码。
    发表于 08-23 06:20

    ARMv8-A TrustZone软件对实施SVE的系统的影响

    本文档介绍ARMv8-A[ARMv8]的可伸缩向量扩展[SVE]对在应用程序处理器上以安全状态执行的软件的影响。 本文档考虑了部署现有ARMv8-A TrustZone软件对实施SVE
    发表于 08-23 06:17

    ARM Cortex-A系列ARMv8-A程序员指南

    ARMv8-A是针对应用配置文件的最新一代ARM架构。 在本书中,名称ARMv8用于描述整个体系结构,它现在包括32位执行状态和64位执行状态。 ARMv8引入了使用64位宽寄存执行
    发表于 08-22 07:22

    基于ARMv8-M处理器的安全堆叠密封

    本建议概括介绍了软件对识别为CVE-2020-16273的漏洞的影响和缓解措施。 本咨询中讨论的方案涉及基于ARMv8-M的处理器,包括Cortex-M23、Cortex M33
    发表于 08-17 06:31

    ARM体系结构参考手册ARMv7-AARMv7-R版本

    本手册介绍ARM®架构v7、ARMv7的A和R配置文件。 其中包括以下内容的描述: ·处理器指令集: -原始ARM®指令集-高代码密度Thumb®指令集-ThumbEE指令集,包括对实时(JIT)或
    发表于 08-12 07:46

    Cortex-A9处理器技术参考手册

    Cortex-A9处理器是一款高性能、低功耗的ARM宏单元,具有L1缓存子系统,可提供完整的虚拟内存功能。Cortex-A9处理器实现ARMv7-A
    发表于 08-02 16:29

    如何在Cortex-M处理器中实现的Armv8-M异常模型

    本指南介绍在Cortex-M处理器中实现的Armv8-M异常模型。本指南还提供了示例,以帮助解释其介绍的概念。 Arm架构分为多个配置文件,针对不同细分市场的需求。微控制配置文件或“M配置文件
    发表于 08-02 13:14

    ARM®Cortex®-A57 MPCore处理器技术参考手册

    Cortex-A57处理器是一款高性能、低功耗的处理器,可实现ARMv8-a建筑学它在带有L1和L2缓存子系统的单个处理器设备中有一到四个核
    发表于 08-02 09:12

    Armv8-A上调试的使用指南

    程序和连接调试时感兴趣的区域 •执行重置时可能出现的问题 •不同的调试操作,每个操作的执行方式,以及 每次操作 •Armv8-A使用的不同内存空间和寄存集的重要性 加工机 •通过
    发表于 08-02 09:11

    arm调试的基本知识:调试Armv8-A处理器之前的有用概念

    本指南介绍了在调试Armv8-A处理器之前了解的有用概念。 为了说明这些概念,我们提到了调试,例如GDB,GNU项目调试 以及Arm Debugger,它是Arm Developm
    发表于 08-02 06:40

    ARMv8-M处理器故障处理和检测

    错误检测和校正技术可用于帮助减轻硅器件。ARMv8-M处理器包括一些功能,可以检测这些错误。 在硅器件中,出现错误的原因可能是: •软件错误。 •使用错误,条件在正常操作条件之外。例如温度或电源电压
    发表于 08-02 06:28

    ARMv8-M异常处理手册

    ARMv8-M异常模型描述了处理器如何响应异常与每个异常关联的属性,例如其优先级和异常返回行为。通常有一个异常处理程序与每个异常类型相关联。 ARMv8-M
    发表于 08-02 06:09