過去幾年,,FPGA的CAGR大約一直保持在8-10%左右,,隨著該類器件在AI應(yīng)用中的擴(kuò)張,未來5年其CAGR增長將高達(dá)38.4%,!根據(jù)市場調(diào)研公司Semico Research的預(yù)測,,人工智能應(yīng)用中FPGA的市場規(guī)模將在未來4年內(nèi)增長3倍,達(dá)到52億美元,。為了保持競爭力,,目前全球有25%的企業(yè)實(shí)施了人工智能/機(jī)器學(xué)習(xí)(AI/ML),而兩年內(nèi),,這一比例將增長到72%,,以更好地獲得核心職能方面的商業(yè)洞察力。
圖:企業(yè)AI/ML部署需求增長趨勢
來源:WSJ pro
伴隨這一趨勢,,AI的算法在不斷演進(jìn),,對數(shù)值精度的選擇要求也更加多元,高效算力,、高效豐富的存儲緩存能力以及高效大帶寬的數(shù)據(jù)運(yùn)送能力,,是AI/ML硬件解決方案所面臨的主要挑戰(zhàn)。系統(tǒng)開發(fā)者會利用FPGA架構(gòu)去優(yōu)化功耗,、性能和靈活性,,并突破處理單元在效率上的瓶頸,包括計(jì)算引擎,、內(nèi)存層次結(jié)構(gòu)和數(shù)據(jù)移動(dòng),。
圖:算法和精度要求不同給處理帶來挑戰(zhàn)
就AI的應(yīng)用而言,不同場景應(yīng)用對FPGA的需求不同,。通常云計(jì)算中的應(yīng)用主要是需要FPGA在AI/ML和高帶寬數(shù)據(jù)加速上的能力,,而在端側(cè)則需要在高靈活性的同時(shí)還要具有ASIC的性能。雖然,,F(xiàn)PGA已經(jīng)大量應(yīng)用于泛AI領(lǐng)域,,但它是否很好的滿足這兩個(gè)方面的需求,還是一個(gè)值得探討的話題,。
重構(gòu)FPGA架構(gòu)
縱觀FPGA產(chǎn)品的演進(jìn)歷史(包括器件的產(chǎn)生),,每一次大的迭代都是一種設(shè)計(jì)方法論的革新,,從這個(gè)角度看,Achronix公司最近發(fā)布的Speedster7t針對上述兩個(gè)應(yīng)用場景上進(jìn)行的優(yōu)化都可以看做方法論上的革新,。在開發(fā)Speedster7t的過程中,,Achronix的工程團(tuán)隊(duì)完全重新構(gòu)想了整個(gè)FPGA架構(gòu),以平衡片上處理,、互連和外部輸入輸出接口,,實(shí)現(xiàn)數(shù)據(jù)密集型應(yīng)用吞吐量的最大化,這些應(yīng)用場景可見于那些基于邊緣和基于服務(wù)器的AI/ML應(yīng)用,、網(wǎng)絡(luò)處理和存儲,。
“Speedster7t是我們歷史上最令人激動(dòng)的發(fā)布,代表了建立在四個(gè)架構(gòu)代系的硬件和軟件開發(fā)基礎(chǔ)上的創(chuàng)新和積淀,。”Achronix公司董事長兼首席執(zhí)行官Robert Blake介紹,,“該器件采用TSMC的7nm FinFET工藝制造,,專為ML和高帶寬網(wǎng)絡(luò)應(yīng)用進(jìn)行了優(yōu)化?!?/p>
具體而言,,相較于目前的FPGA,Speedster7t革新之處在于設(shè)計(jì)了針對ML的處理器(MLP),,以及一個(gè)可橫跨和垂直跨越FPGA邏輯陣列的高帶寬的二維片上網(wǎng)絡(luò)(NOC),,二者結(jié)合既保留了FPGA的靈活性,又實(shí)現(xiàn)了ASIC的性能,。
不占用FPGA布線的MLP單元
這個(gè)片內(nèi)的MLP是高度可配置的,、計(jì)算密集型的單元模塊,可支持4到24位的整點(diǎn)格式和高效的浮點(diǎn)模式,,包括對TensorFlow的16位格式的支持,,以及可使每個(gè)MLP的計(jì)算引擎加倍的增壓塊浮點(diǎn)格式的直接支持。該MLP可以通過運(yùn)算和緩存級鏈實(shí)現(xiàn)更復(fù)雜的算法,,而不需要使用FPGA布線資源,。
“目前FPGA會使用DSP來進(jìn)行ML的處理,但其對數(shù)值精度的支持并不高效,,并且需要消耗額外邏輯和存儲資源,,其性能也受限于FPGA布線?!盉lake說,,“DSP常用于無線數(shù)字濾波的處理,而Speedster7t中的MLP則在計(jì)算架構(gòu),、緩存(內(nèi)嵌),、可配置算法以及對整點(diǎn)和浮點(diǎn)的支持上提供了更好的AI/ML的計(jì)算性能和能效比,。”
圖:在FPGA中采用MLP(右)比DSP(左)更適用于AI/ML處理
二維片上網(wǎng)絡(luò)——NOC
NOC是在FPGA路由結(jié)構(gòu)上的另一個(gè)重要革新,。這一設(shè)計(jì)主要針對FPGA的片上處理引擎之間所需的高帶寬通信,。Speedster7t片上資源包括8個(gè)GDDR6控制器、72個(gè)業(yè)界SerDes(1到112 Gbps),、帶有前向糾錯(cuò)(FEC)的硬件400G以太網(wǎng)MAC(4x100G或8x50G的配置),,以及硬件PCI Express Gen5控制器(每個(gè)控制器有8個(gè)或16個(gè)通道)。
這些高速I/O和存儲器端口的數(shù)萬兆比特?cái)?shù)據(jù)很容易淹沒傳統(tǒng)FPGA面向比特位的可編程互連邏輯陣列的路由容量,,而Speedster7t通過NOC把它們連接到所有FPGA的高速數(shù)據(jù)和存儲器接口,。NOC和FPGA功能之間通過網(wǎng)絡(luò)接入點(diǎn)NAP連接,每個(gè)水平行和垂直列的交叉點(diǎn)都有NAP(主NAP和從NAP),。NoC中的每行/列都可同時(shí)為每個(gè)方向提供512Gbps的數(shù)據(jù)流量,,其鏈路雙向運(yùn)行,最大的設(shè)備帶寬可以達(dá)到20Tbps,。
“最重要的是,,NOC消除了傳統(tǒng)FPGA使用可編程路由和邏輯查找表資源在整個(gè)FPGA中移動(dòng)數(shù)據(jù)流中出現(xiàn)的擁塞和性能瓶頸?!盉lake說,,“這種高性能網(wǎng)絡(luò)不僅可以提高Speedster7t FPGA的總帶寬容量,還可以在降低功耗的同時(shí)提高有效LUT容量,?!?/p>
圖:NOC是在FPGA路由結(jié)構(gòu)上的另一個(gè)重要革新
的確,NOC這一方法解決了GDDR6,、400G以太網(wǎng)MAC這些片上資源間海量數(shù)據(jù)傳輸?shù)膯栴},。Speedster7t是目前市面唯一支持GDDR6存儲器的FPGA,可以支持4 Tbps的GDDR6累加帶寬,,可以很小的成本提供與基于HBM的FPGA等效存儲帶寬,。相較于HBM,GDDR6只需要一半的成本就可以滿足高存儲層次和帶寬的需求,,并且,,HBM是固化的塊,GDDR6則更靈活,,用戶可以選擇不同容量和帶寬,。
NOC也解決了傳統(tǒng)FPGA的運(yùn)行速度無法滿足任何400G以太網(wǎng)總線寬度要求的問題,400G以太網(wǎng)的總線大小達(dá)1024bit,,所需的最高頻率達(dá)到724 MHz,,這在傳統(tǒng)FPGA中無法實(shí)現(xiàn),NOC由于消除了傳統(tǒng)設(shè)計(jì)中與FPGA布線相關(guān)的延遲,,所以可以最高支持750 MHz的頻率,,這滿足了MLP和嵌入式存儲器模,、400G以太網(wǎng)MAC及高速SerDes之間的數(shù)據(jù)傳輸。