吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

深度學習中矩陣乘法計算速度再次突破

算法與數據結構 ? 來源:量子位 ? 作者:量子位 ? 2021-06-24 17:36 ? 次閱讀

n階矩陣乘法最優解的時間復雜度再次被突破,達到了

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

。

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

光這么說可能不太直觀,從圖上可以看出,n足夠大時優化后的算法就開始表現出明顯優勢。

矩陣乘法在深度學習中有著廣泛的應用,像卷積神經網絡(CNN)中最耗時間的卷積計算,就經常被映射成矩陣乘法。

雖然在具體實現上還有很多障礙,但矩陣相乘底層算法的優化,至少在理論上為深度學習節省時間提供了可能性。

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

本次研究共同作者是一對師徒。

Josh Alman目前是哈佛大學的博士后研究員,主要研究方向是算法設計和復雜度理論。

Virginia Vassilevska Williams是他在MIT讀博士期間的導師,研究方向是組合數學和圖論在計算領域的應用。

Strassen:用加法替代乘法

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

看過《算法導論》的同學應該很熟悉Strassen算法。

以2階矩陣相乘為例,總共需要進行23=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(n3),而加法的復雜度只有O(n2),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

    文章

    4780

    瀏覽量

    101174
  • 深度學習
    +關注

    關注

    73

    文章

    5515

    瀏覽量

    121553

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

文章出處:【微信號:TheAlgorithm,微信公眾號:算法與數據結構】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    GPU在深度學習的應用 GPUs在圖形設計的作用

    。 GPU的并行計算能力 GPU最初被設計用于處理圖形和圖像的渲染,其核心優勢在于能夠同時處理成千上萬的像素點。這種并行處理能力使得GPU非常適合執行深度學習的大規模
    的頭像 發表于 11-19 10:55 ?727次閱讀

    NPU在深度學習的應用

    設計的硬件加速器,它在深度學習的應用日益廣泛。 1. NPU的基本概念 NPU是一種專門針對深度學習算法優化的處理器,它與傳統的CPU和G
    的頭像 發表于 11-14 15:17 ?893次閱讀

    pcie在深度學習的應用

    深度學習模型通常需要大量的數據和強大的計算能力來訓練。傳統的CPU計算資源有限,難以滿足深度學習
    的頭像 發表于 11-13 10:39 ?526次閱讀

    GPU深度學習應用案例

    GPU在深度學習的應用廣泛且重要,以下是一些GPU深度學習應用案例: 一、圖像識別 圖像識別是深度
    的頭像 發表于 10-27 11:13 ?507次閱讀

    在CM32M433R MCU上調用riscv_sqrt_f32()函數的計算速度比直接調用sqrtf()要慢,為什么?

    在CM32M433R MCU上調用riscv_sqrt_f32()函數的計算速度比直接調用sqrtf()要慢, 計算一次riscv_sqrt_f32大概54 cycles;sqrtf()大概29 cycles,FPU宏已打開,求助是什么問題。
    發表于 07-24 06:12

    深度學習反卷積的原理和應用

    深度學習的廣闊領域中,反卷積(Deconvolution,也稱作Transposed Convolution)作為一種重要的圖像上采樣技術,扮演著至關重要的角色。特別是在計算機視覺任務
    的頭像 發表于 07-14 10:22 ?2343次閱讀

    深度學習的時間序列分類方法

    的發展,基于深度學習的TSC方法逐漸展現出其強大的自動特征提取和分類能力。本文將從多個角度對深度學習在時間序列分類的應用進行綜述,探討常用
    的頭像 發表于 07-09 15:54 ?1169次閱讀

    深度學習的無監督學習方法綜述

    應用往往難以實現。因此,無監督學習深度學習扮演著越來越重要的角色。本文旨在綜述深度
    的頭像 發表于 07-09 10:50 ?948次閱讀

    深度學習在工業機器視覺檢測的應用

    隨著深度學習技術的快速發展,其在工業機器視覺檢測的應用日益廣泛,并展現出巨大的潛力。工業機器視覺檢測是工業自動化領域的重要組成部分,通過圖像處理和計算機視覺技術,實現對產品表面缺陷、
    的頭像 發表于 07-08 10:40 ?1231次閱讀

    深度學習的模型權重

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

    深度學習計算機視覺領域的應用

    隨著人工智能技術的飛速發展,深度學習作為其中的核心技術之一,已經在計算機視覺領域取得了顯著的成果。計算機視覺,作為計算機科學的一個重要分支,
    的頭像 發表于 07-01 11:38 ?981次閱讀

    深度學習編譯工具鏈的核心——圖優化

    等,需要調整優化網絡中使用的算子或算子組合,這就是深度學習編譯工具鏈的核心——圖優化。圖優化是指對深度學習模型的
    的頭像 發表于 05-16 14:24 ?1077次閱讀
    <b class='flag-5'>深度</b><b class='flag-5'>學習</b>編譯工具鏈<b class='flag-5'>中</b>的核心——圖優化

    深度解析深度學習下的語義SLAM

    隨著深度學習技術的興起,計算機視覺的許多傳統領域都取得了突破性進展,例如目標的檢測、識別和分類等領域。近年來,研究人員開始在視覺SLAM算法
    發表于 04-23 17:18 ?1380次閱讀
    <b class='flag-5'>深度</b>解析<b class='flag-5'>深度</b><b class='flag-5'>學習</b>下的語義SLAM

    FPGA在深度學習應用或將取代GPU

    的根本原因,它與 深度神經網絡 有一個共同之處:都需要進行大量矩陣運算。 顯卡可以并行執行矩陣運算,極大地加快計算速度。圖形處理器可以把訓練神經網絡的時間從幾天、幾周縮短到幾小時、
    發表于 03-21 15:19

    為什么深度學習的效果更好?

    導讀深度學習是機器學習的一個子集,已成為人工智能領域的一項變革性技術,在從計算機視覺、自然語言處理到自動駕駛汽車等廣泛的應用取得了顯著的成
    的頭像 發表于 03-09 08:26 ?688次閱讀
    為什么<b class='flag-5'>深度</b><b class='flag-5'>學習</b>的效果更好?
    沙坪坝区| 网上百家乐官网真实吗| 黄金城百家乐官网游戏| 娱乐网百家乐官网的玩法技巧和规则| 百家乐赢钱心得| 大发888娱乐场lm0| 中阳县| 百家乐官网小揽| 百家乐单人操作扫描道具| 香港六合彩报码| 太阳会百家乐官网现金网| 华侨人百家乐官网的玩法技巧和规则 | 百家乐官网最新首存优惠| 免费百家乐官网统计软件| 百家乐庄闲路| 亿博娱乐| 香港百家乐官网的玩法技巧和规则| 百家乐最大的赌局| 淘金盈| 全讯网百家乐官网的玩法技巧和规则 | 大发888网页ban| 百家乐官网澳门路规则算法| 百家乐制胜方法| 太阳城黑胶三折| 百家乐官网桌台布| 百家乐精神| 百乐门娱乐城| 百家乐官网园试玩| 澳门顶级赌场国际| 百家乐官网出千方法技巧| 沙龙百家乐赌场娱乐网规则| 新余市| 百家乐官网网络游戏信誉怎么样| 太阳城公司| 百家乐官网包台| 网上百家乐返水| 百家乐官网筹码样式| 打百家乐如何赢分| 金宝博滚球| 百家乐怎样玩才能赢| 万博88真人娱乐城|