发布于: Nov 30, 2022

【概要】与我们熟悉的型 x86-64 架构不同,Graviton 2 支持 ARM V8.2 和其它几个架构扩展。特别要强调的是,Graviton2 支持用于原子操作的 LSE (Large System Extension) 指令集的扩展,可以提高大系统之间的锁定和同步性能。

除了实例类型之外(例如 M5、C4),其它用于描述实例能力的最重要的指标就是其 vCPU 的数量。所谓的 vCPU 是 Virtual Central Processing Units 的缩写。vCPU 本质上是指虚拟机上可用的逻辑 CPU 的内核。但 EC2 的逻辑 CPU 计算方法却并非是基于物理上的 CPU 内核。准确的说,并发线程的数量即为 EC2 vCPU 的数量。例如,默认情况下,M5.xlarge 实例类型有两个 CPU 内核,每个内核支持两逻辑个线程,这样该类型实例的 vCPU 的数量即为 4 个。EC2 实例范围通常从 1 个 vCPU 到最多 128 个,常见的实例的 vCPU 的数量多为 2、4、8、16、32、48、64 和 96 等。

Graviton 2 是不带 SMT 的单路 64 核平台。所谓的 SMT (Simultaneous multithreading) 的含义其实就是我们熟知的超线程技术。简单来说,SMT 技术可以在一个实体 CPU 中提供两个逻辑线程,通过分享处理器的资源来提高性能。在 Intel 的 CPU 中类似的技术被称作 Hyper-Threading,或者简称 HT。目前,Graviton 2 最大可用 vCPU 实例大小为就是 64。

但是,这也意味着在谈论例如 64 个 vCPU 实例的时候(在 EC2 中的规格称为 16xlarge),对于 Graviton2 实例我们将获得 64 个物理核心,而对于 AMD 或 Intel 系统,我们将仅获得 32 个具有 SMT 的物理核心。这确实有一点“不公平”的味道,但是考虑到规格描述的一致性,这一点差别只好被忽略了。

 

Graviton 2 目前被用于 EC2 家族中的 M6g、C6g 以及 R6g 实例。其中,

  • M6g 实例用于具有 CPU、内存和网络资源平衡的通用工作负载
  • C6g 实例用于计算优化的工作负载,例如视频编码、建模和游戏服务器
  • R6g 实例用于内存优化的工作负载,可处理内存中的大型数据集(如数据库)

与我们熟悉的型 x86-64 架构不同,Graviton 2 支持 ARM V8.2 和其它几个架构扩展。特别要强调的是,Graviton2 支持用于原子操作的 LSE (Large System Extension) 指令集的扩展,可以提高大系统之间的锁定和同步性能。此外,它还支持 FP16 和用于机器学习的 INT8 等。毫不夸张的说,这一次 Graviton2 给我们带来的足够的惊喜。但不可否认的是,ARM 处理器的体系结构与以往我们所熟悉的 x86-64 处理器的差异还是非常之大的。简而言之,如果我们不掌握针对 ARM 处理器的应用优化的方法,我们所看到的这一切性能上的提升不过是镜花水月。

 

相关文章