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