FPGA用于AI的優(yōu)勢(shì)
問:AI的技術(shù)挑戰(zhàn)是什么?
本文引用地址:http://m.butianyuan.cn/article/201912/407978.htm答:Achronix目前關(guān)注的重點(diǎn)主要放在數(shù)據(jù)中心中的機(jī)器學(xué)習(xí)上。然而,隨著工業(yè)應(yīng)用領(lǐng)域中人工智能(AI)的興起,處理將需要向邊緣遷移,以減少延遲并實(shí)現(xiàn)網(wǎng)絡(luò)流量最小化。機(jī)器學(xué)習(xí)(ML)處理的特征隨著處理向邊緣遷移而改變;通常情況下,計(jì)算更多地側(cè)重于推理,而不是訓(xùn)練,盡管這并沒有將增強(qiáng)學(xué)習(xí)和邊緣訓(xùn)練等新模式出現(xiàn)排除在外。功耗在邊緣受到更多限制,每瓦特的性能通常是一種比原始性能更有用的衡量指標(biāo)。
數(shù)字格式也能夠被數(shù)量化以提高處理效率,其中浮點(diǎn)數(shù)將被優(yōu)化浮點(diǎn)數(shù)(例如bfloat16或塊浮點(diǎn)數(shù))或整數(shù)計(jì)算所取代。此外,數(shù)據(jù)中心里的訓(xùn)練和推理可以依靠巨大批量處理來提高計(jì)算效率;對(duì)更少聚合流量和邊緣推理的更低延遲的需要可以縮小處理批量的規(guī)模,直到理想的一個(gè)大小。這種情況不太適用于某些類型的處理器結(jié)構(gòu),而更好的應(yīng)對(duì)方案是采用優(yōu)化的處理單元陣列或可重新編程邏輯。此外,為具有大量權(quán)重應(yīng)用的網(wǎng)絡(luò)提供支持這一需求驅(qū)動(dòng)了對(duì)片內(nèi)/片外存儲(chǔ)器的層次結(jié)構(gòu)和對(duì)高速片外存儲(chǔ)器(GDDR6或HBM2)的需求。
邊緣處理的另一個(gè)特點(diǎn)是,因?yàn)榻咏罅康膫鞲衅鞫苿?dòng)了接口無處不在。不僅需要諸如CAN、PCIe、JESD204等多種接口,而且這些接口可以根據(jù)應(yīng)用或產(chǎn)品的類別進(jìn)行更改。此外,多個(gè)數(shù)據(jù)流需要被組合和操作,以便能夠去適應(yīng)處理需求。這些數(shù)據(jù)包提取、傳感器融合和位操作任務(wù)非常適合FPGA可以按位和按字節(jié)處理的靈活路由架構(gòu)。此外,當(dāng)需要一個(gè)新的傳感器接口或應(yīng)用發(fā)生變化時(shí),就可以編譯一個(gè)新的FPGA布局并將其下載到設(shè)備上以支持新需求,從而提供一個(gè)無縫的升級(jí)路徑。
Achronix公司 戰(zhàn)略與規(guī)劃部高級(jí)總監(jiān) Mike Fitton博士
問:貴公司是如何解決這些難點(diǎn)的?有哪些創(chuàng)新性的解決方案推薦?
答:盡管FPGA可以用于通用加速,但仍可以調(diào)整其架構(gòu)以最大限度地提高性能,同時(shí)降低成本和功耗;這也正是Achronix在其獨(dú)立Speedster7t FPGA器件以及Speedcore嵌入式FPGA中都在做的。Speedster7t可被用于多樣化的部署中來實(shí)現(xiàn)數(shù)據(jù)加速,包括我們最近宣布的與BittWare合作開發(fā)的PCIe格式加速卡。Speedcore嵌入式FPGA可以被集成在一個(gè)機(jī)器學(xué)習(xí)(ML)系統(tǒng)級(jí)芯片(SOC)中,并且通常在將數(shù)據(jù)饋送到專用的矩陣處理引擎之前就實(shí)現(xiàn)靈活的輸入輸出(IO)、數(shù)據(jù)提取、傳感器融合和預(yù)處理任務(wù)。
我們?cè)谌齻€(gè)關(guān)鍵領(lǐng)域進(jìn)行了創(chuàng)新,提高了機(jī)器學(xué)習(xí)的性能。
1. 需要將大量數(shù)據(jù)傳送到芯片上:高性能接口
2. 需要在芯片內(nèi)移動(dòng)數(shù)據(jù):高效的數(shù)據(jù)轉(zhuǎn)移
3. 需要以有限的成本和功耗去處理數(shù)據(jù):高效計(jì)算
高性能接口
這是FPGA可編程邏輯的一個(gè)典型優(yōu)勢(shì)所在,通常最新的高帶寬接口得到處理器或?qū)S眯酒С种埃际窍鹊玫紽PGA所提供的支持。例如,在處理器卸載這一應(yīng)用場(chǎng)景中,Achronix提供了首款支持PCIe Gen5的FPGA。在網(wǎng)絡(luò)連接方面,新發(fā)布的一些FPGA支持400G的速率,例如支持8x50G或4x100G收發(fā)器。
高效的數(shù)據(jù)轉(zhuǎn)移
一旦數(shù)據(jù)最終被送到芯片中,將數(shù)據(jù)傳輸?shù)教幚韱卧幸允蛊浔M可能完全地被加載至關(guān)重要。通過適當(dāng)?shù)募軜?gòu)性設(shè)計(jì),將能夠使處理單元的負(fù)載保持在其峰值速率的80%以上。
存儲(chǔ)器的層次結(jié)構(gòu)(包括內(nèi)部和外部存儲(chǔ)器)是其中的一個(gè)關(guān)鍵要素:包括平衡內(nèi)部存儲(chǔ)器的端口寬度和存儲(chǔ)器大小,也包括為外部(GDDR6)和封裝內(nèi)(HBM2)存儲(chǔ)器提供高速接口。在最新的Achronix Speedster7t系列FPGA器件中,我們提供了對(duì)GDDR6的支持,因?yàn)樗推渌蛇x方案相比,提供了更高的靈活性和更低的系統(tǒng)成本。由圖形處理應(yīng)用帶來的規(guī)模經(jīng)濟(jì)正在降低GDDR6的成本[https://semiengineering.com/hbm2-vs-gddr6-tradeoffs-in-dram]。
近年來出現(xiàn)的一個(gè)趨勢(shì)是在FPGA內(nèi)部構(gòu)建片上網(wǎng)絡(luò)(NoC)架構(gòu),以支持?jǐn)?shù)據(jù)在整個(gè)FPGA內(nèi)部實(shí)現(xiàn)轉(zhuǎn)移。在Achronix最新的FPGA系列芯片中,我們利用NoC將外部接口和存儲(chǔ)器(例如在PCIe、以太網(wǎng)和存儲(chǔ)器接口之間)以及FPGA內(nèi)核本身連在一起。后者非常重要,因?yàn)樗梢詫⒖删幊藤Y源從路由/連接任務(wù)中解放出來,并支持它們被應(yīng)用于更高價(jià)值的計(jì)算任務(wù)。
高效計(jì)算
雖然FPGA可以執(zhí)行通用的加速功能,但是這種器件的架構(gòu)可以被調(diào)整以面向諸如機(jī)器學(xué)習(xí)等某些工作負(fù)載實(shí)現(xiàn)最優(yōu)的效率。通常,F(xiàn)PGA具有支持高效乘法累加的硬件宏單元,它們通常被稱為“DSP單元模塊”。這些宏單元一直以來被配置為高效地支持FIR濾波。但是,在針對(duì)機(jī)器學(xué)習(xí)的應(yīng)用場(chǎng)景中,略微不同的架構(gòu)性選擇可能會(huì)對(duì)性能產(chǎn)生巨大的影響。例如,機(jī)器學(xué)習(xí)推理通常需要較低的位寬支持。Achronix的器件在32、16、8和4位之間具有完全可分割的整數(shù)算術(shù)支持;此外,例如bfloat16或塊浮點(diǎn)數(shù)等其他的數(shù)字格式通常也適用。Achronix硬MAC宏單元原生支持浮點(diǎn)和塊浮點(diǎn),其中多個(gè)樣本具有各自不同的尾數(shù),但共享一個(gè)相同的指數(shù)。這樣就提供了接近浮點(diǎn)的性能,但其復(fù)雜性和功耗更類似于整數(shù)計(jì)算。
通過整體性而不是孤立地考慮數(shù)據(jù)處理和數(shù)據(jù)轉(zhuǎn)移,就可以實(shí)現(xiàn)更多的優(yōu)化。具體來說,在構(gòu)成機(jī)器學(xué)習(xí)的基本矩陣和向量數(shù)學(xué)運(yùn)算中,可以利用大量的數(shù)據(jù)局部性。數(shù)據(jù)局部性以共享權(quán)重來表示,并在相鄰的計(jì)算之間重復(fù)使用激活數(shù)據(jù)。通過緊密將存儲(chǔ)器和處理單元集成在一起,可降低功耗(因?yàn)橐褜?shù)據(jù)轉(zhuǎn)移量降至最少)并提高性能(因?yàn)椴恍枰穆酚少Y源來連接存儲(chǔ)器和MAC)。這種優(yōu)化方法在諸如波束成形和雷達(dá)等采用矩陣數(shù)學(xué)的或利用數(shù)據(jù)局部性(例如FFT)的相鄰應(yīng)用中具有額外的好處。
簡歷:Mike Fitton博士是Achronix公司戰(zhàn)略與規(guī)劃部高級(jí)總監(jiān)。他在信號(hào)處理領(lǐng)域擁有25年以上的經(jīng)驗(yàn),涉及包括系統(tǒng)架構(gòu)、算法開發(fā)、半導(dǎo)體、無線運(yùn)營商、網(wǎng)絡(luò)基礎(chǔ)設(shè)施以及最新的機(jī)器學(xué)習(xí)等領(lǐng)域。
評(píng)論