《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 業(yè)界動(dòng)態(tài) > eFPGA更適用于AI ?

eFPGA更適用于AI ?

2018-06-20

人工智能(AI),特別是機(jī)器學(xué)習(xí)正在重塑世界的運(yùn)作方式,也為工業(yè)和商業(yè)帶來(lái)了無(wú)數(shù)的機(jī)會(huì),但支持神經(jīng)網(wǎng)絡(luò)演進(jìn)、多樣性、訓(xùn)練和推理的最佳硬件架構(gòu)尚未確定。本文針對(duì)這一領(lǐng)域,就嵌入式FPGA(eFPGA)的應(yīng)用做一些探討。


人工智能應(yīng)用領(lǐng)域涵蓋多個(gè)不同的市場(chǎng),如自動(dòng)駕駛、醫(yī)療診斷、家用電器、工業(yè)自動(dòng)化、自適應(yīng)網(wǎng)站、財(cái)務(wù)分析和網(wǎng)絡(luò)基礎(chǔ)設(shè)施。

微信圖片_20180620200442.jpg


這些應(yīng)用(特別是在邊緣實(shí)施時(shí))需要高性能和低延遲才能成功響應(yīng)實(shí)時(shí)變化。它們還需要低功耗,這就使能源密集型云解決方案無(wú)法使用。另外,更深層的要求是:這些嵌入式系統(tǒng)即使在沒(méi)有網(wǎng)絡(luò)連接到云的情況下,也總是處于開(kāi)啟狀態(tài)并準(zhǔn)備好進(jìn)行響應(yīng)。這些因素的加在一起,需要改變傳統(tǒng)的硬件設(shè)計(jì)方式。


神經(jīng)網(wǎng)絡(luò)


許多算法可用于機(jī)器學(xué)習(xí),但當(dāng)今最成功的算法是深度神經(jīng)網(wǎng)絡(luò)。受生物處理過(guò)程和結(jié)構(gòu)的啟發(fā),深度神經(jīng)網(wǎng)絡(luò)可以在前饋中采用10層或更多層。 每一層使用虛擬神經(jīng)元對(duì)一組輸入執(zhí)行加權(quán)求和,然后將結(jié)果傳遞給下一層中的一個(gè)或多個(gè)神經(jīng)元。


雖然有一種常見(jiàn)的核心方法來(lái)構(gòu)建最深的神經(jīng)網(wǎng)絡(luò),但目前還沒(méi)有一種適用于深度學(xué)習(xí)的通用體系結(jié)構(gòu)。 越來(lái)越多的深度學(xué)習(xí)應(yīng)用將合并不基于模擬神經(jīng)元的元素。 隨著技術(shù)的不斷發(fā)展,許多不同的架構(gòu)將會(huì)出現(xiàn)。 就像有機(jī)大腦本身一樣,可塑性是任何旨在將機(jī)器學(xué)習(xí)融入其產(chǎn)品設(shè)計(jì)的組織的主要要求。


訓(xùn)練和推理


有機(jī)大腦和人工智能之間的一個(gè)重要差異是,當(dāng)訓(xùn)練好的網(wǎng)絡(luò)被要求作出決定時(shí),能夠區(qū)分諸如訓(xùn)練和推理階段等活動(dòng)。 在2000~2010年,人們發(fā)現(xiàn)了有效的技術(shù),可以一次對(duì)多個(gè)層次進(jìn)行訓(xùn)練。這些技術(shù)依賴(lài)于通常由使用許多處理器來(lái)完成任務(wù)的服務(wù)器提供的巨大計(jì)算能力。訓(xùn)練過(guò)程在后臺(tái)進(jìn)行 - 通常在云端進(jìn)行 - 不需要實(shí)時(shí)生成結(jié)果。


對(duì)于推理,計(jì)算需求低于訓(xùn)練,但通常需要在大多數(shù)現(xiàn)實(shí)世界的應(yīng)用程序中提供實(shí)時(shí)響應(yīng)。 高能效并行處理是推理系統(tǒng)的關(guān)鍵要求,因?yàn)樵S多系統(tǒng)不具備永久的外部電源。


通常,訓(xùn)練要求用于計(jì)算神經(jīng)權(quán)重的浮點(diǎn)運(yùn)算具有高精度,在大多數(shù)情況下,32位浮點(diǎn)已被證明是足夠的精度需求。


對(duì)于推理來(lái)說(shuō),錯(cuò)誤累積的可能性較小,通常,8位定點(diǎn)算術(shù)就足夠了,對(duì)于某些連接,4位分辨率不會(huì)顯著增加錯(cuò)誤,系統(tǒng)將受益于重新配置數(shù)據(jù)路徑的能力,以便他們能夠以4位或8位的精度并行處理多個(gè)數(shù)據(jù)流。但是,設(shè)計(jì)人員希望保留在需要的地方結(jié)合高精度算術(shù)執(zhí)行單元的能力。


顯然,機(jī)器學(xué)習(xí)系統(tǒng)需要提供高性能和可塑性組合的硬件基質(zhì)。


機(jī)器學(xué)習(xí)基質(zhì)


許多處理結(jié)構(gòu)可用于支持高性能機(jī)器學(xué)習(xí),但是對(duì)于實(shí)時(shí)嵌入式系統(tǒng)來(lái)說(shuō),由于功耗和性能的原因,有些將在早期階段被排除。


在2010~2015年期間,通用圖形處理單元(GPGPU)成為訓(xùn)練和推理的熱門(mén)選擇。GPGPU提供數(shù)百個(gè)片上浮點(diǎn)單元,能夠并行處理多個(gè)神經(jīng)元的輸入,比通用CPU集群的輸入快得多。


然而,將GPGPU應(yīng)用于深度學(xué)習(xí)架構(gòu)存在一些缺點(diǎn),這些設(shè)備主要用于加速2D和3D圖形應(yīng)用程序,這些應(yīng)用程序使用均勻且可預(yù)測(cè)的內(nèi)存訪問(wèn)模式,它們的結(jié)構(gòu)支持算術(shù)運(yùn)算密集型算法,這些算法可以很容易地在存儲(chǔ)器中緊密地組合在一起,然后可以合理高效地處理卷積神經(jīng)網(wǎng)絡(luò)層。然而,其他類(lèi)型的層可能會(huì)有麻煩,因?yàn)樗麄兏訌?qiáng)調(diào)神經(jīng)元之間的數(shù)據(jù)傳輸,從而使本地存儲(chǔ)器架構(gòu)效率降低,這樣就降低了性能和能效。


具有定制邏輯和內(nèi)存管理器的ASIC可以克服GPGPU在實(shí)施深度學(xué)習(xí)系統(tǒng)時(shí)存在的挑戰(zhàn)和瓶頸。ASIC針對(duì)神經(jīng)網(wǎng)絡(luò)代碼中遇到的不同訪問(wèn)模式進(jìn)行調(diào)整的內(nèi)存管理單元可以在提高整體速度方面做得更好。在諸如卷積神經(jīng)網(wǎng)絡(luò)(CNN)層的結(jié)構(gòu)中,通過(guò)不將數(shù)據(jù)傳入和傳出本地或中間存儲(chǔ)器的方式,可以實(shí)現(xiàn)節(jié)能。


與基于軟件的處理器相比,ASIC的問(wèn)題是其相對(duì)不靈活。我們可以對(duì)多種深度學(xué)習(xí)結(jié)構(gòu)進(jìn)行原型設(shè)計(jì),然后選擇基于硅集成的優(yōu)化選項(xiàng)。一個(gè)特定的應(yīng)用程序可能需要部署更多的卷積層或增加濾波器內(nèi)核的復(fù)雜性來(lái)處理特定類(lèi)型的輸入,支持這種復(fù)雜性可能需要相對(duì)于其他硬件加速器而言增加數(shù)量龐大的濾波器內(nèi)核處理器,這種結(jié)構(gòu)可以通過(guò)ASIC實(shí)現(xiàn),但它很可能不適合改變算法或相鄰應(yīng)用。


FPGA具有實(shí)現(xiàn)定制處理器和內(nèi)存管理技術(shù)的諸多優(yōu)勢(shì),它不需要將實(shí)現(xiàn)局限在特定的不變硬件結(jié)構(gòu)。今天,許多FPGA架構(gòu)提供了完全可定制的邏輯和數(shù)字信號(hào)處理(DSP)引擎的整合,可支持固定和浮點(diǎn)運(yùn)算。在許多情況下,DSP引擎采用由8位或16位單元組成的構(gòu)建塊方法,這些方法可以將它們組合起來(lái)以支持更高精度的數(shù)據(jù)類(lèi)型,通過(guò)在查找表(LUT)中實(shí)現(xiàn)的邏輯,可以適應(yīng)低精度需求。


對(duì)邏輯陣列進(jìn)行返工的能力使FPGA很容易調(diào)整并行處理器的結(jié)構(gòu)和它們之間的路由,以滿(mǎn)足應(yīng)用的特定需求。如果訓(xùn)練結(jié)果指出如何擴(kuò)展或重新布置圖層以提高性能,那么其自由度仍然有調(diào)整空間。然而,可編程邏輯陣列相對(duì)低的效率可能意味著,當(dāng)應(yīng)用程序確實(shí)需要網(wǎng)絡(luò)的某些高吞吐量專(zhuān)用功能時(shí),用戶(hù)必須在神經(jīng)網(wǎng)絡(luò)內(nèi)不同層之間的性能共享功能上妥協(xié)。 一種方法是使用更小的ASIC來(lái)擴(kuò)展FPGA,從而為常用功能(例如卷積內(nèi)核或max-pooling計(jì)算)提供加速。


將FPGA架構(gòu)嵌入片上系統(tǒng)(SoC)可以克服獨(dú)立FPGA和ASIC的缺點(diǎn),以及在它們之間傳遞數(shù)據(jù)的問(wèn)題。 嵌入到ASIC中的一個(gè)或多個(gè)FPGA提供了動(dòng)態(tài)調(diào)整神經(jīng)網(wǎng)絡(luò)性能的能力,提供了充分利用定制引擎所需的高數(shù)據(jù)傳輸帶寬。


eFPGA橫空出世


基于此,嵌入式FPGA應(yīng)運(yùn)而生。eFPGA概念第一次進(jìn)入大眾視野是在2014年,由UCLA的Cheng C. Wang,F(xiàn)ang-Li Yuan和Dejan Markovic等人在ISSCC發(fā)表的文章,“A Multi-Granularity FPGA With Hierarchical Interconnects for Efficient and Flexible Mobile Computing”。


這篇文章中,作者通過(guò)創(chuàng)造性地設(shè)計(jì)互聯(lián)單元,一舉解決了FPGA的功耗、性能和成本受到布線資源限制的問(wèn)題,從而使得eFPGA集成到SoC中真正變?yōu)榭赡?,而該論文也因其突出貢獻(xiàn)獲得了ISSCC Lewis Award。之后,Cheng C. Wang,F(xiàn)ang-Li Yuan和Dejan Markovic就利用該論文中的成果成立了Flex Logix,并推廣eFPGA的概念,力爭(zhēng)使其實(shí)現(xiàn)商用化。


到了2017年,eFPGA的概念已經(jīng)獲得了業(yè)界的廣泛認(rèn)可,而該領(lǐng)域的公司也在慢慢變多。到目前為止,業(yè)界主要供應(yīng)商包括:Flex Logix、Achronix、Menta、QuickLogic、NanoXplore、Efinix和Adicsys。


以上這7家公司采采取3種商業(yè)模式和技術(shù)發(fā)展途徑:Achronix同時(shí)提供FPGA和eFPGA;Menta、NanoXplore和Adicsys提供軟IP eFPGA,F(xiàn)lex Logix全部是硬核eFPGA,QuickLogic采用了GloablFoundry工藝的硬IP,Efinix是硬IP技術(shù)。


據(jù)悉,中芯國(guó)際已經(jīng)與QuickLogic合作,基于中芯國(guó)際40nm低漏電 (40LL) 工藝,推出了ArcticPro 嵌入式 FPGA技術(shù),是業(yè)界首個(gè)在中芯國(guó)際40LL技術(shù)節(jié)點(diǎn)上提供的eFPGA IP。


與傳統(tǒng)實(shí)現(xiàn)方案相比,eFPGA可以實(shí)現(xiàn)吞吐量和可重編程性之間的最佳平衡,并提供真實(shí)世界機(jī)器學(xué)習(xí)系統(tǒng)所需的性能。


片上集成FPGA模塊的能力還通過(guò)以下方式節(jié)省了大量的硅片面積:


1)去除了與獨(dú)立FPGA關(guān)聯(lián)的耗電量大的I / O


2)將固定功能移至更高效的ASIC模塊


3)將重復(fù)功能轉(zhuǎn)換為自定義塊。


機(jī)器學(xué)習(xí)中的eFPGA


由于AI/機(jī)器學(xué)習(xí)屬于高端應(yīng)用,其面臨著算法的變化,是一個(gè)高計(jì)算需求的應(yīng)用。


eFPGA是一種高度靈活的解決方案,可支持高性能機(jī)器學(xué)習(xí)應(yīng)用程序所需的數(shù)據(jù)吞吐量。 不同的架構(gòu)為設(shè)計(jì)人員提供了按照應(yīng)用程序的要求混合和匹配eFPGA功能的能力。 一些核心功能,包括基于四輸入LUT的邏輯,用于寄存器文件和類(lèi)似用途的小型面向邏輯的存儲(chǔ)器(LRAM),較大的塊RAM(BRAM)以及可配置的DSP模塊。


核心功能還可以通過(guò)定制模塊進(jìn)行增強(qiáng),這些定制模塊提供了更多專(zhuān)用功能,這些功能在可編程邏輯中是硅密集型的,例如為流水線訪問(wèn)優(yōu)化的三態(tài)內(nèi)容尋址存儲(chǔ)器,超寬多路復(fù)用器和存儲(chǔ)器模塊。


通過(guò)可嵌入架構(gòu),SoC中的定制內(nèi)核可以訪問(wèn)可編程架構(gòu),而無(wú)需犧牲片外訪問(wèn)的能耗和性能,無(wú)需FPGA架構(gòu)周?chē)目删幊蘄 / O緩沖器,因此,解決方案內(nèi)的整個(gè)裸片面積就會(huì)減少。 此外,該架構(gòu)的模塊化特性使得將該技術(shù)移植到各種工藝技術(shù)中變得很輕松,即使是新興的7nm節(jié)點(diǎn)也沒(méi)問(wèn)題。


這些功能是為嵌入式系統(tǒng)提供實(shí)時(shí)AI加速的最佳起點(diǎn),這些嵌入式系統(tǒng)涵蓋從消費(fèi)類(lèi)電子電器到高級(jí)機(jī)器人和自動(dòng)駕駛汽車(chē)。


機(jī)器學(xué)習(xí)技術(shù)代表了嵌入式系統(tǒng)的新領(lǐng)域,實(shí)時(shí)人工智能將擴(kuò)大各種應(yīng)用,但只有在能夠以經(jīng)濟(jì)高效的方式執(zhí)行時(shí)才能實(shí)現(xiàn)市場(chǎng)化量產(chǎn)。諸如多核CPU、GPGPU和獨(dú)立FPGA之類(lèi)的現(xiàn)有解決方案可用于支持高級(jí)AI算法,如深度學(xué)習(xí),但它們無(wú)法滿(mǎn)足開(kāi)發(fā)人員隨著機(jī)器學(xué)習(xí)體系結(jié)構(gòu)發(fā)展而增加的硬件需求。


AI需要對(duì)數(shù)據(jù)和性能、內(nèi)存延遲以及吞吐量進(jìn)行仔細(xì)的平衡,這需要基于將盡可能多的功能引入ASIC或SoC的方法。 但是單芯片器件需要可塑性來(lái)處理機(jī)器學(xué)習(xí)項(xiàng)目中不可避免的結(jié)構(gòu)變化。eFPGA技術(shù)則為市場(chǎng)所需的定制邏輯提供了靈活性和支持能力的完美整合。


eFPGA在AI應(yīng)用中的挑戰(zhàn)


eFPGA有諸多優(yōu)點(diǎn),但作為一種新型技術(shù),其在具體應(yīng)用中,同樣面臨著一些挑戰(zhàn),特別是對(duì)于AI而言,人工智能本身就是新興應(yīng)用,它們組合在一起,在實(shí)踐當(dāng)中自然會(huì)遇到一些難題。


比如,可靠性和良率問(wèn)題,工程師在這方面有擔(dān)憂(yōu),純邏輯制程在這方面的優(yōu)勢(shì)還需要進(jìn)一步觀察;測(cè)試也是個(gè)問(wèn)題,客戶(hù)需要用戶(hù)筆記來(lái)幫助設(shè)置、調(diào)試FPGA設(shè)計(jì),當(dāng)然,eFPGA在這方面是有先天優(yōu)勢(shì)的,可以測(cè)完再配置為需要的文件;另外還有時(shí)序問(wèn)題,集成硬核很容易,但是時(shí)鐘同步很難,因?yàn)椴煌诠鑃oC的時(shí)序是不變的,eFPGA的時(shí)序是變化的,如何匹配是個(gè)問(wèn)題。


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