清华姚班本科生连发两作,十年来最大改进:矩阵乘法接近理论最优

通过消除「隐藏的低效」问题,计算机科学家提出了一种比以往更快的大型矩阵相乘新方法。

矩阵乘法作为众多gpu算子的基础操作,在高性能计算中扮演着重要角色,也是ai等应用的关键组成部分。虽然其算法本身相对简单,但为了实现更高的速度,人们多年来一直在不断努力优化。然而,优化的程度一直受到一定限制。

在最新一期的《量子杂志》报道中,我们发现了两篇能够加快矩阵乘法速度的论文。这两篇论文的撰写中,清华大学姚班一位大四本科生积极参与,为该领域的算法改进带来了崭新的前景。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

清华姚班本科生连发两作,十年来最大改进:矩阵乘法接近理论最优

矩阵乘法改进出现新「奇点」

计算机科学家是一群非常要求严格的人。他们追求的不仅是解决问题,更在于以最高效的方式达成目标。

以矩阵或数字数组相乘为例,1812年,法国数学家Jacques Philippe Marie Binet提出了一套基本规则,至今仍在教授学生。这套规则被广泛应用,但近年来一些数学家已发现了简化和加速该过程的方法。

清华姚班本科生连发两作,十年来最大改进:矩阵乘法接近理论最优

                              法国数学家 Jacques Philippe Marie Binet。

目前,加速矩阵乘法过程已经成为数学和计算机科学的交叉领域。研究人员一直在努力改进这一过程,尽管近几十年来的进展有限。名古屋大学的计算机科学家François Le Gall指出,自1987年以来,对矩阵乘法的数值改进一直进展缓慢且难以实现。他认为在当前情况下,进一步提升矩阵乘法效率面临着巨大挑战,需要更多的创新和突破。尽管困难重重,但科学家们仍在不懈努力寻求突破,希望能够找到新的方法和技术,以提高矩阵乘法的计算速度和效率。这表明矩阵乘法优化仍然是一个具有挑战性的课题,需要集合

清华大学的段然(Ran Duan)、周任飞(Renfei Zhou)和加州大学伯克利分校的 Hongxun Wu 近期在解决这个长期存在的问题上取得了重要进展,他们的研究成果在一篇 87 页的论文中得以详细展示。Le Gall 对这三位研究者的工作给予了高度评价,他认为尽管改进相对较小,但在概念上却是前所未有的重大突破。

该论文被计算机科学领域的顶会 FOCS 2023 接收。

清华姚班本科生连发两作,十年来最大改进:矩阵乘法接近理论最优

论文 v1 发布在 2022 年 10 月,v5 在 2023 年 11 月。论文地址:https://arxiv.org/abs/2210.10173

其中,段然为清华大学交叉信息研究院副教授,主要研究方向为图论算法、数据结构、计算理论。Hongxun Wu 为加州大学伯克利分校二年级博士生,也是清华姚班出身。

周任飞为清华姚班 2020 级的大四本科生,主修理论计算机科学(TCS)。他主要研究(简洁)数据结构和快速矩阵乘法,并对 TCS 的其他领域具有广泛兴趣,比如流算法、博弈论和在线算法等。

此前,周任飞曾在理论计算机科学顶级会议 FOCS/SODA 上发表多篇论文。

清华姚班本科生连发两作,十年来最大改进:矩阵乘法接近理论最优

三位研究者的论文揭示了以前未知且未开发的潜在改进来源,并且已经取得了成果。2024 年 1 月发表的第二篇论文(周任飞同样参与撰写)以此为基础,展示了如何进一步增强矩阵乘法。

清华姚班本科生连发两作,十年来最大改进:矩阵乘法接近理论最优

论文地址:https://epubs.siam.org/doi/10.1137/1.9781611977912.134

哈佛大学理论计算机科学家 William Kuszmaul 对此表示,这是一项重大的技术突破,是十多年来我们所看到的矩阵乘法的最大改进。

矩阵乘法要改进什么问题

矩阵乘法可能看起来是一个晦涩的问题,但它是一种基本的计算操作。它被融入了人们每天使用的大部分算法中,用于各种任务,从显示更清晰的计算机图形到解决网络理论中的物流问题。就像在计算的其他领域一样,速度至关重要。即使是微小的改进最终也可能大大减少所需要的时间、计算能力和金钱。但目前,理论家主要感兴趣的是弄清这个过程到底能够有多快。

传统的两个 n×n 矩阵相乘的方法 —— 即将第一个矩阵中每一行的数字与第二个矩阵中每一列的数字相乘 —— 需要进行 n³ 次独立的乘法操作。对于 2 乘 2 的矩阵而言,这意味着需要进行 2³,也就是 8 次乘法操作。

清华姚班本科生连发两作,十年来最大改进:矩阵乘法接近理论最优

1969 年,数学家 Volker Strassen 发现了一种更精巧的方法,只需 7 个乘法步骤和 18 个加法步骤,就能完成 2×2 矩阵的乘法运算。两年后,计算机科学家 Shmuel Winograd 证明,对于 2×2 矩阵来说,7 步乘法确实是绝对最小值。

清华姚班本科生连发两作,十年来最大改进:矩阵乘法接近理论最优

Strassen 利用同样的想法证明,所有较大的 n×n 矩阵也可以用少于  n3 步的方法进行乘法运算。这一策略中的一个关键因素涉及一个称为分解的程序:将一个大矩阵分解成一个个更小的子矩阵,这些子矩阵最终可能小到 2×2 甚至 1×1(只是单个数字)。

对于将巨型数组分解成小块的理由相当简单,麻省理工学院的计算机科学家 Virginia Vassilevska Williams 说:「对于一个大矩阵(比如 100×100 的矩阵),人类很难想到最佳的算法。」即使是 3 乘 3 的矩阵也还没有完全解决。「然而,人们可以使用已经为小矩阵开发的快速算法来获得更大矩阵的快速算法。」

研究人员确定,速度的关键在于减少乘法步骤的数量,尽可能将指数从 n3(传统方法)降低。可能的最低值 n² 基本上就是写出答案所需的时间。计算机科学家把这个指数称为 Ω,即 ω。nω 是当 n 越来越大时,成功将两个 n×n 矩阵相乘所需的最少步骤。同为 2024 年 1 月论文合著者的周任飞说:「这项工作的重点,是看你能接近 2 多少,并且是否可以在理论上实现。」

激光法

1986 年,Strassen 取得了另一项重大突破,他推出了矩阵乘法的激光法。Strassen 用它确定了 ω 的上限值为 2.48。虽然该方法只是大型矩阵乘法的一个步骤,但却是最重要的步骤之一,因为研究人员一直在不断改进它。

乾坤圈新媒体矩阵管家 乾坤圈新媒体矩阵管家

新媒体账号、门店矩阵智能管理系统

乾坤圈新媒体矩阵管家 17 查看详情 乾坤圈新媒体矩阵管家

一年后,Winograd 和 Don Coppersmith 推出了一种新算法,对激光法进行了完美的补充。这套工具的组合在后来几乎所有加速矩阵乘法的研究中都得到了应用。

下面是一个简化的方法,让我们来看看这些不同的元素是如何结合在一起的。让我们从两个大型矩阵 A 和 B 开始,将它们相乘。首先,你要把它们分解成许多较小的子矩阵,有时也叫块。接下来,你就可以使用 Coppersmith 和 Winograd 的算法,将其作为处理并最终组装这些块的指导手册。Vassilevska Williams 说:「它告诉我在乘积矩阵 C 中要乘什么、加什么,以及哪些元素在哪里。」「它只是一个从 A 和 B 建立 C 的『配方』」。

然而,这里有一个问题:有时你会得到具有共同元素的块。保留这些共同元素会相当于将这些元素计算两次,因此在某个时候,需要消除这些重叠部分。研究人员通过「消灭」它们所在的块来解决这个问题 —— 将它们的分量设置为零以将它们从计算中移除。

清华姚班本科生连发两作,十年来最大改进:矩阵乘法接近理论最优

                        Virginia Vassilevska Williams 是改进矩阵乘法新方法的团队成员之一,她提出了目前最快的方法。

这就是 Strassen 的激光法最终发挥作用的地方。Le Gall 说,「激光法通常非常有效,并且通常能找到消除重叠的子块的好方法」。在激光消除了所有重叠之后,你就可以构建最终的乘积矩阵 C。

将这些各种技术结合起来,就得到了一种用尽量少的乘法总数来乘两个矩阵的算法,至少在理论上是这样。激光法并不是为了实际应用;它只是一种思考矩阵相乘的理想方式。周任飞表示,「我们从未在计算机上运行这种方法,我们进行对它的分析。」

正是这种分析促成了 ω 十多年来的最大改进。

被发现的「隐藏损失」

在段然、周任飞和 Hongxun Wu 的第一篇论文《Faster Matrix Multiplication via Asymmetric Hashing》中,他们表明,施特拉森算法的进程可以大大加快。这一切要得益于他们称之为「隐藏损失」(hidden loss)的概念。周任飞表示,该概念深深地隐藏在以前的分析中,是无意中消除了太多块的结果。

激光法的工作原理是将重叠的块标记为垃圾,并安排处理,而其他块被认为有价值并将被保存。不过,选择过程有些随机。事实上,被标记为垃圾的块可能最终还是有用的。

这并不完全令人惊讶,但通过检查许多随机选择,段然团队确定激光法系统性地低估了块的价值,因此应该保存更多的块,减少扔掉的块。而且,正如通常的情况一样,更少的浪费可以转化为更高的效率。

对于段然团队的做法,Le Gall 认为,「能够保留更多块而不重叠,这种做法实现了更快的矩阵乘法算法。」

在证明了这种损失的存在后,段然团队修改了激光法标记块的方式,从而大大减少了浪费。他们将 ω 的新上限设定在了 2.371866 左右,这要比 Josh Alman 和 Vassilevska Williams 在 2020 年设定的上限 2.3728596 有所改进。

这看起来是一个不大的变化,将上限降低了大约 0.001,但这是自 2010 年以来科学家们看到的最大进步。相比之下,Vassilevska Williams 和 Alman 2020 年的结果只比之前的结果提高了 0.00001。

清华姚班本科生连发两作,十年来最大改进:矩阵乘法接近理论最优

当然,对研究人员来说,最令人兴奋的不仅仅是新纪录本身,该记录并没有持续多久。事实上,这篇论文揭示了一种新的改进途径,而在此之前,这种途径完全没有被注意到。

Le Gall 称,近四十年来,每个人都依赖相同的激光法。随着段然等三位研究者的论文出现,我们可以做得更好。

因此,周任飞参与撰写的 2024 年 1 月的论文改善了这种新方法,进一步减少了隐藏损失。他们又进一步提高了 ω 的上限,使它降低到了 2.371552

清华姚班本科生连发两作,十年来最大改进:矩阵乘法接近理论最优

研究者还使用同样的方法来改进矩形(n×m)矩阵的乘法过程,该乘法过程在图论、机器学习和其他领域均有广泛应用。

沿着这些方向取得一些进一步的进展几乎是肯定的,但这是有限度的。2015 年,Le Gall 和两位合作者证明,目前的方法,也就是激光法,再加上 Coppersmith 和 Winograd 的方法,无法得到低于 2.3078 的 ω。

Le Gall 说:「要想进一步改进,就必须在 Coppersmith and Winograd 的原始方法基础上加以改进,而这种方法自 1987 年以来就没有真正改变过。」但到目前为止,还没有人提出更好的方法。也许根本就没有。

周任飞说:「改进 ω 实际上是理解这个问题的一部分。如果我们能很好地理解这个问题,就能设计出更好的算法。不过,人们对这个古老问题的理解还处于非常初级的阶段。」

原文链接:

https://www.quantamagazine.org/new-breakthrough-brings-matrix-multiplication-closer-to-ideal-20240307/

以上就是清华姚班本科生连发两作,十年来最大改进:矩阵乘法接近理论最优的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/619805.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月11日 06:02:16
下一篇 2025年11月11日 06:02:54

相关推荐

  • 如何用HTML插入标签云组件_HTML CSS3变换与随机颜色生成算法

    使用HTML构建标签结构,CSS3添加旋转与过渡效果,JavaScript生成随机HSL颜色并设置字体大小,实现动态交互的标签云组件。 要在网页中实现一个动态的标签云组件,结合 HTML、CSS3 变换和随机颜色生成算法,可以按照以下步骤操作。这个组件不仅能提升页面视觉效果,还能通过色彩和旋转增加交…

    2025年12月23日
    000
  • 如何在Go Gin应用中集成前端JavaScript模块(如Sentry)

    本文探讨了在Go Gin框架下,通过HTML模板服务前端页面时,如何有效集成JavaScript模块(如Sentry)。针对浏览器不直接支持Node.js模块导入语法的问题,文章详细阐述了利用CDN引入Sentry SDK的解决方案,并提供了具体的代码示例,帮助开发者实现前端错误监控功能,避免了复杂…

    2025年12月23日
    000
  • html官网浏览入口_html网站设计免费平台

    html官网浏览入口在https://www.codepen.io,该平台支持实时预览代码、创建Pen项目、Fork开源示例,可添加外部资源,具备点赞评论收藏等社区互动功能,设有挑战活动与作品集分类,开放API接口,界面简洁适合初学者,在线编写无需配置环境,支持多种预处理器和响应式测试。 html官…

    2025年12月23日
    000
  • html如何修改日期样式

    在html中,可以使用“::-webkit-datetime-edit”伪元素选择器来修改日期格式,只需要用该选择器选中元素,在设置具体样式即可,具体语法为“::-webkit-datetime-edit{属性:属性值}”。 本教程操作环境:windows7系统、CSS3&&HTML…

    2025年12月21日
    100
  • 单选框的type属性值为什么

    单选框的type属性值为“radio”。html type属性可以规定要显示的输入框“”元素的类型;值为“radio”时显示为单选框、“checkbox”时显示为复选框、“select”时显示为下拉式选框等等。 本教程操作环境:windows7系统、HTML5版、Dell G3电脑。 在HTML中,…

    2025年12月21日
    000
  • HTML中type是什么意思

    在HTML中,type是类型的意思,是一个标签属性,主要用于定义标签元素的类型或文档(脚本)的MIME类型;例在input标签中type属性可以规定input元素的类型,在script标签中type属性可以规定脚本的MIME类型。 本教程操作环境:windows7系统、html5版、Dell G3电…

    2025年12月21日
    000
  • HTML中ul标签如何去掉点?HTML无序列表的样式实例解析

    本篇文章主要讲述的是关于html中的ul标签的默认小点给取消掉,还有关于html的无序列表ul标签的样式解释,给出了ul标签中的type属性三种值的介绍。现在就让我们一起来看本篇文章吧 首先这篇文章一开始我们就开始介绍在html中是怎么把ul标签的点给去掉的: 大家应该都使用过ul无序列表标签,ul…

    2025年12月21日 好文分享
    000
  • html中的ol标签如何去掉标号呢?标签的使用方法总结

    本篇文章介绍了html的ol标签是怎么去掉序号标号的,这里还有代码的详细解释,还有介绍了关于html ol有序列表标签如何更改序号,下文介绍了三种序号,大家也可以自己去想填写怎样的序号。现在来看这篇文章吧 一、我们先看看html中的ol标签是如何去掉标号的呢: 我们都知道html的ol标签是个有序列…

    2025年12月21日 好文分享
    000
  • HTML ul标签的什么意思?HTML ul标签的作用详解

    本篇文章主要的为大家讲解了关于html ul标签的三种重要的用法,还有关于html ul标签的解释,包含li标签的还有type属性对ul标签的使用情况,好了,下面大家一起来看文章吧 首先让我们先来解释一下HTML ul标签的意思: ul标签定义的是表格当中无序列表,表格当中的无序列表都是在 标签之中…

    2025年12月21日
    000
  • javascript框架和库是什么_如何选择React、Vue或Angular?

    JavaScript框架与库分别提供按需调用的功能集合和约束性开发结构;React是UI组件库,生态灵活但需自行整合工具;Vue渐进式易上手,兼顾原型与工程化;Angular是全功能TypeScript框架,适合强规范企业级项目。 JavaScript框架和库是封装好的代码集合,用来简化前端开发——…

    2025年12月21日
    000
  • React应用生产环境环境变量配置深度指南

    本文针对react应用在生产环境中无法读取`.env`文件配置的环境变量问题,深入剖析其工作原理、常见原因及排查方法。通过详细的步骤和示例代码,指导开发者正确配置和使用环境变量,解决api调用层面的`null`响应问题,确保应用在生产环境下的稳定运行。 在React应用开发中,环境变量(如API密钥…

    2025年12月21日
    000
  • JS注解怎么实现文档化_ JS注解生成开发文档的流程与工具

    JSDoc是一种JavaScript结构化注释规范,通过@param、@returns等标签描述代码元素,并借助工具生成HTML文档,结合IDE支持和CI/CD可提升团队协作效率。 JavaScript本身不支持原生注解(Annotation)像Java那样的语法,但通过约定的注释格式和配套工具,可…

    2025年12月21日
    000
  • JS注解怎么标注联合类型_ JS联合类型的注解书写与使用技巧

    在JavaScript中可通过JSDoc使用联合类型注解,如string|number表示多类型支持,结合@param、@typedef等标签提升代码可读性与编辑器提示,适用于函数参数、返回值等场景。 在JavaScript中,虽然原生不支持类型注解,但在使用JSDoc配合现代编辑器(如VS Cod…

    2025年12月21日
    000
  • VS Code主题开发:告别JSON,拥抱脚本化生成

    vs code主题扩展最终需json格式定义,但开发者可通过javascript或typescript等脚本语言生成此json文件。这种方法有效解决了大型json文件难以维护、不支持注释等问题,并能实现颜色动态计算,显著提升主题开发的灵活性与效率。 为什么选择脚本化生成VS Code主题? 在开发V…

    2025年12月20日
    000
  • 如何用Quasar框架开发一个跨平台应用?

    Quasar基于Vue.js用一套代码构建多平台应用,支持响应式网站、PWA、移动App和桌面应用。通过quasar create创建项目,利用模式(SPA、PWA、Electron等)切换目标平台,使用Quasar组件库编写通用UI,配合Pinia管理状态,最后通过不同构建命令发布到各平台,实现高…

    2025年12月20日
    000
  • 怎么利用JavaScript进行前端代码覆盖率统计?

    答案:利用JavaScript进行前端代码覆盖率统计的核心是通过Istanbul/nyc等工具对代码插桩,结合测试框架收集执行数据并生成报告。具体流程包括:在代码执行前通过Babel或Webpack插件(如babel-plugin-istanbul)插入计数器实现插桩;运行测试时记录哪些代码被执行;…

    2025年12月20日
    100
  • typescript中的参数分享

    TypeScript 中的参数共享允许组件间共享参数,实现跨组件状态维护和数据变更共享。通过 @Input 装饰器传递父组件参数,使用 @Output 装饰器定义子组件事件,以便在子组件状态改变时通知父组件。参数共享提高复用性,简化状态管理,允许子组件向父组件发出通知,但应谨慎使用,避免大量数据共享…

    2025年12月19日
    000
  • 手机如何运行typescript方法

    要在手机上运行 TypeScript 方法,可以使用 TypeScript 编译器或第三方库:TypeScript 编译器: 将 TypeScript 代码编译成 JavaScript,然后集成到移动应用程序中。第三方库: 如 React Native 或 NativeScript,允许使用 Typ…

    2025年12月19日
    000
  • typescript用来干嘛_typescript的作用

    TypeScript 是一种用于构建大型复杂应用程序的开源编程语言,它扩展了 JavaScript 的功能,具有以下作用:类型系统:编译时检查类型错误,提高代码可靠性。面向对象编程特性:支持类、接口、抽象类,增强代码组织性和维护性。模块系统:分解程序为可重用模块,提升可维护性和可扩展性。全面的类型推…

    2025年12月19日
    000
  • TypeScript基本用法和语法

    TypeScript 是一种具有类型系统的 JavaScript 超集,提供以下特性:类型注解:确保变量、函数和类的类型一致。接口:定义方法和属性,供类实现。枚举:提供命名常量集。泛型:创建可重用且类型安全的组件。 TypeScript 基本用法和语法 TypeScript 是一种超集 JavaSc…

    2025年12月19日
    000

发表回复

登录后才能评论
关注微信