色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

商湯聯(lián)合提出基于FPGA的Winograd算法:改善FPGA上的CNN性能 降低算法復(fù)雜度

商湯科技SenseTime ? 2018-02-07 11:52 ? 次閱讀

商湯科技算法平臺(tái)團(tuán)隊(duì)和北京大學(xué)高能效實(shí)驗(yàn)室聯(lián)合提出一種基于 FPGA 的快速 Winograd 算法,可以大幅降低算法復(fù)雜度,改善 FPGA 上的 CNN 性能。早在2016年,論文中的實(shí)驗(yàn)使用了當(dāng)時(shí)最優(yōu)的多種 CNN 架構(gòu),已經(jīng)實(shí)現(xiàn)了 FPGA 加速之下的最優(yōu)性能和能耗。

摘要

近年來(lái),卷積神經(jīng)網(wǎng)絡(luò)(CNN)越來(lái)越廣泛地應(yīng)用于計(jì)算機(jī)視覺(jué)任務(wù)。FPGA 因其高性能、低能耗和可重配置性成為 CNN 的有效硬件加速器而備受關(guān)注。但是,之前基于傳統(tǒng)卷積算法的 FPGA 解決方案通常受限于 FPGA 的計(jì)算能力(如 DSP 的數(shù)量)。本論文展示了快速的 Winograd 算法,該算法可以大幅降低算法復(fù)雜度,改善 FPGA 上的 CNN 性能。我們首先提出了一種新型架構(gòu)在 FPGA 上實(shí)現(xiàn) Winograd 算法。我們的設(shè)計(jì)利用行緩沖結(jié)構(gòu)(line buffer structure)來(lái)高效重用不同 tile 的特征圖數(shù)據(jù)。我們還高效架構(gòu) Winograd PE 引擎,通過(guò)并行化啟動(dòng)多個(gè) PE。同時(shí)存在復(fù)雜的設(shè)計(jì)空間有待探索。我們提出一種分析模型,用于預(yù)測(cè)資源使用情況、推斷性能。我們使用該模型指導(dǎo)快速的設(shè)計(jì)空間探索。實(shí)驗(yàn)使用了當(dāng)前最優(yōu)的 CNN,結(jié)果表明其實(shí)現(xiàn)了在 FPGA 上的最優(yōu)性能和能耗。我們?cè)?Xilinx ZCU102 平臺(tái)上達(dá)到了卷積層平均處理速度 1006.4 GOP/s,整體 AlexNet 處理速度 854.6 GOP/s,卷積層平均處理速度 3044.7 GOP/s,整體 VGG16 的處理速度 2940.7 GOP/s。

引言

深度卷積神經(jīng)網(wǎng)絡(luò)(CNN)在多個(gè)計(jì)算機(jī)視覺(jué)任務(wù)上取得了優(yōu)秀的性能,包括圖像分類、目標(biāo)檢測(cè)和語(yǔ)義分割 [1, 2]。CNN 的高準(zhǔn)確率是以極大的計(jì)算復(fù)雜度為代價(jià)的,因?yàn)樗枰獙?duì)特征圖中的所有區(qū)域進(jìn)行綜合評(píng)估 [3, 4]。為了解決如此巨大的計(jì)算壓力,研究者使用 GPU、FPGA 和 ASIC 等硬件加速器來(lái)加速 CNN [5–17]。其中,F(xiàn)PGA 因其高性能、低能耗和可重配置性成為有效解決方案。更重要的是,使用 C 或 C++的高級(jí)綜合(High Level Synthesis,HLS)大幅降低了 FPGA 的編程障礙,并提高了生產(chǎn)效率 [18–20]。

CNN 通常包含多個(gè)層,每一層的輸出特征圖是下一層的輸入特征圖。之前的研究發(fā)現(xiàn)當(dāng)前最優(yōu) CNN 的計(jì)算主要由卷積層主導(dǎo) [6, 7]。使用傳統(tǒng)的卷積算法,則輸出特征圖中的每個(gè)元素要經(jīng)多步乘積累加運(yùn)算進(jìn)行單獨(dú)計(jì)算。盡管之前使用傳統(tǒng)卷積算法的 FPGA 解決方案取得初步成功 [5–9, 11],但是如果算法更加高效,該解決方案的效率可能會(huì)更高。本文展示了使用 Winograd 算法的卷積算法 [21] 如何大幅降低算法復(fù)雜度,改善 FPGA 上的 CNN 性能。使用 Winograd 算法,利用元素之間的結(jié)構(gòu)相似性生成輸出特征圖中的一列元素。這減少了乘法運(yùn)算的數(shù)量,從而降低算法復(fù)雜度。研究證明快速的 Winograd 算法適合為具備小型濾波器的 CNN 推導(dǎo)高效算法 [16]。

更重要的是,CNN 的當(dāng)前趨勢(shì)是帶有小型濾波器的深度拓?fù)洹@纾珹lexnet 的所有卷積層(除了第一層)都使用 3 × 3 和 5 × 5 濾波器 [3];VGG16 僅使用 3 × 3 濾波器 [22]。這為使用 Winograd 算法高效實(shí)現(xiàn) CNN 創(chuàng)造了機(jī)會(huì)。但是,盡管在 FPGA 上使用 Winograd 算法很有吸引力,但仍然存在一些問(wèn)題。首先,設(shè)計(jì)不僅要最小化內(nèi)存帶寬要求,而且要匹配計(jì)算引擎與內(nèi)存吞吐量。其次,在 FPGA 上映射 Winograd 算法時(shí)存在很大的設(shè)計(jì)空間。很難推斷哪些設(shè)計(jì)會(huì)改善性能,抑或損害性能。

本文設(shè)計(jì)了一種行緩沖結(jié)構(gòu)為 Winograd 算法緩存特征圖。這允許不同的 tile 在卷積運(yùn)算進(jìn)行時(shí)重用數(shù)據(jù)。Winograd 算法的計(jì)算涉及通用矩陣乘法(GEMM)和元素級(jí)乘法(EWMM)的混合矩陣變換。然后,我們?cè)O(shè)計(jì)了一種高效的 Winograd PE,并通過(guò)并行化啟動(dòng)多個(gè) PE。最后,我們開發(fā)分析模型用于評(píng)估資源使用情況,并預(yù)測(cè)性能。我們使用這些模型探索設(shè)計(jì)空間,確定最優(yōu)的設(shè)計(jì)參數(shù)。

本文的貢獻(xiàn)如下:

提出一種架構(gòu),可在 FPGA 上使用 Winograd 算法高效實(shí)現(xiàn) CNN。該架構(gòu)把行緩沖結(jié)構(gòu)、通用和元素級(jí)矩陣乘法用于 Winograd PE 和 PE 并行化。

開發(fā)出分析性的資源和性能模型,并使用該模型探索設(shè)計(jì)空間,確定最優(yōu)參數(shù)

使用當(dāng)前最優(yōu)的 CNN(如 AlexNet 和 VGG16)對(duì)該技術(shù)進(jìn)行嚴(yán)格驗(yàn)證。

商湯聯(lián)合提出基于FPGA的Winograd算法:改善FPGA上的CNN性能 降低算法復(fù)雜度

圖 1:傳統(tǒng)卷積算法和 Winograd 卷積算法的對(duì)比。我們假設(shè) Winograd 算法的步幅 S 為 1。

架構(gòu)設(shè)計(jì)

圖 2:架構(gòu)圖示

圖 2 表示在 FPGA 上基于 Winograd 算法的卷積層架構(gòu)。研究者在相鄰 tile 的特征圖中確定數(shù)據(jù)重用機(jī)會(huì)。最后,自然而然地實(shí)現(xiàn)了行緩沖。輸入特征圖 (M) 有多個(gè)通道,如圖 1 所示。行緩沖的每一行都存儲(chǔ)所有通道中同樣的一行。Winograd PE 從行緩沖中獲取數(shù)據(jù)。具體來(lái)說(shuō),給出一個(gè) n×n 輸入 tile,Winograd PE 將生成一個(gè) m × m 輸出 tile。研究者通過(guò)并行化多個(gè)通道的處理來(lái)啟動(dòng) PE 陣列。最后,使用雙緩沖(double buffer)重疊數(shù)據(jù)遷移和計(jì)算。所有輸入數(shù)據(jù)(如輸入特征圖、濾波器)最初都存儲(chǔ)在外部存儲(chǔ)器中。輸入和輸出特征圖通過(guò) FIFO 被遷移至 FPGA。但是,濾波器的大小隨著網(wǎng)絡(luò)深度增加而顯著擴(kuò)大。將所有濾波器加載到片上存儲(chǔ)器(on-chip memory)中是不切實(shí)際的。在本論文的設(shè)計(jì)中,研究者將輸入和輸出通道分成多組。每個(gè)組僅包含一部分濾波器。研究者在需要時(shí)按組加載濾波器。為方便陳述,下文中假設(shè)只有一組。

圖 3:Winograd PE 設(shè)計(jì)圖示

自動(dòng)工具流程

研究者設(shè)計(jì)了一個(gè)自動(dòng)工具流程將 CNN 自動(dòng)映射至 FPGA,如圖 5 所示。該流程包括設(shè)計(jì)空間探索引擎(DSEE)。研究者使用 Caffe prototxt 來(lái)描述 CNN 的結(jié)構(gòu) [24]。FPGA 配置參數(shù)包括內(nèi)存帶寬、DSP 數(shù)量、邏輯單元和片上內(nèi)存容量。DSEE 的輸出是最優(yōu)解 {n, Tm, Tn}。在步驟 2 中,基于最優(yōu)解,研究者開發(fā)了代碼生成引擎(CGE),可自動(dòng)生成 Winograd 卷積函數(shù)。該函數(shù)描述整個(gè)加速器結(jié)構(gòu),包括行緩沖、緩沖管理和 Winograd PE。生成的實(shí)現(xiàn)是 HLS 兼容的 C 代碼。編譯指令如內(nèi)存分區(qū)因素、循環(huán)展開因素 Tn Tm 以及 FIFO 接口被插入函數(shù)中。步驟 3 中,研究者使用 Xilinx HLS 工具將代碼合成為寄存器傳輸級(jí)別。最后,研究者使用 Xilinx SDSoC(軟件定義片上系統(tǒng))工具鏈來(lái)生成比特流。

圖 4:自動(dòng)工具流程

實(shí)驗(yàn)評(píng)估

表 1:設(shè)計(jì)參數(shù)

表 2:Alexnet 的性能對(duì)比

表 3:VGG 的性能對(duì)比

表 4:GPU 平臺(tái)對(duì)比

聲明:本文內(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)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1630

    文章

    21759

    瀏覽量

    604285
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4622

    瀏覽量

    93055
  • cnn
    cnn
    +關(guān)注

    關(guān)注

    3

    文章

    353

    瀏覽量

    22250
  • 商湯科技
    +關(guān)注

    關(guān)注

    8

    文章

    513

    瀏覽量

    36108

原文標(biāo)題:商湯聯(lián)合提出基于FPGA的快速Winograd算法:實(shí)現(xiàn)FPGA之上最優(yōu)的CNN表現(xiàn)與能耗

文章出處:【微信號(hào):SenseTime2017,微信公眾號(hào):商湯科技SenseTime】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于紋理復(fù)雜度的快速幀內(nèi)預(yù)測(cè)算法

    降低幀內(nèi)預(yù)測(cè)的運(yùn)算復(fù)雜度,根據(jù)不同的模式在宏塊中出現(xiàn)概率的大小不同,在幀內(nèi)4×4的亮度預(yù)測(cè)模式中,選取出現(xiàn)概率最大的5種預(yù)測(cè)模式,作為優(yōu)先選擇的預(yù)測(cè)模式。基于像素塊的紋理特性,選擇不具有
    發(fā)表于 05-06 09:01

    如何降低LMS算法的計(jì)算復(fù)雜度,加快程序在DSP運(yùn)行的速度,實(shí)現(xiàn)DSP?

    基于線性預(yù)測(cè)的FIR自適應(yīng)語(yǔ)音濾波器的系統(tǒng)結(jié)構(gòu)由那幾部分組成?如何降低LMS算法的計(jì)算復(fù)雜度,加快程序在DSP運(yùn)行的速度,實(shí)現(xiàn)DSP?
    發(fā)表于 04-12 06:27

    求一種基于802.16d的低復(fù)雜度的幀同步和定時(shí)同步聯(lián)合算法

    本文參考IEEE 802.16d物理層幀結(jié)構(gòu),提出了一種低復(fù)雜度的幀同步和定時(shí)同步聯(lián)合算法,該算法可在FPGA
    發(fā)表于 05-06 06:23

    各種排序算法的時(shí)間空間復(fù)雜度、穩(wěn)定性

    各種排序算法的時(shí)間空間復(fù)雜度、穩(wěn)定性一、排序算法分類:二、排序算法比較:注:1、歸并排序可以通過(guò)手搖算法將空間
    發(fā)表于 12-21 07:48

    LDPC碼低復(fù)雜度譯碼算法研究

    在描述置信傳播(BP)譯碼算法基礎(chǔ), 研究和分析了兩種降低復(fù)雜度的譯碼算法。Min.Sum 算法
    發(fā)表于 03-31 15:22 ?7次下載
    LDPC碼低<b class='flag-5'>復(fù)雜度</b>譯碼<b class='flag-5'>算法</b>研究

    圖像復(fù)雜度對(duì)信息隱藏性能影響分析

    算法進(jìn)行實(shí)驗(yàn),研究圖像的復(fù)雜度差異對(duì)信息隱藏性能的影響。實(shí)驗(yàn)結(jié)果表明了所提復(fù)雜度評(píng)價(jià)方法的有效性以及復(fù)雜度分類的合理性,依據(jù)圖像
    發(fā)表于 11-14 09:57 ?5次下載

    降低FBMC-OQAM峰均值比的低復(fù)雜度PTS算法

    部分傳輸序列( PTS)方法的基礎(chǔ)根據(jù)系統(tǒng)特性進(jìn)行改進(jìn),得到迭代PTS(IPTS)算法,較傳統(tǒng)PTS算法計(jì)算復(fù)雜度有明顯降低;其次,將IP
    發(fā)表于 11-28 17:21 ?0次下載
    <b class='flag-5'>降低</b>FBMC-OQAM峰均值比的低<b class='flag-5'>復(fù)雜度</b>PTS<b class='flag-5'>算法</b>

    基于移動(dòng)音頻帶寬擴(kuò)展算法計(jì)算復(fù)雜度優(yōu)化

    移動(dòng)通信設(shè)備由于計(jì)算資源有限,對(duì)計(jì)算復(fù)雜度較為敏感。我國(guó)自主研發(fā)提出的移動(dòng)音頻編解碼算法標(biāo)準(zhǔn)AVS PlO中的帶寬擴(kuò)展算法有利于提高移動(dòng)音頻編解碼質(zhì)量,但其計(jì)算
    發(fā)表于 12-25 11:32 ?1次下載
    基于移動(dòng)音頻帶寬擴(kuò)展<b class='flag-5'>算法</b>計(jì)算<b class='flag-5'>復(fù)雜度</b>優(yōu)化

    基于I幀復(fù)雜度的初始量化參數(shù)(QP)選擇算法

    針對(duì)不同的視頻內(nèi)容造成編碼前幾幀質(zhì)量低下的問(wèn)題,提出一種基于I幀復(fù)雜度的初始量化參數(shù)( QP)選擇算法。在編碼前利用解碼碼流中得到的I幀宏塊模式信息,運(yùn)用宏塊中的3種不同幀內(nèi)預(yù)測(cè)模式判斷I幀的
    發(fā)表于 02-07 14:06 ?0次下載

    虛擬MIMO中低復(fù)雜度功率分配算法

    一種基于線性注水原理的低復(fù)雜度功率分配算法。該算法通過(guò)快速排除信道條件較差的協(xié)作用戶,并利用各協(xié)作用戶功率值之間的線性遞推關(guān)系式,將最優(yōu)功率分配算法中的迭代運(yùn)算轉(zhuǎn)化為線性運(yùn)算,在實(shí)現(xiàn)功
    發(fā)表于 03-09 15:22 ?1次下載
    虛擬MIMO中低<b class='flag-5'>復(fù)雜度</b>功率分配<b class='flag-5'>算法</b>

    如何求遞歸算法的時(shí)間復(fù)雜度

    相信很多同學(xué)對(duì)遞歸算法的時(shí)間復(fù)雜度都很模糊,那么這篇Carl來(lái)給大家通透的講一講。
    的頭像 發(fā)表于 07-13 11:33 ?1624次閱讀

    算法之空間復(fù)雜度

    算法之空間復(fù)雜度:衡量一個(gè)算法運(yùn)行需要開辟的額外空間
    的頭像 發(fā)表于 08-31 10:29 ?1627次閱讀

    常見(jiàn)機(jī)器學(xué)習(xí)算法的計(jì)算復(fù)雜度

    時(shí)間復(fù)雜度不是測(cè)量一個(gè)算法或一段代碼在某個(gè)機(jī)器或者條件下運(yùn)行所花費(fèi)的時(shí)間。時(shí)間復(fù)雜度一般指時(shí)間復(fù)雜性,時(shí)間復(fù)雜度是一個(gè)函數(shù),它定性描述該
    發(fā)表于 10-02 12:45 ?820次閱讀

    算法時(shí)空復(fù)雜度分析實(shí)用指南(

    本文會(huì)篇幅較長(zhǎng),會(huì)涵蓋如下幾點(diǎn): 1、Big O 表示法的幾個(gè)基本特點(diǎn)。 2、非遞歸算法中的時(shí)間復(fù)雜度分析。 3、數(shù)據(jù)結(jié)構(gòu) API 的效率衡量方法(攤還分析)。 4、遞歸算法的時(shí)間/空間
    的頭像 發(fā)表于 04-19 10:34 ?859次閱讀
    <b class='flag-5'>算法</b>時(shí)空<b class='flag-5'>復(fù)雜度</b>分析實(shí)用指南(<b class='flag-5'>上</b>)

    算法時(shí)空復(fù)雜度分析實(shí)用指南(下)

    Big O 表示法的幾個(gè)基本特點(diǎn)。 2、非遞歸算法中的時(shí)間復(fù)雜度分析。 3、數(shù)據(jù)結(jié)構(gòu) API 的效率衡量方法(攤還分析)。 4、遞歸算法的時(shí)間/空間復(fù)雜度的分析方法,
    的頭像 發(fā)表于 04-19 10:35 ?710次閱讀
    <b class='flag-5'>算法</b>時(shí)空<b class='flag-5'>復(fù)雜度</b>分析實(shí)用指南(下)
    主站蜘蛛池模板: 3D漫画H精品啪啪无码| 久久99re2热在线播放7| 高清欧美性猛交xxxx黑人猛交| 大学生第一次破苞疼哭了| 国产精品无码视频一区二区| 九色PORNY蝌蚪视频首页| 免费国产足恋网站| 色人阁影视| 一本道久在线综合色姐| 边吃胸边膜下床震免费版视频| 国产午夜精品一区二区三区| 恋老视频 国产国佬| 色www.亚洲免费视频| 一边亲着一面膜下奶韩剧免费| YELLOW日本动漫免费动漫| 国语自产一区视频| 欧美多毛的大隂道| 亚洲爆乳少妇精品无码专区| 99re精品视频在线播放视频| 国产美女又黄又爽又色视频网站| 伦理片在线线手机版韩国免费6| 十九岁韩国电影在线观看| 中文字幕一区中文亚洲| 国产成人免费不卡在线观看| 啦啦啦影院视频在线看高清...| 双性精跪趴灌满h室友4p| 18av 在线| 国产精品96久久久久久AV不卡| 美目盼兮amy198281| 亚洲AV无码国产精品色午夜情| 99久久久久国产精品免费| 韩国甜性涩爱| 日韩亚射吧| 最近免费中文MV在线字幕| 国产午夜精品视频在线播放 | 观赏女性排尿| 美女脱了内裤张开腿让男人桶到爽| 亚洲AV无码乱码国产麻豆P| YELLOW在线观看高清视频免费| 精品午夜视频| 小草高清视频免费直播|