新聞中心

EEPW首頁 > EDA/PCB > 設(shè)計應(yīng)用 > 基于FPGA的人工神經(jīng)網(wǎng)絡(luò)實現(xiàn)方法的研究

基于FPGA的人工神經(jīng)網(wǎng)絡(luò)實現(xiàn)方法的研究

作者: 時間:2009-11-17 來源:網(wǎng)絡(luò) 收藏

(4)面積節(jié)省及相關(guān)問題
為了最小化神經(jīng)元實現(xiàn)的面積,組成每個神經(jīng)元的各個HDL算法模塊的面積也應(yīng)該最小。乘法器以及基本的傳遞函數(shù)(例如,sigmoid激活函數(shù)tanh)是最占用面積的,這類問題非常依賴于所要求的精度,盡管神經(jīng)網(wǎng)絡(luò)常并不要求很精確的計算,但是不同的應(yīng)用所要求的精度不同。一般來講,浮點運算要比定點運算需要更大的面積,比如浮點運算中的并行加法器本質(zhì)上是定點運算超前加法器加上必要的邏輯塊,減法器、乘法器也類似如此,這在激活函數(shù)實現(xiàn)方面更加突出,文獻(xiàn)[1]中面積優(yōu)化對比顯示,32位浮點運算要比16位定點運算大250倍。另外,對于小型網(wǎng)絡(luò),分布式存儲器很適合權(quán)值存放,但是對于大型網(wǎng)絡(luò),權(quán)值存儲器不應(yīng)該被放置在中,因此當(dāng)ANN得到有效實現(xiàn)的時候,就要認(rèn)真考慮存儲器的存取問題。其次,神經(jīng)網(wǎng)絡(luò)應(yīng)用有一個顯著的缺陷:在神經(jīng)計算方面,不同運算的計算時間和實現(xiàn)面積并不平衡。在許多標(biāo)準(zhǔn)神經(jīng)模式中,計算時間的大部分用在需要乘法器和加法器的矩陣向量運算中,而很多耗費面積的運算如激活函數(shù),又必須被實現(xiàn)(它們占用很少的運算時間),而的面積是嚴(yán)格一定的,因此可將面積的相當(dāng)一部分用來實現(xiàn)這些運算,以至于僅剩的一小部分卻實現(xiàn)幾乎所有的運算時間。
(5)資源和計算速度的平衡(Trade-off)
對于FPGA,科學(xué)的設(shè)計目標(biāo)應(yīng)該是在滿足設(shè)計時序要求(包括對設(shè)計最高頻率的要求)的前提下,占用最少的芯片資源,或者在所規(guī)定的占用資源下,使設(shè)計的時序余量更大,頻率更高。這兩種目標(biāo)充分體現(xiàn)了資源和速度的平衡思想。作為矛盾的兩個組成部分,資源和速度的地位是不一樣的。相比之下,滿足時序、工作頻率的要求更重要一些,當(dāng)兩者沖突時,采用速度優(yōu)先的準(zhǔn)則。
例如,ANN的FPGA實現(xiàn)需要各種字長的乘法器,如果可以提出一種新的運算法則,從而用FPGA實現(xiàn)變字長的乘法器,則可以根據(jù)需要調(diào)整字長,從而提高運算速度的可能性,其中,基于Booth Encoded opti-mized wallence tree架構(gòu)(見圖2)就可以得到快速高效的乘法器,這種方式實現(xiàn)的乘法器比現(xiàn)在所用的基于FPGA的乘法器的處理速度快20%)。

(6)亟待解決的問題
FPGA憑借其如同軟件實現(xiàn)一樣的靈活性,集合了硬件實現(xiàn)高效和并行性的優(yōu)點,好像非常適合神經(jīng)實現(xiàn)的正常需要,但是,F(xiàn)PGA的二維拓?fù)浣Y(jié)構(gòu)不能處理標(biāo)準(zhǔn)神經(jīng)網(wǎng)絡(luò)規(guī)則但復(fù)雜的連線問題,而且FPGA仍然實現(xiàn)很有限的邏輯門數(shù)目,相反,神經(jīng)計算則需要相當(dāng)耗費資源的模塊(激活函數(shù),乘法器)。這樣對于FP-GA,可用的CLBs中部分將被用來增加路徑容量(連線),導(dǎo)致計算資源的丟失。一般的方法只能實現(xiàn)很小的低精度神經(jīng)網(wǎng)絡(luò),連線問題不能依靠幾個具有比特序列算法的可重構(gòu)FPGA以及小面積模塊(隨機比特流或者頻率)解決。

2 基于FPGA的ANN
經(jīng)典有:
(1)可重構(gòu)的RNN結(jié)構(gòu)(Reconfigurable NeuraINetwork)
可重構(gòu)計算是一種增加處理密度(每單元硅片面積的性能)的有效方法,且處理密度遠(yuǎn)大于用于通用計算方法,F(xiàn)PGA作為可重構(gòu)計算的平臺,可以提供如同軟件一樣的設(shè)計靈活性。該方法基于可擴(kuò)展的脈動陣列結(jié)構(gòu)、可重用的IP(Intellectual Properties)核及FPGA器件,即將要實現(xiàn)的神經(jīng)網(wǎng)絡(luò)算法分為幾種基本運算,這些基本運算由可重構(gòu)單元(Reconfigurable Cell,RC)完成,RC間以規(guī)則的方式相互連接,當(dāng)神經(jīng)網(wǎng)絡(luò)變化時,只要增減Rc的數(shù)量或替換不同功能的RC就可重構(gòu)成新的神經(jīng)網(wǎng)絡(luò)硬件;文獻(xiàn)[8]中同時指出,考慮到硬件實現(xiàn)要以最少的硬件資源滿足特定應(yīng)用的性能需求,一般用神經(jīng)元并行作為可重構(gòu)部件的基本模式,即神經(jīng)網(wǎng)絡(luò)的各層計算可復(fù)用相同的陣列結(jié)構(gòu)。
(2)RENCO結(jié)構(gòu)
可重構(gòu)網(wǎng)絡(luò)計算機(Reconfigurable Network Computer,RENCO)是一種用于邏輯設(shè)計原型或可重構(gòu)系統(tǒng)的平臺,所設(shè)計的可重構(gòu)系統(tǒng)對于工作在比特級的算法實現(xiàn)特別有效,比如模式匹配。RENCO的基本架構(gòu)包括處理器、可重構(gòu)部分(多為FPGA)以及存儲器和總線部分,Altera公司提供的最新的RENCO在可重構(gòu)部分包括近100萬邏輯門,足夠?qū)崿F(xiàn)高復(fù)雜度的處理器。具體參見文獻(xiàn)[9]。盡管如此,得到的可重構(gòu)系統(tǒng)并非對所有的硬件實現(xiàn)都是優(yōu)化的方法,比如不適合于浮點運算。



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉