NVIDIA Grace / Vera CPU 微架构参数

NVIDIA 目前公开的 CPU 路线可以分成两步:

  1. Grace:使用 Arm Neoverse V2 作为核心,NVIDIA 自己重点做 SoC、内存、互连和 coherency fabric。它的定位是 AI infrastructure、HPC、data analytics、hyperscale cloud 等传统数据中心和加速计算宿主 CPU。

  2. Vera:改用 NVIDIA 自研 Olympus Arm-compatible core,并把目标进一步收敛到 agentic AI、reinforcement learning、sandbox execution、tool use、orchestration、analytics 等 CPU 密集型 AI factory 工作负载。

  3. 前端

    • Grace / Neoverse V2 已经是 6-wide decode、8 MOP dispatch 的 server core
    • Vera / Olympus 进一步提高到 10-wide fetch/decode、128B/cycle L1I fetch,并强化 neural branch predictor
  4. Cache 与访存

    • Vera 将 L1D 从 Grace 的 64KB 提高到 96KB,private L2 从 1MB/core 提高到 2MB/core
    • Vera 增加 graph-oriented、indirect、correlated-miss 等预取能力,目标是不规则数据结构和解释器/runtime 访问
  5. 后端

    • Vera 的整数/分支、向量、load/store pipeline 都明显加宽
    • Spatial Multithreading 从线程模型上提高满载下的 per-core 利用率,但代价是单核资源划分更复杂

总览

参数 Grace CPU Vera CPU
CPU core Arm Neoverse V2 NVIDIA Olympus
单颗 CPU 核心数 72 88
单颗 CPU 线程数 72 176
线程模型 单线程核心 Spatial Multithreading
单颗 CPU 内存带宽 500GB/s 1.2TB/s
CPU-GPU / CPU-CPU coherent link NVLink-C2C 900GB/s 2nd-gen NVLink-C2C 1.8TB/s
NVIDIA SCF bisection bandwidth 3.2TB/s 3.4TB/s
L2 / L3 1MB/core / 117MB per CPU 2MB/core / 164MB unified L3
典型平台 Grace Superchip / GH200 / GB200 NVL4 Vera CPU Rack / Vera Rubin NVL72

Grace:Neoverse V2 核心加 NVIDIA 系统设计

Grace 的核心级微架构基本可以按 Arm Neoverse V2 来理解:

参数 Grace / Neoverse V2
Decode 6 instructions/cycle
Dispatch 8 MOPs 或最多 16 uops/cycle
ROB 320 entries
Issue pipelines 17
Integer / Branch pipes 6 integer + 2 branch
Load / Store address pipes 3 load-capable + 2 store-address
FP / ASIMD pipes 4
SVE2 vector length 128b
L1 I/D cache 64KB + 64KB
L2 cache Grace 采用 1MB/core;Neoverse V2 支持 1MB/2MB 配置

Grace 真正体现 NVIDIA 差异化的部分在核心之外:

  • 每颗 Grace CPU 有 72 个 Neoverse V2 cores;
  • Grace CPU Superchip 用两颗 Grace CPU,通过 900GB/s NVLink-C2C coherently 连接,总计 144 cores;
  • 单颗 Grace CPU 使用 LPDDR5X ECC,带宽最高 500GB/s;Grace CPU Superchip 达到 1TB/s;
  • NVIDIA Scalable Coherency Fabric 提供 3.2TB/s bisection bandwidth;
  • GH200 使用 Grace + Hopper,通过 NVLink-C2C 提供 CPU+GPU coherent memory model。

这说明 Grace 的设计重心是:用成熟的高性能 Arm server core 快速进入数据中心 CPU 市场,同时把 NVIDIA 最擅长的 GPU、互连、内存一致性和软件栈整合进去。

Vera:从 Host CPU 变成 Agentic AI CPU

NVIDIA 对 Vera 的公开描述包括:

  • 88 个自研 Olympus cores;
  • 176 threads,通过 NVIDIA Spatial Multithreading 实现;
  • Armv9.2 ISA,6x128b SVE2 vector execution units,并支持 FP8;
  • 10-wide decode,L1I 每周期 128B fetch,neural branch predictor,最多每周期 2 个 taken branches;
  • L1D 96KB、L1I 64KB、private L2 2MB、distributed SLC / unified L3 164MB;
  • LPDDR5X memory bandwidth 最高 1.2TB/s,容量最高 1.5TB,通过 8 个 SOCAMM2 模组实现;
  • second-generation SCF,3.4TB/s bisection bandwidth;
  • second-generation NVLink-C2C,CPU-GPU coherent bandwidth 最高 1.8TB/s;
  • PCIe 6.4 / CXL 3.1,单 socket 最高 88 条 PCIe 6.4 lanes,双 socket 最高 176 lanes;
  • 单一 compute die,每 socket 单 NUMA domain,避免跨 chiplet 通信带来的额外延迟与性能波动;
  • Vera CPU Rack 可以集成最多 256 颗 Vera CPUs,支持超过 22,500 个 concurrent CPU environments。
参数 Vera / Olympus
ISA Armv9.2
Cores / Threads 88 cores / 176 Spatial Multithreading threads
Decode 10 instructions/cycle
Instruction fetch 128B/cycle from L1I
Branch predictor neural + special-purpose predictors
Taken branches up to 2 taken branches/cycle
Integer / Branch 8 simple integer ALUs + 2 complex ALUs + 4 branch units
Vector 6x128b SVE2,含 2 条 crypto-capable vector pipelines,支持 FP8
Load / Store 4 load pipelines + 2 store pipelines
L1 I/D cache 64KB I-cache + 96KB D-cache
L2 / L3 2MB private L2 / 164MB distributed SLC unified L3
L2 latency approximately 10 cycles
Prefetch stream、indirect、correlated-miss、spatial、graph-oriented prefetchers

SoC / 平台级规格如下:

参数 Vera CPU
Memory 8 LPDDR5X controllers,8 SOCAMM2 modules,最高 1.5TB
Memory bandwidth 最高 1.2TB/s
Memory BW per core 表格规格 14GB/s;性能章节给出 12.7GB/s
SCF 2nd-gen SCF,3.4TB/s
NVLink-C2C 1.8TB/s bidirectional coherent bandwidth,900GB/s per direction
PCIe / CXL PCIe 6.4 64GT/s;CXL 3.1 Type-3 memory 和 memory pooling
PCIe lanes 单 socket 88 lanes;双 socket 176 lanes;Vera Rubin 96 lanes
Dual socket 176 cores / 352 threads,最高 3TB LPDDR5X,2.4TB/s aggregate memory bandwidth
Power 250W 到 450W configurable
NUMA 每 socket 单 NUMA domain
QoS MPAM 支持 SLC capacity 和 memory bandwidth partitioning / monitoring
Confidential Computing Arm CCA、RME-DA、RME-CDA、TDISP coherent devices、authenticated C2C encryption

核内主要变化

前端与分支预测

Arch Fetch Decode Branch Predictor Taken Branches
Grace / Neoverse V2 N/A 6 instructions/cycle Arm server-class predictor N/A
Vera / Olympus 128B/cycle from L1I 10 instructions/cycle neural + special-purpose predictors up to 2/cycle

Grace / Neoverse V2 已经有 6-wide decode、8 MOP dispatch、320-entry ROB 和 17 issue pipelines。对通用服务器/HPC 负载来说,这是一个成熟的 high-performance Arm server core。

Vera / Olympus 把前端扩到 10-wide,并给出 128B/cycle L1I fetch。这个方向和 Zen5 提高取指带宽、扩大近端预测结构类似:后端、LSU 和多线程能力都变强之后,前端必须减少 branch redirect、decode starvation 和 instruction footprint miss 带来的空泡。

agentic AI 的 CPU 侧工作负载往往控制流复杂、解释器/编译器/脚本比例高、分支密度大、依赖链长。更宽取指译码、更强分支预测和更大的 instruction delivery resource,比单纯增加核心数更直接地改善单线程和满载 per-core performance。

Olympus 的 neural branch predictor 和 special-purpose predictors 主要是面向复杂控制流:

  • Python runtime、JIT、sandbox、编译器和调度器经常有多层 indirect call、type dispatch、异常路径和函数指针跳转;
  • 图遍历、数据库执行器和规则引擎通常分支方向与数据内容强相关,传统局部/全局历史预测器不一定容易捕获;
  • 每周期最多 2 个 taken branches 的设计说明 NVIDIA 不只在扩大 decode,而是在处理高 branch density 代码中连续控制流转移造成的 fetch path 瓶颈。

Cache

Arch L1 I-cache L1 D-cache Private L2 Shared Last-Level Cache
Grace / Neoverse V2 64KB 64KB 1MB/core in Grace 117MB per CPU
Vera / Olympus 64KB 96KB 2MB/core 164MB distributed SLC / unified L3

Vera 的 L1I 保持 64KB,但 L1I fetch bandwidth 提高到 128B/cycle,说明它更重视从已有 I-cache footprint 中提供更高瞬时取指吞吐。对于解释器、框架 runtime 和大型 C++/Python 混合栈,64KB L1I 不一定能容纳全部热点路径,因此前端预测和 shared cache / L2 对 instruction refill 的支持同样关键。

L1D 从 64KB 增到 96KB,是 Olympus 核内最直接的近端容量变化。这个选择适合 agentic AI 的 CPU 侧代码:

  • runtime object、栈帧、hash table、队列、tokenizer metadata 等结构尺寸通常超过传统小 L1D 的舒适区;
  • 不规则 load 多、复用距离不稳定,增大 L1D 可以减少短距离 miss;
  • 更大的 L1D 与 4 load pipelines 配合,否则访存执行宽度容易被近端 cache miss 抵消。

private L2 从 1MB/core 到 2MB/core,是容量换面积和潜在访问代价的取舍。NVIDIA 给出的 Vera L2 latency 约 10 cycles,说明它试图在扩大 per-core 工作集覆盖的同时保持较低近端延迟。对 Python runtime、编译器、数据库查询、代码分析和 sandbox 环境中的中等 footprint 工作集,2MB private L2 比只依赖共享 L3 更稳定。

shared L3 / SLC 从 Grace 的 117MB 提高到 Vera 的 164MB,主要服务 88 cores / 176 threads 下的共享数据、runtime metadata、代码页和任务队列。由于 Vera 是 single compute die、single socket NUMA domain,这个 shared cache 的价值不仅是容量,也包括降低跨 tile / 跨 chiplet 路径带来的延迟波动。

乱序后端

Arch Dispatch ROB / OOO Window Issue Pipelines Threading
Grace / Neoverse V2 8 MOPs 或最多 16 uops/cycle 320-entry ROB 17 单线程核心
Vera / Olympus N/A deep out-of-order engine N/A Spatial Multithreading, 2 threads/core

Grace / Neoverse V2 的 320-entry ROB 和 8 MOP dispatch 已经能覆盖相当多的 cache miss、分支恢复和执行延迟。Vera 官方没有公开 ROB、rename、scheduler entry 等更细容量,但明确强调 deep out-of-order scheduling,说明 Olympus 的设计目标不是只靠 SMT 堆吞吐,而是要维持高单线程 IPC。

Vera 的后端优化方向更偏 critical path acceleration:

  • memory renaming 用于降低 store/load 依赖保守性,减少本可并行的 load 被旧 store 阻塞;
  • value prediction / value optimization 针对稳定值、重复值或可预测值,试图绕开长数据依赖链;
  • move elimination 减少寄存器间 move 对执行端口和调度资源的占用;
  • deep scheduling 用更多在途指令覆盖 cache miss、branch miss recovery 和 pointer chasing latency。

这些机制的共同目标是提升“不规则、分支密集、依赖链长”的软件路径,而不是只提升规则 SIMD 或 streaming kernel 的峰值吞吐。

Int 执行流水线

Arch Integer Pipes Branch Pipes 设计含义
Grace / Neoverse V2 6 integer 2 branch 成熟宽后端 server core
Vera / Olympus 8 simple integer + 2 complex integer 4 branch 明显面向控制流和通用整数代码加宽

Vera 的整数后端加宽很激进。8 条 simple integer ALUs 适合地址计算以外的普通整数、比较、逻辑、循环控制和 runtime bookkeeping;2 条 complex ALUs 则覆盖 multiply、复杂 bit manipulation 或其他高延迟整数操作。

4 条 branch units 和前端每周期最多 2 个 taken branches 是配套设计。对于 branch-heavy code,只提高预测准确率还不够,后端也要有足够的 branch execution / resolution 能力,否则分支解析本身会成为 issue 端口瓶颈。

这个取向和 GPU host CPU 的传统印象不同。Vera 不是只做“喂 GPU 的控制器”,而是在强化 CPU 自己处理解释器、工具调用、环境模拟、数据筛选和 orchestration 的能力。

Vector / FP 流水线

Arch Vector Pipes Vector Width Extra Capability
Grace / Neoverse V2 4 ASIMD / SVE2 128b SVE2
Vera / Olympus 6 SVE2 128b FP8,2 条 crypto-capable vector pipelines

Vera 没有把单条 SVE2 vector width 扩到 256b 或 512b,而是从 4 条 128b pipes 增加到 6 条 128b pipes。这个选择可能有几层考虑:

  • Arm server software 的 SVE vector-length-agnostic 模型可以接受 128b 实现,避免为了少数宽向量 workload 拉高功耗和面积;
  • 增加 pipe 数比增加单 pipe 宽度更适合混合整数、短向量、crypto、runtime helper 和数据转换代码;
  • FP8 支持与 NVIDIA GPU 数据类型生态一致,方便 CPU 侧做轻量量化、格式转换、校验或小规模向量处理;
  • 2 条 crypto-capable vector pipelines 对 TLS、压缩/解压、哈希、隔离环境和数据服务路径有实际意义。

相比 Zen 系列沿着 128b 到 256b 再到 512b 的 SIMD 数据路径扩宽,Olympus 更像是在 server Arm 的 128b SVE2 基础上提高并行 pipeline 数和特殊数据类型覆盖。

Load-Store Unit 与预取

Arch Load / Store Pipes L1D Prefetch
Grace / Neoverse V2 3 load-capable + 2 store-address 64KB Arm Neoverse V2 prefetchers
Vera / Olympus 4 load + 2 store 96KB stream、indirect、correlated-miss、spatial、graph-oriented

Vera 从 Grace 的 3 load-capable pipes 提高到 4 load pipelines,同时保留 2 store pipelines。这个方向和更大的 L1D、2MB L2、1.2TB/s socket memory bandwidth 是一致的:如果核心目标是高并发 agent environment、图访问和脚本 runtime,那么 load-side parallelism 通常比纯 store bandwidth 更关键。

预取器是 Vera 核内访存设计的重点:

  • stream prefetcher 覆盖数组扫描、序列化 buffer、日志和批处理数据;
  • spatial prefetcher 利用 cache line / page 内邻近访问;
  • indirect prefetcher 覆盖 A[B[i]]、指针数组和索引驱动访问;
  • correlated-miss prefetcher 试图从历史 miss 序列中学习后续 miss;
  • graph-oriented prefetcher 面向图遍历、稀疏结构、对象关系和 producer-consumer indirection。

这些机制说明 Vera 的访存目标不是只提高 STREAM 这类规则带宽,而是减少真实软件栈里的 pointer chasing、hash lookup、object traversal 和 graph walk 等延迟。对 agentic AI 来说,CPU 经常跑环境模拟、工具调用、数据库/检索、JSON/Python 对象处理和调度器路径,这些都更接近不规则访存。

Spatial Multithreading

Arch Threads/Core 线程资源策略
Grace / Neoverse V2 1 单线程核心,资源集中给一个硬件线程
Vera / Olympus 2 Spatial Multithreading,强调资源分区和满载稳定性

NVIDIA 把 Vera 的 176 threads 描述为 Spatial Multithreading,而不是传统 SMT。公开材料强调它允许在 per-thread performance 和 runtime thread count 之间取舍,并改善重负载下的隔离和尾延迟。

从核内角度看,这和传统 SMT 的问题意识不同:

  • 传统 SMT 通过时间共享提高空闲执行槽利用率,但线程之间可能抢 ROB、scheduler、cache、TLB 和 load/store queue;
  • Spatial Multithreading 更强调空间上的资源划分,目标是在 socket 满载时降低线程互相干扰;
  • 对 agent environment、sandbox 和服务端请求并发来说,稳定尾延迟比平均吞吐更重要。

因此,Vera 的 SMT 不是单纯把线程数翻倍,而是与更宽后端、更大 cache、更强预取和高内存带宽一起,支撑大量 concurrent CPU environments。