Portable Acceleration of Learning With Errors KEMs for Post-Quantum Cryptography
本文展示了一种利用 OpenMP Target offloading 实现的基于容错学习(LWE)的密钥封装机制(KEM)的可移植 GPU 实现,证明了单一源代码库可以在避免供应商锁定(vendor lock-in)的同时,在 NVIDIA 和 AMD 加速器上均实现显著的性能加速和能效提升。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下,你正试图建造一个超级安全的数字保险库,即使是面对未来的“量子”超级计算机也无法被破解。为此,你需要解决一个巨大的、杂乱的数学难题,叫做“带误差的学习”(Learning With Errors,简称 LWE)。这就像是在试图于一堆数百万个微小且带有噪声的磁铁组成的草堆中寻找一根特定的针,而且当你越深入寻找时,这些磁铁就会晃动得越厉害。
问题在于,解决这些谜题在普通计算机上需要耗费极长的时间。这就像是用一把小勺子一次只能移动一粒沙子,却要搬动一座沙山。作者们提出了一个疑问:“如果我们使用一支庞大且高效的施工队(GPU)来搬运这些沙子呢?”
重大发现:一套代码,两支队伍
通常情况下,如果你想雇佣一支施工队,你必须雇佣特定的团队(比如 NVIDIA 的 CUDA),并编写只有他们能理解的指令。如果你想换另一支团队(比如 AMD),你就必须重写整个说明书。这既昂贵又麻烦。
这篇论文表明,你可以编写一套单一的指令集(使用名为 OpenMP Target 的技术),它既能完美适配 NVIDIA 团队,也能适配 AMD 团队。这就像写一份食谱,无论是在燃气灶还是电炉灶的厨房里烹饪,都不需要改变任何配料,食谱依然适用。
神奇的技巧:留在厨房里
这些数学谜题中最浪费时间的部分,是在主计算机(CPU)和超快速 GPU 之间来回奔波。这就像厨师为了每撒一丁点调料,都要跑去储藏室拿一次盐。
作者们想出了办法,让“盐”(数学运算所需的随机数)直接留在 GPU 的厨房里。他们升级了一个名为 RngonGPU 的工具,使其能同时适用于 NVIDIA 和 AMD 团队。现在,GPU 可以生成其所需的所有随机数,而无需离开座位。这让工作流程变得流畅且快速。
竞赛:谁会获胜?
团队在四台不同的超快速计算机上测试了他们的新方法:
- NVIDIA A100: 一台强大且标准的超级计算机。
- NVIDIA GH200: 一台巨大的“超级芯片”,其大脑(CPU)和肌肉(GPU)通过一条超高速公路(NVLink)粘合在一起。
- AMD MI300X: 一台拥有巨大内存库的强大标准超级计算机。
- AMD MI300A: 一种大脑和肌肉共享完全相同内存库的芯片。
以下是他们的发现:
- 速度提升: 当数学谜题变得巨大(规模为 4,096)时,GPU 版本比普通计算机版本快了 120 倍。对于规模更大的谜题(规模为 16,384),GPU 依然运行得飞快,而普通计算机则几乎处于停滞状态。
- 赢家: NVIDIA GH200 是最快的,大约在 60 秒内完成了任务。AMD MI300X 紧随其后,耗时 85 秒。这两台机器都拥有巨大的、高速的内存库(HBM3),可以快速倾泻数据。
- 令人意外的输家: 你可能会认为 AMD MI300A 会表现出色,因为它实现了大脑和肌肉共享内存。但它实际上是最慢的,耗时 114 秒。为什么呢?因为大脑和肌肉在争夺同一根水管。当 GPU 试图移动数据时,CPU 也在进行自己的数学运算,它们互相干扰。这就像两个人同时试图用同一根吸管喝水;谁也无法喝得痛快。
能量与热量
团队还检查了这些机器消耗了多少电量。NVIDIA GH200 不仅完成得更快,而且消耗的能量更少。它用了大约 9.7 kJ 的能量来解决谜题,而 AMD MI300X 需要约 26.2 kJ。这意味着 NVIDIA 的机器在能量效率上大约高出 2.5 倍。
这意味着什么
这篇论文证明了,你不需要为了获得超高速安全性能而在 NVIDIA 和 AMD 之间做单选题。你可以使用一套代码在两者之上运行。然而,他们也表明,仅仅拥有快速的芯片是不够的;内存是如何组织的同样重要。如果大脑和肌肉在争夺同一块内存,整个系统就会变慢。
简而言之,作者们衡量出,可移植的、经 GPU 加速的安全技术不仅是一个梦想,它已经成为现实,能够让量子防范锁变得更快、更高效——只要你选择正确的硬件配置,以避免在内存通道上发生交通拥堵。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。