NVIDIA Grace / Vera CPU 微架构参数
NVIDIA Grace / Vera CPU 微架构参数
NVIDIA 目前公开的 CPU 路线可以分成两步:
Grace:使用 Arm Neoverse V2 作为核心,NVIDIA 自己重点做 SoC、内存、互连和 coherency fabric。它的定位是 AI infrastructure、HPC、data analytics、hyperscale cloud 等传统数据中心和加速计算宿主 CPU。
Vera:改用 NVIDIA 自研 Olympus Arm-compatible core,并把目标进一步收敛到 agentic AI、reinforcement learning、sandbox execution、tool use、orchestration、analytics 等 CPU 密集型 AI factory 工作负载。
前端
- Grace / Neoverse V2 已经是 6-wide decode、8 MOP dispatch 的 server core
- Vera / Olympus 进一步提高到 10-wide fetch/decode、128B/cycle L1I fetch,并强化 neural branch predictor
Cache 与访存
- Vera 将 L1D 从 Grace 的 64KB 提高到 96KB,private L2 从 1MB/core 提高到 2MB/core
- Vera 增加 graph-oriented、indirect、correlated-miss 等预取能力,目标是不规则数据结构和解释器/runtime 访问
后端
- 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。