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