FPGA幫助改進(jìn)機(jī)器學(xué)習(xí)的模型訓(xùn)練過程_第1頁
FPGA幫助改進(jìn)機(jī)器學(xué)習(xí)的模型訓(xùn)練過程_第2頁
FPGA幫助改進(jìn)機(jī)器學(xué)習(xí)的模型訓(xùn)練過程_第3頁
FPGA幫助改進(jìn)機(jī)器學(xué)習(xí)的模型訓(xùn)練過程_第4頁
FPGA幫助改進(jìn)機(jī)器學(xué)習(xí)的模型訓(xùn)練過程_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

FPGA幫助改進(jìn)機(jī)器學(xué)習(xí)的模型訓(xùn)練過程機(jī)器學(xué)習(xí)(MachineLearning,ML)技術(shù)和FPGA的聯(lián)系可以體現(xiàn)在下面幾個(gè)維度上:1.FPGA幫助改進(jìn)機(jī)器學(xué)習(xí)的模型訓(xùn)練過程(FPGA應(yīng)用)2.機(jī)器學(xué)習(xí)幫助改進(jìn)FPGA的設(shè)計(jì)代碼/約束(FPGA應(yīng)用)3.機(jī)器學(xué)習(xí)幫助改進(jìn)FPGA軟件(EDA)算法設(shè)計(jì)(FPGA軟件設(shè)計(jì))4.機(jī)器學(xué)習(xí)幫助改良FPGA芯片硬件設(shè)計(jì)(FPGA硬件設(shè)計(jì))本篇先分享從第1個(gè)維度出發(fā)的一些觀點(diǎn)。FPGA傳統(tǒng)上被用作設(shè)計(jì)新數(shù)字芯片的早期驗(yàn)證原型已經(jīng)很久了,但隨著機(jī)器學(xué)習(xí)技術(shù)的出現(xiàn),F(xiàn)PGA體現(xiàn)出了有別于傳統(tǒng)應(yīng)用更多的特質(zhì)。在FPGA在其傳統(tǒng)市場(chǎng)因價(jià)格昂貴、難于上手而步履維艱時(shí),ML為其打開了一片廣闊的市場(chǎng)。FPGA最大的特點(diǎn)在于其可編程的靈活性,這一點(diǎn)恰好在機(jī)器學(xué)習(xí)這種多變的場(chǎng)景下極為合適。不僅應(yīng)用時(shí)刻在變化,網(wǎng)絡(luò)和模型也在訓(xùn)練的過程中不斷進(jìn)化,針對(duì)這種場(chǎng)景,不同F(xiàn)PGA廠商有著各自不同的應(yīng)對(duì)方案?!癎PU、FPGA以及ASIC之間,正在進(jìn)行一場(chǎng)曠日持久的戰(zhàn)爭(zhēng)”,AnoopSaha(marketdevelopmentmanageratMentor,aSiemensBusiness)說道,“如果FPGA廠商無法提供合適的【工具】,他們將在ML這個(gè)市場(chǎng)上毫無機(jī)會(huì)。”最早的ML應(yīng)用實(shí)現(xiàn)是軟件導(dǎo)向的,并對(duì)CPU和GPU產(chǎn)生了巨大影響。但CPU和GPU面臨的挑戰(zhàn)在于其巨大的功耗——即使對(duì)于數(shù)據(jù)中心來說也是這樣。“人們?cè)囍密浖?shí)現(xiàn)創(chuàng)新,但卻無法控制功耗,”PatrickDorsey(generalmanagerandvicepresidentofproductmarketing,F(xiàn)PGAandpowerproductsinIntel’sProgrammableSolutionsGroup)說道。因此,F(xiàn)PGA提供了一套比傳統(tǒng)軟件編程在功耗方面更具吸引力的解決方案?!盕PGA由于其并行性特別適合于高性能,低功耗應(yīng)用,“ShakeelPeera(associatevicepresidentinMicrochip’sFPGAbusinessunit)說道?!拔覀兛吹皆赥OPS/W(每瓦進(jìn)行多少萬億次操作)性能方面,Intel的FPGA方案已經(jīng)打敗Nvidia的GPU方案?!盌orsey(Intel)說。FPGA可以提供軟件解決方案無法企及的低延遲和高性能?!癆SIC可以達(dá)到5TOPS/W,而FPGA也可以達(dá)到1-2TOPS/W,”MikeFitton(seniordirectorofstrategyandplanningforAchronix)說道。價(jià)格對(duì)于成熟產(chǎn)品來說十分重要,但ML應(yīng)用通常還沒有到形成成熟產(chǎn)品程度,因?yàn)槟P蜁r(shí)刻不停地在飛速迭代,“FPGA雖然對(duì)于應(yīng)用在成熟產(chǎn)品上來說并不合適,”NickNi(directorofproductmarketingforAIandsoftwareatXilinx)說道,“但比如一些監(jiān)控?cái)z像頭的應(yīng)用,其識(shí)別算法還遠(yuǎn)未成熟,F(xiàn)PGA則是最好的選擇。”但也并不是說,在AI應(yīng)用中,完全不用考慮成本,畢竟總還是有人會(huì)關(guān)心總持有成本(totalcostofownership,TCO)的。如果說這種絕對(duì)靈活的解決方案統(tǒng)治了早期的AI市場(chǎng),那么接下來便通常會(huì)演化成ASSP(application-specificstandardproducts)方案,以提供更佳的性能/功耗比,即使ASSP依然要在二者之間做出艱難的平衡。從數(shù)據(jù)中心到邊緣計(jì)算FPGA在數(shù)據(jù)中心加速應(yīng)用中找到了自己的用武之地——作為CPU和GPU的協(xié)處理引擎。在數(shù)據(jù)中心的訓(xùn)練(training)方面確實(shí)如此,而且目前的應(yīng)用也已擴(kuò)展到了推理(inference)中。另外,大量的推理工作集中在邊緣側(cè)進(jìn)行—特別是汽車應(yīng)用。汽車應(yīng)用大都對(duì)成本和功耗非常敏感,但是由于ASSP方案的缺乏以及設(shè)計(jì)的快速更新迭代,F(xiàn)PGA得以在和傳統(tǒng)處理器的PK中脫穎而出。“FPGA在邊緣側(cè)優(yōu)勢(shì)巨大,尤其是在性能方面。”Saha(Mentor)說道。同時(shí),根據(jù)Synopsys的說法,“accumulation”市場(chǎng)也是一個(gè)增長(zhǎng)點(diǎn)——例如數(shù)據(jù)中心和邊緣之間網(wǎng)絡(luò)上的路由和開關(guān)器件?!坝泻芏鄳?yīng)用場(chǎng)景是用戶只是想和‘AI’沾點(diǎn)邊而已,”Dorsey(Intel)說道,“三到四成的傳統(tǒng)嵌入式業(yè)務(wù)都在討論如何和AI進(jìn)行結(jié)合?!痹O(shè)計(jì)模型面臨挑戰(zhàn)硬件編程解決方案既然具有如此多的優(yōu)勢(shì),那么問題來了,“為什么不是所有人都在使用FPGA呢?”回答也很簡(jiǎn)單:FPGA是純硬件。這也是FPGA的“阿克琉斯之踵”。根據(jù)美國(guó)勞動(dòng)統(tǒng)計(jì)局的數(shù)據(jù),全美在2018年5月軟件工程師(包括應(yīng)用編程和系統(tǒng)軟件開發(fā))的數(shù)量大約是硬件工程師的21.5倍。硬件開發(fā)工作專注于低層次的硬件描述語言(HDL,更多的是描述硬件結(jié)構(gòu)而不是描述算法本身),這和軟件開發(fā)的思路完全不同,絕大多數(shù)工程師無法跨越這兩種開發(fā)理念而做到融會(huì)貫通。FPGA大部分時(shí)候需要硬件設(shè)計(jì),這使得FPGA應(yīng)用工程師的門檻很高?;谟布O(shè)計(jì)的ML策略往往開發(fā)量巨大,Saha(Intel)曾聽一個(gè)用戶說道,“我們知道FPGA的優(yōu)勢(shì),但在得知設(shè)計(jì)需要4-5個(gè)工程師8-10個(gè)月才能完成之后,我們放棄了。..”大多數(shù)FPGA解決方案包括軟件編程引擎——無論是硬編碼還是IP。這部分灰色區(qū)域造成了FPGA解決方案往往是既包含硬件開發(fā)又包含軟件開發(fā)。對(duì)于ML來說最大的挑戰(zhàn)并不僅僅來自硬件/軟件在開發(fā)理念上的不同。對(duì)于精通高層次開發(fā)語言的數(shù)據(jù)科學(xué)家來說(他們并非純軟件開發(fā)者,但依然和真正的硬件開發(fā)有些距離),他們依然無法做到得心應(yīng)手。因此FPGA廠商要做的是在工具中將硬件的部分“抽離”出去,讓數(shù)據(jù)科學(xué)家們得以進(jìn)入FPGA開發(fā)圈。硬件結(jié)構(gòu)對(duì)于ML計(jì)算來說十分重要,其可由硬件工程師來設(shè)計(jì),但進(jìn)一步優(yōu)化則可以交給軟件工程師來進(jìn)行。軟件工程師通過高層次工具例化各類IP,從而避免了大量硬件方面的工作。為了實(shí)現(xiàn)這一目標(biāo),必須考慮兩個(gè)重要因素:設(shè)計(jì)流程和設(shè)計(jì)工具。一些FPGA公司將設(shè)計(jì)流程進(jìn)行了分離,使得硬件設(shè)計(jì)從模型設(shè)計(jì)中解耦出來,這類做法使得FPGA對(duì)于非硬件工程師來說更加友好。FPGA設(shè)計(jì)細(xì)節(jié)一般以碼流的形式下載到器件中,但在ML中,有的公司將整個(gè)模型實(shí)現(xiàn)在碼流中,有的則只用碼流實(shí)現(xiàn)硬件部分,而轉(zhuǎn)用軟件二進(jìn)制文件來描述ML模型細(xì)節(jié)。

FPGA上實(shí)現(xiàn)的2個(gè)ML簡(jiǎn)單設(shè)計(jì)模型。左邊,設(shè)計(jì)的所有細(xì)節(jié)實(shí)現(xiàn)在一個(gè)碼流中。數(shù)據(jù)科學(xué)家可以在高層次上進(jìn)行設(shè)計(jì),由EDA工具將其轉(zhuǎn)化并交給硬件編譯器。右邊,高層次模型數(shù)據(jù)存在了一個(gè)單獨(dú)的軟件二進(jìn)制文件中,而模型何時(shí)變化的信息則存在硬件碼流之中。設(shè)計(jì)模型包含了已現(xiàn)場(chǎng)部署的FPGA器件中正在運(yùn)行的設(shè)計(jì)修改和更新。第一種情況由于整個(gè)設(shè)計(jì)信息包含在碼流之中,模型的變化仍然將繼續(xù)使用低層次的FPGA硬件工具去創(chuàng)建和更新碼流文件,即使高層次設(shè)計(jì)工具已經(jīng)將設(shè)計(jì)師從硬件設(shè)計(jì)中解放出來。另一種情況,模型的變化僅僅會(huì)導(dǎo)致軟件二進(jìn)制文件的變化,而軟件二進(jìn)制文件的編譯速度要遠(yuǎn)遠(yuǎn)快于硬件碼流的生成速度,因此底層硬件通常不變,而僅僅是模型參數(shù)發(fā)生變化而已,而軟件和硬件具體如何變化,由架構(gòu)設(shè)計(jì)來自行決定。高層次綜合(HLS)的出現(xiàn),減輕了硬件設(shè)計(jì)的負(fù)擔(dān),因?yàn)槠淇梢灾苯訉算法轉(zhuǎn)化為硬件設(shè)計(jì)。很多算法都從軟件設(shè)計(jì)開始(通常是C或者C++),將其直接轉(zhuǎn)化為硬件設(shè)計(jì)將極大地節(jié)省設(shè)計(jì)時(shí)間(盡管使用HLS仍然需要一些硬件專業(yè)知識(shí))。目前HLS最大的挑戰(zhàn)來自于調(diào)試Debug過程。優(yōu)化推理模型所有的FPGA工具鏈均工作在抽象層級(jí),并和云端的標(biāo)準(zhǔn)模型訓(xùn)練框架相連。在頂層,訓(xùn)練過程會(huì)對(duì)參數(shù)(或權(quán)重)進(jìn)行定義,并將其放入常用的模型(比如ResNet,MobileNet,或者YOLO)之中。這些參數(shù)可以僅僅是簡(jiǎn)單的數(shù)字并存儲(chǔ)在數(shù)據(jù)文件中。網(wǎng)絡(luò)結(jié)構(gòu)本身則是下一層級(jí)。層級(jí)的精簡(jiǎn)和融合就是在訓(xùn)練網(wǎng)絡(luò)中優(yōu)化的過程,在一些引擎中,這個(gè)過程由軟件原語完成,而在另一些引擎中,則會(huì)導(dǎo)致硬件變化。為了能夠進(jìn)行在線升級(jí),修改碼流意味著重置整個(gè)FPGA設(shè)計(jì)。如果更新只是影響到軟件二進(jìn)制文件,則只需要修改這個(gè)文件即可,硬件碼流此時(shí)無需更換?!澳憧梢愿鶕?jù)不同模型準(zhǔn)備不同的軟件二進(jìn)制文件,”JoeMallett(seniormarketingmanageratSynopsys)說道。如果涉及到硬件修改,部分重配(PR)也能幫上你的忙,因?yàn)橥辉O(shè)計(jì)模型用來建立不同的算法,可以通過部分重配來實(shí)現(xiàn)算法間的切換。這項(xiàng)技術(shù)在數(shù)據(jù)中心加速板卡上顯得十分強(qiáng)大,而這類板卡在不同類型的推理和訓(xùn)練中不可或缺。Intel聲稱他們的重配時(shí)間大概需要100ms左右,并且該公司正在致力于將這個(gè)時(shí)間降低到幾十個(gè)毫秒,從而實(shí)現(xiàn)FPGA加速卡的快速再部署。不同F(xiàn)PGA廠商的策略就在眾多start-up公司廣泛地在ML領(lǐng)域展開探索的同時(shí),F(xiàn)PGA廠商也在嘗試各種不同的方法,以至于他們的FPGA做的“越來越不像”FPGA了?,F(xiàn)代的FPGA大都同時(shí)提供硬件編程性以及軟件編程性(嵌入式處理器核心作為硬核直接在FPGA中工作)。這造就了不同F(xiàn)PGA廠商有著自己的實(shí)現(xiàn)策略。目前最大的兩個(gè)FPGA玩家—Xilinx以及Intel有著截然不同的發(fā)展思路。Intel通過寬廣的產(chǎn)品線來實(shí)現(xiàn)戰(zhàn)略,F(xiàn)PGA只是其中一個(gè)拼圖。Intel同時(shí)擁有Xeon處理器,該處理器是數(shù)據(jù)中心上絕對(duì)暴力的存在,并且Intel還在不斷完善其現(xiàn)有解決方案。Intel的FPGA還只由傳統(tǒng)資源組成,截止到目前,還沒有看到ML專用處理資源模塊的出現(xiàn)。內(nèi)存獲取是ML正在面臨的一大挑戰(zhàn),對(duì)于FPGA解決方案來說也是一樣。Intel的思路則是引入HBM(高帶寬存儲(chǔ))技術(shù)。“我們?cè)贔PGA中加入了許多HBM,并將其放在離邏輯運(yùn)算模塊很近的位置,從而幫助循環(huán)神經(jīng)網(wǎng)絡(luò)RNN(recurrentneuralnetworks)進(jìn)行語音識(shí)別”,Dorsey(Intel)說道。目前,HBM和FPGA的2D集成通過Intel的EMIB(嵌入式片間互連橋)連接器來實(shí)現(xiàn)。Xilinx則朝向另一個(gè)方向前進(jìn),將ML引擎加入到Versal家族器件中去。該硬模塊讓Xilinx在犧牲一定芯片靈活性為代價(jià)獲得更高的效率。ML引擎由軟件驅(qū)動(dòng),因此不那么依賴硬件設(shè)計(jì)的考慮。Achronix則和Intel一樣采取了同質(zhì)策略,盡管他們聲稱微調(diào)了DSP模塊,使其更加適應(yīng)ML工作。其老版DSP的優(yōu)化方向更傾向于傳統(tǒng)數(shù)字信號(hào)處理,例如濾波器,因此聚焦于18-bit數(shù)據(jù)。ML則傾向于更小的數(shù)據(jù)單元——特別是在邊緣側(cè)——因此,新型DSP的優(yōu)化方向聚焦于80bit整形數(shù)據(jù)。值得注意的是,Achronix同時(shí)提供FPGA成片和可供嵌入到SoC中的eFPGAIP。Lattice則一直專注于低成本,低功耗市場(chǎng),并且在ML應(yīng)用中,Lattice依然保持了他們的特點(diǎn)。他們將一些小功能(例如語音喚醒識(shí)別)加入到邊緣器件中,作為ML處理的初步嘗試?!拔覀兯龅耐评砉ぷ髦饕莻蓽y(cè)(detection),比如識(shí)別關(guān)鍵語句和手勢(shì)?!監(jiān)sman(Lattice)說道。Microchip方面,正在推出其全新的VectorBlox工具,用以服務(wù)于其PolarFire系列FPGA。他們的策略則認(rèn)為硬件設(shè)計(jì)工作并不是在FPGA上做ML所必需的。Microchip在FPGA提供可例化的引擎IP,剩下的模型信息則用軟件來處理并最終生成一個(gè)軟件二進(jìn)制文件——這個(gè)文件通常被稱為BLOB(binarylargeobject),且文件體積很大。使用該BLOB文件,Microchip可以同時(shí)管理多種ML模型。例化多個(gè)引擎可以使得其具有完全并發(fā)的處理方式,除此之外,例化單一引擎仍可以通過順序或者類并發(fā)的方式控制多個(gè)模型。該引擎可以將模型信息從內(nèi)存中的BLOB中抽離出來。如果有多個(gè)軟件二進(jìn)制文件,則由指針的指向決定某一時(shí)刻使用哪一個(gè)BLOB中的信息,而這個(gè)被指定的BLOB并不是完全加載進(jìn)來,而是只用到和模型相關(guān)的部分?!扒袚QBLOB就像改變指針位置一樣。當(dāng)某個(gè)MXP(矩陣處理器,matrixprocessor)運(yùn)行時(shí),它BLOB中的layer信息便被抽離出來。在多個(gè)神經(jīng)網(wǎng)絡(luò)之間切換幾乎可以不耗費(fèi)任何時(shí)間,”JamieFreed(seniorarchitectfortheFPGABusinessUnitatMicrochip)說道。這種近似并發(fā)的特性則通過時(shí)間分片(time-slicing)技術(shù)來實(shí)現(xiàn)。如果一個(gè)視頻在同一時(shí)間被多個(gè)模型所處理,則這些模型依次運(yùn)行完整的一幀。一旦所有模型都處理了完了這一幀,將切換到下一幀繼續(xù)這個(gè)循環(huán)。FlexLogix則隱藏了自己的FPGA特性。他們將配置在可編程產(chǎn)品內(nèi)部進(jìn)行了固化,這意味著用戶將無法再將其作為FPGA使用。FlexLogix的路線基本游走在可編程FPGA和ML專用ASIC的邊緣?!拔覀兊漠a(chǎn)品是混合型ASIC/FPGA,”GeoffTate(FlexLogixCEO)說道。用戶直接對(duì)神經(jīng)網(wǎng)絡(luò)模型進(jìn)行編程,而不是什么低層級(jí)的東西,包括eFPGA,就像Intel的用戶不會(huì)去寫是什么微代碼或者緩存算法一樣。FlexLogix的模塊圖顯示芯片中嵌入了一個(gè)eFPGA,但只能被用來部署模型的高層次工具所調(diào)用,設(shè)計(jì)者無法直接和該eFPGA在底層產(chǎn)生互動(dòng)。對(duì)各個(gè)FPGA廠商的總結(jié)Intel工具可以創(chuàng)建一個(gè)“shell”來覆蓋FPGA本身的硬件部分以及其所依附的板卡,就像高層次工具使用的板卡支持包(boardsupportpackage)一樣。這些工具可以支持所有Intel支持的各類解決方案,無論是硬件的還是軟件的。所有改動(dòng)都會(huì)影響最終FPGA碼流,即使改動(dòng)是在高層次上進(jìn)行的。至于軟件層面能修改什么,取決于AI引擎中可供使用的原語。Runtime模型可根據(jù)支持的原語進(jìn)行修

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論