0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

深度学习中矩阵乘法计算速度再次突破

算法与数据结构 来源:量子位 作者:量子位 2021-06-24 17:36 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

n阶矩阵乘法最优解的时间复杂度再次被突破,达到了

f6d190d4-d48d-11eb-9e57-12bb97331649.jpg

按定义直接算的话,时间复杂度是O(n³)。

光这么说可能不太直观,从图上可以看出,n足够大时优化后的算法就开始表现出明显优势。

矩阵乘法在深度学习中有着广泛的应用,像卷积神经网络(CNN)中最耗时间的卷积计算,就经常被映射成矩阵乘法。

虽然在具体实现上还有很多障碍,但矩阵相乘底层算法的优化,至少在理论上为深度学习节省时间提供了可能性。

而科学家们努力的目标,是使n阶矩阵乘法的时间复杂度尽可能接近理论上的最快速度O(n²)。

本次研究共同作者是一对师徒。

Josh Alman目前是哈佛大学的博士后研究员,主要研究方向是算法设计和复杂度理论。

Virginia Vassilevska Williams是他在MIT读博士期间的导师,研究方向是组合数学和图论在计算领域的应用。

Strassen:用加法替代乘法

矩阵乘法的时间复杂度直到1969年才第一次被Volker Strassen降至O(n³)以下。

看过《算法导论》的同学应该很熟悉Strassen算法。

以2阶矩阵相乘为例,总共需要进行2³=8次乘法,而2ⁿ的高阶矩阵相乘可以用分块法不断迭代细分解成若干个2阶子矩阵相乘。

Strassen巧妙的通过构造7个中间变量,用增加14次加法为代价省去了一次乘法。

对于

f75b808c-d48d-11eb-9e57-12bb97331649.png

定义

f7d831a4-d48d-11eb-9e57-12bb97331649.png

则有

f7e2a40e-d48d-11eb-9e57-12bb97331649.png

像这样,在M₁-M₇的计算中只有7次乘法操作。
由于矩阵乘法计算中乘法的复杂度是O(n³),而加法的复杂度只有O(n²),n越大时此方法的收益就越大。

且分块后每个子矩阵相乘都可以省去一次乘法操作,最终把时间复杂度降低到

f7edd1d0-d48d-11eb-9e57-12bb97331649.jpg

这么绕的算法到底怎么想出来的?可惜Strassen在论文中并没有说明这一点。

Strassen算法在实际应用时受到很大限制,如运行时会创建大量的临时变量,在n不够大时反倒更耗费时间。

还有只适用于稠密矩阵,针对稀疏矩阵有更快的专门算法。

但最重要的是,Strassen的办法让学界意识到,原来矩阵乘法问题还有优化空间啊!

激光法:用张量替代矩阵

20世纪70年代末期,科学家们找到了解决问题的新思路,将矩阵计算转换为张量计算。

1981年,Schonhage将此方法优化到

f88eb62c-d48d-11eb-9e57-12bb97331649.jpg

后,Strassen把这个方法命名为“激光法(Laser Method)”,因为和正交偏振激光有相似之处。

在后来的几十年中,矩阵乘法的每次优化都来自激光法的优化,即如何更有效的把矩阵问题转换成张量问题。

Alman和Williams的优化算法只比14年LeGall的

f8aa33a2-d48d-11eb-9e57-12bb97331649.jpg

减少了

f8baf98a-d48d-11eb-9e57-12bb97331649.jpg

从历次优化的幅度来看,似乎已逼近激光法的极限。

能算得更快了吗?

激光法很少在实际中应用,因为它只在n足够大,大到现代计算机硬件几乎无法处理的时候才能提供优势。

这样的算法被称作“银河算法(Galatic Algorithm)”。

在业界使用最多的还是通过分块法和并行处理控制矩阵的规模。当n不大时,再通过循环展开,内存布局优化等办法针对直觉算法的优化。

还有一点,现实中由于浮点数精度的限制,Strassen法和激光法在计算大规模矩阵时都会产生不小的误差。

矩阵乘法的加速,看来还没那么容易。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络
    +关注

    关注

    42

    文章

    4840

    浏览量

    108141
  • 深度学习
    +关注

    关注

    73

    文章

    5603

    浏览量

    124609

原文标题:矩阵乘法计算速度再次突破极限,我炼丹能更快了吗?| 哈佛、MIT

文章出处:【微信号:TheAlgorithm,微信公众号:算法与数据结构】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    如何在NVIDIA CUDA Tile编写高性能矩阵乘法

    本博文是系列课程的一部分,旨在帮助开发者学习 NVIDIA CUDA Tile 编程,掌握构建高性能 GPU 内核的方法,并以矩阵乘法作为核心示例。
    的头像 发表于 01-22 16:43 5250次阅读
    如何在NVIDIA CUDA Tile<b class='flag-5'>中</b>编写高性能<b class='flag-5'>矩阵</b><b class='flag-5'>乘法</b>

    【团购】独家全套珍藏!龙哥LabVIEW视觉深度学习实战课(11大系列课程,共5000+分钟)

    (第10系列)、YOLOv8-Tiny工业优化版(第9系列),满足产线端设备算力限制,模型推理速度提升300%。 LabVIEW生态整合 作为工业自动化领域主流开发环境,LabVIEW与深度学习的集成
    发表于 12-04 09:28

    【团购】独家全套珍藏!龙哥LabVIEW视觉深度学习实战课程(11大系列课程,共5000+分钟)

    (第10系列)、YOLOv8-Tiny工业优化版(第9系列),满足产线端设备算力限制,模型推理速度提升300%。 LabVIEW生态整合 作为工业自动化领域主流开发环境,LabVIEW与深度学习的集成
    发表于 12-03 13:50

    Verilog实现使用Booth编码和Wallace树的定点补码乘法器原理

    ,仅需要将前面的累加的部分积向右移动一位。 Booth编码采用相加和相减的操作计算补码数据的乘积,可以减少部分积的数目,用来计算有符号乘法,提高乘法运算的
    发表于 10-23 08:01

    蜂鸟乘法器设计分享

    ,蜂鸟E203乘法实现使用基4(Radix-4)的Booth编码,共产生16个部分积,最终采用循环移位方式计算最终结果,以牺牲性能的方式换取了面积损耗。
    发表于 10-22 08:21

    NTT设计介绍

    运算,可有效提高乘法算法的计算速度和精度。 NTT可使用Gentleman-Sande蝶形变换实现,以正常顺序输入,以位反转顺序输出。N点的NTT运算由 级组成,每一级执行 次蝶形变换。因此,一个N点
    发表于 10-22 06:05

    【「AI芯片:科技探索与AGI愿景」阅读体验】+第二章 实现深度学习AI芯片的创新方法与架构

    矩阵乘法的算法 ①矩阵乘法的各种算法 ②优化矩阵乘法过程的新方法 ③加速
    发表于 09-12 17:30

    深度学习对工业物联网有哪些帮助

    、实施路径三个维度展开分析: 一、深度学习如何突破工业物联网的技术瓶颈? 1. 非结构化数据处理:解锁“沉睡数据”价值 传统困境 :工业物联网70%以上的数据为非结构化数据(如设备振
    的头像 发表于 08-20 14:56 1185次阅读

    自动驾驶Transformer大模型会取代深度学习吗?

    [首发于智驾最前沿微信公众号]近年来,随着ChatGPT、Claude、文心一言等大语言模型在生成文本、对话交互等领域的惊艳表现,“Transformer架构是否正在取代传统深度学习”这一话题一直被
    的头像 发表于 08-13 09:15 4350次阅读
    自动驾驶<b class='flag-5'>中</b>Transformer大模型会取代<b class='flag-5'>深度</b><b class='flag-5'>学习</b>吗?

    求助,关于STM32H743使用DSP进行矩阵求逆计算出现的问题求解

    我正在STM32H743上实现一个算法,需要进行一个20*20的矩阵求逆,但是计算结果与matlab对比差距非常大,完全不正确,原矩阵A的部分数值类似如下: 在matlab求逆的部
    发表于 08-08 07:24

    AI芯片:加速人工智能计算的专用硬件引擎

    人工智能(AI)的快速发展离不开高性能计算硬件的支持,而传统CPU由于架构限制,难以高效处理AI任务的大规模并行计算需求。因此,专为AI优化的芯片应运而生,成为推动深度
    的头像 发表于 07-09 15:59 1931次阅读

    大模型推理显存和计算量估计方法研究

    方法。 一、引言 大模型推理是指在已知输入数据的情况下,通过深度学习模型进行预测或分类的过程。然而,大模型的推理过程对显存和计算资源的需求较高,这给实际应用带来了以下挑战: 显存不足:大模型在推理过程
    发表于 07-03 19:43

    ai服务器是什么?与普通服务器有什么区别

    AI服务器并非简单的硬件堆砌,而是专门为人工智能任务设计的高性能计算系统。其核心目标是高效处理海量数据并行计算(如矩阵乘法、模型推理),并针对AI工作负载(如
    的头像 发表于 06-24 16:39 4892次阅读

    RISC-V向量处理器:现代计算的革命性引擎

    瓶颈等问题愈发突出。以人工智能领域为例,深度学习模型训练需要进行海量矩阵运算和复杂的神经网络计算,对计算设备的
    的头像 发表于 06-04 10:03 1837次阅读
    RISC-V向量处理器:现代<b class='flag-5'>计算</b>的革命性引擎

    边缘计算如何颠覆人工智能变革

    2025年以来,DeepSeek发布的大模型热度居高不下,再次点燃了全球对人工智能的无限热情。深度学习模型以指数级速度膨胀,性能不断突破极限
    的头像 发表于 05-30 09:29 1144次阅读