想象一间后厨要为「万亿道菜的满汉全席」备战。两位厨师各有所长:备餐厨师(Grace CPU)擅长读菜谱、配菜、掌握火候;掌勺大厨(Hopper GPU)能同时翻炒上千道菜,一次处理海量食材。可问题是,传统厨房里两人各用各的冰箱,做菜前得隔着窄窄的传菜窗口(PCIe 总线)把食材一箱箱搬过去——搬运花费的时间往往比做菜本身还长。NVIDIA Grace Hopper 超级芯片改变了这种局面:它让两位厨师背靠背站在同一个灶台上,中间架起一条 900GB/s 的超高速传送带(NVLink-C2C),并且共享同一张巨大食材台(统一内存)——食材不用搬,伸手就能取到。GH200 NVL32 更进一步,把 32 个这样的厨房连成一座中央厨房,让万亿参数大模型可以从容开灶。这篇教程带你从「厨房布局」看懂这颗超级芯片的架构、互联、内存和编程模型。

岗位关联

理解 Grace Hopper 的架构思想,是从事 AI 超算选型、训练框架调优与编译优化的重要基石——你能一眼看出瓶颈在哪里,也知道该把哪些算子放到哪个「厨师」手里。

目录
  1. 可视化演示
  2. 芯片背景定位:数据搬运之痛
  3. 超级芯片架构:背靠背的黄金搭档
  4. NVLink 高速互联:900GB/s 的超级传送带
  5. 统一内存模型:共享一张食材台
  6. 编程模型:让两位厨师说同一种方言
  7. GH200 NVL32:32 间厨房组成中央厨房
  8. 万亿模型优势:撑得起满汉全席
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

展示NVIDIA Grace Hopper三维度:超级芯片架构(Grace CPU 72核Neoverse V2+480GB LPDDR5X与Hopper GPU TE2+FP8+144GB HBM3e通过NVLink-C2C 900GB/s一致性互联)、统一内存UVM(CPU/GPU硬件级一致性直接互访无需cudaMemcpy)、NVL32集群(32芯片NVLink Switch全连接共享19.2TB内存任意两芯片900GB/s),三模式切换理解AI超算架构。

本节配有交互动效(进入视口后自动加载,约 3KB)。

'+C1+'

芯片背景定位:数据搬运之痛

传统后厨里,备餐厨师(CPU)和掌勺大厨(GPU)各用各的冰箱。做一道大菜前,必须把肉、菜、调料从 CPU 的冰箱一箱箱搬到 GPU 的冰箱——这条通道就是 PCIe 总线,窄得就像墙上的传菜窗口。菜越做越大(模型参数越来越多),搬运食材的时间甚至超过了做菜本身。

大模型训练中,CPU 负责数据预处理、加载训练样本、更新优化器状态;GPU 负责最耗时的矩阵乘法。两者的数据必须频繁交换:梯度要拷贝回 CPU,下一批数据要拷进 GPU。传统 x86 服务器里 CPU 主存与 GPU 显存物理隔离,必须通过 cudaMemcpy 等 API 显式拷贝,而 PCIe Gen5 理论带宽约 128GB/s,实际可用往往只有 64GB/s 左右。

搬运时间的数学本质很简单:传输时间 = 数据量 ÷ 带宽。当模型达到百亿、千亿甚至万亿参数时,每训练一步要搬运的数据高达数 GB 乃至数十 GB,搬运开销占比急剧上升。Grace Hopper 正是为消灭这个瓶颈而生——它把「搬菜」这件事彻底从菜单里划掉。

所以 Grace Hopper 的第一设计动机很朴素:与其让食材在两台冰箱之间搬来搬去,不如让两位厨师共享一张食材台,把「搬运」这门课彻底取消。接下来我们看看这张食材台是怎么搭建的。

Ttransfer=DB\displaystyle T_{\text{transfer}} = \frac{D}{B}
传输时间公式:要搬 D 那么多食材,传送带带宽是 B,花费的时间就是 D 除以 B。
  1. 数据量 D需要搬运的数据总量,比如一批梯度或权重的大小,单位通常为 GB。
    D\displaystyle D
  2. 带宽 B单位时间内通道能搬运的数据量,单位 GB/s;PCIe 约 64GB/s,NVLink-C2C 约 900GB/s。
    B\displaystyle B
  3. 传输时间 T数据量除以带宽得到搬运耗时;带宽越大,时间越短。
    Ttransfer=DB\displaystyle T_{\text{transfer}} = \frac{D}{B}

超级芯片架构:背靠背的黄金搭档

既然搬运是痛点,最直接的办法就是让两位厨师不分开。Grace Hopper 把「备餐厨师」和「掌勺大厨」封装进同一颗超级芯片里,让他们背靠背站在同一个灶台上——物理距离近到几乎「传菜不用喊」。

Grace CPU 是 NVIDIA 自研的 72 核 Arm 架构处理器,负责逻辑控制、数据预处理、分布式训练协调等「动脑」的活;Hopper GPU 与 H100 同源,装备第四代 Tensor Core 和 Transformer 引擎,专攻稠密矩阵乘法和浮点运算这类「动手」的活。两者各有分工,但不再是两台机器,而是一颗芯片上的两个模块。

把两类处理器放进同一个 SoC,带来的直接收益有三层:第一,数据链路从「跨主板走线」变成「片内互联」,延迟大幅降低;第二,不再需要独立的芯片组和外部桥接,整机功耗与体积下降;第三,系统软件可以把 CPU 与 GPU 当作一个整体来调度。对比传统双路服务器中 CPU 与 GPU 隔着 PCIe 总线遥遥相望,这相当于把厨房里的两个人从「隔墙喊话」升级为「并肩作战」。

背靠背站在一起只是第一步,让两人之间的「传菜通道」真正快起来,靠的是下一节的 NVLink-C2C——那条 900GB/s 的超级传送带。

BNVLink-C2CBPCIe,实际=90064≈14\displaystyle \frac{B_{\text{NVLink-C2C}}}{B_{\text{PCIe,实际}}} = \frac{900}{64} \approx 14
带宽倍数公式:NVLink-C2C 的 900GB/s 与常见 PCIe 实际带宽 64GB/s 相比,约等于把传送带加宽了 14 倍。
  1. 分子 900GB/sNVLink-C2C 的双向互联带宽,是超级芯片内 CPU 与 GPU 之间的通道速率。
    BNVLink-C2C=900 GB/s\displaystyle B_{\text{NVLink-C2C}} = 900\ \text{GB/s}
  2. 分母 64GB/s传统 PCIe 总线的实际可用带宽,远低于理论峰值。
    BPCIe≈64 GB/s\displaystyle B_{\text{PCIe}} \approx 64\ \text{GB/s}
  3. 比值约 14带宽提升倍数,也是理论搬运提速倍率。
    90064≈14\displaystyle \frac{900}{64} \approx 14

NVLink 高速互联:900GB/s 的超级传送带

如果两位厨师只是站得近,中间却只留一个小窗口递菜,照样手忙脚乱。NVLink-C2C 就是为这个场景定制的「工业化传送带」:带宽 900GB/s,方向双向,食材(数据)川流不息。

NVLink-C2C 是 NVIDIA 自研的片间互联技术,两颗芯片封装在同一基板上,通过数千条高速微凸点直连。900GB/s 是什么概念?PCIe Gen5 的 16 通道理论带宽约 128GB/s,实际往往不足一半;NVLink-C2C 大约是它的 7 到 14 倍。

比带宽更重要的是「一致性」(coherency)。NVLink-C2C 实现了 CPU 与 GPU 之间的缓存一致:CPU 的 L2 缓存和 GPU 的 L2 缓存维护同一套读写协议,一方改了数据,另一方立刻能看到最新值,硬件在缓存行粒度自动同步,不需要软件反复「对账」。这相当于传送带不仅快,而且每一箱食材都有电子标签,谁取走了什么、还剩多少,双方随时心知肚明。

传送带又快又有「自动对账」,两位厨师终于可以毫无隔阂地配合。接下来,食材放在哪里?答案是一张共享的食材台——统一内存。

Tround-trip=DB+toverhead\displaystyle T_{\text{round-trip}} = \frac{D}{B} + t_{\text{overhead}}
单次往返时间:数据量 D 除以带宽 B,再加上固定的协议开销 t。带宽再高,小数据包的固定开销仍在,所以「少搬小包裹」依然重要。
  1. 数据量 D单次需要往返传输的数据大小。
    D\displaystyle D
  2. 带宽 B900GB/s 的高速通道吞吐率,决定大数据块的传输速度。
    B\displaystyle B
  3. 协议开销 t每次传输固定的握手与同步延迟,与数据量无关。
    toverhead\displaystyle t_{\text{overhead}}
  4. 往返总时间传输时间与固定开销之和。
    Tround-trip=DB+toverhead\displaystyle T_{\text{round-trip}} = \frac{D}{B} + t_{\text{overhead}}

统一内存模型:共享一张食材台

以前每道菜做完,掌勺大厨要把成品端回 CPU 的冰箱,下一位客人点单时再端出来,来回折腾。统一内存模型直接摆了一张巨大食材台:菜做完了就放在台上,两位厨师伸手就能拿到,谁也不用搬。

技术上,Grace Hopper 提供单一地址空间(unified memory address space)。CPU 与 GPU 共享同一个物理内存池和同一套页表,一个指针在 CPU 或 GPU 上都能访问到同一份数据。开发者不再需要 cudaMemcpy 把数据从「主机内存」拷到「设备显存」,这正是「零拷贝」(zero-copy)的含义。

一致性由 NVLink-C2C 的硬件协议保证:GPU 修改过的数据,CPU 再次访问时看到的是最新版本,反之亦然。相比传统方案中「拷贝—同步—再拷贝」的三段式流程,零拷贝不仅省时间,还省内存——同一份数据不再需要两份物理副本。对 AI 框架来说,加载好的数据集、模型权重、优化器状态都可以留在统一内存里,让 CPU 预处理、GPU 计算、CPU 采样无缝衔接。

这张食材台不仅大,而且上面摆什么、谁动过,都由硬件记着账。对开发者来说最幸福的是:不用再写「搬菜」的代码了——这就是下一节要讲的编程模型体验。

ΔT=D×(1BPCIe−1BNVLink)\displaystyle \Delta T = D \times \left( \frac{1}{B_{\text{PCIe}}} - \frac{1}{B_{\text{NVLink}}} \right)
省下的时间:同样 D 的数据,按旧方案要拷贝一次(除以 PCIe 带宽),新方案几乎不用拷贝;两者之差就是省下的搬运时间。
  1. D 数据量一次训练迭代中需要跨端交换的数据总量。
    D\displaystyle D
  2. 旧方案耗时数据量除以 PCIe 带宽,得到传统拷贝耗时。
    DBPCIe\displaystyle \frac{D}{B_{\text{PCIe}}}
  3. 新方案耗时NVLink 下显式拷贝趋近于零的耗时。
    DBNVLink\displaystyle \frac{D}{B_{\text{NVLink}}}
  4. 节省时间两者相减,得到每次迭代省下的时间。
    ΔT=D×(1BPCIe−1BNVLink)\displaystyle \Delta T = D \times \left( \frac{1}{B_{\text{PCIe}}} - \frac{1}{B_{\text{NVLink}}} \right)

编程模型:让两位厨师说同一种方言

食材台搭好了,传送带也通了,但如果两位厨师一个说中文一个说法语,还是会乱套。CUDA 统一编程模型就是让 CPU 和 GPU 说同一种「厨房方言」:同一套代码、同一个指针、同一种数据描述。

从开发者视角看,Grace Hopper 的编程模型与普通 CUDA 几乎一致:GPU 内核仍用 CUDA C++ 或 PyTorch 编写,CPU 侧仍是标准 C++/Python。区别在于数据放置更加灵活——张量可以驻留在统一内存中,kernel 启动时无需显式 staging buffer。NVIDIA 的驱动与 UVA(统一虚拟地址)机制负责把虚拟地址映射到物理内存。

这对 AI 框架与编译器是重大利好。PyTorch 等框架的 tensor 默认分配在 GPU 显存,但在 GH200 上,预处理后的样本可以直接放进统一内存,DataLoader 与 GPU kernel 之间不再需要反复 .cuda() 搬移。编译器层面,计算图优化可以「看见」拷贝节点并直接删除;调度器可以把数据预处理算子放到 Grace CPU,把矩阵算子放到 Hopper GPU,实现真正的异构协同。当然,天下没有免费的午餐:仍需注意内存分配方式与访问局部性,热数据应尽量留在 GPU 侧。

两位厨师说着同一种方言、共享同一张食材台,配合自然行云流水。当把视野从「一间厨房」放大到「一座中央厨房」,就需要 GH200 NVL32 这种大规模协作。

Munified=MCPU+MGPU\displaystyle M_{\text{unified}} = M_{\text{CPU}} + M_{\text{GPU}}
统一内存容量:CPU 侧主存(LPDDR5X)与 GPU 侧显存(HBM3e)合并成一份可寻址内存,容量约等于两者之和。
  1. CPU 主存 M_CPUGrace CPU 配套的 LPDDR5X 内存,容量大、成本低。
    MCPU\displaystyle M_{\text{CPU}}
  2. GPU 显存 M_GPUHopper GPU 配套的 HBM3e 高带宽显存。
    MGPU\displaystyle M_{\text{GPU}}
  3. 统一容量两者相加,CPU 与 GPU 都能寻址同一内存池。
    Munified=MCPU+MGPU\displaystyle M_{\text{unified}} = M_{\text{CPU}} + M_{\text{GPU}}

GH200 NVL32:32 间厨房组成中央厨房

单间厨房再能干,也应付不了「万亿道菜」的国宴。于是 NVIDIA 把 32 个 Grace Hopper 厨房并排组成中央厨房:每间厨房独立备菜炒菜,中间由中央配送轨道(NVLink Switch)高速互通食材与半成品。

GH200 NVL32 是 NVIDIA 面向万亿参数大模型训练推出的整机柜系统:32 个 Grace Hopper 超级芯片通过 NVLink Switch 两两互联,构成一个大规模一致内存池。与依赖 InfiniBand 以太网络的传统 GPU 服务器集群不同,NVL32 的节点间带宽更高、延迟更低,且对软件呈现为「一台巨型计算机」。

在 NVL32 中,每个 GH200 节点的内存(GPU 的 HBM3e 与 CPU 的 LPDDR5X)都被纳入统一的、可由所有节点访问的地址空间。训练万亿参数模型时,模型参数与梯度不再需要频繁跨机拷贝,而是以细粒度方式在 32 张 GPU 间共享;张量并行、流水线并行与数据并行的通信模式都大为简化。这也意味着 AI 编译器可以生成「节点内零拷贝、节点间高带宽」的通信计划。

中央厨房拥有海量食材库和高速配送轨道,终极目的是什么?让万亿参数模型这台「满汉全席」既做得快、又成本低。

MNVL32=32×(MGPU+MCPU)\displaystyle M_{\text{NVL32}} = 32 \times (M_{\text{GPU}} + M_{\text{CPU}})
总内存公式:单个节点的统一内存乘以 32,就是整个 NVL32 系统可寻址的内存总量。
  1. 单节点内存每个 GH200 的 GPU 显存加 CPU 主存之和。
    MGPU+MCPU\displaystyle M_{\text{GPU}} + M_{\text{CPU}}
  2. 32 个节点NVL32 共集成 32 颗 Grace Hopper 超级芯片。
    32\displaystyle 32
  3. 总内存两者相乘得到系统级统一内存池。
    MNVL32=32×(MGPU+MCPU)\displaystyle M_{\text{NVL32}} = 32 \times (M_{\text{GPU}} + M_{\text{CPU}})

万亿模型优势:撑得起满汉全席

国宴的难点不在于某一道菜多难,而在于几千道菜要同时上桌、食材要协调分配。万亿参数模型同理:参数太多,单张 GPU 放不下,就得切碎分给几十张卡,切得越碎、卡之间通信越频繁。

GH200 NVL32 的核心优势正是「内存大 + 通信快」。单节点统一内存可达数百 GB,整个 NVL32 内存池更是达到数十 TB 量级,大部分模型权重、优化器状态和 KV cache 可以常驻内存,大幅减少模型切分需求。

训练侧:模型切分减少 → 通信开销减少 → 端到端吞吐提升;同时 Grace CPU 负责数据加载与预处理,避免 GPU 空等。推理侧:大模型推理的 KV cache 可以放在统一内存中按需访问,并发用户数更多、单次推理成本更低。从 AI 超算选型角度看,Grace Hopper 特别适合「训练-推理一体」的部署:一套架构同时降低开发与运维成本。

从最初「搬运食材太慢」的痛点,到 32 间厨房组成的中央厨房,Grace Hopper 的每一步设计都围绕同一个朴素目标:让厨师把精力放在炒菜上,而不是搬菜上。理解了这张「厨房蓝图」,你在选型与调优时就能一眼看出瓶颈在哪里。

Pgain=Tbase−TGHTbase×100%\displaystyle P_{\text{gain}} = \frac{T_{\text{base}} - T_{\text{GH}}}{T_{\text{base}}} \times 100\%
训练时间下降比例:以传统方案训练时间为基准,GH200 方案省下的时间占比。
  1. 基准时间 T_base传统 CPU+PCIe+GPU 方案完成相同训练任务的耗时。
    Tbase\displaystyle T_{\text{base}}
  2. 新方案时间 T_GHGrace Hopper 方案完成同一任务的耗时。
    TGH\displaystyle T_{\text{GH}}
  3. 提升比例两者之差除以基准时间,再乘以 100% 得到百分比。
    Pgain=Tbase−TGHTbase×100%\displaystyle P_{\text{gain}} = \frac{T_{\text{base}} - T_{\text{GH}}}{T_{\text{base}}} \times 100\%

AI 应用场景

万亿参数大模型预训练

阶段:模型训练(分布式并行)

解决的问题:传统多机多卡训练中,模型参数和梯度需要频繁跨节点通信,PCIe/以太网带宽成为瓶颈。GH200 NVL32 以 NVLink-C2C 与 NVLink Switch 构建高带宽一致内存池,减少模型切分和同步开销,让万亿参数模型的训练效率显著提升。

具体案例:某 LLM 团队在 GH200 NVL32 上预训练 1.8T 参数 MoE 模型。32 个节点共享内存池使专家权重可以直接被多张 GPU 访问,省去大量 all-to-all 通信;训练吞吐较同规模 H100 集群明显提升,且工程团队无需手写复杂的模型切分逻辑。

大语言模型在线推理

阶段:推理部署与服务

解决的问题:大模型推理时 KV cache 随请求数快速增长,显存频繁换进换出导致延迟飙升。统一内存模型让 KV cache 与权重共同驻留在大容量内存池中,GPU 按需访问,提高并发能力、降低成本。

具体案例:某云厂商在 GH200 上部署 70B 参数 LLM 服务,利用统一内存池缓存多个用户的 KV cache,批处理吞吐提升约两倍,单 token 延迟明显下降。

多模态数据管线加速

阶段:数据预处理与特征工程

解决的问题:多模态训练中,图像解码、文本 tokenize、数据增强都是 CPU 密集操作,传统方案下 GPU 常因等待预处理数据而空转。Grace CPU 与 Hopper GPU 的高带宽直连让预处理结果直接写入统一内存,GPU 随取随用。

具体案例:某视频理解模型团队将视频抽帧、图像增强、caption 编码全部放到 Grace CPU 上,同时 GPU 并行跑矩阵运算,端到端数据管线吞吐翻倍。

Python 演示

python36 行
"""模拟 PCIe 搬运方案与 Grace Hopper 零拷贝方案的训练数据流动耗时对比"""  def transfer_time(data_gb, bandwidth_gbps):    """返回搬运耗时(秒):带宽单位为 Gb/s,先除以 8 换成 GB/s"""    return data_gb / (bandwidth_gbps / 8)  def main():    # 一个 7B 参数的模型,半精度(fp16)权重约 14GB    param_gb = 7e9 * 2 / 1e9     pcie_bw_gbps = 64 * 8       # PCIe 实际约 64 GB/s    nvlink_bw_gbps = 900 * 8    # NVLink-C2C 900 GB/s     t_pcie = transfer_time(param_gb, pcie_bw_gbps)    t_nvlink = transfer_time(param_gb, nvlink_bw_gbps)    print(f"模型权重大小: {param_gb:.1f} GB")    print(f"PCIe 方案单次搬运耗时: {t_pcie:.3f} s")    print(f"NVLink-C2C 方案单次耗时: {t_nvlink:.4f} s")    print(f"理论提速: {t_pcie / t_nvlink:.1f} 倍")     # 训练 1000 步,每步都要做一次梯度聚合与参数同步    steps = 1000    print(f"\n1000 步训练的数据流动总耗时:")    print(f"PCIe 方案(每步都搬): {steps * t_pcie:.1f} s")    print(f"零拷贝方案(只建映射): {t_nvlink:.2f} s")     # 零拷贝:CPU 直接读取 GPU 侧计算结果,无需显式拷贝    losses = [3.21, 2.87, 2.54, 2.20, 1.98, 1.75, 1.61, 1.50, 1.42, 1.36]    mean_loss = sum(losses) / len(losses)    print(f"\n零拷贝: CPU 直接访问 GPU 结果,最近 10 步 loss 均值 {mean_loss:.3f}")  if __name__ == "__main__":    main()
目的:用传输时间公式对比传统 PCIe「每步搬运」与 Grace Hopper「零拷贝」在 1000 步训练中的耗时差距,直观理解 900GB/s 统一内存带来的收益。
  1. def transfer_time(data_gb, bandwidth_gbps):定义传输耗时函数,数据量除以有效带宽。
  2. bandwidth_gbps / 8把 Gb/s 换算成 GB/s,1 字节等于 8 比特。
  3. param_gb = 7e9 * 2 / 1e97B 参数乘以 2 字节(fp16)得到字节数,再转成 GB。
  4. t_pcie / t_nvlink计算理论提速倍数,约 14 倍。
  5. steps * t_pcie传统方案每步都拷贝,1000 步累计的搬运开销。
  6. sum(losses) / len(losses)零拷贝下 CPU 直接读取 GPU 侧计算结果,无需显式同步。

常见误区

误区NVLink-C2C 有 900GB/s,比 PCIe 快 14 倍,那数据布局、算子融合什么的都不重要了,随便写性能都很好。

正解带宽高不等于延迟为零。公式 T = D/B + t_overhead 告诉我们,当传输数据包很小、次数很多时,固定开销 t 占主导。相反,如果把大量小算子合并成一个大算子,减少 CPU-GPU 之间「来回递菜」的次数,才能真正吃满 900GB/s。AI 编译器做算子融合、计算图优化的意义依然重大。

为何常见:单看带宽数字确实震撼,容易让人忽略「次数 × 固定开销」的影响。

误区既然 CPU 和 GPU 共享内存、硬件自动保一致,那把 `.cuda()` 全删了,代码就自动变快了。

正解统一内存消除的是「显式拷贝」,不是「性能优化」。数据分配在哪个物理位置、页面是否已迁移到 GPU 侧、访问模式是否连续,都直接影响实际速度。开发者仍应使用显式分配策略(如 cudaMallocManaged 的放置 hint),编译器仍应做数据布局优化。

为何常见:「零拷贝」听上去像「零成本」,实际上省的是代码成本,不是所有运行成本。

误区GH200 NVL32 是把 32 个 GPU 插在同一块主板上,所有 GPU 共用一份物理内存,跟单卡没区别。

正解每个 GH200 节点都有自己的本地 HBM3e 与 LPDDR5X,NVLink Switch 负责把它们高速互联,软件层面呈现为统一可寻址空间。跨节点的远程内存访问仍有 NUMA 效应:访问本地快、访问远端慢。编译器调度时要把数据尽可能放在使用它的节点附近。

为何常见:「统一内存池」的营销话术容易让人误以为是单一物理内存。

误区训练速度由 GPU 决定,Grace CPU 就是个陪衬,优化 CPU 侧纯属浪费时间。

正解端到端训练流水线里,数据加载、tokenize、图像解码、分布式协调、优化器状态更新都在 CPU 上。Grace CPU 不仅不弱,还拥有超大内存带宽。AI 编译器把适合 CPU 的算子和适合 GPU 的算子分别调度到两侧,才能发挥超级芯片的完整潜力。

为何常见:大众习惯把 GPU 当作 AI 计算的唯一主角,忽略了流水线中任何一环拖慢,整条流水线都被拖慢。

面试题

Q1. NVIDIA Grace Hopper 超级芯片中,Grace CPU 的核心角色是?

单选题 · easy

  • A.承担大规模并行矩阵乘法运算
  • B.只负责操作系统与外设交互
  • C.负责逻辑控制调度与数据预处理← 正确答案
  • D.把 GPU 结果直接输出到显示器

答案:C。Grace CPU 是「备餐厨师」,负责逻辑控制、任务调度和数据预处理;大规模矩阵乘法是 Hopper GPU 的专长。选项 A 说的是 GPU 的职责,B 和 D 都只是 CPU 的次要功能。

Q2. NVLink-C2C 提供的 CPU-GPU 互联带宽约为?

单选题 · easy

  • A.每秒约 64GB(PCIe 水平)
  • B.每秒约 128GB(翻倍带宽)
  • C.每秒约 900GB(NVLink-C2C)← 正确答案
  • D.每秒约 3TB(数倍于 NVLink)

答案:C。NVLink-C2C 的互联带宽是 900GB/s,远超 PCIe 的实际带宽。64GB/s 是 PCIe 实际水平,128GB/s 是 PCIe Gen5 理论峰值,3TB/s 目前尚无商用产品。

Q3. 与传统 PCIe 方案相比,NVLink-C2C 的关键架构优势是?

单选题 · mid

  • A.延迟更高但带宽成倍增加
  • B.完全替代了 CPU 的调度功能
  • C.支持缓存一致性与共享内存视图← 正确答案
  • D.只能用于 GPU 与 GPU 之间互联

答案:C。NVLink-C2C 的核心是缓存一致性协议,让 CPU 与 GPU 看到同一份内存视图,这是传统 PCIe 不具备的。A 说反了,C2C 延迟更低;B、D 都与事实不符。

Q4. 统一内存模型中的「零拷贝」指的是什么?

单选题 · mid

  • A.数据不写内存直接落盘保存
  • B.通过 DMA 绕过内存控制器搬运
  • C.CPU 与 GPU 共享物理内存无需拷贝← 正确答案
  • D.数据常驻寄存器从不写入内存

答案:C。零拷贝指 CPU 与 GPU 共享同一物理内存,通过统一地址空间直接访问,省去 cudaMemcpy 这类显式搬移。A、B、D 描述的都不是统一内存模型的含义。

Q5. GH200 NVL32 将 32 个 GH200 超级芯片互联的关键组件是?

单选题 · mid

  • A.使用 PCIe Switch 扩展带宽
  • B.使用 NVLink Switch 高速互联← 正确答案
  • C.使用以太网交换机组网通信
  • D.使用 InfiniBand HCA 连接

答案:B。NVL32 通过 NVLink Switch 把 32 个 GH200 节点组成高带宽一致内存池。PCIe、以太网和 InfiniBand 的带宽与一致性能力都远不及 NVLink Switch。

Q6. 关于 Grace Hopper 的统一内存编程,正确的说法是?

单选题 · hard

  • A.必须手动调用 cudaMemcpy 同步所有数据
  • B.托管内存的页面迁移完全不需要驱动
  • C.统一内存仅在 GPU 内部有效可用
  • D.驱动自动迁移页面但需注意访问局部性← 正确答案

答案:D。统一内存由驱动和硬件自动管理页面迁移,开发者无需手动拷贝,但访问局部性仍影响性能——热数据要尽量留在 GPU 侧。A、B、C 都与技术事实相悖。

Q7. 大模型训练中数据搬运开销的主要来源是?

单选题 · easy

  • A.磁盘读写速度跟不上训练节奏
  • B.显示器刷新率限制影响训练
  • C.CPU 与 GPU 间反复搬运权重与梯度← 正确答案
  • D.散热功耗限制芯片的时钟频率

答案:C。训练中每次迭代都要做梯度聚合与参数同步,权重和梯度在 CPU 与 GPU 之间反复流动,这是搬运开销的主要来源。磁盘、显示器和散热都不是数据搬运的主因。

Q8. NVLink-C2C 相比传统 PCIe 的优势包括?(多选)

多选题 · mid

  • A.互联带宽远超 PCIe 数倍以上← 正确答案
  • B.硬件支持缓存一致性协议← 正确答案
  • C.单位数据功耗比 PCIe 更低← 正确答案
  • D.可替代所有网络互联协议

答案:ABC。NVLink-C2C 在带宽、一致性和能效上全面优于 PCIe。但它不是万能的,无法替代 InfiniBand 等跨集群网络协议,D 错误。

Q9. 关于 GH200 NVL32 的内存池,正确的说法有?(多选)

多选题 · hard

  • A.全部节点共享同一份物理内存
  • B.总内存池可容纳万亿参数模型← 正确答案
  • C.节点间经 NVLink Switch 互联← 正确答案
  • D.各节点只能访问自身本地内存

答案:BC。NVL32 是分布式共享内存:每个节点有本地内存,通过 NVLink Switch 组成统一可寻址的大内存池,足以容纳万亿参数模型。A 错在「同一份物理内存」,D 错在「只能访问本地」。

Q10. 在 AI 编译器视角下,针对 Grace Hopper 的计算图优化可以包括?(多选)

多选题 · extreme

  • A.合并小算子减少跨芯片同步次数← 正确答案
  • B.利用统一内存省略拷贝计算节点← 正确答案
  • C.CPU 算子下沉到 Grace 端执行← 正确答案
  • D.完全移除计算图中的通信节点

答案:ABC。算子融合能减少 CPU-GPU 同步次数;统一内存让拷贝节点可直接删除;数据预处理等算子应下沉到 Grace CPU。但训练必然需要跨节点通信,D 的「完全移除」不现实。