圖 1:典型的 GNN 架構(gòu)(來源:https://arxiv.org/abs/1901.00596)
一種基于 FPGA 的圖神經(jīng)網(wǎng)絡(luò)加速器解決方案
發(fā)布時(shí)間:2021-08-09 責(zé)任編輯:lina
【導(dǎo)讀】一些可穿戴設(shè)備制造商不認(rèn)為能量收集(任何形式)是有意義的設(shè)計(jì)。為了追求自供電的可穿戴設(shè)備,電子開發(fā)人員正在尋求改變?nèi)缃襁@種狀況。
得益于大數(shù)據(jù)的興起和計(jì)算能力的快速提升,機(jī)器學(xué)習(xí)技術(shù)近年來經(jīng)歷了革命性的發(fā)展。諸如圖像分類、語音識別和自然語言處理等機(jī)器學(xué)習(xí)任務(wù),都是對具有一定大小、維度和有序排列的歐幾里得數(shù)據(jù)進(jìn)行處理。然而,在許多現(xiàn)實(shí)場景中,數(shù)據(jù)是由復(fù)雜的非歐幾里得數(shù)據(jù)(例如圖形)表示的。這些圖形不僅包含數(shù)據(jù),還包含數(shù)據(jù)之間的依賴關(guān)系,例如社交網(wǎng)絡(luò)、蛋白質(zhì)分子結(jié)構(gòu)、電子商務(wù)平臺中的客戶數(shù)據(jù)等。數(shù)據(jù)復(fù)雜性的提升給傳統(tǒng)的機(jī)器學(xué)習(xí)算法設(shè)計(jì)及其實(shí)現(xiàn)技術(shù)帶來了嚴(yán)峻的挑戰(zhàn)。在這種情況下,許多全新的基于圖形的機(jī)器學(xué)習(xí)算法或圖神經(jīng)網(wǎng)絡(luò)(GNN)不斷在學(xué)術(shù)界和工業(yè)界涌現(xiàn)。
GNN 對計(jì)算能力和存儲有非常高的要求,而且其算法的軟件實(shí)現(xiàn)效率非常低。因此,業(yè)界對 GNN 的硬件加速有著非常迫切的需求。盡管傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)(CNN)硬件加速有很多種解決方案,但 GNN 的硬件加速還沒有得到充分的討論和研究。在撰寫本白皮書時(shí),谷歌(Google)和百度(Baidu)都無法搜索到關(guān)于 GNN 硬件加速的中文研究資料。本白皮書的寫作動機(jī)是將國外最新的 GNN 算法、對加速技術(shù)的研究以及對基于現(xiàn)場可編程邏輯門陣列(FPGA)的 GNN 加速技術(shù)的探討相結(jié)合,并以概述的形式呈現(xiàn)給讀者。
對圖神經(jīng)網(wǎng)絡(luò)(GNN)的介紹
在宏觀層面上,GNN 的架構(gòu)與傳統(tǒng) CNN 有很多相似之處,諸如卷積層、池化、激活函數(shù)、機(jī)器學(xué)習(xí)處理器(MLP)、全連接層(FC layer)等模塊,這些都可以應(yīng)用到 GNN。下圖展示了一個(gè)相對簡單的 GNN 架構(gòu)。
圖 1:典型的 GNN 架構(gòu)(來源:https://arxiv.org/abs/1901.00596)
但是,GNN 中的圖形數(shù)據(jù)卷積計(jì)算與傳統(tǒng) CNN 中的二維卷積計(jì)算不同。以下圖為例,紅色目標(biāo)節(jié)點(diǎn)的卷積計(jì)算過程如下所示:
1、圖卷積 - 使用近鄰函數(shù)對周圍節(jié)點(diǎn)的特征進(jìn)行采樣,并計(jì)算平均值。相鄰節(jié)點(diǎn)的數(shù)量是不確定且無序的(非歐幾里得數(shù)據(jù))
2、二維卷積——使用卷積核對周圍節(jié)點(diǎn)的特征進(jìn)行采樣,并計(jì)算加權(quán)平均值。相鄰節(jié)點(diǎn)的數(shù)量是確定且有序的(歐幾里得數(shù)據(jù))
圖 2:圖卷積和二維卷積(來源:https://arxiv.org/abs/1901.00596)
對 GraphSAGE 算法的介紹
學(xué)術(shù)界對 GNN 算法進(jìn)行了大量的研究和探討,提出了相當(dāng)多的創(chuàng)新實(shí)現(xiàn)方法。其中,由斯坦福大學(xué)(Stanford University)于 2017 年提出的 GraphSAGE 是一種歸納表示學(xué)習(xí)算法,用于預(yù)測大規(guī)模圖中動態(tài)的、全新的、未知的節(jié)點(diǎn)類型,還專門針對節(jié)點(diǎn)數(shù)量龐大、節(jié)點(diǎn)特征豐富的圖進(jìn)行了優(yōu)化。如下圖所示,
GraphSAGE 算法的計(jì)算過程可以分為三個(gè)主要步驟:
1、相鄰節(jié)點(diǎn)采樣——用于降低復(fù)雜性,一般采樣兩層,每層采樣幾個(gè)節(jié)點(diǎn)。
2、聚合——用于嵌入目標(biāo)節(jié)點(diǎn),即圖的低維向量表示。
3、預(yù)測——使用嵌入作為全連接層的輸入,以預(yù)測目標(biāo)節(jié)點(diǎn) d 的標(biāo)簽。
圖 3:GraphSAGE 算法的可視化表示(來源:http://snap.stanford.edu/graphsage)
1.Sample neighborhood
1、樣本鄰域
2.Aggregate feature information from neighbors
2、聚合來自鄰域的特征信息
3.Predict graph context and label using aggregated information
3、利用聚合信息預(yù)測圖形情況和標(biāo)簽
為了在 FPGA 中實(shí)現(xiàn) GraphSAGE 算法加速,必須了解其數(shù)學(xué)模型,以便將算
法映射到不同的邏輯模塊。下圖所示的代碼說明了該算法的數(shù)學(xué)過程。
圖 4:GraphSAGE 算法的數(shù)學(xué)模型(來源:http://snap.stanford.edu/graphsage)
Step 1: Sample a sub-graph node with neighborhood function N[}.
步驟 1:使用近鄰函數(shù) N[}對子圖節(jié)點(diǎn)進(jìn)行采樣。
Step 2: Aggregate features from neighbor nodes, e.g. mean[}, lstm[}, polling[}
步驟 2:聚合相鄰節(jié)點(diǎn)的特征,例如 mean[}、lstm[}、polling[}
Step3: Combine aggregated node features. E.g. convolution[}
步驟 3:合并聚合的節(jié)點(diǎn)特征。例如卷積[}
Step 4: Nonlinear activation, e.g, relu[}
步驟 4:非線性激活,例如 relu[}
Step 5: Iterate for each neighbor with a sub-graph
步驟 5:使用子圖迭代每個(gè)鄰域
Step 6: Normalize
步驟 6:標(biāo)準(zhǔn)化
Step 7: Iterate for each search-depth
步驟 7:對每個(gè)深度搜索進(jìn)行迭代
Step 8: Final node embedding of node v
步驟 8:節(jié)點(diǎn) v 的最終節(jié)點(diǎn)嵌入
對于每個(gè)要處理的目標(biāo)節(jié)點(diǎn) xv,GraphSAGE 算法都會執(zhí)行以下操作:
1、通過近鄰采樣函數(shù) N(v)對子圖中的節(jié)點(diǎn)進(jìn)行采樣。
2、聚合要采樣的相鄰節(jié)點(diǎn)的特征。聚合函數(shù)可以是 mean()、lstm()或 polling()
等。
3、將聚合結(jié)果與上一次迭代的輸出表示合并起來,并使用 Wk 進(jìn)行卷積。
4、對卷積結(jié)果進(jìn)行非線性處理。
5、多次迭代以結(jié)束當(dāng)前第 k 層的所有相鄰節(jié)點(diǎn)的處理。
6、對第 k 層迭代的結(jié)果進(jìn)行標(biāo)準(zhǔn)化處理。
7、多次迭代以結(jié)束對所有 K 層采樣深度的處理。
8、將最終的迭代結(jié)果 zv 嵌入到輸入節(jié)點(diǎn) xv。
GNN 加速器設(shè)計(jì)所面臨的挑戰(zhàn)
GNN 算法涉及大量的矩陣計(jì)算和存儲訪問操作。在傳統(tǒng)的 x86 架構(gòu)服務(wù)器上運(yùn)行這種算法的效率是非常低的,表現(xiàn)為速度慢、能耗高等。
新型圖形處理器(GPU)的應(yīng)用可以顯著提高 GNN 的計(jì)算速度與能效比。但是,GPU 在存儲可擴(kuò)展性方面存在短板,使其無法處理圖形中的海量節(jié)點(diǎn)。GPU 的指令執(zhí)行方式也會導(dǎo)致計(jì)算延遲過大和不確定性;因此,它不適用于需要實(shí)時(shí)計(jì)算圖形的場景。
上面提到的各種設(shè)計(jì)挑戰(zhàn),使得業(yè)界迫切需要一種能夠支持高并發(fā)、實(shí)時(shí)計(jì)算,擁有巨大存儲容量和帶寬,并可擴(kuò)展到數(shù)據(jù)中心的 GNN 加速解決方案。
基于 FPGA 設(shè)計(jì)方案的 GNN 加速器
Achronix 的 Speedster®7t 系列 FPGA 產(chǎn)品(以及該系列的第一款器件AC7t1500)是針對數(shù)據(jù)中心和機(jī)器學(xué)習(xí)工作負(fù)載進(jìn)行了優(yōu)化的高性能 FPGA器件,消除了基于中央處理器(CPU)、GPU 和傳統(tǒng) FPGA 的解決方案中存在的若干性能瓶頸。Speedster7t 系列 FPGA 產(chǎn)品采用了臺積電(TSMC)的7nm FinFET 工藝,其架構(gòu)采用了一種革命性的全新二維片上網(wǎng)絡(luò)(NoC)、獨(dú)創(chuàng)的機(jī)器學(xué)習(xí)處理器矩陣(MLP),并采用高帶寬 GDDR6 控制器、400G 以太網(wǎng)和 PCI Express Gen5 接口,在確保 ASIC 級性能的同時(shí),它為用戶提供了靈活的硬件可編程性。下圖展示了高性能 FPGA 器件 Speedster7t1500 的架構(gòu)。
圖 5:Achronix 高性能 FPGA 器件 Speedster AC7t1500 的架構(gòu)
上述特點(diǎn)使 Achronix Speedster7t1500 器件成為應(yīng)對在 GNN 加速器設(shè)計(jì)中面臨的各種挑戰(zhàn)的完美解決方案。
表 1:GNN 設(shè)計(jì)面臨的挑戰(zhàn)和 Achronix Speedster7t1500 FPGA 器件提供的
解決方案
GNN 加速器頂層架構(gòu)
此 GNN 加速器是為 GraphSAGE 算法設(shè)計(jì)的,但是它的設(shè)計(jì)也可以應(yīng)用于其他類似的 GNN 算法加速。其頂層架構(gòu)如下圖所示。
圖 6:GNN 加速器頂層架構(gòu)
Synthesizable IPs
可綜合的 IP
GNN Core: Preforms GNN computation
GNN 內(nèi)核:執(zhí)行 GNN 計(jì)算
RoCE-Lite: Memory scalability with RDMA
RoCE-Lite:采用 RDMA 的存儲可擴(kuò)展性
Harden IPs
硬化 IP
NoC: High speed and unified IP connectivity
NoC:高速、統(tǒng)一的 IP 連接
DDR4 Ctrl: Large memory for graph storage
DDR4 Ctrl:用于圖形存儲的大存儲容量
GDDR6 Ctrl: High speed memory for computing
GDDR6 Ctrl:用于計(jì)算的高速存儲
PCIe Gen5×16: High throughout host interface
PCIe Gen5×16:高吞吐量的主機(jī)接口
Ethernet 400GE: High speed network
以太網(wǎng) 400GE:高速網(wǎng)絡(luò)
該架構(gòu)由以下模塊組成:
●圖中的 GNN 內(nèi)核是算法實(shí)現(xiàn)的核心部分(詳情如下)。
●RoCE-Lite 是 RDMA 協(xié)議的輕量級版本,用于通過高速以太網(wǎng)進(jìn)行遠(yuǎn)程存儲訪問,以支持海量節(jié)點(diǎn)的圖計(jì)算。
●400GE 以太網(wǎng)控制器用于承載 RoCE-Lite 協(xié)議。
●GDDR6 存儲器用于存儲 GNN 處理過程中所需的高速訪問數(shù)據(jù)(DDR4 作為備用大容量存儲器)。該存儲器用于存儲訪問頻率相對較低的數(shù)據(jù),例如
●PCIe Gen5 ×16 接口提供高速主機(jī)接口,用于與服務(wù)器軟件進(jìn)行數(shù)據(jù)交互。
上述所有模塊均通過具有高帶寬的 NoC 實(shí)現(xiàn)互連。
GNN 內(nèi)核微架構(gòu)
在開始討論 GNN 內(nèi)核的微架構(gòu)之前,有必要先回顧一下 GraphSAGE 算法。
其內(nèi)層循環(huán)的聚合和合并(包括卷積)占據(jù)了該算法的大部分計(jì)算和存儲訪問。通過研究,我們得出這兩個(gè)步驟的特點(diǎn),具體如下。
表 2:GNN 算法中聚合和合并操作的對比(來源:https://arxiv.org/abs/1908.10834)
可以看出,聚合操作和合并操作在計(jì)算和存儲訪問模式上有著完全不同的需求。聚合操作涉及相鄰節(jié)點(diǎn)的采樣。然而,圖形是一種非歐幾里得數(shù)據(jù)類型——它的大小和維度是不確定且無序,矩陣稀疏,節(jié)點(diǎn)位置隨機(jī)。因此,存儲訪問是不規(guī)則的,并且難以重復(fù)利用數(shù)據(jù)。
在合并操作中,輸入數(shù)據(jù)是聚合結(jié)果(節(jié)點(diǎn)的低維表示)和權(quán)重矩陣。它的大小和維度是固定的,具有線性存儲位置。因此對存儲訪問沒有挑戰(zhàn),但是矩陣的計(jì)算量非常大。
基于上述分析,我們決定在 GNN 內(nèi)核加速器設(shè)計(jì)中選擇使用兩種不同的硬件結(jié)構(gòu)來分別處理聚合和合并操作(如下圖示):
聚合器——通過單指令多數(shù)據(jù)(SIMD)處理器陣列,對圖形相鄰節(jié)點(diǎn)進(jìn)行采樣和聚合。單指令可以預(yù)定義為 mean()平均值計(jì)算,或其他適用的聚合函數(shù);多數(shù)據(jù)是指單次 mean()均值計(jì)算中需要多個(gè)相鄰節(jié)點(diǎn)的特征數(shù)據(jù)作為輸入,這些數(shù)據(jù)來自子圖采樣器。SIMD 處理器陣列通過調(diào)度器 AggScheduler 進(jìn)行負(fù)載平衡。子圖采樣器通過 NoC 從 GDDR6 或 DDR4 讀回的鄰接矩陣和節(jié)點(diǎn)特征數(shù)據(jù) h0v 分別緩存在鄰接列表緩沖區(qū)(Adjacent ListBuffer)和節(jié)點(diǎn)特征緩沖區(qū)(Node Feature Buffer)。聚合的結(jié)果 hkN(v)存儲在聚合緩沖區(qū)(Aggregation Buffer)中。
合并器——通過脈動矩陣 PE 對聚合結(jié)果進(jìn)行卷積運(yùn)算。卷積核是 Wk 權(quán)重矩陣。卷積結(jié)果由 ReLU 激活函數(shù)進(jìn)行非線性處理,同時(shí)也存儲在 PartialSum Buffer 中,以用于下一輪迭代。
圖 7:GNN 內(nèi)核功能框圖
合并結(jié)果經(jīng)過 L2BN 標(biāo)準(zhǔn)化處理后,即為最終的節(jié)點(diǎn)表示 hkv。在一個(gè)典型的節(jié)點(diǎn)分類預(yù)測應(yīng)用中,節(jié)點(diǎn)表示 hkv 可以通過一個(gè)全連接層(FC)來獲取節(jié)點(diǎn)的分類標(biāo)簽。這個(gè)過程是傳統(tǒng)的機(jī)器學(xué)習(xí)處理方法之一,在 GraphSAGE 文獻(xiàn)資料中沒有體現(xiàn),這個(gè)功能也沒有包含在這個(gè)架構(gòu)中。
結(jié)論
本白皮書探討了 GraphSAGE GNN 算法的數(shù)學(xué)原理,并從多個(gè)角度分析了GNN 加速器設(shè)計(jì)中的技術(shù)挑戰(zhàn)。通過分析問題并在架構(gòu)層面逐一解決,提出了一種架構(gòu),利用 Achronix Speedster7t AC7t1500 FPGA 器件提供的具有競爭性的優(yōu)勢,創(chuàng)建了一種高度可擴(kuò)展的、能夠提供卓越性能的 GNN 加速解決方案。
免責(zé)聲明:本文為轉(zhuǎn)載文章,轉(zhuǎn)載此文目的在于傳遞更多信息,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問題,請電話或者郵箱聯(lián)系小編進(jìn)行侵刪。
特別推薦
- AMTS 2025展位預(yù)訂正式開啟——體驗(yàn)科技驅(qū)動的未來汽車世界,共迎AMTS 20周年!
- 貿(mào)澤電子攜手安森美和Würth Elektronik推出新一代太陽能和儲能解決方案
- 功率器件熱設(shè)計(jì)基礎(chǔ)(六)——瞬態(tài)熱測量
- 貿(mào)澤開售Nordic Semiconductor nRF9151-DK開發(fā)套件
- TDK推出用于可穿戴設(shè)備的薄膜功率電感器
- 日清紡微電子GNSS兩款新的射頻低噪聲放大器 (LNA) 進(jìn)入量產(chǎn)
- 中微半導(dǎo)推出高性價(jià)比觸控 MCU-CMS79FT72xB系列
技術(shù)文章更多>>
- 意法半導(dǎo)體推出首款超低功耗生物傳感器,成為眾多新型應(yīng)用的核心所在
- 是否存在有關(guān) PCB 走線電感的經(jīng)驗(yàn)法則?
- 智能電池傳感器的兩大關(guān)鍵部件: 車規(guī)級分流器以及匹配的評估板
- 功率器件熱設(shè)計(jì)基礎(chǔ)(八)——利用瞬態(tài)熱阻計(jì)算二極管浪涌電流
- AHTE 2025展位預(yù)訂正式開啟——促進(jìn)新技術(shù)新理念應(yīng)用,共探多行業(yè)柔性解決方案
技術(shù)白皮書下載更多>>
- 車規(guī)與基于V2X的車輛協(xié)同主動避撞技術(shù)展望
- 數(shù)字隔離助力新能源汽車安全隔離的新挑戰(zhàn)
- 汽車模塊拋負(fù)載的解決方案
- 車用連接器的安全創(chuàng)新應(yīng)用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
單向可控硅
刀開關(guān)
等離子顯示屏
低頻電感
低通濾波器
低音炮電路
滌綸電容
點(diǎn)膠設(shè)備
電池
電池管理系統(tǒng)
電磁蜂鳴器
電磁兼容
電磁爐危害
電動車
電動工具
電動汽車
電感
電工電路
電機(jī)控制
電解電容
電纜連接器
電力電子
電力繼電器
電力線通信
電流保險(xiǎn)絲
電流表
電流傳感器
電流互感器
電路保護(hù)
電路圖