隨著旨在解決現(xiàn)代算法加速工作負(fù)載的設(shè)備越來越多,就必須能夠在高速接口之間和整個器件中有效地移動高帶寬數(shù)據(jù)流。Achronix的Speedster?7t獨(dú)立FPGA芯片可以通過集成全新的、高度創(chuàng)新的二維片上網(wǎng)絡(luò)(2D NoC)來處理這些高帶寬數(shù)據(jù)流。Achronix的FPGA中特有的2D NoC實(shí)現(xiàn)是一種創(chuàng)新,它與用可編程邏輯資源來實(shí)現(xiàn)2D NoC的傳統(tǒng)方法相比,有哪些創(chuàng)新和價值呢?本白皮書討論了這兩種實(shí)現(xiàn)2D NoC的方法,并提供了一個示例設(shè)計,以展示與軟2D NoC實(shí)現(xiàn)相比,Achronix 2D NoC是如何去提高性能、減少面積并縮短設(shè)計時間。
介紹
Achronix為其Speedster7t系列FPGA完全重新設(shè)計了片上通信架構(gòu),通過集成創(chuàng)新的2D NoC來適應(yīng)高帶寬數(shù)據(jù)流的需求。在該FPGA器件的外圍,這個2D NoC連接到所有高速接口:包括多個400G以太網(wǎng)、PCIe Gen5、GDDR6和DDR4/5端口。在該FPGA內(nèi)的可編程邏輯陣列上部署了一系列高速行和列通道,它們分別向FPGA可編程邏輯陣列的水平和垂直方向分配網(wǎng)絡(luò)流量。除了這些行和列之外,在NoC的每一行和每一列交叉的位置還有發(fā)送點(diǎn)和目標(biāo)NoC訪問節(jié)點(diǎn)(NAP)。這些NAP充當(dāng)NoC和位于可編程邏輯陣列中的資源之間的源或目的地。
為了將Achronix FPGA中內(nèi)置的2D NoC,與使用傳統(tǒng)方法在可編程邏輯陣列中創(chuàng)建的NoC進(jìn)行比較,為此我們評估了幾種軟NoC設(shè)計;最后,基于同行評審和FPGA結(jié)構(gòu)的可移植性,我們選擇了米蘭理工學(xué)院的軟2D NoC(https://github.com/agalimberti/NoCRouter,2017)設(shè)計。這種軟NoC在單向網(wǎng)狀網(wǎng)絡(luò)(mesh)中實(shí)現(xiàn)了蟲洞前瞻預(yù)測切換。在實(shí)施時,它需要每個mesh節(jié)點(diǎn)上的多個存儲器來存儲和轉(zhuǎn)發(fā)流控制單元(flit)。
為了量化片上2D NoC實(shí)現(xiàn)模式和使用邏輯陣列資源的軟實(shí)現(xiàn)模式之間的差異,首先創(chuàng)建了一個實(shí)例化AlexNet 2D卷積的19個實(shí)例設(shè)計,然后在完整的2D NoC設(shè)計之間比較了三個主要指標(biāo):所需資源、設(shè)計性能和設(shè)計時間(創(chuàng)建設(shè)計的時間以及在工具中編譯設(shè)計的時間)。其結(jié)果是在所有三種情況下,集成Achronix 2D NoC的性能都明顯優(yōu)于軟實(shí)現(xiàn)。
2D NoC減少使用的資源
為了比較兩種不同的2D NoC設(shè)計,兩種2D NoC都與現(xiàn)有的2D卷積(conv2d)設(shè)計相結(jié)合。conv2d設(shè)計對輸入圖像執(zhí)行AlexNet 2D卷積。此conv2d設(shè)計需要一個或兩個AXI-4連接:一個用于從內(nèi)存讀取,一個用于寫入內(nèi)存,或者一個共享的AXI-4執(zhí)行讀取和寫入。為了實(shí)現(xiàn)與軟NoC的最佳集成,選擇了單個共享AXI-4接口,conv2d模塊的實(shí)例位于每個mesh節(jié)點(diǎn)。然后,軟NoC啟用了GDDR6存儲接口的數(shù)據(jù)入口和出口——在軟NoC中,內(nèi)存接口連接到第20個mesh節(jié)點(diǎn)上;而在內(nèi)置式NoC中,這種連接已經(jīng)存在。在整個設(shè)計中,從GDDR6到每個conv2d節(jié)點(diǎn)都存在節(jié)點(diǎn)到節(jié)點(diǎn)通信,但conv2d節(jié)點(diǎn)之間不通信。
Achronix 2D NoC的設(shè)計細(xì)節(jié)
該設(shè)計有19個conv2d模塊實(shí)例,每個實(shí)例都訪問GDDR6存儲器。第20個實(shí)例是空閑的,因為GDDR6接口直接連接到集成的2D NoC。80個可用的NoC接入點(diǎn)(NAP)中有38個用于連接到conv2d實(shí)例。每個conv2d實(shí)例使用64個機(jī)器學(xué)習(xí)處理器(MLP),它在垂直方向覆蓋兩個NAP。由于這種部署是針對內(nèi)置2D NoC,所以采用雙AXI-4方法連接conv2d模塊。下表列出了本設(shè)計中使用的資源。
表1:Achronix 2D NoC使用的資源
使用Achronix FPGA集成的2D NoC,可為設(shè)計布局產(chǎn)生了一種不凌亂的、可重復(fù)的結(jié)構(gòu),并且只消耗了不到一半的器件資源。下面是AC7t1500器件中資源使用的平面圖。
圖1:在AC7t1500中使用Achronix 2D NoC布局實(shí)例
軟2D NoC的設(shè)計細(xì)節(jié)
該設(shè)計被配置為5 × 4規(guī)模mesh,具有19個conv2d模塊實(shí)例,每個實(shí)例都連接到一個軟NoC節(jié)點(diǎn)。其第20 mesh節(jié)點(diǎn)是為GDDR6接口預(yù)留的。因此,需要更多的邏輯資源來管理軟2D NoC結(jié)構(gòu)。此實(shí)現(xiàn)還需要每個節(jié)點(diǎn)上的存儲,以便存儲flit并將其轉(zhuǎn)發(fā)到下一個節(jié)點(diǎn)。結(jié)果是顯著提高了資源的使用量,以及在器件上的不規(guī)則布局。下表列出了使用的資源;下圖為AC7t1500所用資源的平面圖。
表2:軟2D NoC使用的資源
?
圖2:使用軟2D NoC布局實(shí)例
2D NoC提高性能
如前所述,通過使用Achronix 2D NoC,conv2d設(shè)計產(chǎn)生了規(guī)則的資源布局,從而形成規(guī)則的布線。減少了邏輯資源使用就減少了擁塞,因為需要布線的邏輯更少。該解決方案實(shí)現(xiàn)了最高565 MHz的頻率,關(guān)鍵路徑包含在conv2d實(shí)例邏輯中。隨著更多conv2d節(jié)點(diǎn)添加到設(shè)計中,最大頻率不會降低。
下圖顯示了使用Achronix 2D NoC時產(chǎn)生的布線
圖3:使用Achronix 2D NoC的cnv2d設(shè)計布線
使用軟2D NoC解決方案會導(dǎo)致復(fù)雜且不規(guī)則的布線,同時時序也受到影響,因為需要深度LUT邏輯來選擇軟2D NoC中的適當(dāng)路徑。
此外,性能會隨著mesh網(wǎng)絡(luò)大小的增加而降低。使用2 × 3 mesh的設(shè)計可以達(dá)到94 MHz,而5 × 4 mesh只能達(dá)到82 MHz。關(guān)鍵路徑包含在軟NoC mesh網(wǎng)絡(luò)中,而不是在conv2d邏輯中。如果花更多時間優(yōu)化設(shè)計以提高性能,則可以進(jìn)一步優(yōu)化軟2D NoC的時序。
下圖顯示了使用軟2D NoC設(shè)計時生成的布線。
圖4:使用軟2D NoC時的cnv2d設(shè)計布線
2D NoC改善了帶寬
Achronix的2D NoC使用運(yùn)行速度在2 GHz的256位雙向總線,每個conv2d實(shí)例連接到兩個NAP,從而在一個節(jié)點(diǎn)上與GDDR6接口之間的連接可實(shí)現(xiàn)的最大帶寬為512 Gbps。下面的框圖顯示了2D NoC和一個連接到本地conv2d實(shí)例的NAP的細(xì)節(jié)。
圖5:Achronix的2D NoC和NAP
軟2D NoC使用五路交叉開關(guān)(crossbar switch),其中一個端口與本地conv2d實(shí)例通信,而其他端口與網(wǎng)格中的下一個節(jié)點(diǎn)通信。該解決方案可以實(shí)現(xiàn)節(jié)點(diǎn)到節(jié)點(diǎn)連接的頻率為82 MHz,從而在一個節(jié)點(diǎn)上形成最高為21 Gbps的GDDR6接口帶寬。下面的框圖顯示了軟2D NoC mesh中的一個交叉開關(guān)。
圖6:軟2D NoC交叉開關(guān)
2D NoC縮短了設(shè)計時間和工具運(yùn)行時間
Achronix的2D NoC采用AXI-4標(biāo)準(zhǔn)與NAP通信,這是許多FPGA設(shè)計人員已經(jīng)熟悉的接口標(biāo)準(zhǔn)。此外,2D NoC包括內(nèi)置功能,例如跨時鐘域邏輯、流量控制和地址解碼等,這些功能不再需要包含在用戶邏輯中。Achronix的2D NoC的全功能實(shí)現(xiàn)為用戶省去了大量的設(shè)計工作,使設(shè)計人員能夠?qū)W⒂谶B接到2D NoC的加速器。
除了縮短設(shè)計時間外,使用Achronix片上2D NoC的設(shè)計比使用軟2D NoC的設(shè)計使用更少的資源。結(jié)果是需要布局和布線的邏輯更少,從而使得工具的編譯時間更短。例如,與使用軟2D NoC的實(shí)現(xiàn)相比,使用Achronix片上2D NoC的設(shè)計布局和布線所需的時間不到一半。
結(jié)論
集成2D NoC的Speedster7t器件創(chuàng)新地帶來了FPGA設(shè)計過程的根本轉(zhuǎn)變。Achronix是第一家集成2D NoC的FPGA公司,它連接所有系統(tǒng)接口和FPGA邏輯陣列。這種新架構(gòu)使Achronix FPGA器件特別適用于高帶寬應(yīng)用,同時顯著提高了設(shè)計人員的工作效率。由于2D NoC管理著從設(shè)計在FPGA邏輯陣列中的數(shù)據(jù)加速器到高速數(shù)據(jù)接口之間的所有網(wǎng)絡(luò)功能,因此設(shè)計人員只需設(shè)計他們的數(shù)據(jù)加速器并將它們連接到NAP接入點(diǎn)。與使用軟2D NoC相比,設(shè)計人員可以受益于以下優(yōu)點(diǎn):
- 降低邏輯資源占有率并提高FPGA的整體性能
- 增加帶寬
- 減少對存儲器的需求
- 更快的設(shè)計時間和更短的工具編譯時間
表3:Speedster7t 2D NoC與Soft 2D NoC的總結(jié)比較