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

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

2019-01-24

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


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


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


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


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


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

微信圖片_20190124200840.jpg


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


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


微信圖片_20190124200900.jpg


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


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

微信圖片_20190124200919.jpg


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

微信圖片_20190124200940.jpg

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


機遇和挑戰(zhàn)


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


基于 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)絡加速器的高能效優(yōu)勢。


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


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


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


基于 FPGA 的加速器的劣勢


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


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


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

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


期望


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


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

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

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

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

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

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


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