機器學(xué)習(xí)(Machine Learning, ML)技術(shù)和FPGA的聯(lián)系可以體現(xiàn)在下面幾個維度上:
1. FPGA幫助改進機器學(xué)習(xí)的模型訓(xùn)練過程(FPGA應(yīng)用)
2. 機器學(xué)習(xí)幫助改進FPGA的設(shè)計代碼/約束(FPGA應(yīng)用)
3. 機器學(xué)習(xí)幫助改進FPGA軟件(EDA)算法設(shè)計(FPGA軟件設(shè)計)
4. 機器學(xué)習(xí)幫助改良FPGA芯片硬件設(shè)計(FPGA硬件設(shè)計)
本篇先分享從第1個維度出發(fā)的一些觀點。
FPGA傳統(tǒng)上被用作設(shè)計新數(shù)字芯片的早期驗證原型已經(jīng)很久了,但隨著機器學(xué)習(xí)技術(shù)的出現(xiàn),F(xiàn)PGA體現(xiàn)出了有別于傳統(tǒng)應(yīng)用更多的特質(zhì)。
在FPGA在其傳統(tǒng)市場因價格昂貴、難于上手而步履維艱時,ML為其打開了一片廣闊的市場。FPGA最大的特點在于其可編程的靈活性,這一點恰好在機器學(xué)習(xí)這種多變的場景下極為合適。不僅應(yīng)用時刻在變化,網(wǎng)絡(luò)和模型也在訓(xùn)練的過程中不斷進化,針對這種場景,不同F(xiàn)PGA廠商有著各自不同的應(yīng)對方案。
“GPU、FPGA以及ASIC之間,正在進行一場曠日持久的戰(zhàn)爭”,Anoop Saha(market development manager at Mentor, a Siemens Business)說道,“如果FPGA廠商無法提供合適的【工具】,他們將在ML這個市場上毫無機會?!?/p>
最早的ML應(yīng)用實現(xiàn)是軟件導(dǎo)向的,并對CPU和GPU產(chǎn)生了巨大影響。但CPU和GPU面臨的挑戰(zhàn)在于其巨大的功耗——即使對于數(shù)據(jù)中心來說也是這樣?!叭藗冊囍密浖崿F(xiàn)創(chuàng)新,但卻無法控制功耗,” Patrick Dorsey(general manager and vice president of product marketing,F(xiàn)PGA and power products in Intel’s Programmable Solutions Group)說道。因此,F(xiàn)PGA提供了一套比傳統(tǒng)軟件編程在功耗方面更具吸引力的解決方案?!盕PGA由于其并行性特別適合于高性能,低功耗應(yīng)用,“Shakeel Peera(associate vice president in Microchip’s FPGA business unit)說道。
“我們看到在TOPS/W(每瓦進行多少萬億次操作)性能方面,Intel的FPGA方案已經(jīng)打敗Nvidia的GPU方案。” Dorsey(Intel)說。FPGA可以提供軟件解決方案無法企及的低延遲和高性能?!癆SIC 可以達到5TOPS/W, 而FPGA也可以達到 1-2TOPS/W,”Mike Fitton(senior director of strategy and planning for Achronix)說道。價格對于成熟產(chǎn)品來說十分重要,但ML應(yīng)用通常還沒有到形成成熟產(chǎn)品程度,因為模型時刻不停地在飛速迭代,“FPGA雖然對于應(yīng)用在成熟產(chǎn)品上來說并不合適,”Nick Ni(director of product marketing for AI and software at Xilinx)說道,“但比如一些監(jiān)控攝像頭的應(yīng)用,其識別算法還遠未成熟,F(xiàn)PGA則是最好的選擇?!钡膊⒉皇钦f,在AI應(yīng)用中,完全不用考慮成本,畢竟總還是有人會關(guān)心總持有成本(total cost of ownership,TCO)的。
如果說這種絕對靈活的解決方案統(tǒng)治了早期的AI市場,那么接下來便通常會演化成ASSP(application-specific standard products)方案,以提供更佳的性能/功耗比,即使ASSP依然要在二者之間做出艱難的平衡。
從數(shù)據(jù)中心到邊緣計算
FPGA在數(shù)據(jù)中心加速應(yīng)用中找到了自己的用武之地——作為CPU和GPU的協(xié)處理引擎。在數(shù)據(jù)中心的訓(xùn)練(training)方面確實如此,而且目前的應(yīng)用也已擴展到了推理(inference)中。
另外,大量的推理工作集中在邊緣側(cè)進行—特別是汽車應(yīng)用。汽車應(yīng)用大都對成本和功耗非常敏感,但是由于ASSP方案的缺乏以及設(shè)計的快速更新迭代,F(xiàn)PGA得以在和傳統(tǒng)處理器的PK中脫穎而出。“FPGA在邊緣側(cè)優(yōu)勢巨大,尤其是在性能方面?!盨aha(Mentor)說道。
同時,根據(jù)Synopsys的說法,“accumulation”市場也是一個增長點——例如數(shù)據(jù)中心和邊緣之間網(wǎng)絡(luò)上的路由和開關(guān)器件?!坝泻芏鄳?yīng)用場景是用戶只是想和‘AI’沾點邊而已,”Dorsey(Intel)說道,“三到四成的傳統(tǒng)嵌入式業(yè)務(wù)都在討論如何和AI進行結(jié)合?!?/p>
設(shè)計模型面臨挑戰(zhàn)
硬件編程解決方案既然具有如此多的優(yōu)勢,那么問題來了,“為什么不是所有人都在使用FPGA呢?”回答也很簡單:FPGA是純硬件。這也是FPGA的“阿克琉斯之踵”。
根據(jù)美國勞動統(tǒng)計局的數(shù)據(jù),全美在2018年5月軟件工程師(包括應(yīng)用編程和系統(tǒng)軟件開發(fā))的數(shù)量大約是硬件工程師的21.5倍。硬件開發(fā)工作專注于低層次的硬件描述語言(HDL,更多的是描述硬件結(jié)構(gòu)而不是描述算法本身),這和軟件開發(fā)的思路完全不同,絕大多數(shù)工程師無法跨越這兩種開發(fā)理念而做到融會貫通。
FPGA大部分時候需要硬件設(shè)計,這使得FPGA應(yīng)用工程師的門檻很高?;谟布O(shè)計的ML策略往往開發(fā)量巨大,Saha (Intel)曾聽一個用戶說道,“我們知道FPGA的優(yōu)勢,但在得知設(shè)計需要4-5個工程師8-10個月才能完成之后,我們放棄了。..”
大多數(shù)FPGA解決方案包括軟件編程引擎——無論是硬編碼還是IP。這部分灰色區(qū)域造成了FPGA解決方案往往是既包含硬件開發(fā)又包含軟件開發(fā)。對于ML來說最大的挑戰(zhàn)并不僅僅來自硬件/軟件在開發(fā)理念上的不同。對于精通高層次開發(fā)語言的數(shù)據(jù)科學(xué)家來說(他們并非純軟件開發(fā)者,但依然和真正的硬件開發(fā)有些距離),他們依然無法做到得心應(yīng)手。因此FPGA廠商要做的是在工具中將硬件的部分“抽離”出去,讓數(shù)據(jù)科學(xué)家們得以進入FPGA開發(fā)圈。
硬件結(jié)構(gòu)對于ML計算來說十分重要,其可由硬件工程師來設(shè)計,但進一步優(yōu)化則可以交給軟件工程師來進行。軟件工程師通過高層次工具例化各類IP,從而避免了大量硬件方面的工作。為了實現(xiàn)這一目標(biāo),必須考慮兩個重要因素:設(shè)計流程和設(shè)計工具。一些FPGA公司將設(shè)計流程進行了分離,使得硬件設(shè)計從模型設(shè)計中解耦出來,這類做法使得FPGA對于非硬件工程師來說更加友好。
FPGA設(shè)計細節(jié)一般以碼流的形式下載到器件中,但在ML中,有的公司將整個模型實現(xiàn)在碼流中,有的則只用碼流實現(xiàn)硬件部分,而轉(zhuǎn)用軟件二進制文件來描述ML模型細節(jié)。
?
FPGA上實現(xiàn)的2個ML簡單設(shè)計模型。左邊,設(shè)計的所有細節(jié)實現(xiàn)在一個碼流中。數(shù)據(jù)科學(xué)家可以在高層次上進行設(shè)計,由EDA工具將其轉(zhuǎn)化并交給硬件編譯器。右邊,高層次模型數(shù)據(jù)存在了一個單獨的軟件二進制文件中,而模型何時變化的信息則存在硬件碼流之中。
設(shè)計模型包含了已現(xiàn)場部署的FPGA器件中正在運行的設(shè)計修改和更新。第一種情況由于整個設(shè)計信息包含在碼流之中,模型的變化仍然將繼續(xù)使用低層次的FPGA硬件工具去創(chuàng)建和更新碼流文件,即使高層次設(shè)計工具已經(jīng)將設(shè)計師從硬件設(shè)計中解放出來。
另一種情況,模型的變化僅僅會導(dǎo)致軟件二進制文件的變化,而軟件二進制文件的編譯速度要遠遠快于硬件碼流的生成速度,因此底層硬件通常不變,而僅僅是模型參數(shù)發(fā)生變化而已,而軟件和硬件具體如何變化,由架構(gòu)設(shè)計來自行決定。
高層次綜合(HLS)的出現(xiàn),減輕了硬件設(shè)計的負擔(dān),因為其可以直接將C算法轉(zhuǎn)化為硬件設(shè)計。很多算法都從軟件設(shè)計開始(通常是C或者C++),將其直接轉(zhuǎn)化為硬件設(shè)計將極大地節(jié)省設(shè)計時間(盡管使用HLS仍然需要一些硬件專業(yè)知識)。目前HLS最大的挑戰(zhàn)來自于調(diào)試Debug過程。
優(yōu)化推理模型
所有的FPGA工具鏈均工作在抽象層級,并和云端的標(biāo)準(zhǔn)模型訓(xùn)練框架相連。在頂層,訓(xùn)練過程會對參數(shù)(或權(quán)重)進行定義,并將其放入常用的模型(比如ResNet, MobileNet, 或者 YOLO)之中。這些參數(shù)可以僅僅是簡單的數(shù)字并存儲在數(shù)據(jù)文件中。
網(wǎng)絡(luò)結(jié)構(gòu)本身則是下一層級。層級的精簡和融合就是在訓(xùn)練網(wǎng)絡(luò)中優(yōu)化的過程,在一些引擎中,這個過程由軟件原語完成,而在另一些引擎中,則會導(dǎo)致硬件變化。
為了能夠進行在線升級,修改碼流意味著重置整個FPGA設(shè)計。如果更新只是影響到軟件二進制文件,則只需要修改這個文件即可,硬件碼流此時無需更換。“你可以根據(jù)不同模型準(zhǔn)備不同的軟件二進制文件,”Joe Mallett(senior marketing manager at Synopsys)說道。如果涉及到硬件修改,部分重配(PR)也能幫上你的忙,因為同一設(shè)計模型用來建立不同的算法,可以通過部分重配來實現(xiàn)算法間的切換。這項技術(shù)在數(shù)據(jù)中心加速板卡上顯得十分強大,而這類板卡在不同類型的推理和訓(xùn)練中不可或缺。Intel聲稱他們的重配時間大概需要100ms左右,并且該公司正在致力于將這個時間降低到幾十個毫秒,從而實現(xiàn)FPGA加速卡的快速再部署。
不同F(xiàn)PGA廠商的策略
就在眾多start-up公司廣泛地在ML領(lǐng)域展開探索的同時,F(xiàn)PGA廠商也在嘗試各種不同的方法,以至于他們的FPGA做的“越來越不像”FPGA了?,F(xiàn)代的FPGA大都同時提供硬件編程性以及軟件編程性(嵌入式處理器核心作為硬核直接在FPGA中工作)。這造就了不同F(xiàn)PGA廠商有著自己的實現(xiàn)策略。
目前最大的兩個FPGA玩家—Xilinx以及Intel有著截然不同的發(fā)展思路。Intel通過寬廣的產(chǎn)品線來實現(xiàn)戰(zhàn)略,F(xiàn)PGA只是其中一個拼圖。Intel同時擁有Xeon處理器,該處理器是數(shù)據(jù)中心上絕對暴力的存在,并且Intel還在不斷完善其現(xiàn)有解決方案。Intel的FPGA還只由傳統(tǒng)資源組成,截止到目前,還沒有看到ML專用處理資源模塊的出現(xiàn)。
內(nèi)存獲取是ML正在面臨的一大挑戰(zhàn),對于FPGA解決方案來說也是一樣。Intel的思路則是引入HBM(高帶寬存儲)技術(shù)?!拔覀冊贔PGA中加入了許多HBM,并將其放在離邏輯運算模塊很近的位置,從而幫助循環(huán)神經(jīng)網(wǎng)絡(luò)RNN(recurrent neural networks)進行語音識別”, Dorsey (Intel)說道。目前,HBM和FPGA的2D集成通過Intel的EMIB(嵌入式片間互連橋)連接器來實現(xiàn)。
Xilinx則朝向另一個方向前進,將ML引擎加入到Versal家族器件中去。該硬模塊讓Xilinx在犧牲一定芯片靈活性為代價獲得更高的效率。ML引擎由軟件驅(qū)動,因此不那么依賴硬件設(shè)計的考慮。
Achronix則和Intel一樣采取了同質(zhì)策略,盡管他們聲稱微調(diào)了DSP模塊,使其更加適應(yīng)ML工作。其老版DSP的優(yōu)化方向更傾向于傳統(tǒng)數(shù)字信號處理,例如濾波器,因此聚焦于18-bit數(shù)據(jù)。ML則傾向于更小的數(shù)據(jù)單元——特別是在邊緣側(cè)——因此,新型DSP的優(yōu)化方向聚焦于80bit整形數(shù)據(jù)。值得注意的是,Achronix同時提供FPGA成片和可供嵌入到SoC中的eFPGA IP。
Lattice則一直專注于低成本,低功耗市場,并且在ML應(yīng)用中,Lattice依然保持了他們的特點。他們將一些小功能(例如語音喚醒識別)加入到邊緣器件中,作為ML處理的初步嘗試?!拔覀兯龅耐评砉ぷ髦饕莻蓽y(detection),比如識別關(guān)鍵語句和手勢。”O(jiān)sman(Lattice)說道。
Microchip方面,正在推出其全新的VectorBlox工具,用以服務(wù)于其PolarFire系列 FPGA。他們的策略則認為硬件設(shè)計工作并不是在FPGA上做ML所必需的。Microchip在FPGA提供可例化的引擎IP,剩下的模型信息則用軟件來處理并最終生成一個軟件二進制文件——這個文件通常被稱為BLOB(binary large object),且文件體積很大。
使用該BLOB文件,Microchip可以同時管理多種ML模型。例化多個引擎可以使得其具有完全并發(fā)的處理方式,除此之外,例化單一引擎仍可以通過順序或者類并發(fā)的方式控制多個模型。
該引擎可以將模型信息從內(nèi)存中的BLOB中抽離出來。如果有多個軟件二進制文件,則由指針的指向決定某一時刻使用哪一個BLOB中的信息,而這個被指定的BLOB并不是完全加載進來,而是只用到和模型相關(guān)的部分。“切換BLOB就像改變指針位置一樣。當(dāng)某個MXP(矩陣處理器,matrix processor)運行時,它BLOB中的layer信息便被抽離出來。在多個神經(jīng)網(wǎng)絡(luò)之間切換幾乎可以不耗費任何時間,”Jamie Freed(senior architect for the FPGA Business Unit at Microchip)說道。
這種近似并發(fā)的特性則通過時間分片(time-slicing)技術(shù)來實現(xiàn)。如果一個視頻在同一時間被多個模型所處理,則這些模型依次運行完整的一幀。一旦所有模型都處理了完了這一幀,將切換到下一幀繼續(xù)這個循環(huán)。
Flex Logix則隱藏了自己的FPGA特性。他們將配置在可編程產(chǎn)品內(nèi)部進行了固化,這意味著用戶將無法再將其作為FPGA使用。Flex Logix的路線基本游走在可編程FPGA和ML專用ASIC的邊緣。“我們的產(chǎn)品是混合型ASIC/FPGA,”Geoff Tate(Flex Logix CEO)說道。用戶直接對神經(jīng)網(wǎng)絡(luò)模型進行編程,而不是什么低層級的東西,包括eFPGA,就像Intel的用戶不會去寫是什么微代碼或者緩存算法一樣。
Flex Logix的模塊圖顯示芯片中嵌入了一個eFPGA,但只能被用來部署模型的高層次工具所調(diào)用,設(shè)計者無法直接和該eFPGA在底層產(chǎn)生互動。
對各個FPGA廠商的總結(jié)
Intel工具可以創(chuàng)建一個“shell”來覆蓋FPGA本身的硬件部分以及其所依附的板卡,就像高層次工具使用的板卡支持包(board support package)一樣。這些工具可以支持所有Intel支持的各類解決方案,無論是硬件的還是軟件的。所有改動都會影響最終FPGA碼流,即使改動是在高層次上進行的。至于軟件層面能修改什么,取決于AI引擎中可供使用的原語。Runtime模型可根據(jù)支持的原語進行修改。Intel支持部分重配功能。
Xilinx聚焦于改進工具滿足數(shù)據(jù)科學(xué)家的需求,將模型設(shè)計抽象到更高的,不需要使用HDL的層級。對于大型設(shè)計,Xilinx將FPGA碼流從參數(shù)(可直接從memory中加載)中進行分離。Xilinx也支持部分重配功能。
Achronix擁有兩套不同的設(shè)計模型。其一使用了“overlays”將模型實現(xiàn)在一個底層硬件模板上,從而讓數(shù)據(jù)科學(xué)家免于應(yīng)付HDL。其二則使用“direct graph”將定制的有向圖編譯進硬件中。
Lattice將設(shè)計文件和層layer、神經(jīng)元neuron以及權(quán)重weight進行剝離,使其完全獨立于FPGA碼流之外。
Microchip通過例化ML引擎IP來針對特定應(yīng)用。其硬件部分主要由其軟件工具控制。開發(fā)者只需將注意力放在模型上,用單獨的BLOB來解決網(wǎng)絡(luò)細節(jié)的問題。Microchip也支持硬件工程師自定義的網(wǎng)絡(luò)設(shè)計。
Flex Logix的推理引擎通過專用邏輯實現(xiàn),并依托于eFPGA。
雖然由于如今的一些ML應(yīng)用在幾年以后才會實現(xiàn)量產(chǎn),導(dǎo)致FPGA看起來在ML應(yīng)用中如日中天,但真正要等到ASSP進入市場后,F(xiàn)PGA的活力才能得到真正的檢驗?!靶滦虯SSP專注于特定配置,當(dāng)這些ASSP出現(xiàn)之后,業(yè)界才能繼續(xù)向前發(fā)展,計劃總是趕不上變化。”Ni(Xilinx)說道。
無論那些所謂的ASSP能否大獲成功,F(xiàn)PGA顯然還是在產(chǎn)品研發(fā)階段和小批量產(chǎn)品上有著自己無法替代的位置,因此在可以預(yù)見的將來,F(xiàn)PGA仍然還會是ML應(yīng)用中一道靚麗的風(fēng)景線。
評論
查看更多