當(dāng)前位置:首頁(yè) > 電源 > 數(shù)字電源
[導(dǎo)讀]近十年來(lái),人工智能又到了一個(gè)快速發(fā)展的階段。深度學(xué)習(xí)在其發(fā)展中起到了中流砥柱的作用,盡管擁有強(qiáng)大的模擬預(yù)測(cè)能力,深度學(xué)習(xí)還面臨著超大計(jì)算量的問(wèn)題。在硬件層面上,

近十年來(lái),人工智能又到了一個(gè)快速發(fā)展的階段。深度學(xué)習(xí)在其發(fā)展中起到了中流砥柱的作用,盡管擁有強(qiáng)大的模擬預(yù)測(cè)能力,深度學(xué)習(xí)還面臨著超大計(jì)算量的問(wèn)題。在硬件層面上,GPU,ASIC,F(xiàn)PGA都是解決龐大計(jì)算量的方案。本文將闡釋深度學(xué)習(xí)和FPGA各自的結(jié)構(gòu)特點(diǎn)以及為什么用FPGA加速深度學(xué)習(xí)是有效的,并且將介紹一種遞歸神經(jīng)網(wǎng)絡(luò)(RNN)在FPGA平臺(tái)上的實(shí)現(xiàn)方案。

揭開(kāi)深度學(xué)習(xí)的面紗

深度學(xué)習(xí)是機(jī)器學(xué)習(xí)的一個(gè)領(lǐng)域,都屬于人工智能的范疇。深度學(xué)習(xí)主要研究的是人工神經(jīng)網(wǎng)絡(luò)的算法、理論、應(yīng)用。自從2006年Hinton等人提出來(lái)之后,深度學(xué)習(xí)高速發(fā)展,在自然語(yǔ)言處理、圖像處理、語(yǔ)音處理等領(lǐng)域都取得了非凡的成就,受到了巨大的關(guān)注。在互聯(lián)網(wǎng)概念被人們普遍關(guān)注的時(shí)代,深度學(xué)習(xí)給人工智能帶來(lái)的影響是巨大的,人們會(huì)為它隱含的巨大潛能以及廣泛的應(yīng)用價(jià)值感到不可思議。

事實(shí)上,人工智能是上世紀(jì)就提出來(lái)的概念。1957年,Rosenblatt提出了感知機(jī)模型(Perception),即兩層的線性網(wǎng)絡(luò);1986年,Rumelhart等人提出了后向傳播算法(Back PropagaTIon),用于三層的神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,使得訓(xùn)練優(yōu)化參數(shù)龐大的神經(jīng)網(wǎng)絡(luò)成為可能;1995年,Vapnik等人發(fā)明了支持向量機(jī)(Support Vector Machines),在分類(lèi)問(wèn)題中展現(xiàn)了其強(qiáng)大的能力。以上都是人工智能歷史上比較有代表性的事件,然而受限于當(dāng)時(shí)計(jì)算能力,AI總是在一段高光之后便要陷入灰暗時(shí)光——稱(chēng)為:“AI寒冬”。

然而,隨著計(jì)算機(jī)硬件能力和存儲(chǔ)能力的提升,加上龐大的數(shù)據(jù)集,現(xiàn)在正是人AI發(fā)展的最好時(shí)機(jī)。自Hinton提出DBN(深度置信網(wǎng)絡(luò))以來(lái),人工智能就在不斷的高速發(fā)展。在圖像處理領(lǐng)域,CNN(卷積神經(jīng)網(wǎng)絡(luò))發(fā)揮了不可替代的作用,在語(yǔ)音識(shí)別領(lǐng)域,RNN(遞歸神經(jīng)網(wǎng)絡(luò))也表現(xiàn)的可圈可點(diǎn)。而科技巨頭也在加緊自己的腳步,谷歌的領(lǐng)軍人物是Hinton,其重頭戲是Google brain,并且在去年還收購(gòu)了利用AI在游戲中擊敗人類(lèi)的DeepMind;Facebook的領(lǐng)軍人物是Yann LeCun,另外還組建了Facebook的AI實(shí)驗(yàn)室,Deepface在人臉識(shí)別的準(zhǔn)確率更達(dá)到了驚人的97.35%;而國(guó)內(nèi)的巨頭當(dāng)屬百度,在挖來(lái)了斯坦福大學(xué)教授Andrew Ng(Coursera的聯(lián)合創(chuàng)始人)并成立了百度大腦項(xiàng)目之后,百度在語(yǔ)音識(shí)別領(lǐng)域的表現(xiàn)一直十分強(qiáng)勢(shì)。

一覽深度學(xué)習(xí)

簡(jiǎn)單來(lái)說(shuō),深度學(xué)習(xí)與傳統(tǒng)的機(jī)器學(xué)習(xí)算法的分類(lèi)是一致的,主要分為監(jiān)督學(xué)習(xí)(supervised learning)和非監(jiān)督學(xué)習(xí)(unsupervised learning)。所謂監(jiān)督學(xué)習(xí),就是輸出是有標(biāo)記的學(xué)習(xí),讓模型通過(guò)訓(xùn)練,迭代收斂到目標(biāo)值;而非監(jiān)督學(xué)習(xí)不需要人為輸入標(biāo)簽,模型通過(guò)學(xué)習(xí)發(fā)現(xiàn)數(shù)據(jù)的結(jié)構(gòu)特征。比較常見(jiàn)的監(jiān)督學(xué)習(xí)方法有邏輯回歸、多層感知機(jī)、卷積神經(jīng)網(wǎng)絡(luò)登;而非監(jiān)督學(xué)習(xí)主要有稀疏編碼器、受限玻爾茲曼機(jī)、深度置信網(wǎng)絡(luò)等。所有的這些都是通過(guò)神經(jīng)網(wǎng)絡(luò)來(lái)實(shí)現(xiàn)的,他們通常來(lái)說(shuō)都是非常復(fù)雜的結(jié)構(gòu),需要學(xué)習(xí)的參數(shù)也非常多。但是神經(jīng)網(wǎng)絡(luò)也可以做簡(jiǎn)單的事情,比如XNOR門(mén),如圖。

 

 

在圖1(a)中,兩個(gè)輸入x_1和x_2都是分別由一個(gè)神經(jīng)元表示,在輸入中還加入了一個(gè)作為偏置(bias)的神經(jīng)元,通過(guò)訓(xùn)練學(xué)習(xí)參數(shù),最終整個(gè)模型的參數(shù)收斂,功能和圖1(b)真值表一模一樣。圖1(c)分類(lèi)結(jié)果。

而通常來(lái)說(shuō),模型都是比較復(fù)雜的。比如ILSVRC2012年圖像識(shí)別大賽中Krizhevsky等人構(gòu)建出來(lái)的 Alex Net。他們一共構(gòu)建了11層的神經(jīng)網(wǎng)絡(luò)(5個(gè)卷積層,3個(gè)全連接層,3個(gè)池化層),一共有65萬(wàn)個(gè)神經(jīng)元,6千萬(wàn)個(gè)參數(shù),最終達(dá)到了15.2%的識(shí)別錯(cuò)誤率,大大領(lǐng)先于第二名的26.2%。

 

 

當(dāng)前深度學(xué)習(xí)得以流行,是得益于大數(shù)據(jù)和計(jì)算性能的提升。但其仍然遭受計(jì)算能力和數(shù)據(jù)量的瓶頸。針對(duì)數(shù)據(jù)量的需求,專(zhuān)家們可以通過(guò)模型的調(diào)整、變更來(lái)緩解,但計(jì)算力的挑戰(zhàn)沒(méi)有捷徑??拼笥嶏w、百度、阿里、360在深度學(xué)習(xí)方面也面臨著計(jì)算力的困擾??拼笥嶏w的深度學(xué)習(xí)平臺(tái)屬于計(jì)算密集型的平臺(tái),集群幾百臺(tái)機(jī)器之間要實(shí)現(xiàn)高速互聯(lián),是類(lèi)似超算的結(jié)構(gòu),但它又不是一個(gè)非常典型的超算??拼笥嶏w最開(kāi)始探索傳統(tǒng)的方式,用大量CPU來(lái)支持大規(guī)模數(shù)據(jù)預(yù)處理,運(yùn)行GMM-HMM等經(jīng)典模型的訓(xùn)練,在千小時(shí)的數(shù)據(jù)量下,效果很不好。而360每天處理的數(shù)據(jù)有上億條,參數(shù)50萬(wàn)以上,如果用CPU,每次模型訓(xùn)練就要花幾天,這對(duì)于崇尚快速迭代的互聯(lián)網(wǎng)公司運(yùn)營(yíng)來(lái)說(shuō)簡(jiǎn)直是不可接受的。

為什么選擇FPGA

FPGA(Field Programmable Gate Array)是在PAL、GAL、CPLD等可編程邏輯器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專(zhuān)用集成電路領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了全定制電路的不足,又克服了原有可編程邏輯器件門(mén)電路數(shù)有限的缺點(diǎn)。FPGA的開(kāi)發(fā)相對(duì)于傳統(tǒng)PC、單片機(jī)的開(kāi)發(fā)有很大不同。FPGA以并行運(yùn)算為主,以硬件描述語(yǔ)言來(lái)實(shí)現(xiàn);相比于PC或單片機(jī)(無(wú)論是馮諾依曼結(jié)構(gòu)還是哈佛結(jié)構(gòu))的順序操作有很大區(qū)別。FPGA開(kāi)發(fā)需要從頂層設(shè)計(jì)、模塊分層、邏輯實(shí)現(xiàn)、軟硬件調(diào)試等多方面著手。FPGA可以通過(guò)燒寫(xiě)位流文件對(duì)其進(jìn)行反復(fù)編程,目前,絕大多數(shù) FPGA 都采用基于 SRAM(StaTIc Random Access Memory 靜態(tài)隨機(jī)存儲(chǔ)器)工藝的查找表結(jié)構(gòu),通過(guò)燒寫(xiě)位流文件改變查找表內(nèi)容實(shí)現(xiàn)配置。

使用CPU。在2006年的時(shí)候,人們還是用串行處理器處理機(jī)器學(xué)習(xí)的問(wèn)題,當(dāng)時(shí)Mutch 和 Lowe開(kāi)發(fā)了一個(gè)工具FHLib(feature hierarchy library)用來(lái)處理hierarchical 模型。對(duì)于CPU來(lái)說(shuō),它所要求的編程量是比較少的并且有可遷移性的好處,但是串行處理的特點(diǎn)變成了它在深度學(xué)習(xí)領(lǐng)域的缺點(diǎn),而這個(gè)缺點(diǎn)是致命的。時(shí)至今日,據(jù)2006年已經(jīng)過(guò)去了十年,過(guò)去的十年集成電路的發(fā)展還是遵循著摩爾定律,CPU的性能得到了極大的提升,然而,這并沒(méi)有讓CPU再次走入深度學(xué)習(xí)研究者的視野。盡管在小數(shù)據(jù)集上CPU能有一定的計(jì)算能力表現(xiàn),多核使得它能夠并行處理,然而這對(duì)深度學(xué)習(xí)來(lái)說(shuō)還是遠(yuǎn)遠(yuǎn)不夠的。

使用GPU。GPU走進(jìn)了研究者的視線,相比于CPU,GPU的核心數(shù)大大提高了,這也讓它有更強(qiáng)大的并行處理能力,它還有更加強(qiáng)大的控制數(shù)據(jù)流和儲(chǔ)存數(shù)據(jù)的能力。Chikkerur進(jìn)行了CPU和GPU在處理目標(biāo)識(shí)別能力上的差別,最終GPU的處理速度是CPU的3-10倍。

使用ASIC。專(zhuān)用集成電路芯片(ASIC)由于其定制化的特點(diǎn),是一種比GPU更高效的方法。但是其定制化也決定了它的可遷移性低,一旦專(zhuān)用于一個(gè)設(shè)計(jì)好的系統(tǒng)中,要遷移到其它的系統(tǒng)是不可能的。并且,其造價(jià)高昂,生產(chǎn)周期長(zhǎng),使得它在目前的研究中是不被考慮的。當(dāng)然,其優(yōu)越的性能還是能在一些領(lǐng)域勝任。用的就是ASIC 的方案,在640×480pixel的圖像中識(shí)別速率能達(dá)到 60幀/秒。

使用FPGA。FPGA在GPU和ASIC中取得了權(quán)衡,很好的兼顧了處理速度和控制能力。一方面,F(xiàn)PGA是可編程重構(gòu)的硬件,因此相比GPU有更強(qiáng)大的可調(diào)控能力;另一方面,與日增長(zhǎng)的門(mén)資源和內(nèi)存帶寬使得它有更大的設(shè)計(jì)空間。更方便的是,F(xiàn)PGA還省去了ASIC方案中所需要的流片過(guò)程。FPGA的一個(gè)缺點(diǎn)是其要求使用者能使用硬件描述語(yǔ)言對(duì)其進(jìn)行編程。但是,已經(jīng)有科技公司和研究機(jī)構(gòu)開(kāi)發(fā)了更加容易使用的語(yǔ)言比如Impulse Accelerated Technologies Inc. 開(kāi)發(fā)了C-to-FPGA編譯器使得FPGA更加貼合用戶(hù)的使用,耶魯?shù)腅-Lab 開(kāi)發(fā)了Lua腳本語(yǔ)言。這些工具在一定程度上縮短了研究者的開(kāi)發(fā)時(shí)限,使研究更加簡(jiǎn)單易行。

在FPGA上運(yùn)行LSTM神經(jīng)網(wǎng)絡(luò)

LSTM簡(jiǎn)介

傳統(tǒng)的RNN由一個(gè)三層的網(wǎng)絡(luò):輸入層it,隱藏層ht,輸出層yt;其中ht的信息作用到下一時(shí)刻的輸入,這樣的結(jié)構(gòu)簡(jiǎn)單的模仿了人腦的記憶功能,圖3是其拓?fù)鋱D:

 

 

只有一個(gè)隱藏層方程:

其中 Wx和 Wh分別是輸入和隱藏層的權(quán)重,b 是偏置。

LSTM 是RNN(遞歸神經(jīng)網(wǎng)絡(luò))的一種,在處理時(shí)序數(shù)據(jù)得到了最廣泛的應(yīng)用,它由門(mén)控制信息一共有三個(gè)個(gè)門(mén):輸入門(mén)it,遺忘門(mén)ft,輸出門(mén)ot,另外還有隱藏層ht和記憶細(xì)胞ct。圖4是其拓?fù)鋱D:

 

 

輸入門(mén)控制了某一時(shí)刻的輸入;遺忘門(mén)通過(guò)作用到上一時(shí)刻記憶細(xì)胞上,控制了上一時(shí)刻的數(shù)據(jù)流要流多少進(jìn)入下一時(shí)刻;記憶細(xì)胞是由上一時(shí)刻的輸入和這一時(shí)刻的候選輸入共同決定的;輸出門(mén)作用到記憶細(xì)胞上,決定了這一時(shí)刻的隱藏層信息,并且送到下一層神經(jīng)網(wǎng)絡(luò)上。全部方程如下:

 

 

其中W 代表各自的權(quán)重,b 代表各自的偏置, σ 是logisTIc sigmoid 函數(shù):

設(shè)計(jì)FPGA模塊

 

 

一種遞歸神經(jīng)網(wǎng)絡(luò)在FPGA平臺(tái)上的實(shí)現(xiàn)方案詳解

LSTM主要進(jìn)行的是矩陣的乘法和非線性函數(shù)的計(jì)算(tanh,sigmoid),因此,選擇了Q8.8定點(diǎn)。

矩陣乘法由MAC單元進(jìn)行(MulTIply Accumulate),一共有兩個(gè)數(shù)據(jù)流:向量和權(quán)重矩陣流,如圖6(a)。在迭代完一次之后MAC就會(huì)重置以防止之前的數(shù)據(jù)混入下一時(shí)刻的數(shù)據(jù)。兩個(gè)MAC單元的數(shù)據(jù)相加之后進(jìn)行非線性函數(shù)計(jì)算。同時(shí)用一個(gè)rescale模塊將32位的數(shù)據(jù)轉(zhuǎn)變?yōu)?6位的數(shù)據(jù)。

標(biāo)量計(jì)算的模塊,是為了計(jì)算ct和ht,最終傳入下一時(shí)刻的計(jì)算。如圖6(b)。

整個(gè)模型一共用了三個(gè)圖6(a)和一個(gè)圖6(b)的模塊,如圖6(c)。數(shù)據(jù)的流入流出用了DMA(Direct Memory Access)串口控制。由于DMA串口是獨(dú)立的,因此,還需要一個(gè)時(shí)鐘模塊對(duì)其進(jìn)行時(shí)序控制。時(shí)鐘模塊主要是一個(gè)緩沖存儲(chǔ)器組成并暫存了一些數(shù)據(jù)直到數(shù)據(jù)都到達(dá)。當(dāng)最后的一個(gè)端口數(shù)據(jù)流入時(shí)鐘模塊才開(kāi)始傳送數(shù)據(jù),這保證了輸入跟權(quán)重矩陣是同個(gè)時(shí)刻相關(guān)的。

通過(guò)在不同平臺(tái)上訓(xùn)練LSTM網(wǎng)絡(luò),我們得到了不同模型的對(duì)比。表1是平臺(tái)的參數(shù),運(yùn)行結(jié)果如圖7,可以發(fā)現(xiàn):即使在142MHz的時(shí)鐘頻率下,F(xiàn)PGA平臺(tái)下的運(yùn)行時(shí)間遠(yuǎn)遠(yuǎn)小于其他平臺(tái),并行八個(gè)LSTM 記憶細(xì)胞的處理取得了比 Exynos5422 快16倍的結(jié)果。

深度學(xué)習(xí)采用包含多個(gè)隱藏層的深層神經(jīng)網(wǎng)絡(luò)(DeepNeural Networks,DNN)模型。DNN內(nèi)在的并行性,使得具備大規(guī)模并行體系結(jié)構(gòu)的GPU和FPGA成為加速深度學(xué)習(xí)的主流硬件平臺(tái),其突出優(yōu)勢(shì)是能夠根據(jù)應(yīng)用的特征來(lái)定制計(jì)算和存儲(chǔ)結(jié)構(gòu),達(dá)到硬件結(jié)構(gòu)與深度學(xué)習(xí)算法的最優(yōu)匹配,獲得更高的性能功耗比;并且,F(xiàn)PGA靈活的重構(gòu)功能也方便了算法的微調(diào)和優(yōu)化,能夠大大縮短開(kāi)發(fā)周期。毫無(wú)疑問(wèn),F(xiàn)PGA在深度學(xué)習(xí)的未來(lái)是十分值得期待的。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶(hù)希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉