《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 解決方案 > 基于FPGA的深度學(xué)習加速器綜述:挑戰(zhàn)與機遇

基于FPGA的深度學(xué)習加速器綜述:挑戰(zhàn)與機遇

2019-01-24

FPGA神經(jīng)網(wǎng)絡(luò)加速器如今越來越受到 AI 社區(qū)的關(guān)注,,本文對基于 FPGA 的深度學(xué)習加速器存在的機遇與挑戰(zhàn)進行了概述,。


近年來,神經(jīng)網(wǎng)絡(luò)在各種領(lǐng)域相比于傳統(tǒng)算法有了極大的進步,。在圖像,、視頻,、語音處理領(lǐng)域,各種各樣的網(wǎng)絡(luò)模型被提出,,例如卷積神經(jīng)網(wǎng)絡(luò),、循環(huán)神經(jīng)網(wǎng)絡(luò)。訓(xùn)練較好的 CNN 模型把 ImageNet 數(shù)據(jù)集上 5 類頂尖圖像的分類準確率從 73.8% 提升到了 84.7%,,也靠其卓越的特征提取能力進一步提高了目標檢測準確率,。RNN 在語音識別領(lǐng)域取得了最新的詞錯率記錄??偠灾?,由于高度適應(yīng)大量模式識別問題,神經(jīng)網(wǎng)絡(luò)已經(jīng)成為許多人工智能應(yīng)用的有力備選項,。


然而,,神經(jīng)網(wǎng)絡(luò)模型仍舊存在計算量大、存儲復(fù)雜問題,。同時,,神經(jīng)網(wǎng)絡(luò)的研究目前還主要聚焦在網(wǎng)絡(luò)模型規(guī)模的提升上。例如,,做 224x224 圖像分類的最新 CNN 模型需要 390 億浮點運算(FLOP)以及超過 500MB 的模型參數(shù),。由于計算復(fù)雜度直接與輸入圖像的大小成正比,處理高分辨率圖像所需的計算量可能超過 1000 億,。


因此,,為神經(jīng)網(wǎng)絡(luò)應(yīng)用選擇適度的計算平臺特別重要。一般來說,,CPU 每秒能夠完成 10-100 的 GFLOP 運算,,但能效通常低于 1 GOP/J,因此難以滿足云應(yīng)用的高性能需求以及移動 app 的低能耗需求,。相比之下,,GPU 提供的巔峰性能可達到 10TOP/S,因此它是高性能神經(jīng)網(wǎng)絡(luò)應(yīng)用的絕佳選擇,。此外,,Caffe 和 TensorFlow 這樣的編程框架也能在 GPU 平臺上提供易用的接口,這使得 GPU 成為神經(jīng)網(wǎng)絡(luò)加速的首選,。


除了 CPU 和 GPU,,F(xiàn)PGA 逐漸成為高能效神經(jīng)網(wǎng)絡(luò)處理的備選平臺。根據(jù)神經(jīng)網(wǎng)絡(luò)的計算過程,,結(jié)合為具體模型設(shè)計的硬件,,F(xiàn)PGA 可以實現(xiàn)高度并行并簡化邏輯。一些研究顯示,,神經(jīng)網(wǎng)絡(luò)模型能以硬件友好的方式進行簡化,,不影響模型的準確率。因此,,F(xiàn)PGA 能夠取得比 CPU 和 GPU 更高的能效,。


回顧 20 世紀 90 年代,那時 FPGA 剛出現(xiàn),,但不是為了神經(jīng)網(wǎng)絡(luò),,而是為了電子硬件原型的快速開發(fā)而設(shè)計的。由于神經(jīng)網(wǎng)絡(luò)的出現(xiàn),,人們開始探索,、改進其應(yīng)用,但無法確定其發(fā)展方向,。盡管在 1994 年,,DS Reay 首次使用 FPGA 實現(xiàn)神經(jīng)網(wǎng)絡(luò)加速,但由于神經(jīng)網(wǎng)絡(luò)自身發(fā)展不夠成熟,,這一技術(shù)并未受到重視,。直到 2012 年 ILSVRC 挑戰(zhàn)賽 AlexNet 的出現(xiàn),神經(jīng)網(wǎng)絡(luò)的發(fā)展?jié)u為明晰,,研究社區(qū)才開始往更深,、更復(fù)雜的網(wǎng)絡(luò)研究發(fā)展。后續(xù),,出現(xiàn)了 VGGNet,、GoogleNet、ResNet 這樣的模型,,神經(jīng)網(wǎng)絡(luò)越來越復(fù)雜的趨勢更為明確,。當時,研究者開始注意到基于 FPGA 的神經(jīng)網(wǎng)絡(luò)加速器,,如下圖 1 所示,。直到去年,IEEE eXplore 上發(fā)表的基于 FPGA 的神經(jīng)網(wǎng)絡(luò)加速器數(shù)量已經(jīng)達到了 69 個,,且還在一直增加,。這足以說明該方向的研究趨勢。

微信圖片_20190124200840.jpg


圖 1:基于 FPGA 的神經(jīng)網(wǎng)絡(luò)加速器開發(fā)歷史


論文:A Survey of FPGA Based Deep Learning Accelerators: Challenges and Opportunities


微信圖片_20190124200900.jpg


論文地址:https://arxiv.org/abs/1901.04988


摘要:隨著深度學(xué)習的快速發(fā)展,,神經(jīng)網(wǎng)絡(luò)和深度學(xué)習算法已經(jīng)廣泛應(yīng)用于各個領(lǐng)域,,如圖片,、視頻和語音處理等。但是,,神經(jīng)網(wǎng)絡(luò)模型也變得越來越大,,這體現(xiàn)在模型參數(shù)的計算上。雖然為了提高計算性能,,研究者在 GPU 平臺上已經(jīng)做了大量努力,,但專用硬件解決方案仍是必不可少的,而且與純軟件解決方案相比正在形成優(yōu)勢,。在這篇論文中,,作者系統(tǒng)地探究了基于 FPGA 的神經(jīng)網(wǎng)絡(luò)加速器。具體來講,,他們分別回顧了針對特定問題,、特定算法、算法特征,、通用模板的加速器,,還比較了不同設(shè)備和網(wǎng)絡(luò)模型中基于 FPGA 加速器的設(shè)計和實現(xiàn),并將其與 CPU 和 GPU 的版本進行了比較,。最后,,作者討論了 FPGA 平臺上加速器的優(yōu)勢和劣勢,并進一步探索了未來研究存在的機會,。

微信圖片_20190124200919.jpg


圖 2: 不同數(shù)據(jù)量化方法的比較

微信圖片_20190124200940.jpg

表 1: 不同平臺上不同模型的性能比較


機遇和挑戰(zhàn)


早在 20 世紀 60 年代,,Gerald Estrin 就提出了可重構(gòu)計算的概念。但是直到 1985 年,,第一個 FPGA 芯片才被 Xilinx 引入。盡管 FPGA 平臺的并行性和功耗非常出色,,但由于其重構(gòu)成本高,編程復(fù)雜,,該平臺沒有引起人們的重視,。隨著深度學(xué)習的持續(xù)發(fā)展,,其應(yīng)用的高并行性使得越來越多的研究人員投入到基于 FPGA 的深度學(xué)習加速器研究中來,。這也是時代的潮流。


基于 FPGA 加速器的優(yōu)勢


1)高性能,,低能耗:高能效的優(yōu)點不容小覷,之前的許多研究已經(jīng)證明了這一點。從表 1 中可以看出,,GOP/j 在 FPGA 平臺上的表現(xiàn)可以達到在 CPU 平臺上的幾十倍,它在 FPGA 平臺上表現(xiàn)的最低水平與其在 GPU 平臺上的表現(xiàn)處于一個層級,。這足以說明基于 FPGA 的神經(jīng)網(wǎng)絡(luò)加速器的高能效優(yōu)勢,。


2)高并行性:高并行性是選擇 FPGA 平臺加速深度學(xué)習的主要特性。由于 FPGA 的可編輯邏輯硬件單元,,可以使用并行化算法輕松優(yōu)化硬件,,已達到高并行性。


3)靈活性:由于 FPGA 具有可重構(gòu)性,,它可以適用于復(fù)雜的工程環(huán)境,。例如,在硬件設(shè)計和應(yīng)用設(shè)計完成之后,,通過實驗發(fā)現(xiàn)性能未能達到理想狀態(tài),。可重構(gòu)性使得基于 FPGA 的硬件加速器能夠很好地處理頻繁的設(shè)計變更并滿足用戶不斷變化的需求,。因此,,與 ASIC 平臺相比,這種靈活性也是 FPGA 平臺的亮點,。


4)安全性:當今的人工智能時代需要越來越多的數(shù)據(jù)用于訓(xùn)練,。因此,,數(shù)據(jù)的安全性越來越重要,。作為數(shù)據(jù)的載體,,計算機的安全性也變得更加顯著,。目前,,一提到計算機安全性,,想到的都是各種殺毒軟件,。但是這些軟件只能被動地防御,,不能消除安全風險,。相比之下,,從硬件架構(gòu)層級著手能夠更好地提高安全性,。


基于 FPGA 的加速器的劣勢


1)可重構(gòu)成本:FPGA 平臺的可重構(gòu)性是一把雙刃劍,。盡管它在計算提速方面提供了許多便利,,但是不同設(shè)計的重構(gòu)所消耗的時間卻不容忽視,通常需要花幾十分鐘到幾個小時,。此外,,重構(gòu)過程分為兩種類型:靜態(tài)重構(gòu)和動態(tài)重構(gòu),。靜態(tài)重構(gòu),又叫編譯時重構(gòu),是指在任務(wù)運行之前配置硬件處理一個或多個系統(tǒng)功能的能力,,并且在任務(wù)完成前將其鎖定,。另一個也稱為運行時配置。動態(tài)重構(gòu)是在上下文配置模式下進行的,。在執(zhí)行任務(wù)期間,,硬件模塊應(yīng)該按照需要進行重構(gòu)。但是它非常容易延遲,,從而增加運行時間,。


2)編程困難:盡管可重構(gòu)計算架構(gòu)的概念被提出很久了,也有很多成熟的工作,,但可重構(gòu)計算之前并未流行起來,。主要有兩個原因:


從可重構(gòu)計算的出現(xiàn)到 21 世紀初的 40 年時間是摩爾定律的黃金時期,其間技術(shù)每一年半更迭一次,。所以這種架構(gòu)更新帶來的性能提升不像技術(shù)進步那么直接,、有力,;

對成熟的系統(tǒng)而言,在 CPU 上傳統(tǒng)的編程采用高階抽象編程語言,。但是,,可重構(gòu)計算需要硬件編程,而通常使用的硬件編程語言(Verilog,、VHDL)需要程序員花費大量時間才能掌握,。


期望


盡管基于 FPGA 的神經(jīng)網(wǎng)絡(luò)加速器仍舊有這樣、那樣的問題,,但其未來發(fā)展依然可期,。以下幾個方向仍然有待研究:


優(yōu)化計算流程中的其他部分,現(xiàn)在,,主流研究聚焦在矩陣運算回路,,激活函數(shù)的計算少有人涉及。

訪問優(yōu)化,。需要進一步研究進行數(shù)據(jù)訪問的其他優(yōu)化方法,。

數(shù)據(jù)優(yōu)化。使用能夠自然提升平臺性能的更低位數(shù)據(jù),但大部分的低位數(shù)據(jù)使得權(quán)重和神經(jīng)元的位寬一樣,。圖 2 還可以改進與非線性映射的位寬差,。所以,應(yīng)該探索出更好的平衡態(tài),。

頻率優(yōu)化,。當前,大部分 FPGA 平臺的運算頻率在 100-300MHz,,但 FPGA 平臺理論上的運算頻率可以更高,。這一頻率主要受限于片上 SRAM 和 DSP 之間的線程。未來研究需要找到是否有方式避免或者解決該問題,。

FPGA 融合,。據(jù)參考論文 37 中提到的表現(xiàn),如果規(guī)劃和分配問題能夠得到良好解決,,多 FPGA 集群可以取得更好的結(jié)果,。此外,當前此方向沒有太多研究,。所以非常值得進一步探索,。

自動配置。為了解決 FPGA 平臺上復(fù)雜的編程問題,,如果做出類似英偉達 CUDA 這樣的用戶友好的自動部署框架,,應(yīng)用范圍肯定會拓寬。


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章,、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者,。如涉及作品內(nèi)容,、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,,以便迅速采取適當措施,,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118,;郵箱:[email protected],。