0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

深度學(xué)習(xí)中矩陣乘法計(jì)算速度再次突破

算法與數(shù)據(jù)結(jié)構(gòu) ? 來(lái)源:量子位 ? 作者:量子位 ? 2021-06-24 17:36 ? 次閱讀

n階矩陣乘法最優(yōu)解的時(shí)間復(fù)雜度再次被突破,達(dá)到了

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

。

按定義直接算的話,時(shí)間復(fù)雜度是O(n3)。

光這么說(shuō)可能不太直觀,從圖上可以看出,n足夠大時(shí)優(yōu)化后的算法就開(kāi)始表現(xiàn)出明顯優(yōu)勢(shì)。

矩陣乘法在深度學(xué)習(xí)中有著廣泛的應(yīng)用,像卷積神經(jīng)網(wǎng)絡(luò)(CNN)中最耗時(shí)間的卷積計(jì)算,就經(jīng)常被映射成矩陣乘法。

雖然在具體實(shí)現(xiàn)上還有很多障礙,但矩陣相乘底層算法的優(yōu)化,至少在理論上為深度學(xué)習(xí)節(jié)省時(shí)間提供了可能性。

而科學(xué)家們努力的目標(biāo),是使n階矩陣乘法的時(shí)間復(fù)雜度盡可能接近理論上的最快速度O(n2)。

本次研究共同作者是一對(duì)師徒。

Josh Alman目前是哈佛大學(xué)的博士后研究員,主要研究方向是算法設(shè)計(jì)和復(fù)雜度理論。

Virginia Vassilevska Williams是他在MIT讀博士期間的導(dǎo)師,研究方向是組合數(shù)學(xué)和圖論在計(jì)算領(lǐng)域的應(yīng)用。

Strassen:用加法替代乘法

矩陣乘法的時(shí)間復(fù)雜度直到1969年才第一次被Volker Strassen降至O(n3)以下。

看過(guò)《算法導(dǎo)論》的同學(xué)應(yīng)該很熟悉Strassen算法。

以2階矩陣相乘為例,總共需要進(jìn)行23=8次乘法,而2?的高階矩陣相乘可以用分塊法不斷迭代細(xì)分解成若干個(gè)2階子矩陣相乘。

Strassen巧妙的通過(guò)構(gòu)造7個(gè)中間變量,用增加14次加法為代價(jià)省去了一次乘法。

對(duì)于

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

定義

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

則有

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

像這樣,在M?-M?的計(jì)算中只有7次乘法操作。
由于矩陣乘法計(jì)算中乘法的復(fù)雜度是O(n3),而加法的復(fù)雜度只有O(n2),n越大時(shí)此方法的收益就越大。

且分塊后每個(gè)子矩陣相乘都可以省去一次乘法操作,最終把時(shí)間復(fù)雜度降低到

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

。

這么繞的算法到底怎么想出來(lái)的?可惜Strassen在論文中并沒(méi)有說(shuō)明這一點(diǎn)。

Strassen算法在實(shí)際應(yīng)用時(shí)受到很大限制,如運(yùn)行時(shí)會(huì)創(chuàng)建大量的臨時(shí)變量,在n不夠大時(shí)反倒更耗費(fèi)時(shí)間。

還有只適用于稠密矩陣,針對(duì)稀疏矩陣有更快的專門算法。

但最重要的是,Strassen的辦法讓學(xué)界意識(shí)到,原來(lái)矩陣乘法問(wèn)題還有優(yōu)化空間??!

激光法:用張量替代矩陣

20世紀(jì)70年代末期,科學(xué)家們找到了解決問(wèn)題的新思路,將矩陣計(jì)算轉(zhuǎn)換為張量計(jì)算。

1981年,Schonhage將此方法優(yōu)化到

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

后,Strassen把這個(gè)方法命名為“激光法(Laser Method)”,因?yàn)楹驼黄窦す庥邢嗨浦帯?/p>

在后來(lái)的幾十年中,矩陣乘法的每次優(yōu)化都來(lái)自激光法的優(yōu)化,即如何更有效的把矩陣問(wèn)題轉(zhuǎn)換成張量問(wèn)題。

Alman和Williams的優(yōu)化算法只比14年LeGall的

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

減少了

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

。

從歷次優(yōu)化的幅度來(lái)看,似乎已逼近激光法的極限。

能算得更快了嗎?

激光法很少在實(shí)際中應(yīng)用,因?yàn)樗辉趎足夠大,大到現(xiàn)代計(jì)算機(jī)硬件幾乎無(wú)法處理的時(shí)候才能提供優(yōu)勢(shì)。

這樣的算法被稱作“銀河算法(Galatic Algorithm)”。

在業(yè)界使用最多的還是通過(guò)分塊法和并行處理控制矩陣的規(guī)模。當(dāng)n不大時(shí),再通過(guò)循環(huán)展開(kāi),內(nèi)存布局優(yōu)化等辦法針對(duì)直覺(jué)算法的優(yōu)化。

還有一點(diǎn),現(xiàn)實(shí)中由于浮點(diǎn)數(shù)精度的限制,Strassen法和激光法在計(jì)算大規(guī)模矩陣時(shí)都會(huì)產(chǎn)生不小的誤差。

矩陣乘法的加速,看來(lái)還沒(méi)那么容易。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴

原文標(biāo)題:矩陣乘法計(jì)算速度再次突破極限,我煉丹能更快了嗎?| 哈佛、MIT

文章出處:【微信號(hào):TheAlgorithm,微信公眾號(hào):算法與數(shù)據(jù)結(jié)構(gòu)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    pcie在深度學(xué)習(xí)的應(yīng)用

    深度學(xué)習(xí)模型通常需要大量的數(shù)據(jù)和強(qiáng)大的計(jì)算能力來(lái)訓(xùn)練。傳統(tǒng)的CPU計(jì)算資源有限,難以滿足深度學(xué)習(xí)
    的頭像 發(fā)表于 11-13 10:39 ?142次閱讀

    GPU深度學(xué)習(xí)應(yīng)用案例

    GPU在深度學(xué)習(xí)的應(yīng)用廣泛且重要,以下是一些GPU深度學(xué)習(xí)應(yīng)用案例: 一、圖像識(shí)別 圖像識(shí)別是深度
    的頭像 發(fā)表于 10-27 11:13 ?297次閱讀

    在CM32M433R MCU上調(diào)用riscv_sqrt_f32()函數(shù)的計(jì)算速度比直接調(diào)用sqrtf()要慢,為什么?

    在CM32M433R MCU上調(diào)用riscv_sqrt_f32()函數(shù)的計(jì)算速度比直接調(diào)用sqrtf()要慢, 計(jì)算一次riscv_sqrt_f32大概54 cycles;sqrtf()大概29 cycles,FPU宏已打開(kāi),求助是什么問(wèn)題。
    發(fā)表于 07-24 06:12

    深度學(xué)習(xí)反卷積的原理和應(yīng)用

    深度學(xué)習(xí)的廣闊領(lǐng)域中,反卷積(Deconvolution,也稱作Transposed Convolution)作為一種重要的圖像上采樣技術(shù),扮演著至關(guān)重要的角色。特別是在計(jì)算機(jī)視覺(jué)任務(wù)
    的頭像 發(fā)表于 07-14 10:22 ?1274次閱讀

    深度學(xué)習(xí)的時(shí)間序列分類方法

    的發(fā)展,基于深度學(xué)習(xí)的TSC方法逐漸展現(xiàn)出其強(qiáng)大的自動(dòng)特征提取和分類能力。本文將從多個(gè)角度對(duì)深度學(xué)習(xí)在時(shí)間序列分類的應(yīng)用進(jìn)行綜述,探討常用
    的頭像 發(fā)表于 07-09 15:54 ?667次閱讀

    深度學(xué)習(xí)的無(wú)監(jiān)督學(xué)習(xí)方法綜述

    應(yīng)用往往難以實(shí)現(xiàn)。因此,無(wú)監(jiān)督學(xué)習(xí)深度學(xué)習(xí)扮演著越來(lái)越重要的角色。本文旨在綜述深度
    的頭像 發(fā)表于 07-09 10:50 ?410次閱讀

    深度學(xué)習(xí)在工業(yè)機(jī)器視覺(jué)檢測(cè)的應(yīng)用

    隨著深度學(xué)習(xí)技術(shù)的快速發(fā)展,其在工業(yè)機(jī)器視覺(jué)檢測(cè)的應(yīng)用日益廣泛,并展現(xiàn)出巨大的潛力。工業(yè)機(jī)器視覺(jué)檢測(cè)是工業(yè)自動(dòng)化領(lǐng)域的重要組成部分,通過(guò)圖像處理和計(jì)算機(jī)視覺(jué)技術(shù),實(shí)現(xiàn)對(duì)產(chǎn)品表面缺陷、
    的頭像 發(fā)表于 07-08 10:40 ?930次閱讀

    深度學(xué)習(xí)在視覺(jué)檢測(cè)的應(yīng)用

    深度學(xué)習(xí)是機(jī)器學(xué)習(xí)領(lǐng)域中的一個(gè)重要分支,其核心在于通過(guò)構(gòu)建具有多層次的神經(jīng)網(wǎng)絡(luò)模型,使計(jì)算機(jī)能夠從大量數(shù)據(jù)自動(dòng)
    的頭像 發(fā)表于 07-08 10:27 ?592次閱讀

    深度學(xué)習(xí)的模型權(quán)重

    深度學(xué)習(xí)這一充滿無(wú)限可能性的領(lǐng)域中,模型權(quán)重(Weights)作為其核心組成部分,扮演著至關(guān)重要的角色。它們不僅是模型學(xué)習(xí)的基石,更是模型智能的源泉。本文將從模型權(quán)重的定義、作用、優(yōu)化、管理以及應(yīng)用等多個(gè)方面,深入探討
    的頭像 發(fā)表于 07-04 11:49 ?849次閱讀

    深度學(xué)習(xí)計(jì)算機(jī)視覺(jué)領(lǐng)域的應(yīng)用

    隨著人工智能技術(shù)的飛速發(fā)展,深度學(xué)習(xí)作為其中的核心技術(shù)之一,已經(jīng)在計(jì)算機(jī)視覺(jué)領(lǐng)域取得了顯著的成果。計(jì)算機(jī)視覺(jué),作為計(jì)算機(jī)科學(xué)的一個(gè)重要分支,
    的頭像 發(fā)表于 07-01 11:38 ?644次閱讀

    深度學(xué)習(xí)編譯工具鏈的核心——圖優(yōu)化

    等,需要調(diào)整優(yōu)化網(wǎng)絡(luò)中使用的算子或算子組合,這就是深度學(xué)習(xí)編譯工具鏈的核心——圖優(yōu)化。圖優(yōu)化是指對(duì)深度學(xué)習(xí)模型的
    的頭像 發(fā)表于 05-16 14:24 ?759次閱讀
    <b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b>編譯工具鏈<b class='flag-5'>中</b>的核心——圖優(yōu)化

    深度解析深度學(xué)習(xí)下的語(yǔ)義SLAM

    隨著深度學(xué)習(xí)技術(shù)的興起,計(jì)算機(jī)視覺(jué)的許多傳統(tǒng)領(lǐng)域都取得了突破性進(jìn)展,例如目標(biāo)的檢測(cè)、識(shí)別和分類等領(lǐng)域。近年來(lái),研究人員開(kāi)始在視覺(jué)SLAM算法
    發(fā)表于 04-23 17:18 ?1228次閱讀
    <b class='flag-5'>深度</b>解析<b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b>下的語(yǔ)義SLAM

    FPGA在深度學(xué)習(xí)應(yīng)用或?qū)⑷〈鶪PU

    的根本原因,它與 深度神經(jīng)網(wǎng)絡(luò) 有一個(gè)共同之處:都需要進(jìn)行大量矩陣運(yùn)算。 顯卡可以并行執(zhí)行矩陣運(yùn)算,極大地加快計(jì)算速度。圖形處理器可以把訓(xùn)練神經(jīng)網(wǎng)絡(luò)的時(shí)間從幾天、幾周縮短到幾小時(shí)、
    發(fā)表于 03-21 15:19

    為什么深度學(xué)習(xí)的效果更好?

    導(dǎo)讀深度學(xué)習(xí)是機(jī)器學(xué)習(xí)的一個(gè)子集,已成為人工智能領(lǐng)域的一項(xiàng)變革性技術(shù),在從計(jì)算機(jī)視覺(jué)、自然語(yǔ)言處理到自動(dòng)駕駛汽車等廣泛的應(yīng)用取得了顯著的成
    的頭像 發(fā)表于 03-09 08:26 ?583次閱讀
    為什么<b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b>的效果更好?

    GPU在深度學(xué)習(xí)的應(yīng)用與優(yōu)勢(shì)

    人工智能的飛速發(fā)展,深度學(xué)習(xí)作為其重要分支,正在推動(dòng)著諸多領(lǐng)域的創(chuàng)新。在這個(gè)過(guò)程,GPU扮演著不可或缺的角色。就像超級(jí)英雄電影的主角一樣,GPU在
    的頭像 發(fā)表于 12-06 08:27 ?1190次閱讀
    GPU在<b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>中</b>的應(yīng)用與優(yōu)勢(shì)