在深度學(xué)習(xí)領(lǐng)域,GPU加速是應(yīng)用的主流。當(dāng)然還有一些人會獨(dú)辟蹊徑的選擇一些“非主流”的產(chǎn)品,,比如FPGA,。
作為新興的加速代表,,F(xiàn)PGA與人工智能這個(gè)名字緊緊的捆綁在一起,,業(yè)界對于FPGA的前景也充滿期待,。去年5月,,英特爾宣布以167億美元收購FPGA生產(chǎn)商Altera,,這也說明了這個(gè)芯片巨頭對于FPGA市場發(fā)展的強(qiáng)大信心,。
但是,對于許多人來說,,F(xiàn)PGA的意義何在,,F(xiàn)PGA能夠應(yīng)用于生產(chǎn)場景中,這些問題都是他們存在于心底的疑惑,。而對于FPGA的許多,,筆者日前有幸聆聽了英特爾PSG BDM部門劉斌博士的演講,對于FPGA的認(rèn)識有了進(jìn)一步的加深,。
FPGA存在的意義是什么?
用戶可以從Caffe或者從TensorFlow開始Machine Learning的設(shè)計(jì),,開始神經(jīng)網(wǎng)絡(luò)CNN的設(shè)計(jì),在設(shè)計(jì)之后不需要真的了解FPGA是怎么開發(fā)的,,F(xiàn)PGA的板卡是怎么開發(fā)的,,F(xiàn)PGA用什么樣的硬件描述語言,你就可以把你的神經(jīng)網(wǎng)絡(luò)放進(jìn)FPGA里,,得到FPGA的速度和功耗上的優(yōu)勢,,這個(gè)是我們戰(zhàn)略里面,F(xiàn)PGA所扮演的角色,。
為什么FPGA比較適合用于深度學(xué)習(xí)
首先FPGA是一個(gè)可編程的硬件,,和我們大部分的處理器不同。因?yàn)樘幚砥鞯挠布Y(jié)構(gòu)是固定的,。FPGA雖然有非常穩(wěn)定的底層結(jié)構(gòu)但是我們可以組合成非常多類型的數(shù)字電路,,并且在里面可以利用一些硬核構(gòu)成一些相對比較高層的計(jì)算結(jié)構(gòu)。
首先FPGA的能效比非常好,,其次FPGA有非常好的可編程性,,即使在線的情況下,你可以更新你的硬件結(jié)構(gòu),。最后,,F(xiàn)PGA本身因?yàn)榫邆漕愃艻/O或者說片上系統(tǒng)的部分功能,可以提供一些基礎(chǔ)架構(gòu)上的靈活性,。
英特爾的FPGA相關(guān)產(chǎn)品
英特爾(Altera)傳統(tǒng)來講是一個(gè)半導(dǎo)體的廠商,,所以在FPGA這個(gè)產(chǎn)品線里面我們其實(shí)包括以下幾種類型產(chǎn)品。半導(dǎo)體這一側(cè)我們主要有叫Max的CPLD系列,,Cyclone,, Arria 和Stratix的FPGA產(chǎn)品系列,,這個(gè)是從低到高的。
Cyclone是比較低端的,,Arria在中間,,Stratix是比較高端的產(chǎn)品系列。每個(gè)產(chǎn)品系列里面又有自己的不同的具體的型號,, 按照規(guī)模來劃分,那應(yīng)用的場景會不太一樣,。
Cyclone可能是應(yīng)用在更工業(yè)化的更嵌入設(shè)備應(yīng)用的場景里,,Arria是一個(gè)功耗成本和性能的一個(gè)平衡產(chǎn)品,Stratix是一個(gè)超強(qiáng)的計(jì)算能力的產(chǎn)品,。我們今年年底正在推出Statix 10的工程樣片,,第一個(gè)工程樣片它的浮點(diǎn)計(jì)算能力達(dá)到9.2個(gè)Tflop,9個(gè)Tflops的產(chǎn)品,。
Enpirion是我們另外一條產(chǎn)品線,,主要是支持一個(gè)非常小尺寸的電源的工作,在server或者是在計(jì)算領(lǐng)域有很大應(yīng)用,。但產(chǎn)品來講除了器件以外,,我們包括了開發(fā)工具,也包括板卡和IP,。
如何利用一顆FPGA實(shí)現(xiàn)CNN加速
我們選擇CNN作為第一個(gè)切入點(diǎn),,因?yàn)镃NN的網(wǎng)絡(luò)運(yùn)用非常廣泛;另外CNN的網(wǎng)絡(luò)也是深度學(xué)習(xí)一個(gè)典型的情況,會不停地往前演進(jìn),。
FPGA效率達(dá)到最高的基本原則是,,我里面剛剛講到的乘加單元、存儲器單元,,他們能夠盡可能的被使用到,。
FPGA在CNN領(lǐng)域面臨的3大挑戰(zhàn)
因?yàn)镕PGA還很新,那進(jìn)入這個(gè)市場第一個(gè)挑戰(zhàn)是怎么樣讓FPGA工作起來,。
第二個(gè)挑戰(zhàn)是機(jī)器學(xué)習(xí)是一個(gè)快變的一個(gè)技術(shù)領(lǐng)域,,所以他的生態(tài)壞境、社區(qū),、軟件都是非常重要的一個(gè)方面,。那我們作為后來者,特別是跟這種FPGA的團(tuán)隊(duì)
第三個(gè)是FPGA還有一些原生的特點(diǎn),,比如開發(fā)周期是比較長,。
在演講的最后,在談到為何今天應(yīng)該采用英特爾FPGA來實(shí)現(xiàn)深度學(xué)習(xí)的時(shí)候,,劉斌表示:“英特爾FPGA是技術(shù)和價(jià)值之選;英特爾機(jī)器學(xué)習(xí)戰(zhàn)略將先進(jìn)的器件(包括FPGA)與優(yōu)化的軟件庫,,高階的框架,,以及數(shù)據(jù)分析平臺整合在一起;英特爾FPGA支持高效的OpenCL編程?!?/p>