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