← 最新论文
💻 computer science

Equivalence Checking of ML GPU Kernels

本文介绍了 Volta,这是首个针对 GPU 核函数的完备且可靠的等价性检查器,用于形式化验证由人工、编译器或大语言模型(LLM)优化的机器学习计算的正确性。

原作者: Benjamin Driscoll, Kshitij Dubey, Anjiang Wei, Neeraj Kayal, Rahul Sharma, Alex Aiken

发布于 2026-08-18
📖 1 分钟阅读☕ 轻松阅读

原作者: Benjamin Driscoll, Kshitij Dubey, Anjiang Wei, Neeraj Kayal, Rahul Sharma, Alex Aiken

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

在现代人工智能那庞大且隐形的机器运作中,最关键的工作并非发生在云端,而是在被称为 GPU 的专用计算机芯片上。这些芯片旨在同时执行数百万次微小的计算,这是训练那些如今能够编写代码、翻译语言和生成艺术的大型语言模型的必要条件。为了让这些模型运行得足够快以发挥作用,工程师必须编写高度专业化的指令,即所谓的“内核”(kernels),这些指令精确地告诉 GPU 如何移动数据以及如何进行数学运算。在过去几年中,公司已开始使用人工智能本身来编写这些内核,希望能找到比人类工程师更高效的实现方式。然而,这种速度提升伴随着风险:当人工智能或编译器重写一段代码以追求更高速度时,可能会无意中引入细微的错误。这些错误可能导致计算机产生错误的答案,或者更糟的是,以一种通过标准测试几乎无法发现的方式发生静默崩溃。核心挑战在于,这些芯片同时执行着数千个线程的工作,如果它们不能完美协调,就会互相干扰,从而产生“竞态条件”(race condition),使得最终结果取决于事件发生的不可预测顺序。

一组研究人员开发了一种名为 Volta 的新工具来解决这个问题。Volta 并非通过猜测一个更快的内核版本是否正确,而是作为一个形式化验证器(formal verifier),从数学上证明两个版本会产生完全相同的结果。研究人员构建了一个系统,该系统获取参考内核(即原始、受信任的版本)和优化内核(即新的、更快的版本)的底层指令,并将其通过一个符号引擎(symbolic engine)进行处理。该引擎并非向代码输入具体的数字并观察输出,而是将输入视为抽象符号。它追踪代码可能采取的每一条路径,记录数据如何在数千个并行线程中移动,以及它们如何相互同步。如果代码尝试以可能导致冲突的方式访问内存,或者如果线程陷入永久等待,该工具会立即标记错误。如果代码运行顺畅,该工具会将两个内核的最终输出转化为复杂的数学表达式,并检查无论输入什么具体的数字,这些表达式在本质上是否相同。

研究人员在各种现实世界的机器学习任务上测试了 Volta,包括矩阵乘法、卷积以及驱动大型语言模型的注意力机制(attention mechanisms)。他们发现,该工具能够成功验证由人工优化、编译器优化甚至由大型语言模型生成的内核。在一个案例中,他们检查了一个经过十三轮自动化改进优化的 AI 生成内核。Volta 证实了该 AI 生成的代码在数学上与原始的人类编写的参考内核是等价的,证明了激进的优化并未破坏逻辑。该工具也通过捕捉其他方法遗漏的错误证明了其价值。例如,它检测到了一个在 GPU 编程领域被广泛引用、且已被数千名开发者使用了数年的流行教程中的数据竞争(data races)问题。这些错误之所以隐藏,是因为它们只在非常特定的定时条件下才会出现,而标准测试很少能捕捉到这种情况。该工具还识别出了一个 AI 生成内核中的漏洞:代码试图从一个不存在的内存位置读取数据;虽然当前的硬件恰好忽略了这个错误,但研究人员指出,该代码在本质上是不安全的,并且可能会在未来的机器上失效。

这种方法的优势在于其处理 GPU 编程独特复杂性的能力,即数千个线程必须协调其动作。以往的工具可以检查单线程程序或高层数学运算,但在将 GPU 的大规模并行性分解为易于管理的部分方面却表现不佳。Volta 通过假设其分析的内核遵循机器学习中常见的特定结构化模式(即线程数量和数据大小是预先已知的)来克服这一难题。在这一框架内,该工具可以确切地证明如果线程没有得到适当同步,则存在竞态条件;并且如果两个不同版本的程序产生相同的符号结果,它可以证明它们是等价的。研究人员展示了该工具即使对于包含数十万条指令的内核,也能在几秒钟或几分钟内完成验证。他们还证明了该工具背后的数学逻辑是完备的,这意味着如果工具判定两个程序相等,那么对于所有可能的输入,它们确实是相等的。

这项工作代表了使人工智能开发变得更加安全和可靠的重要一步。随着越来越多的公司依赖自动化系统来生成驱动其模型的代码,建立一种严谨的检查机制变得至关重要。研究人员表明,通过超越只能检查有限场景的简单测试,转向提供正确性形式化保证的方法是可行的。通过验证优化内核的等价性,Volta 让开发者能够放心地使用更快、更激进的优化手段,而不必担心引入静默漏洞。该工具目前已可投入使用,研究人员已将其代码及背后的证明过程向公众开放,以便他人在此基础上进行开发。虽然该工具目前尚未涵盖所有类型的 GPU 代码,但它已能成功处理驱动现代机器学习的大部分内核,为高性能计算代码的自动化生成树立了新的信任标准。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →