通过利用电压故障注入(VFI)漏洞,研究人员成功将一张 CMP 170HX 8GB 挖矿卡转换为高性能配置,其性能约为零售版 NVIDIA A100 的 1.18 倍。这是通过绕过 NVIDIA 用于在 GA100 芯片上“清扫”或禁用特定组件的硬件熔丝实现的,NVIDIA 通常根据制造良率和市场需求对产品进行分段。

硬件分段的机制

NVIDIA 在 GA100 芯片上利用熔丝控制器来管理产品分段和安全。该控制器包含超过 16,000 个 eFuse,为芯片的其他部分提供“选项字”,决定哪些功能处于激活状态以及哪些硬件模块被关闭。

NVIDIA GA100 芯片架构的框图,显示各种功能单元。
GA100 芯片架构,包括用于硬件分段的熔丝控制器。blog.kate.land

此图展示了 GA100 芯片的内部布局,提供了熔丝控制器如何管理不同硬件模块的背景信息。

此过程中的一个关键机制是“清扫”(floorsweeping),即特定的熔丝值会触发信号,使芯片元件无法访问。例如,OPT_FBP_DISABLE 熔丝可以屏蔽特定的帧缓冲分区(FBP),从而有效地降低芯片的可用的内存或计算能力。

“NVIDIA 的设计允许通过烧断更多熔丝来放宽限制!”

— Using voltage glitching to unleash the A100 in my mining card

通过电压故障注入绕过熔丝

研究人员发现了一个漏洞,其中可以使用电压故障注入来击败熔丝控制器的保护措施。这允许操作者编写“无熔丝熔丝”(FF),它们被结构化为类似于 JTAG 链的脚本,用于定义芯片的功能选项。

显示所有熔丝被感测为零状态的技术图表。
电压故障注入过程中的熔丝状态可视化。blog.kate.land

此图代表了研究人员成功注入故障绕过安全之前的熔丝初始状态。

通过注入电压故障,研究人员能够写入新的 FF 行,将“_DISABLE”字设置为零。这有效地“解锁”了被清扫的组件,允许硬件无论其原始预定 SKU 是什么,都能发挥其全部潜力。

说明电压故障期间 RIR 读取受干扰的技术图表。
电压故障注入引起的 RIR 读取中断示意图。blog.kate.land

此图描绘了用于击败熔丝控制器保护措施的电压故障注入的具体机制。

性能提升与限制

这种解锁的主要结果是计算能力的显著增加。由于零售版 A100 为了确保高制造良率被限制在 108 个 SM,而解锁后的卡——根据具体的芯片批次,可启用 120 到 126 个 SM——超越了零售单元的性能。

FP16 FMA 吞吐量比较: retail A100 72.488 TFLOP/s; unlocked CMP 170HX 85.858 TFLOP/s
FP16 FMA 吞吐量比较blog.kate.land

由 HN Digest 根据 blog.kate.land 报告的数据绘制;数值与原文一致。

虽然该方法可以解锁 NVLink 和 PCIe Gen4 等高端功能,但某些功能如 NVJPG、NVDEC 和 MIG 在此特定配置中仍未经过测试。此外,解锁的成功取决于特定的芯片批次以及原始芯片上可用的功能性 SM 数量。