圖 1:典型的GNN架構(gòu)(來源:https://arxiv.org/abs/1901.00596)
機(jī)器學(xué)習(xí)實(shí)戰(zhàn):GNN(圖神經(jīng)網(wǎng)絡(luò))加速器的FPGA解決方案
發(fā)布時(shí)間:2020-10-20 責(zé)任編輯:lina
【導(dǎo)讀】 益于大數(shù)據(jù)的興起以及算力的快速提升,機(jī)器學(xué)習(xí)技術(shù)在近年取得了革命性的發(fā)展。在圖像分類、語音識(shí)別、自然語言處理等機(jī)器學(xué)習(xí)任務(wù)中,數(shù)據(jù)為大小維度確定且排列有序的歐氏(Euclidean)數(shù)據(jù)。然而,越來越多的現(xiàn)實(shí)場景中,數(shù)據(jù)是以圖(Graph)這種復(fù)雜的非歐氏數(shù)據(jù)來表示的。
應(yīng)用AchronixSpeedster7t FPGA設(shè)計(jì)高能效、可擴(kuò)展的GNN加速器
作者:袁光(KevinYuan),Achronix資深現(xiàn)場應(yīng)用工程師
1.概述
得益于大數(shù)據(jù)的興起以及算力的快速提升,機(jī)器學(xué)習(xí)技術(shù)在近年取得了革命性的發(fā)展。在圖像分類、語音識(shí)別、自然語言處理等機(jī)器學(xué)習(xí)任務(wù)中,數(shù)據(jù)為大小維度確定且排列有序的歐氏(Euclidean)數(shù)據(jù)。然而,越來越多的現(xiàn)實(shí)場景中,數(shù)據(jù)是以圖(Graph)這種復(fù)雜的非歐氏數(shù)據(jù)來表示的。Graph不但包含數(shù)據(jù),也包含數(shù)據(jù)之間的依賴關(guān)系,比如社交網(wǎng)絡(luò)、蛋白質(zhì)分子結(jié)構(gòu)、電商平臺(tái)客戶數(shù)據(jù)等等。數(shù)據(jù)復(fù)雜度的提升,對傳統(tǒng)的機(jī)器學(xué)習(xí)算法設(shè)計(jì)以及其實(shí)現(xiàn)技術(shù)帶來了嚴(yán)峻的挑戰(zhàn)。在此背景之下,諸多基于Graph的新型機(jī)器學(xué)習(xí)算法—GNN(圖神經(jīng)網(wǎng)絡(luò)),在學(xué)術(shù)界和產(chǎn)業(yè)界不斷的涌現(xiàn)出來。
GNN對算力和存儲(chǔ)器的要求非常高,其算法的軟件實(shí)現(xiàn)方式非常低效,所以業(yè)界對GNN的硬件加速有著非常迫切的需求。我們知道傳統(tǒng)的CNN(卷積神經(jīng)網(wǎng)絡(luò)網(wǎng)絡(luò))硬件加速方案已經(jīng)有非常多的解決方案;但是,GNN的硬件加速尚未得到充分的討論和研究,在本文撰寫之時(shí),Google和百度皆無法搜索到關(guān)于GNN硬件加速的中文研究。本文的撰寫動(dòng)機(jī),旨在將國外最新的GNN算法、加速技術(shù)研究、以及筆者對GNN的FPGA加速技術(shù)的探討相結(jié)合起來,以全景圖的形式展現(xiàn)給讀者。
2.GNN簡介
GNN的架構(gòu)在宏觀層面有著很多與傳統(tǒng)CNN類似的地方,比如卷積層、Polling、激活函數(shù)、機(jī)器學(xué)習(xí)處理器(MLP)和FC層等等模塊,都會(huì)在GNN中得以應(yīng)用。下圖展示了一個(gè)比較簡單的GNN架構(gòu)。
圖 1:典型的GNN架構(gòu)(來源:https://arxiv.org/abs/1901.00596)
但是, GNN中的Graph數(shù)據(jù)卷積計(jì)算與傳統(tǒng)CNN中的2D卷積計(jì)算是不同的。以圖2為例,針對紅色目標(biāo)節(jié)點(diǎn)的卷積計(jì)算,其過程如下:
l Graph卷積:以鄰居函數(shù)采樣周邊節(jié)點(diǎn)特征并計(jì)算均值,其鄰居節(jié)點(diǎn)數(shù)量不確定且無序(非歐氏數(shù)據(jù))。
l 2D卷積:以卷積核采樣周邊節(jié)點(diǎn)特征并計(jì)算加權(quán)平均值,其鄰居節(jié)點(diǎn)數(shù)量確定且有序(歐氏數(shù)據(jù))。
圖 2:Graph卷積和2D卷積(來源:https://arxiv.org/abs/1901.00596)
3. GraphSAGE算法簡介
學(xué)術(shù)界已對GNN算法進(jìn)行了非常多的研究討論,并提出了數(shù)目可觀的創(chuàng)新實(shí)現(xiàn)方式。其中,斯坦福大學(xué)在2017年提出的GraphSAGE是一種用于預(yù)測大型圖中動(dòng)態(tài)新增未知節(jié)點(diǎn)類型的歸納式表征學(xué)習(xí)算法,特別針對節(jié)點(diǎn)數(shù)量巨大、且節(jié)點(diǎn)特征豐富的圖做了優(yōu)化。如下圖所示,GraphSAGE計(jì)算過程可分為三個(gè)主要步驟:
圖3:GraphSAGE算法的視覺表述(來源:http://snap.stanford.edu/graphsage)
l 鄰節(jié)點(diǎn)采樣:用于降低復(fù)雜度,一般采樣2層,每一層采樣若干節(jié)點(diǎn)
l 聚合:用于生成目標(biāo)節(jié)點(diǎn)的embedding,即graph的低維向量表征
l 預(yù)測:將embedding作為全連接層的輸入,預(yù)測目標(biāo)節(jié)點(diǎn)d的標(biāo)簽
為了在FPGA中實(shí)現(xiàn)GraphSAGE算法加速,我們需要知悉其數(shù)學(xué)模型,以便將算法映射到不同的邏輯模塊中。下圖所示的代碼闡述了本算法的數(shù)學(xué)過程。
圖 4:GraphSAGE算法的數(shù)學(xué)模型(來源:http://snap.stanford.edu/graphsage)
對于每一個(gè)待處理的目標(biāo)節(jié)點(diǎn)xv,GraphSAGE執(zhí)行下列操作:
1)通過鄰居采樣函數(shù)N(v),采樣子圖(subgraph)中的節(jié)點(diǎn)
2)聚合被采樣的鄰節(jié)點(diǎn)特征,聚合函數(shù)可以為mean()、lstm()或者polling()等
3)將聚合結(jié)果與上一次迭代的輸出表征合并,并以Wk做卷積
4)卷積結(jié)果做非線性處理
5)迭代若干次以結(jié)束當(dāng)前第k層所有鄰節(jié)點(diǎn)的處理
6)將第k層迭代結(jié)果做歸一化處理
7)迭代若干次以結(jié)束所有K層采樣深度的處理
8)最終迭代結(jié)果zv即為輸入節(jié)點(diǎn)xv的嵌入(embedding)
4.GNN加速器設(shè)計(jì)挑戰(zhàn)
GNN的算法中涉及到大量的矩陣計(jì)算和內(nèi)存訪問操作,在傳統(tǒng)的x86架構(gòu)的服務(wù)器上運(yùn)行此算法是非常低效的,表現(xiàn)在速度慢,能耗高等方面。
新型GPU的應(yīng)用,可以為GNN的運(yùn)算速度和能效比帶來顯著收益。然而GPU內(nèi)存擴(kuò)展性的短板,使其無法勝任海量節(jié)點(diǎn)Graph的處理;GPU的指令執(zhí)行方式,也造成了計(jì)算延遲過大并且不可確定,無法勝任需要實(shí)時(shí)計(jì)算Graph的場景。
如上所述種種設(shè)計(jì)挑戰(zhàn)的存在,使得業(yè)界急需一種可以支持高度并發(fā)實(shí)時(shí)計(jì)算、巨大內(nèi)存容量和帶寬、以及在數(shù)據(jù)中心范圍可擴(kuò)展的GNN加速解決方案。
5.GNN加速器的FPGA設(shè)計(jì)方案
Achronix公司推出的Speedster7t系列高性能FPGA,專門針對數(shù)據(jù)中心和機(jī)器學(xué)習(xí)工作負(fù)載進(jìn)行了優(yōu)化,消除了CPU、GPU以及傳統(tǒng) FPGA 存在的若干性能瓶頸。Speedster7t FPGA 基于臺(tái)積電的 7nm FinFET工藝,其架構(gòu)采用革命性的新型 2D 片上網(wǎng)絡(luò)(NoC),獨(dú)創(chuàng)的機(jī)器學(xué)習(xí)處理器矩陣(MLP),并利用高帶寬 GDDR6 控制器、400G 以太網(wǎng)和 PCI Express Gen5 接口,在保障ASIC 級(jí)別性能的同時(shí),為用戶提供了靈活的硬件可編程能力。下圖展示了Speedster7t1500高性能FPGA的架構(gòu)。
圖5: AchronixSpeedster7t1500高性能FPGA架構(gòu)(來源:http://www.achronix.com)
如上所述種種特性,使得AchronixSpeedster7t1500 FPGA器件為GNN加速器設(shè)計(jì)中所面臨的各種挑戰(zhàn),提供了完美的解決方案。
表1:GNN設(shè)計(jì)挑戰(zhàn)與Achronix的Speedster7t1500 FPGA解決方案
5.1GNN加速器頂層架構(gòu)
本GNN加速器針對GraphSAGE進(jìn)行設(shè)計(jì),但其架構(gòu)具有一定的通用性,可以適用于其他類似的GNN算法加速,其頂層架構(gòu)如下圖所示。
圖6: GNN加速器頂層架構(gòu)(來源:Achronix原創(chuàng))
圖中GNNCore為算法實(shí)現(xiàn)的核心部分,其設(shè)計(jì)細(xì)節(jié)將在下文展開談?wù)摚籖oCE-Lite為RDMA協(xié)議的輕量級(jí)版本,用于通過高速以太網(wǎng)進(jìn)行遠(yuǎn)程內(nèi)存訪問,以支持海量節(jié)點(diǎn)的Graph計(jì)算,其設(shè)計(jì)細(xì)節(jié)將在本公眾號(hào)的后續(xù)文章中討論;400GE以太網(wǎng)控制器用來承載RoCE-Lite協(xié)議;GDDR6用于存放GNN處理過程中所需的高速訪問數(shù)據(jù);DDR4作為備用高容量內(nèi)存,可以用于存儲(chǔ)相對訪問頻度較低的數(shù)據(jù),比如待預(yù)處理的Graph;PCIeGen5x16提供高速主機(jī)接口,用于與服務(wù)器軟件交互數(shù)據(jù);上述所有模塊,皆通過NoC片上網(wǎng)絡(luò)來實(shí)現(xiàn)高速互聯(lián)。
5.2GNNCore微架構(gòu)
在開始討論GNNCore微架構(gòu)之前,我們先回顧一下本文第3節(jié)中的GraphSAGE算法,其內(nèi)層循環(huán)的聚合以及合并(包含卷積)等兩個(gè)操作占據(jù)了算法的絕大部分計(jì)算和存儲(chǔ)器訪問。通過研究,我們得到這兩個(gè)步驟的特征如下:
表2:GNN算法中聚合與合并操作對比(來源:https://arxiv.org/abs/1908.10834)
可以看出,聚合操作與合并操作,其對計(jì)算和存儲(chǔ)器訪問的需求完全不同。聚合操作中涉及到對鄰節(jié)點(diǎn)的采樣,然而Graph屬于非歐氏數(shù)據(jù)類型,其大小維度不確定且無序,矩陣稀疏,節(jié)點(diǎn)位置隨機(jī),所以存儲(chǔ)器訪問不規(guī)則并難以復(fù)用數(shù)據(jù);在合并操作中,其輸入數(shù)據(jù)為聚合結(jié)果(節(jié)點(diǎn)的低維表征)以及權(quán)重矩陣,其大小維度固定,存儲(chǔ)位置規(guī)則線性,對存儲(chǔ)器訪問不存在挑戰(zhàn),但是矩陣的計(jì)算量非常大。
基于以上分析,我們決定在GNNCore加速器設(shè)計(jì)中用兩種不同的硬件結(jié)構(gòu)來處理聚合操作與合并操作,功能框圖如下圖所示:
圖7: GNNCore功能框圖(來源:Achronix原創(chuàng))
聚合器(Aggregator):通過SIMD(單指令多數(shù)據(jù)處理器)陣列來對Graph進(jìn)行鄰居節(jié)點(diǎn)采樣并進(jìn)行聚合操作。其中的“單指令”可以預(yù)定義為mean()均值計(jì)算,或者其他適用的聚合函數(shù);“多數(shù)據(jù)”則表示單次mean()均值計(jì)算中需要多個(gè)鄰居節(jié)點(diǎn)的特征數(shù)據(jù)作為輸入,而這些數(shù)據(jù)來自于子圖采樣器(SubgraphSampler);SIMD陣列通過調(diào)度器Agg Scheduler做負(fù)載均衡;子圖采樣器通過NoC從GDDR6或DDR4讀回的鄰接矩陣和節(jié)點(diǎn)特征數(shù)據(jù)h0v,分別緩存在AdjacentListBuffer和NodeFeature Buffer之中;聚合的結(jié)果hkN(v)存儲(chǔ)在AggBuffer之中。
合并器(Combinator):通過脈動(dòng)矩陣PE來執(zhí)行聚合結(jié)果的卷積操作;卷積核為Wk權(quán)重矩陣;卷積結(jié)果通過ReLU激活函數(shù)做非線性處理,同時(shí)也存儲(chǔ)在PartialSumBuffer中以方便下一輪迭代。
合并的結(jié)果通過L2BN歸一化處理之后,即為最終的節(jié)點(diǎn)表征hkv。
在比較典型的節(jié)點(diǎn)分類預(yù)測應(yīng)用中,該節(jié)點(diǎn)表征hkv可以通過一個(gè)全連接層(FC),以得到該節(jié)點(diǎn)的分類標(biāo)簽。此過程屬于傳統(tǒng)的機(jī)器學(xué)習(xí)處理方法之一,沒有在GraphSAGE論文中體現(xiàn),此設(shè)計(jì)中也沒有包含這個(gè)功能。
6.結(jié)論
本文深入討論了GraphSAGEGNN算法的數(shù)學(xué)原理,并從多個(gè)維度分析了GNN加速器設(shè)計(jì)中的技術(shù)挑戰(zhàn)。作者通過分解問題并在架構(gòu)層面逐一解決的方法,綜合運(yùn)用AchronixSpeedster7t1500FPGA所提供的競爭優(yōu)勢,創(chuàng)造了一個(gè)性能極佳且高度可擴(kuò)展的GNN加速解決方案。
免責(zé)聲明:本文為轉(zhuǎn)載文章,轉(zhuǎn)載此文目的在于傳遞更多信息,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問題,請電話或者郵箱聯(lián)系小編進(jìn)行侵刪。
特別推薦
- 克服碳化硅制造挑戰(zhàn),助力未來電力電子應(yīng)用
- 了解交流電壓的產(chǎn)生
- 單結(jié)晶體管符號(hào)和結(jié)構(gòu)
- 英飛凌推出用于汽車應(yīng)用識(shí)別和認(rèn)證的新型指紋傳感器IC
- Vishay推出負(fù)載電壓達(dá)100 V的業(yè)內(nèi)先進(jìn)的1 Form A固態(tài)繼電器
- 康佳特推出搭載AMD 銳龍嵌入式 8000系列的COM Express緊湊型模塊
- 村田推出3225尺寸車載PoC電感器LQW32FT_8H系列
技術(shù)文章更多>>
- “扒開”超級(jí)電容的“外衣”,看看超級(jí)電容“超級(jí)”在哪兒
- DigiKey 誠邀各位參會(huì)者蒞臨SPS 2024?展會(huì)參觀交流,體驗(yàn)最新自動(dòng)化產(chǎn)品
- 提前圍觀第104屆中國電子展高端元器件展區(qū)
- 高性能碳化硅隔離柵極驅(qū)動(dòng)器如何選型,一文告訴您
- 貿(mào)澤電子新品推薦:2024年第三季度推出將近7000個(gè)新物料
技術(shù)白皮書下載更多>>
- 車規(guī)與基于V2X的車輛協(xié)同主動(dòng)避撞技術(shù)展望
- 數(shù)字隔離助力新能源汽車安全隔離的新挑戰(zhàn)
- 汽車模塊拋負(fù)載的解決方案
- 車用連接器的安全創(chuàng)新應(yīng)用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
濾波電感
濾波器
路由器設(shè)置
鋁電解電容
鋁殼電阻
邏輯IC
馬達(dá)控制
麥克風(fēng)
脈沖變壓器
鉚接設(shè)備
夢想電子
模擬鎖相環(huán)
耐壓測試儀
逆變器
逆導(dǎo)可控硅
鎳鎘電池
鎳氫電池
紐扣電池
歐勝
耦合技術(shù)
排電阻
排母連接器
排針連接器
片狀電感
偏光片
偏轉(zhuǎn)線圈
頻率測量儀
頻率器件
頻譜測試儀
平板電腦