<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > FPGA與深度學(xué)習(xí)的關(guān)系究竟是什么?

          FPGA與深度學(xué)習(xí)的關(guān)系究竟是什么?

          作者: 時(shí)間:2018-07-04 來(lái)源:網(wǎng)絡(luò) 收藏

            人工智能的風(fēng)潮從技術(shù)一路蔓延到硬件,讓“芯片”成為今年行業(yè)里盛極一時(shí)的主題。人們關(guān)注通用芯片領(lǐng)域里CPU和GPU不斷刷新的基準(zhǔn)(benchmark),更對(duì)專用芯片(ASIC)領(lǐng)域不同場(chǎng)景下不斷問(wèn)世的解決方案表示出了空前的熱情。

          本文引用地址:http://www.ex-cimer.com/article/201807/382759.htm

            而眾所周知,在專用芯片與通用芯片中間,還有一個(gè)更為靈活,也更為神秘的領(lǐng)域:。無(wú)論是英特爾天價(jià)的收購(gòu)還是微軟與 IBM 雄心勃勃的計(jì)劃,都讓人對(duì)其更加好奇。而“萬(wàn)能芯片”的名稱,以及多樣化的職責(zé)范圍:它可以是智能手機(jī)里不起眼的一個(gè)小組件,也可以是數(shù)千美金一塊的開(kāi)發(fā)板,也讓人對(duì)其真面目更加疑惑。

            的關(guān)系究竟是什么?它適合加速何種類型的運(yùn)算?適合應(yīng)用于何種場(chǎng)景?6 月,機(jī)器之心采訪了美國(guó)伊利諾伊大學(xué)香檳分校電氣與計(jì)算機(jī)工程系(UIUC ECE)教授、算法硬件加速解決方案創(chuàng)業(yè)公司 Inspirit IoT 創(chuàng)始人陳德銘,與他聊了聊“萬(wàn)能芯片”領(lǐng)域的用法。陳教授于近期宣布兼任國(guó)內(nèi)計(jì)算機(jī)視覺(jué)領(lǐng)域創(chuàng)業(yè)公司觸景無(wú)限的首席科學(xué)家。

            以下為采訪實(shí)錄。

            機(jī)器之心:從算法的角度,F(xiàn)PGA 適合于加速哪些運(yùn)算?

            FPGA 的優(yōu)勢(shì)在于可定制化的并行。它可以為了特定算法專門定制邏輯單元。例如,算法中需要完成一個(gè)開(kāi)三次方的運(yùn)算,在通用芯片上需要一長(zhǎng)串指令實(shí)現(xiàn)它,但是在 FPGA 上可以為這個(gè)特定運(yùn)算設(shè)計(jì)一個(gè)單元。

            定制化的一個(gè)“極限”的例子是,如果能夠把神經(jīng)網(wǎng)絡(luò)中的參數(shù)全部二值化、特征圖(feature map)也全部二值化,那么甚至可以不用乘法器,而是用異或門(XOR gate)完成計(jì)算,會(huì)有異常強(qiáng)大的表現(xiàn)。即使不全部二值化,因?yàn)槿慷祷瘯?huì)讓準(zhǔn)確度明顯下降,只要合理使用各種低位寬的運(yùn)算,仍可以讓 FPGA 大放異彩。比如在我們最近和 IBM 合作的 ELB-NN 項(xiàng)目中,我們可以在功耗低于 5 瓦的情形下,讓神經(jīng)網(wǎng)絡(luò)在 FPGA 上的算力達(dá)到 10.3 TOPS,同時(shí)依然維持非常高的準(zhǔn)確度。

            另一個(gè)例子是微軟的 Brainwave FPGA 項(xiàng)目,通過(guò)使用特殊的 8-bit 的浮點(diǎn)運(yùn)算,可以在高容量的 FPGA 上達(dá)到 40 TOPS。

            值得一提的是,LSTM 等神經(jīng)網(wǎng)絡(luò)每一步操作都很相似,這種整體運(yùn)算過(guò)程是序列的算法也非常適用于用 FPGA 進(jìn)行加速。FPGA 非常擅長(zhǎng)處理流數(shù)據(jù),可以設(shè)計(jì)流水線機(jī)制,使得在運(yùn)算過(guò)程中不需要將中間數(shù)據(jù)存入內(nèi)存而是直接送到下一步進(jìn)行操作。

            機(jī)器之心:相比于其他芯片,F(xiàn)PGA 在實(shí)現(xiàn)深度學(xué)習(xí)模型時(shí)有哪些結(jié)構(gòu)帶來(lái)的優(yōu)勢(shì)?

            FPGA 的引腳比一般的芯片多,同時(shí)它的邏輯單元可以完全根據(jù)算法要求來(lái)重組從而產(chǎn)生定制化的數(shù)據(jù)通路(datapath),因此非常適合處理大批量流數(shù)據(jù)。它不像 GPU 一樣需要反復(fù)調(diào)取片外存儲(chǔ)中的數(shù)據(jù),理想狀態(tài)時(shí),只要數(shù)據(jù)一次性流進(jìn)去再流出來(lái),算法就完成了,因此,F(xiàn)PGA 非常適合具有低延遲需求的任務(wù)。

            另外 FPGA 的速度快、功率低的特點(diǎn)也讓它在能耗方面相比于 CPU、GPU 也有很大優(yōu)勢(shì)。

            比如我們?cè)?FPGA 上實(shí)現(xiàn)了長(zhǎng)期循環(huán)卷積網(wǎng)絡(luò)(Long-term Recurrent ConvoluTIonal Network),它的速度 ( latency ) 比 GPU 快 3.1 倍,F(xiàn)PGA 的功率比 GPU 小 5.6 倍,最終整體能耗降低 17 倍左右。

            機(jī)器之心:從行業(yè)的角度,F(xiàn)PGA 都能夠用于哪些機(jī)器學(xué)習(xí)與深度學(xué)習(xí)任務(wù)的加速?

            在終端,有些自動(dòng)駕駛公司的車上系統(tǒng)中就采用了 FPGA 完成一些實(shí)時(shí)檢測(cè)識(shí)別任務(wù)。例如,我曾經(jīng)代表 UIUC 與小鵬汽車的副總裁、機(jī)器學(xué)習(xí)專家谷俊麗女士交流,她提到,F(xiàn)PGA 可以憑借信號(hào)處理和低能耗方面的優(yōu)勢(shì),成為一個(gè)可靠的第二系統(tǒng),在汽車的第一系統(tǒng)出現(xiàn)失誤的時(shí)候,作為安全模式介入進(jìn)來(lái)。IoT 方面的應(yīng)用就更多了,無(wú)論是安防還是智能家居,F(xiàn)PGA 都會(huì)有機(jī)會(huì)進(jìn)入市場(chǎng)。

            在云端,也有結(jié)合 FPGA 的巨大空間。之前,微軟的 Project Catapult 就搭建起了大規(guī)模的 FPGA 云服務(wù)器?,F(xiàn)在 Catapult 正在運(yùn)行搜索和數(shù)據(jù)存儲(chǔ)方面的運(yùn)算,同時(shí),他們也在積極地思考如何把機(jī)器學(xué)習(xí)運(yùn)算部署在上面,包括是否能將 FPGA 作為其 Azure 云的后端支持。亞馬遜 AWS 的 FPGA 云計(jì)算已經(jīng)很有規(guī)模了,并且一直在大力推動(dòng)之中。最近,國(guó)內(nèi)創(chuàng)業(yè)公司深鑒也開(kāi)始結(jié)合華為的云端 FPGA 來(lái)進(jìn)行深度學(xué)習(xí)算法的加速,特別在基于 LSTM 的語(yǔ)音識(shí)別上非常有優(yōu)勢(shì)。

            機(jī)器之心:能否介紹一下使用高層次綜合(HLS)自動(dòng)生成寄存器級(jí)(RTL)實(shí)現(xiàn)與手工用硬件描述語(yǔ)言(HDL)進(jìn)行實(shí)現(xiàn)的區(qū)別?

            對(duì)于深度學(xué)習(xí)相關(guān)算法來(lái)說(shuō),HLS 是有優(yōu)勢(shì)的。

            當(dāng)你閱讀用高層語(yǔ)言描述的深度學(xué)習(xí)模型時(shí),你會(huì)發(fā)現(xiàn)模型是有規(guī)律的。比如,卷積操作在 C 語(yǔ)言里就是一個(gè)六層的嵌套循環(huán)。此時(shí)我就可以針對(duì)這個(gè)循環(huán)開(kāi)發(fā)一個(gè) IP 核,確定如何進(jìn)行流水線設(shè)計(jì)(pipelining),如何分配存儲(chǔ)等,然后再將 IP 核用在 FPGA 上,進(jìn)而讓神經(jīng)網(wǎng)絡(luò)中的所有卷積層來(lái)共享 IP 核即可。

            此時(shí)設(shè)計(jì)的優(yōu)化要點(diǎn)是 IP 核的大小、是否需要多個(gè) IP 核并行運(yùn)算等。這是一個(gè)非常適用 HLS 的場(chǎng)景,因?yàn)?HLS 可以自動(dòng)化地、快速地探索不同的解決方案。如果采用 RTL,則需要很多工程師,組成多個(gè)團(tuán)隊(duì),每個(gè)團(tuán)隊(duì)根據(jù)工程師過(guò)去的設(shè)計(jì)經(jīng)驗(yàn)著重探索一個(gè)方向,這是一個(gè)成本非常高的過(guò)程。

            RTL 是一種描述硬件的空間的關(guān)系和邏輯時(shí)序等邏輯關(guān)系的硬件描述語(yǔ)言。這是一門難學(xué)的語(yǔ)言,能夠熟練掌握的從業(yè)者也不多,開(kāi)發(fā)和測(cè)試都很慢??鋸堻c(diǎn)說(shuō),如果 HLS 開(kāi)發(fā)周期以天和周來(lái)計(jì)算,那么 RTL 通常是以月和年。

            從最終結(jié)果角度講,RTL 完全手工調(diào)制的解決方案是很可能比 HLS 自動(dòng)生成的方案效果好的。我們?cè)?jīng)做過(guò)比較,在深度學(xué)習(xí)的情境下,HLS 和 RTL 方法的差距在 10% 左右。

            因此,問(wèn)題在于是否愿意花 3-5 倍的時(shí)間獲得額外 10% 的效果。

            機(jī)器之心:在簡(jiǎn)化 FPGA 開(kāi)發(fā)過(guò)程這一任務(wù)上,研究者做了哪些工作?

            我們的團(tuán)隊(duì)開(kāi)發(fā)了一個(gè)研究工具,是一個(gè) C 語(yǔ)言的模板庫(kù),能夠根據(jù) Caffe 和 TensorFlow 的代碼自動(dòng)生成 C 語(yǔ)言的表達(dá)。然后研究者可以將 C 語(yǔ)言的代碼再交給 HLS 工具生成 RTL 代碼。

            C 語(yǔ)言是軟件工程師普遍掌握的語(yǔ)言,這樣的工具讓軟件工程師也具有 FPGA 開(kāi)發(fā)能力,而且讓開(kāi)發(fā)者更專注于算法,而不用過(guò)多考慮底層硬件。

            而且,這個(gè)過(guò)程中的中間結(jié)果都可以導(dǎo)出,專業(yè)人員也可以在自動(dòng)生成的基礎(chǔ)上再進(jìn)行優(yōu)化,總而言之,整個(gè)開(kāi)發(fā)的效率都得到了極大的提高。

            這只是舉一個(gè)例子。還有其它很多的研究人員在做相關(guān)的提升深度學(xué)習(xí)設(shè)計(jì)效率和質(zhì)量的各類工具和平臺(tái)。工業(yè)和學(xué)術(shù)屆的都有。學(xué)術(shù)屆比如 UCLA 的叢京生老師,以及 Cornell 的張志汝老師等。工業(yè)屆比較領(lǐng)先的是賽靈思和英特爾自己設(shè)計(jì)的一些工具。

            機(jī)器之心:各個(gè)大公司在 FPGA 的應(yīng)用方面都進(jìn)行了哪些工作?拓展市場(chǎng)的思路都有哪些?

            IBM 和賽靈思正在 Power 系列上進(jìn)行合作,致力于在 FPGA 上加更多的存儲(chǔ),在最新的原型機(jī)上,把存儲(chǔ)加到了 64G,相比于市面上現(xiàn)在常見(jiàn)的最大 8 或 16G,極大擴(kuò)展了數(shù)據(jù)帶寬,來(lái)進(jìn)行和大數(shù)據(jù)相關(guān)的處理。

            英特爾收購(gòu)了 Altera,并且致力于幫助 Altera 進(jìn)行編譯等工具的開(kāi)發(fā)。這是一個(gè) FPGA 商品化的思路,就像 GPU 一樣,說(shuō)不定未來(lái)的 PC 里就會(huì)有一個(gè) FPGA 協(xié)處理器在 CPU 旁邊完成工作?;蛘咴谛酒瑢用嫔?,CPU 片上就有一塊 FPGA??偠灾?,一旦工具做好,整合的機(jī)會(huì)會(huì)有很多。英特爾在智能城市、智慧制造方面都有很多的構(gòu)想,并且希望借由 FPGA 實(shí)現(xiàn)。

            再就是微軟。它的思路主要就是云計(jì)算,除了 Bing 之外,也希望在進(jìn)行機(jī)器學(xué)習(xí)任務(wù)的 Azure 云中使用 FPGA。

            機(jī)器之心:能否介紹一下 Inspirit IoT 通過(guò)哪些產(chǎn)品實(shí)現(xiàn)了深度學(xué)習(xí)算法在 FPGA 上的加速?



            我們公司主要有三個(gè)產(chǎn)品,按照層次分別是 DNN 優(yōu)化器、高層次綜合加速編譯器(HLS compiler),以及整體 FPGA 解決方案。

            DNN 優(yōu)化器的目標(biāo)是定制一個(gè) FPGA 友好的模型,把訓(xùn)練好的模型中對(duì)于推理來(lái)說(shuō)冗余的部分去掉。例如,訓(xùn)練時(shí)使用的浮點(diǎn)數(shù)可以被替換為定點(diǎn)數(shù),訓(xùn)練時(shí)每層有非常多的單元,但是在推理的時(shí)候可以進(jìn)行剪枝(Pruning),等等。DNN 優(yōu)化器就是以各種高層框架的模型為基礎(chǔ),根據(jù)硬件的特性和場(chǎng)景的特性進(jìn)行自動(dòng)的優(yōu)化。

            高層次綜合編譯器讓開(kāi)發(fā)者得以繞開(kāi)寫 Verilog 硬件描述語(yǔ)言,將 C、 C++、CUDA 等代碼直接編成 FPGA,旨在降低硬件開(kāi)發(fā)的門檻,提高軟件工程師的生產(chǎn)力。我們的特色是這個(gè)編譯器可以自然結(jié)合深度學(xué)習(xí)算法中的各種 IP 核,從而可以最好的優(yōu)化各種深度學(xué)習(xí)算法在 FPGA 上的高速及高質(zhì)量的實(shí)現(xiàn)。

            除此之外,我們也有嵌入 FPGA 的開(kāi)發(fā)板,用于聲音相關(guān)的應(yīng)用場(chǎng)景。其上嵌入了 FPGA 和 4 個(gè)麥克風(fēng),可以檢測(cè)聲音來(lái)源、提高聲音質(zhì)量,也可以和攝像頭等其他設(shè)備連用。例如,捕捉到車輛撞擊聲、尖叫聲等特定聲音之后,能夠調(diào)轉(zhuǎn)攝像頭,收錄相關(guān)的視頻等,希望獲得一個(gè)「1+1>3」的效果。



          關(guān)鍵詞: FPGA 深度學(xué)習(xí)

          評(píng)論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();