0
本文作者: AI科技評(píng)論 | 2018-06-11 16:02 |
雷鋒網(wǎng) AI 科技評(píng)論按:6 月 2 日至 6 日,第 45 屆國(guó)際計(jì)算機(jī)體系結(jié)構(gòu)大會(huì)(International Symposium on Computer Architecture,簡(jiǎn)稱 ISCA)在美國(guó)洛杉磯召開。 ISCA 是計(jì)算機(jī)體系結(jié)構(gòu)領(lǐng)域的頂級(jí)會(huì)議。本次大會(huì)共收到 378 篇投稿,收錄 64 篇論文。
清華大學(xué)微納電子系博士生涂鋒斌在大會(huì)上做了題為《RANA:基于刷新優(yōu)化嵌入式 DRAM 的神經(jīng)網(wǎng)絡(luò)加速框架》(RANA: Towards Efficient Neural Acceleration with Refresh-Optimized Embedded DRAM)的口頭報(bào)告。該研究成果大幅提升了人工智能(AI)計(jì)算芯片的能量效率。
涂鋒斌的研究論文是今年大會(huì)中國(guó)唯一被收錄的署名第一完成單位的論文。清華大學(xué)微納電子系尹首一副教授為本文通訊作者,涂鋒斌為本文第一作者,論文合作者還包括清華大學(xué)微納電子系魏少軍教授、劉雷波教授和吳薇薇同學(xué)。
Fengbin Tu, Weiwei Wu, Shouyi Yin, Leibo Liu, Shaojun Wei,「RANA: Towards Efficient Neural Acceleration with Refresh-Optimized Embedded DRAM,」International Symposium on Computer Architecture (ISCA), Los Angeles, USA, 2018.
清華大學(xué)微納電子系博士生涂鋒斌報(bào)告現(xiàn)場(chǎng)。
論文詳細(xì)信息如下:
深度神經(jīng)網(wǎng)絡(luò)(DNN)已經(jīng)被廣泛應(yīng)用在各種 AI 場(chǎng)景中。為了獲得更高的精度,DNN 的網(wǎng)絡(luò)規(guī)模也日益增大,導(dǎo)致網(wǎng)絡(luò)數(shù)據(jù)存儲(chǔ)量達(dá)幾 MB 甚至幾十 MB。此數(shù)據(jù)量甚至?xí)S著輸入圖片的分辨率和批處理規(guī)模的增大而增大。然而,傳統(tǒng)的基于 SRAM 的 AI 計(jì)算芯片,由于芯片面積的限制,往往只有幾百 KB 的片上存儲(chǔ)容量。因此,在運(yùn)行當(dāng)前的 DNN 時(shí),片外存儲(chǔ)訪問(wèn)難以避免,這會(huì)造成巨大的系統(tǒng)能耗開銷。存儲(chǔ)問(wèn)題是 AI 計(jì)算芯片設(shè)計(jì)中必須解決的一個(gè)重要問(wèn)題。
當(dāng)前幾款主流 AI 計(jì)算芯片(DianNao、Eyeriss、Envision、Thinker)及其存儲(chǔ)、面積參數(shù)。
嵌入式 DRAM(簡(jiǎn)稱 eDRAM),相比于傳統(tǒng) SRAM 有更高的存儲(chǔ)密度,可以替代傳統(tǒng) SRAM 作為片上存儲(chǔ)以減少片外訪問(wèn)。然而,eDRAM 存儲(chǔ)單元中的電容電荷會(huì)隨時(shí)間而逐漸丟失,因此需要周期性的刷新操作來(lái)維持 eDRAM 的數(shù)據(jù)正確性。已經(jīng)有研究證明,刷新能耗是 eDRAM 總能耗的主要來(lái)源,而且會(huì)占據(jù)整體系統(tǒng)能耗的很大比重。因此,使用 eDRAM 帶來(lái)的額外刷新能耗開銷不容忽視。本文發(fā)現(xiàn),如果數(shù)據(jù)在 eDRAM 中的生存時(shí)間(Data Lifetime)小于 eDRAM 的數(shù)據(jù)維持時(shí)間(Retention Time),那么系統(tǒng)將不再需要對(duì)于此數(shù)據(jù)的刷新操作。由此可以得到兩個(gè)優(yōu)化方向:減少數(shù)據(jù)生存時(shí)間,和增大數(shù)據(jù)維持時(shí)間。
嵌入式 DRAM(eDRAM)結(jié)構(gòu)及本文核心觀點(diǎn)。
本文提出一種基于 eDRAM 存儲(chǔ)器的新型加速框架:數(shù)據(jù)生存時(shí)間感知的神經(jīng)網(wǎng)絡(luò)加速框架(RANA)。RANA 框架采用 eDRAM 作為片上存儲(chǔ)器,相比于傳統(tǒng) SRAM 具有更高的存儲(chǔ)密度,大幅減少片外訪存。同時(shí),RANA 框架采用三個(gè)層次的技術(shù):數(shù)據(jù)生存時(shí)間感知的訓(xùn)練方法,神經(jīng)網(wǎng)絡(luò)分層的混合計(jì)算模式和刷新優(yōu)化的 eDRAM 控制器,分別從訓(xùn)練、調(diào)度和架構(gòu)三個(gè)層面降低 eDRAM 刷新能耗,進(jìn)而大幅優(yōu)化整體系統(tǒng)能耗。
數(shù)據(jù)生存時(shí)間感知的神經(jīng)網(wǎng)絡(luò)加速框架(RANA)。
2.1 訓(xùn)練層次優(yōu)化:數(shù)據(jù)生存時(shí)間感知的訓(xùn)練方法
通常 eDRAM 的刷新周期會(huì)設(shè)置為最差的存儲(chǔ)單元所對(duì)應(yīng)的數(shù)據(jù)維持時(shí)間,以保證程序執(zhí)行過(guò)程中所有存儲(chǔ)單元的數(shù)據(jù)都不會(huì)出錯(cuò)。而在一個(gè)實(shí)際 eDRAM 存儲(chǔ)器中,不同存儲(chǔ)單元的數(shù)據(jù)維持時(shí)間是不同的。下圖是一條典型的 eDRAM 數(shù)據(jù)維持時(shí)間分布曲線。橫軸是數(shù)據(jù)維持時(shí)間,縱軸是錯(cuò)誤率,即低于給定維持時(shí)間的存儲(chǔ)單元占所有存儲(chǔ)單元的比例。對(duì)于一個(gè) 32KB 的 eDRAM 而言,數(shù)據(jù)維持時(shí)間最短的存儲(chǔ)單元通常出現(xiàn)在 45 微秒處,對(duì)應(yīng)的錯(cuò)誤率大約為 10^(-6) 量級(jí)。本文發(fā)現(xiàn),適當(dāng)增加數(shù)據(jù)維持時(shí)間,并不會(huì)顯著地提升錯(cuò)誤率。
典型 eDRAM 數(shù)據(jù)維持時(shí)間分布曲線。
本文利用 DNN 的容錯(cuò)能力來(lái)重新訓(xùn)練網(wǎng)絡(luò)使其能承受更高的錯(cuò)誤率,并獲得更長(zhǎng)的「可容忍」的數(shù)據(jù)維持時(shí)間。如下圖所示,本方法在訓(xùn)練的正向過(guò)程中對(duì)輸入和權(quán)重?cái)?shù)據(jù)加入一個(gè)掩膜(Layer Mask)以引入誤差。這個(gè)掩膜會(huì)以一定的錯(cuò)誤率對(duì)每個(gè)比特注入誤差。經(jīng)過(guò)反復(fù)的重訓(xùn)練,如果最終的精度損失可以接受,那么就認(rèn)為網(wǎng)絡(luò)可以承受當(dāng)前的錯(cuò)誤率。本文發(fā)現(xiàn),對(duì)于 AlexNet、VGG、GoogLeNet 和 ResNet 四個(gè)網(wǎng)絡(luò),錯(cuò)誤率提高到 10^(-5) 后網(wǎng)絡(luò)精度仍沒(méi)有損失,此時(shí)對(duì)應(yīng)的「可容忍」的數(shù)據(jù)維持時(shí)間提高到了 734 微秒,因此更有機(jī)會(huì)以更低的頻率刷新甚至消除刷新操作。
訓(xùn)練層次優(yōu)化:數(shù)據(jù)生存時(shí)間感知的訓(xùn)練方法。
2.2 調(diào)度層次優(yōu)化:神經(jīng)網(wǎng)絡(luò)分層的混合計(jì)算模式
下圖所示是三種典型的計(jì)算模式,分別用多層循環(huán)的形式表示。本文發(fā)現(xiàn),數(shù)據(jù)生存時(shí)間和片上存儲(chǔ)需求與循環(huán)順序,特別是最外層循環(huán)極為相關(guān)。在輸入、輸出和權(quán)重這三類數(shù)據(jù)中,輸出數(shù)據(jù)的生存時(shí)間與另兩種數(shù)據(jù)類型完全不同。與輸入、權(quán)重這種靜態(tài)存儲(chǔ)在緩存中的數(shù)據(jù)不同,輸出數(shù)據(jù)會(huì)在累加的過(guò)程中不斷刷新。在每次刷新中,輸出數(shù)據(jù)會(huì)被重新寫入存儲(chǔ)器,對(duì) eDRAM 存儲(chǔ)單元重新充電進(jìn)而恢復(fù)了之前丟失的電荷。這一過(guò)程和周期性刷新操作本質(zhì)上是一樣的。因此,如圖所示,如果把輸出數(shù)據(jù)作為最外層循環(huán)迭代變量,數(shù)據(jù)生存時(shí)間將會(huì)非常短。當(dāng)然,此時(shí)必須在片上存下全部的輸出數(shù)據(jù)以避免片外訪存。
三種典型的計(jì)算模式及其生存時(shí)間/緩存需求分析。
本文提出神經(jīng)網(wǎng)絡(luò)分層的混合計(jì)算模式,根據(jù)芯片參數(shù)及 DNN 網(wǎng)絡(luò)參數(shù),對(duì)網(wǎng)絡(luò)的每一層分配一個(gè)最優(yōu)的計(jì)算模式。計(jì)算模式的探索過(guò)程被抽象為一個(gè)目標(biāo)為系統(tǒng)能耗最小化的優(yōu)化問(wèn)題。具體調(diào)度方法如下圖所示,調(diào)度結(jié)果會(huì)被編譯成分層的配置信息(包括「可容忍」的數(shù)據(jù)維持時(shí)間、每層的計(jì)算模式及刷新標(biāo)志),以用于執(zhí)行過(guò)程的硬件配置。
調(diào)度層次優(yōu)化:神經(jīng)網(wǎng)絡(luò)分層的混合計(jì)算模式。
2.3 架構(gòu)層次優(yōu)化:刷新優(yōu)化的 eDRAM 控制器
在傳統(tǒng)的 eDRAM 控制器中,所有的 eDRAM 分區(qū)都以最保守的刷新周期進(jìn)行刷新。本工作對(duì) eDRAM 控制器稍加改造,加入一個(gè)可編程的時(shí)鐘分頻器、各 eDRAM 分區(qū)獨(dú)立的刷新觸發(fā)器和刷新標(biāo)志位??刂破鞯呐渲眯畔?lái)自于前兩個(gè)技術(shù)的編譯結(jié)果,具體將決定每個(gè)分區(qū)分別存儲(chǔ)什么數(shù)據(jù)類型、是否需要刷新以及刷新周期。
架構(gòu)層次優(yōu)化:刷新優(yōu)化的 eDRAM 控制器。
下圖為用于驗(yàn)證 RANA 框架的實(shí)驗(yàn)平臺(tái)具體配置:本工作實(shí)現(xiàn)了一款 AI 計(jì)算芯片來(lái)進(jìn)行 RTL 級(jí)別性能功耗分析,以獲得精確的性能參數(shù)和訪存行為記錄。
驗(yàn)證平臺(tái)配置參數(shù)及芯片版圖。
實(shí)驗(yàn)結(jié)果顯示,RANA 框架可以消除 99.7% 的 eDRAM 刷新能耗開銷,而性能和精度損失可以忽略不計(jì)。相比于傳統(tǒng)的采用 SRAM 的 AI 計(jì)算芯片,使用 RANA 框架的基于 eDRAM 的計(jì)算芯片在面積開銷相同的情況下可以減少 41.7% 的片外訪存和 66.2% 的系統(tǒng)能耗,使 AI 計(jì)算系統(tǒng)的能量效率獲得大幅提高。
RANA 框架系統(tǒng)級(jí)能耗分析。
清華大學(xué)微納電子系 Thinker 團(tuán)隊(duì)近年來(lái)基于可重構(gòu)計(jì)算架構(gòu)設(shè)計(jì)了 Thinker 系列 AI 計(jì)算芯片(Thinker I,Thinker II,Thinker S),受到學(xué)術(shù)界和工業(yè)界的廣泛關(guān)注,在 2017 年曾獲得 ISLPED'17 低功耗設(shè)計(jì)競(jìng)賽冠軍。Thinker 團(tuán)隊(duì)此次研究成果,從存儲(chǔ)優(yōu)化和軟硬件協(xié)同設(shè)計(jì)的角度大幅提升了芯片能量效率, 給 AI 計(jì)算芯片的架構(gòu)演進(jìn)提供了新思路。
相關(guān)閱讀:
論文第一作者涂鋒斌作為 Thinker 芯片的核心架構(gòu)設(shè)計(jì)者,曾作為雷鋒網(wǎng)分享嘉賓作客「硬創(chuàng)公開課」,介紹了他在神經(jīng)網(wǎng)絡(luò)硬件架構(gòu)的設(shè)計(jì)經(jīng)驗(yàn)。AI 科技評(píng)論圍繞分享內(nèi)容整理成文:
在 6 月 29 日至 7 月 1 日舉行的 CCF-GAIR 2018 上,清華大學(xué)微電子所所長(zhǎng)魏少軍教授將作為 AI 芯片專場(chǎng)的學(xué)術(shù)嘉賓蒞臨現(xiàn)場(chǎng)做大會(huì)報(bào)告。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。