国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

針對圖神經(jīng)網(wǎng)絡(luò)加速器性能評估的標(biāo)準(zhǔn)測試集①

2022-09-28 03:30宋新開支天孔維浩杜子?xùn)|
高技術(shù)通訊 2022年7期
關(guān)鍵詞:加速器特征向量頂點(diǎn)

宋新開 支天 孔維浩?? 杜子?xùn)|③

(?中國科學(xué)院計算技術(shù)研究所計算機(jī)體系結(jié)構(gòu)國家重點(diǎn)實驗室 北京100190)

(??中國科學(xué)院大學(xué) 北京100049)

(???中科寒武紀(jì)科技股份有限公司 北京100191)

0 引言

圖神經(jīng)網(wǎng)絡(luò)(graph neural network,GNN)是近年來興起的一種專門用來處理基于圖結(jié)構(gòu)數(shù)據(jù)的人工智能算法。該算法已經(jīng)在各類圖處理任務(wù)上實現(xiàn)了準(zhǔn)確度的突破性進(jìn)展,例如在電子商務(wù)[1]、分子生物學(xué)[2-3]、社交網(wǎng)絡(luò)[4-5]、知識圖譜[6]等領(lǐng)域[7-9]。圖神經(jīng)網(wǎng)絡(luò)算法是卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)和循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)等傳統(tǒng)神經(jīng)網(wǎng)絡(luò)在圖數(shù)據(jù)處理任務(wù)上的擴(kuò)展。該算法將傳統(tǒng)神經(jīng)網(wǎng)絡(luò)算法和圖分析算法結(jié)合起來,彌補(bǔ)了傳統(tǒng)神經(jīng)網(wǎng)絡(luò)算法不能處理圖結(jié)構(gòu)數(shù)據(jù)的問題。

隨著圖神經(jīng)網(wǎng)絡(luò)算法的迅速發(fā)展和應(yīng)用,圖神經(jīng)網(wǎng)絡(luò)性能優(yōu)化問題開始受到研究人員的關(guān)注。近年來,已經(jīng)有許多針對圖神經(jīng)網(wǎng)絡(luò)算法設(shè)計專用硬件加速器的研究工作被發(fā)表[10-19]。他們提出了不同的設(shè)計以改善現(xiàn)有設(shè)備運(yùn)行圖神經(jīng)網(wǎng)絡(luò)算法時效率低的問題。然而,這些圖神經(jīng)網(wǎng)絡(luò)硬件加速器研究工作在測試樣例的選擇上差異很大,缺乏明確的設(shè)計目標(biāo)和評價手段。為了推動圖神經(jīng)網(wǎng)絡(luò)硬件加速器研究的發(fā)展,學(xué)術(shù)界迫切需要一套針對硬件加速器研究的圖神經(jīng)網(wǎng)絡(luò)標(biāo)準(zhǔn)測試集。

設(shè)計一套針對圖神經(jīng)網(wǎng)絡(luò)硬件加速器評估的有效的標(biāo)準(zhǔn)測試集是一件有挑戰(zhàn)的任務(wù),本文從下列3 個方向梳理了該工作的挑戰(zhàn)性和對應(yīng)的解決思路。

首先,如何從大量的圖神經(jīng)網(wǎng)絡(luò)算法中選擇一部分作為標(biāo)準(zhǔn)測試集是有挑戰(zhàn)性的。為了控制執(zhí)行圖神經(jīng)網(wǎng)絡(luò)加速器評估的效率和成本,標(biāo)準(zhǔn)測試集無法全部包含已公開發(fā)表的圖神經(jīng)網(wǎng)絡(luò)算法。對此,本文的解決思路是從圖神經(jīng)網(wǎng)絡(luò)算法的主要任務(wù)類型和應(yīng)用領(lǐng)域出發(fā)選擇典型代表性算法和數(shù)據(jù)集。

其次,如何在選擇盡可能少的數(shù)據(jù)集的情況下保證標(biāo)準(zhǔn)測試集中數(shù)據(jù)集選擇的多樣性是非常重要而且具有挑戰(zhàn)性的。數(shù)據(jù)集選擇的重要性體現(xiàn)在圖神經(jīng)網(wǎng)絡(luò)加速器的性能優(yōu)化設(shè)計與數(shù)據(jù)集的特性關(guān)系密切。例如,數(shù)據(jù)集的每個圖的頂點(diǎn)數(shù)量直接影響到加速器片上緩存大小的設(shè)置和訪存行為的優(yōu)化。頂點(diǎn)的連接稀疏度不僅影響芯片存儲結(jié)構(gòu)的設(shè)計,而且對芯片的運(yùn)算單元設(shè)計也有非常大的影響。數(shù)據(jù)集選擇的挑戰(zhàn)性體現(xiàn)在各種圖神經(jīng)網(wǎng)絡(luò)算法可使用的數(shù)據(jù)集非常多。本文調(diào)研了與圖神經(jīng)網(wǎng)絡(luò)算法相關(guān)的可公開獲取的圖數(shù)據(jù)集共326 個,對它們的關(guān)鍵特性進(jìn)行量化和分析,并選取最大化數(shù)據(jù)集多樣性的方案。

最后,如何設(shè)計標(biāo)準(zhǔn)測試集使研究人員可以通過評估結(jié)果來揭示和分析硬件加速器的性能瓶頸也是一大挑戰(zhàn)。一個有效的標(biāo)準(zhǔn)測試集需要能夠根據(jù)評估結(jié)果來分析加速器的性能瓶頸。本文通過對標(biāo)準(zhǔn)測試集中的程序樣例的運(yùn)算步驟進(jìn)行拆分梳理,對其中的關(guān)鍵操作類型進(jìn)行分類測試,以揭示加速器性能優(yōu)化的瓶頸,進(jìn)而幫助研究人員改進(jìn)設(shè)計。

本文提出的圖神經(jīng)網(wǎng)絡(luò)標(biāo)準(zhǔn)測試集(Benchmark for graph neural network,BenchGNN)解決了上述三大挑戰(zhàn)。BenchGNN 包括宏測試集和微測試集兩部分,其中,宏測試集從圖神經(jīng)網(wǎng)絡(luò)任務(wù)類型和應(yīng)用領(lǐng)域的角度選取代表性算法和數(shù)據(jù)集,而微測試集則包括圖神經(jīng)網(wǎng)絡(luò)算法中包含的兩種基礎(chǔ)操作類型和4 個不同規(guī)模特性的圖數(shù)據(jù)集。

本文的主要貢獻(xiàn)如下。

(1)提出了一種針對圖神經(jīng)網(wǎng)絡(luò)硬件加速器評估的標(biāo)準(zhǔn)測試集BenchGNN。該測試集包含多種主要任務(wù)類型和應(yīng)用領(lǐng)域,同時還包括用于分析硬件加速器的設(shè)計優(yōu)劣的微測試集。

(2)BenchGNN 解決了圖神經(jīng)網(wǎng)絡(luò)加速器性能測評結(jié)果嚴(yán)重依賴于數(shù)據(jù)集選取的問題,通過對326 個數(shù)據(jù)集進(jìn)行量化分析進(jìn)而選出代表性的數(shù)據(jù)集。

(3)在現(xiàn)有運(yùn)算設(shè)備上對BenchGNN 進(jìn)行了實驗測試。實驗結(jié)果表明,BenchGNN 可以展示出不同設(shè)備在處理圖神經(jīng)網(wǎng)絡(luò)運(yùn)算的不同任務(wù)時各自的優(yōu)劣所在。

1 相關(guān)工作

本節(jié)將介紹圖神經(jīng)網(wǎng)絡(luò)算法、圖神經(jīng)網(wǎng)絡(luò)硬件加速器和圖神經(jīng)網(wǎng)絡(luò)標(biāo)準(zhǔn)測試集的背景知識和相關(guān)工作,并說明設(shè)計一款針對圖神經(jīng)網(wǎng)絡(luò)硬件加速器的標(biāo)準(zhǔn)測試集的必要性。

1.1 圖神經(jīng)網(wǎng)絡(luò)算法

圖神經(jīng)網(wǎng)絡(luò)算法是一種處理圖數(shù)據(jù)的神經(jīng)網(wǎng)絡(luò)算法,該算法以圖數(shù)據(jù)為輸入,根據(jù)不同的任務(wù)類型輸出不同類型的數(shù)據(jù)結(jié)果。例如,處理頂點(diǎn)級任務(wù)的圖神經(jīng)網(wǎng)絡(luò)算法輸出每個頂點(diǎn)的分類或回歸信息,處理邊級任務(wù)的圖神經(jīng)網(wǎng)絡(luò)算法預(yù)測每條邊的存在和類別,處理圖級任務(wù)的圖神經(jīng)網(wǎng)絡(luò)算法輸出整個圖的分類或者回歸結(jié)果。

圖神經(jīng)網(wǎng)絡(luò)由多層組成,每層以圖數(shù)據(jù)為輸入,輸出具有新的頂點(diǎn)特征向量或新的圖拓樸結(jié)構(gòu)的圖數(shù)據(jù)。輸入圖數(shù)據(jù)先后經(jīng)過這些層的處理,最終得到對圖數(shù)據(jù)進(jìn)行特征提取后的結(jié)果。根據(jù)任務(wù)需求的不同,再根據(jù)這個包含新特征的圖數(shù)據(jù)樣本預(yù)測最終輸出結(jié)果,例如預(yù)測每個頂點(diǎn)的分類信息,預(yù)測每條邊的分類信息或者預(yù)測整個圖的類別信息。

圖神經(jīng)網(wǎng)絡(luò)層的基本計算過程包括鄰居頂點(diǎn)聚合和特征向量轉(zhuǎn)換這兩個主要步驟。如圖1 所示,以圖中的2 號頂點(diǎn)為例,先執(zhí)行鄰居頂點(diǎn)聚合運(yùn)算,將其鄰居頂點(diǎn)的特征向量聚合為一個中間結(jié)果向量。然后再進(jìn)行特征向量轉(zhuǎn)換,2 號頂點(diǎn)的中間結(jié)果向量經(jīng)過一個內(nèi)積層與權(quán)值矩陣相乘得到2 號頂點(diǎn)的輸出向量。對所有頂點(diǎn)都執(zhí)行上述步驟進(jìn)行特征向量轉(zhuǎn)換,就是一個基礎(chǔ)圖神經(jīng)網(wǎng)絡(luò)層的運(yùn)算過程。

圖1 圖神經(jīng)網(wǎng)絡(luò)的基本運(yùn)算過程

根據(jù)一項開源項目的統(tǒng)計,2016 年9 月至2020年3 月已經(jīng)有至少1287 篇與圖神經(jīng)網(wǎng)絡(luò)算法相關(guān)的論文發(fā)表。這導(dǎo)致在對圖神經(jīng)網(wǎng)絡(luò)硬件加速器進(jìn)行測試時,無法對全部圖神經(jīng)網(wǎng)絡(luò)算法進(jìn)行測試,只能選擇其中具有代表性的算法進(jìn)行測試。

1.2 圖神經(jīng)網(wǎng)絡(luò)硬件加速器

自從2019 年HyGCN[12]設(shè)計被發(fā)表之后,已經(jīng)有共計10 篇針對圖神經(jīng)網(wǎng)絡(luò)算法設(shè)計硬件加速器的研究工作被發(fā)表,包括AWB-GCN[10]、EnGN[11]、GRIP[15]和Cambricon-G[19]等。

從事圖神經(jīng)網(wǎng)絡(luò)硬件加速器研究的團(tuán)隊在測試算法的選擇上展現(xiàn)出巨大的差異性。本文整理了這些圖神經(jīng)網(wǎng)絡(luò)硬件加速器論文在性能評估時使用的測試集,圖2 所示是到2020 年3 月為止發(fā)表的10篇圖神經(jīng)網(wǎng)絡(luò)加速器所選擇的測試算法的統(tǒng)計。從算法選取的角度來看,在全部14 個被用于評估加速器性能的圖神經(jīng)網(wǎng)絡(luò)算法中,有10 個算法都僅被一個加速器用于評估,僅有GCN 算法被全部10 個加速器共同選取。圖3 展示了現(xiàn)有加速器評估數(shù)據(jù)集的選取情況,在被用于評估的30 個數(shù)據(jù)集中,有21個數(shù)據(jù)集是僅被一個加速器用于評估。用于評估圖神經(jīng)網(wǎng)絡(luò)硬件加速器設(shè)計的測試集選取的巨大差異性無法在同行之間進(jìn)行直觀的對比,阻礙了圖神經(jīng)網(wǎng)絡(luò)加速器研究的進(jìn)一步發(fā)展。

圖2 現(xiàn)有加速器選用的測試算法

圖3 現(xiàn)有加速器選用的測試數(shù)據(jù)集

1.3 圖神經(jīng)網(wǎng)絡(luò)標(biāo)準(zhǔn)測試集

目前,神經(jīng)網(wǎng)絡(luò)領(lǐng)域針對硬件性能優(yōu)化的標(biāo)準(zhǔn)測試集的典型代表是MLPerf[20],該測試集是一個針對神經(jīng)網(wǎng)絡(luò)各應(yīng)用領(lǐng)域的權(quán)威測試集,在學(xué)術(shù)界和工業(yè)界被廣泛應(yīng)用。MLPerf 測試集的設(shè)計面向各種不同規(guī)模類型的硬件設(shè)備,包括移動端設(shè)備和高性能設(shè)備等。同時MLPerf 還包含各種主流神經(jīng)網(wǎng)絡(luò)的類型,包括卷積神經(jīng)網(wǎng)絡(luò)、循環(huán)神經(jīng)網(wǎng)絡(luò)、Transformer 和深度強(qiáng)化學(xué)習(xí)等。但是,MLPerf 中還沒有任何與圖神經(jīng)網(wǎng)絡(luò)相關(guān)的測試內(nèi)容。本文的研究內(nèi)容可以彌補(bǔ)MLPerf 在圖神經(jīng)網(wǎng)絡(luò)相關(guān)方向測試內(nèi)容的缺失。

另外一部分和圖神經(jīng)網(wǎng)絡(luò)相關(guān)的標(biāo)準(zhǔn)測試集研究工作包括open graph Benchmarking(OGB)[21]和Benchmarking GNN[22]等。OGB 包括一些中等規(guī)模的真實的圖數(shù)據(jù)集并且對這些數(shù)據(jù)集進(jìn)行劃分來實現(xiàn)對算法泛化能力的評估。Benchmarking 圖神經(jīng)網(wǎng)絡(luò)由8 個數(shù)據(jù)集組成,包括4 個人工合成的數(shù)據(jù)集,2 個半人工合成的數(shù)據(jù)集和2 個真實的數(shù)據(jù)集。其設(shè)計重點(diǎn)是提高標(biāo)準(zhǔn)測試集針對不同圖神經(jīng)網(wǎng)絡(luò)算法性能和魯棒性的區(qū)分度。

當(dāng)前提出的這些圖神經(jīng)網(wǎng)絡(luò)標(biāo)準(zhǔn)測試集都是圖數(shù)據(jù)集的集合,其設(shè)計目的是用于評估各種圖神經(jīng)網(wǎng)絡(luò)算法的識別準(zhǔn)確度。它們不適用于圖神經(jīng)網(wǎng)絡(luò)硬件加速器性能評估的原因具體體現(xiàn)在以下兩點(diǎn)。第一,不同圖神經(jīng)網(wǎng)絡(luò)算法的運(yùn)算模式對加速器設(shè)計影響很大。而現(xiàn)有圖神經(jīng)網(wǎng)絡(luò)標(biāo)準(zhǔn)測試集只包含各種圖數(shù)據(jù)集,沒有對圖神經(jīng)網(wǎng)絡(luò)算法進(jìn)行挑選。第二,這些標(biāo)準(zhǔn)測試集在挑選數(shù)據(jù)集時沒有從性能和能耗優(yōu)化的角度進(jìn)行考慮。綜上所述,現(xiàn)有的圖神經(jīng)網(wǎng)絡(luò)標(biāo)準(zhǔn)測試集都無法滿足圖神經(jīng)網(wǎng)絡(luò)加速器評估的需求。

2 標(biāo)準(zhǔn)測試集BenchGNN

本節(jié)將介紹本文所提出的圖神經(jīng)網(wǎng)絡(luò)硬件加速器測評標(biāo)準(zhǔn)測試集的具體內(nèi)容。BenchGNN 分為宏測試集和微測試集兩部分。宏測試集以整個圖神經(jīng)網(wǎng)絡(luò)算法為測試單位,包括各主要類型的圖神經(jīng)網(wǎng)絡(luò)算法和多種主要應(yīng)用領(lǐng)域的數(shù)據(jù)集,用來評估圖神經(jīng)網(wǎng)絡(luò)加速器的整體性能和功耗表現(xiàn)。微測試集以微觀操作類型為測試單位,包括兩種操作類型和4 種不同規(guī)模尺寸的數(shù)據(jù)集。微測試集用來分析圖神經(jīng)網(wǎng)絡(luò)加速器在處理不同運(yùn)算模式和規(guī)模尺寸時的優(yōu)劣之處,進(jìn)而為設(shè)計改進(jìn)提供啟發(fā)。

2.1 宏測試集

宏測試集是用來評估圖神經(jīng)網(wǎng)絡(luò)加速器的宏觀性能和功耗表現(xiàn)的測試樣例集合,以整個圖神經(jīng)網(wǎng)絡(luò)算法為測試單位。宏測試集中測試程序的選取考慮了算法類型和應(yīng)用領(lǐng)域這兩方面,包括3 種主要算法類型,分別是頂點(diǎn)分類(node classification)任務(wù)、圖分類(graph classification)任務(wù)和連接預(yù)測(link prediction)任務(wù)。應(yīng)用領(lǐng)域包括社交網(wǎng)絡(luò)領(lǐng)域、文獻(xiàn)檢索領(lǐng)域、生物學(xué)領(lǐng)域、知識圖譜和語言學(xué)領(lǐng)域。宏測試集的具體內(nèi)容如表1 所示,包括模型的參數(shù)量、所需的計算量和需要達(dá)到的精度。

表1 宏測試集列表

宏測試集中選取的算法介紹如下。

圖卷積網(wǎng)絡(luò)(graph convolutional network,GCN)[4]是最具有代表性的圖神經(jīng)網(wǎng)絡(luò)算法。該算法是為了解決圖數(shù)據(jù)的半監(jiān)督頂點(diǎn)分類問題而提出的。GCN中的圖卷積層可以把圖中每個頂點(diǎn)的特征向量轉(zhuǎn)換為新的特征向量,其結(jié)果可以通過Softmax 運(yùn)算得到頂點(diǎn)類別預(yù)測結(jié)果。式(1)和式(2)是圖卷積層運(yùn)算的2 個步驟。首先,將圖中每個頂點(diǎn)的所有鄰居頂點(diǎn)的特征向量聚合為一個向量;然后,該聚合向量再乘以權(quán)值矩陣,得到每個頂點(diǎn)的新的特征向量作為圖卷積層的輸出。GCN 算法的上述2 個步驟在各種圖神經(jīng)網(wǎng)絡(luò)算法中具有普適性和代表性。

圖注意力網(wǎng)絡(luò)(graph attention network,GAT)[23]將注意力機(jī)制引入到圖神經(jīng)網(wǎng)絡(luò)算法中,提出了圖注意力層。在圖注意力層中,首先根據(jù)每個頂點(diǎn)的特征向量計算出該頂點(diǎn)的兩個自注意力分?jǐn)?shù)值,分別代表本頂點(diǎn)作為一條邊的源頂點(diǎn)和目的頂點(diǎn)時的注意力值;然后根據(jù)每條邊的兩端頂點(diǎn)的注意力值計算出該邊的注意力值;最后在之后的聚合過程中使用上述計算得到的每條邊的注意力值作為權(quán)重執(zhí)行鄰居頂點(diǎn)聚合運(yùn)算。

可微池化算法(differentiable pooling,DiffPool)[2]是圖分類算法的典型代表。該算法引入了圖池化層操作,可以對圖拓?fù)浣Y(jié)構(gòu)數(shù)據(jù)進(jìn)行下采樣,減少圖中頂點(diǎn)的數(shù)量,增大頂點(diǎn)的感受野,提煉圖的高層次信息。圖池化層可以對圖拓?fù)鋽?shù)據(jù)進(jìn)行粗化,經(jīng)過粗化后的圖中的頂點(diǎn)數(shù)量減少,相應(yīng)的頂點(diǎn)特征向量包含更多的全局信息,最終可以將這些頂點(diǎn)特征向量進(jìn)行全局聚合,得到一個向量來表示整個圖的特征信息。DiffPool 是圖池化神經(jīng)網(wǎng)絡(luò)的典型代表,該算法使用矩陣乘法的方式更新頂點(diǎn)的聚類分組信息,實現(xiàn)了可微分的池化操作。

多關(guān)系組合圖卷積網(wǎng)絡(luò)(composition-based multirelational graph convolutional networks,CompGCN)[6]是連接預(yù)測算法的典型代表,在知識圖譜的實體關(guān)系補(bǔ)全任務(wù)中取得優(yōu)異表現(xiàn)。該算法解決了知識圖譜中連接關(guān)系類型多樣性導(dǎo)致的參數(shù)數(shù)量爆炸問題,提出了組合連接關(guān)系編碼的圖神經(jīng)網(wǎng)絡(luò)聚合方式。同時,CompGCN 還通過數(shù)據(jù)增廣的方式將連接關(guān)系劃分為正向、反向和自旋3 種類型,分別學(xué)習(xí)3種權(quán)值矩陣,并對它們的運(yùn)算結(jié)果進(jìn)行加權(quán)求和。

最后,為了明確具體測試標(biāo)準(zhǔn),以下羅列了宏測試集中的4 種圖神經(jīng)網(wǎng)絡(luò)算法的具體超參數(shù)。GCN算法包括2 個GCN 層,其中間層的特征向量長度為256。GAT 算法同樣包括2 個GAT 層,其中間特征向量長度為8,2 個GAT 層的注意力通道分別為8和1。DiffPool 算法包括1 個輸出特征向量長度為64 的GCN 層,1 個聚合類型數(shù)量為12 的DiffPool層,該層對應(yīng)的特征向量長度為64,以及1 個全局池化層和最終的圖分類層。CompGCN 算法采用TransE 作為連接預(yù)測的計分函數(shù),網(wǎng)絡(luò)結(jié)構(gòu)包含2個GCN 層,其中間層的特征向量長度為200。

宏測試集所選取的數(shù)據(jù)集都是圖神經(jīng)網(wǎng)絡(luò)算法研究領(lǐng)域的常用測試數(shù)據(jù)集。其中,頂點(diǎn)分類任務(wù)的常用數(shù)據(jù)集Cora[4]是表示科學(xué)文獻(xiàn)之間的互相引用關(guān)系的圖數(shù)據(jù)。以2708 篇文獻(xiàn)為頂點(diǎn),10 556條引用關(guān)系為邊,任務(wù)目標(biāo)是對每篇文獻(xiàn)進(jìn)行7 選1 分類。Reddit[4]也是頂點(diǎn)分類任務(wù)的常用數(shù)據(jù)集,包含232 965 個表示社交發(fā)貼的頂點(diǎn)和114 615 892條邊,每條邊表示2 個發(fā)貼被同一網(wǎng)絡(luò)用戶留言的相關(guān)關(guān)系,任務(wù)目標(biāo)是對每個網(wǎng)絡(luò)發(fā)帖進(jìn)行分類。圖分類任務(wù)的常用數(shù)據(jù)集Enzymes[2]是一個包含600 個蛋白質(zhì)三級結(jié)構(gòu)的數(shù)據(jù)集,用于根據(jù)每個蛋白質(zhì)的氨基酸組成結(jié)構(gòu)預(yù)測蛋白質(zhì)屬性。連接預(yù)測任務(wù)的常用數(shù)據(jù)集FB15k-237[6]和WN18RR[6]分別來自知識圖譜領(lǐng)域和語言學(xué)領(lǐng)域,頂點(diǎn)表示實體概念,邊表示這些實體之間的相互關(guān)系。這些圖數(shù)據(jù)都是由多個“實體-關(guān)系-實體”三元組組成,連接預(yù)測任務(wù)需要預(yù)測兩個實體頂點(diǎn)之間的邊是否存在以及預(yù)測邊的類型。

2.2 微測試集

本文除了提出上述宏測試集對圖神經(jīng)網(wǎng)絡(luò)加速器的性能功耗進(jìn)行總體評估之外,還提出一系列微測試集對加速器的微觀性能功耗表現(xiàn)進(jìn)行測試。具體來說,微測試包含圖神經(jīng)網(wǎng)絡(luò)運(yùn)算中需要的2 種操作類型和4 種不同規(guī)模尺寸的圖數(shù)據(jù)集。通過對這些不同細(xì)分類型的微觀運(yùn)算場景進(jìn)行分類測試,微測試集的測試結(jié)果可以用來分析圖神經(jīng)網(wǎng)絡(luò)加速器的性能功耗優(yōu)化的不足之處,進(jìn)而啟發(fā)設(shè)計人員進(jìn)行針對性的改進(jìn)。

微測試集的2 種操作類型分別是隨機(jī)向量規(guī)約操作和矩陣乘法操作。這2 種操作類型是通過對宏測試算法的運(yùn)算過程進(jìn)行拆解所得到的。表2 列舉了宏測試集中4 種算法所包含的主要運(yùn)算模式及其操作類型。

表2 圖神經(jīng)網(wǎng)絡(luò)算法操作類型分析

頂點(diǎn)聚合運(yùn)算是圖神經(jīng)網(wǎng)絡(luò)算法的基礎(chǔ)運(yùn)算類型之一。圖聚合運(yùn)算是指在圖上的頂點(diǎn)特征信息按照頂點(diǎn)之間的邊的連接關(guān)系進(jìn)行信息傳遞的過程。圖聚合運(yùn)算最常見的做法是每個頂點(diǎn)將鄰居頂點(diǎn)的信息聚合到本頂點(diǎn),具體的聚合方法包括求和、求均值或求最大值等,如式(1)所示。該過程的核心操作類型就是隨機(jī)向量規(guī)約操作,即取隨機(jī)位置的向量組合執(zhí)行規(guī)約運(yùn)算。因此,本文選擇隨機(jī)向量規(guī)約操作作為微測試集中的一種操作類型。

圖特征轉(zhuǎn)換運(yùn)算是指對圖中的特征向量進(jìn)行轉(zhuǎn)換的過程,其操作對象可能包括每個頂點(diǎn)、每條邊或者整個圖的特征向量。圖特征轉(zhuǎn)換運(yùn)算的具體操作類型為矩陣乘法操作,即每個特征向量與圖神經(jīng)網(wǎng)絡(luò)中的一個權(quán)值矩陣相乘,得到對應(yīng)對象的輸出特征向量。該運(yùn)算不僅可以用于將輸入特征信號轉(zhuǎn)換為隱空間的特征信號,也可以用于在不同層的隱空間之間進(jìn)行轉(zhuǎn)換或者從隱空間轉(zhuǎn)換為具有語義信息的輸出空間的特征信號,例如轉(zhuǎn)換為代表輸出的類別預(yù)測信息的特征向量。除此之外,表2 中的注意力運(yùn)算和可微池化運(yùn)算的核心操作類型也都是矩陣乘法操作。矩陣乘法操作具有運(yùn)算量大、訪存連續(xù)性強(qiáng)、數(shù)據(jù)復(fù)用規(guī)則清晰的特點(diǎn),這與前述隨機(jī)向量規(guī)約操作有明顯區(qū)別。因此本文選擇矩陣乘法操作為微測試集中的第二種操作類型。

除了操作類型之外,數(shù)據(jù)集的選擇對圖神經(jīng)網(wǎng)絡(luò)加速器性能優(yōu)化設(shè)計的影響也很大。例如,圖數(shù)據(jù)中每個圖的頂點(diǎn)數(shù)量和每個頂點(diǎn)的特征向量長度共同決定了該圖的數(shù)據(jù)體積。在頂點(diǎn)聚合運(yùn)算過程中,由于每個頂點(diǎn)可能被多個其他頂點(diǎn)連接,所以每個頂點(diǎn)可能需要多次被訪問。在這種情況下,對于每個圖的頂點(diǎn)數(shù)據(jù)體積較小的數(shù)據(jù)集,可以將頂點(diǎn)特征向量全部緩存在片上存儲中,從而避免重復(fù)進(jìn)行片外訪存帶來的性能損失。但是,對于頂點(diǎn)數(shù)據(jù)體積遠(yuǎn)超芯片片上存儲空間的圖數(shù)據(jù)集,如何做好片上存儲層次和訪存復(fù)用就成為加速器優(yōu)化設(shè)計的關(guān)鍵所在。綜上所述,數(shù)據(jù)集對加速器優(yōu)化設(shè)計的影響很大,所以必須專門挑選微測試集所用的圖數(shù)據(jù)集的規(guī)模尺寸特性以保證微測試集評估的多樣性。

圖數(shù)據(jù)集的規(guī)模尺寸特性主要體現(xiàn)在3 個方面,分別是頂點(diǎn)數(shù)量、邊數(shù)量和頂點(diǎn)特征向量長度。但是由于圖神經(jīng)網(wǎng)絡(luò)運(yùn)算過程中只有第一層的頂點(diǎn)特征向量長度與原數(shù)據(jù)集一致,其后的所有圖神經(jīng)網(wǎng)絡(luò)層中頂點(diǎn)特征向量長度均為模型所指定的長度,因此本文沒有選取頂點(diǎn)特征向量長度作為數(shù)據(jù)集的篩選指標(biāo)。同時,本文使用連接稠密度來替代邊數(shù)量作為數(shù)據(jù)集的篩選指標(biāo)。

本文統(tǒng)計了326 個真實的圖數(shù)據(jù)集的頂點(diǎn)數(shù)量和圖的連接稠密度。然后,根據(jù)這兩個量化特性對數(shù)據(jù)集使用K-Means 算法進(jìn)行聚類,類別數(shù)設(shè)置為4。最后,選取距離每個聚類中心最近的數(shù)據(jù)集作為微測試集中使用的數(shù)據(jù)集。聚類中心和最后選取的數(shù)據(jù)集如圖4 所示。這4 個圖數(shù)據(jù)集分別是Enzymes(ENZ)、computer science(CS)、AM 和FRI。Enzymes 是蛋白質(zhì)結(jié)構(gòu)數(shù)據(jù)庫,其中包含600 個蛋白質(zhì)三級結(jié)構(gòu)的數(shù)據(jù)集。CS 是論文共同作者關(guān)系圖數(shù)據(jù),來自計算機(jī)領(lǐng)域頂級會議的接收論文的共同作者數(shù)據(jù)。FRI 是社交網(wǎng)絡(luò)中的好友關(guān)系圖數(shù)據(jù),來自社交網(wǎng)站Friendster。

圖4 數(shù)據(jù)集特性的聚類分析圖

這4 個數(shù)據(jù)集的規(guī)模尺寸如表3 所列,包括圖數(shù)量、頂點(diǎn)數(shù)量、邊數(shù)量和連接稠密度。除此之外,本文根據(jù)統(tǒng)計經(jīng)驗設(shè)置了16、64 和256 這3 種常用的特征向量長度,見表4。可見,在不同的頂點(diǎn)特征向量長度設(shè)置下,圖數(shù)據(jù)集的頂點(diǎn)特征向量的總體積從2.04 kB 到112 GB 均有分布。微測試集包含圖數(shù)據(jù)集的各種規(guī)模尺寸,以分析不同微觀運(yùn)算場景下的硬件加速器設(shè)計表現(xiàn)。

表3 微測試集數(shù)據(jù)集的規(guī)模特性

表4 微測試集數(shù)據(jù)集的頂點(diǎn)特征向量總體積

3 實驗測試

為了展示BenchGNN 的實際效果,本文在典型硬件設(shè)備上對BenchGNN 進(jìn)行了實驗測試,包括中央處理器(central processing unit,CPU)、圖形處理器(graphics processing unit,GPU)和圖神經(jīng)網(wǎng)絡(luò)加速器。本文實驗所用的CPU 為Intel(R) Xeon(R)CPU E5-2690 v4,GPU 為NVIDIA Tesla P100-16 GB,選用的圖神經(jīng)網(wǎng)絡(luò)專用加速器為Cambricon-G[19]。這3 種硬件設(shè)備的關(guān)鍵特性列舉在表5 中。其中,Cambricon-G 的功耗為其論文中所列數(shù)據(jù),該數(shù)據(jù)為芯片靜態(tài)功耗,且不包含片外存儲的功耗。

表5 實驗設(shè)備的關(guān)鍵特性

為了保證測試實驗?zāi)軌驕?zhǔn)確地反映設(shè)備的最佳性能功耗表現(xiàn),針對CPU 和GPU 的實驗過程使用的是當(dāng)前最先進(jìn)的圖神經(jīng)網(wǎng)絡(luò)軟件框架DGL(deep graph library)。其中,宏測試集算法CompGCN 不支持在DGL 框架中實現(xiàn),因此使用的是論文對應(yīng)的開源代碼。對于專用加速器Cambricon-G,本文首先根據(jù)公開論文編寫軟件模擬器,然后針對每個算法的運(yùn)算過程使用腳本生成指令,最后在模擬器上運(yùn)行指令對其性能和功耗進(jìn)行評估測試。

本文使用上述3 種硬件設(shè)備分別運(yùn)行了宏測試集的5 個測試程序,對其性能和功耗結(jié)果進(jìn)行了評估和分析。圖5 是宏測試集性能測試結(jié)果,圖中展示了3 種運(yùn)算設(shè)備分別運(yùn)行宏測試集的推理時間,單位是毫秒(ms)。為了顯示清晰,本文在圖中使用縮寫Cam-G 代表圖神經(jīng)網(wǎng)絡(luò)專用加速器Cambricon-G。可見,CPU 的性能表現(xiàn)遠(yuǎn)差于具有較高并行運(yùn)算能力的GPU 和Cambricon-G,主要原因是圖神經(jīng)網(wǎng)絡(luò)算法運(yùn)算過程中的主要數(shù)據(jù)類型為頂點(diǎn)特征向量,其相關(guān)操作均為向量運(yùn)算,較弱的并行運(yùn)算性能使得CPU 在處理圖神經(jīng)網(wǎng)絡(luò)算法時性能很差。

圖5 宏測試集性能測試結(jié)果

從圖5 來看,GPU 和Cambricon-G 的性能表現(xiàn)較為接近。為了能更直觀地對比GPU 和Cambricon-G 在處理圖神經(jīng)網(wǎng)絡(luò)算法時的相對性能表現(xiàn),本文以CPU 的性能表現(xiàn)為基準(zhǔn),進(jìn)一步計算和分析了其他兩種設(shè)備相對于CPU 的加速比,如圖6 所示。平均來看,GPU 相對于CPU 實現(xiàn)了181.1 倍的加速比,而Cambricon-G 相對于CPU 實現(xiàn)了996.5倍的加速比。其中,在DiffPool-Enzymes 測試程序上,Cambricon-G 的性能達(dá)到GPU 的42.6 倍。而在宏測試集的其他4 種測試程序上,2 種硬件設(shè)備的性能差距穩(wěn)定在2.6~5.2 倍。為了探究造成這一特殊情況的原因,本文進(jìn)一步測試了GPU 在運(yùn)行宏測試集程序時的利用率。如圖7 所示,本文使用NVIDIA 官方提供的GPU 狀態(tài)實時監(jiān)測工具nvidiasmi 抓取了實驗過程中GPU 能達(dá)到的利用率的最大值。可見,在執(zhí)行DiffPool-Enzymes 測試程序時,GPU 的最大利用率僅為11%,遠(yuǎn)低于GPU 在運(yùn)行其他測試程序時的利用率。造成這一現(xiàn)象的原因是該測試程序是圖分類任務(wù),Enzymes 數(shù)據(jù)集是由600個規(guī)模很小的圖結(jié)構(gòu)組成,平均每個圖僅包含33 個頂點(diǎn),并且每個圖數(shù)據(jù)的頂點(diǎn)數(shù)和拓?fù)浣Y(jié)構(gòu)各不相同,因此GPU 無法高效地進(jìn)行批處理,頻繁地啟動核函數(shù)處理每個小圖數(shù)據(jù)造成GPU 利用率低,最終導(dǎo)致性能表現(xiàn)較差。而在其他測試程序中,GATCora 測試程序的GPU 利用率為42%,低于其他3種測試程序 GCN-Reddit、CompGCN-FB15k237 和CompGCN-WN18RR,原因在于其Cora 數(shù)據(jù)集的規(guī)模較小,僅2708 個頂點(diǎn),同時GAT 算法隱藏層通道數(shù)也較少,中間特征向量長度僅為8。兩者共同導(dǎo)致GAT-Cora 測試程序并行度不高,GPU 的運(yùn)算單元無法被充分利用。

圖6 宏測試集加速比測試結(jié)果

圖7 宏測試集GPU 利用率

圖8 展示了CPU、GPU 和Cambricon-G 的性能功耗比,單位是GFlops/W??傮w來看,CPU 和GPU 的性能功耗比平均僅為0.014 GFlops/W 和8.62 GFlops/W,而Cambricon-G 的平均性能功耗比達(dá)到56.6 GFlops/W,原因在于Cambricon-G 設(shè)計了專門針對圖神經(jīng)網(wǎng)絡(luò)算法的片上存儲層次和訪存優(yōu)化方案。通過對圖拓?fù)溥M(jìn)行預(yù)處理,Cambricon-G 的片上緩存結(jié)構(gòu)可以高效地進(jìn)行頂點(diǎn)特征向量在緩存中的替換,使其緩存命中率大幅提高。因此,Cambricon-G 運(yùn)行圖神經(jīng)網(wǎng)絡(luò)算法時大幅降低了片外訪存總量,提高了總體性能,同時也降低了訪存功耗,因此具有較高的性能功耗比表現(xiàn)。

圖8 宏測試集性能功耗比測試結(jié)果

同時,本文使用上述3 種運(yùn)算設(shè)備對BenchGNN 的微測試集進(jìn)行了實驗測試。在微測試集中,由于FRI 數(shù)據(jù)集頂點(diǎn)特征向量的體積達(dá)到112 GB,遠(yuǎn)遠(yuǎn)超過當(dāng)代GPU 和各類圖神經(jīng)網(wǎng)絡(luò)加速器的存儲容量,現(xiàn)有GPU 和加速器都無法支持與FRI 數(shù)據(jù)集相關(guān)的測試,因此本文的后續(xù)實驗和分析都不包含F(xiàn)RI 數(shù)據(jù)集。事實上,由于數(shù)據(jù)集規(guī)模太大,包括學(xué)術(shù)界所提出的圖神經(jīng)網(wǎng)絡(luò)加速器在內(nèi)的大部分的現(xiàn)有運(yùn)算設(shè)備都無法端到端地支持與FRI 規(guī)模尺寸相近的數(shù)據(jù)集。然而,從大量圖數(shù)據(jù)集規(guī)模特性的聚類結(jié)果(如圖4)來看,有相當(dāng)數(shù)量的數(shù)據(jù)集具有比FRI 更大的規(guī)模特性。這種超大規(guī)模圖數(shù)據(jù)的部署和加速優(yōu)化問題是當(dāng)前圖神經(jīng)網(wǎng)絡(luò)加速運(yùn)算的空白領(lǐng)域,有待研究人員針對這類超大規(guī)模圖處理任務(wù)設(shè)計專門的硬件加速器,或者設(shè)計專門處理超大規(guī)模圖神經(jīng)網(wǎng)絡(luò)任務(wù)的分布式運(yùn)算系統(tǒng)。

圖9 為微測試集矩陣乘法操作的性能測試結(jié)果。在處理較大規(guī)模的圖數(shù)據(jù)集CS 和AM 時,Cambricon-G 的性能表現(xiàn)弱于GPU,其原因是矩陣乘法操作具有運(yùn)算量大、訪存連續(xù)性強(qiáng)和數(shù)據(jù)復(fù)用規(guī)則清晰等特點(diǎn),適合GPU 這種規(guī)整的并行處理器。因此GPU 的性能表現(xiàn)優(yōu)于Cambricon-G。而在處理Enzymes 數(shù)據(jù)集時,由于每個圖數(shù)據(jù)規(guī)模較小且頂點(diǎn)數(shù)量不同,導(dǎo)致GPU 無法高效地進(jìn)行批處理,因此性能弱于Cambricon-G。本文使用nvprof 工具對微測試集運(yùn)算過程中的關(guān)鍵硬件指標(biāo)進(jìn)行監(jiān)測。圖10 和圖11 分別展示了GPU 在運(yùn)行微測試集的矩陣乘法操作時的運(yùn)算單元利用率和實際片外訪存帶寬??梢园l(fā)現(xiàn),對于CS 和AM 這2 個數(shù)據(jù)集,GPU 可以保持不低于25%的運(yùn)算單元利用率和49 GB/s 以上的實際訪存帶寬。對比之下,以Enzymes 為代表的小圖數(shù)據(jù)集則只能實現(xiàn)不到4%的運(yùn)算單元利用率和不到4 GB/s 的實際訪存帶寬。

圖9 微測試集矩陣乘法操作的性能測試結(jié)果

圖10 矩陣乘法操作的GPU 運(yùn)算單元率

圖11 矩陣乘法操作的GPU 實際片外訪存帶寬

圖12 為微測試集隨機(jī)向量規(guī)約操作的性能測試結(jié)果。隨機(jī)向量規(guī)約操作需要根據(jù)圖拓?fù)溥B接關(guān)系進(jìn)行大量的隨機(jī)訪存操作,因此訪存連續(xù)度較低。而GPU 使用高帶寬的HBM2 片外存儲適合對向量或矩陣進(jìn)行連續(xù)訪存。而Cambricon-G 針對圖神經(jīng)網(wǎng)絡(luò)的這種隨機(jī)訪存模式進(jìn)行了優(yōu)化設(shè)計,因而其性能表現(xiàn)優(yōu)于GPU。根據(jù)如圖13 和圖14 所示的運(yùn)算單元利用率和實際訪存帶寬監(jiān)測結(jié)果,GPU 在執(zhí)行隨機(jī)向量規(guī)約操作時在全部數(shù)據(jù)集上只能實現(xiàn)最多1.02%的運(yùn)算單元利用率和不超過40 GB/s 的實際訪存帶寬,遠(yuǎn)低于GPU 在執(zhí)行矩陣乘法操作時的相應(yīng)指標(biāo)。進(jìn)一步分析可以發(fā)現(xiàn),GPU在小圖數(shù)據(jù)集Enzymes 上的性能表現(xiàn)也遠(yuǎn)不如Cambricon-G。原因是在Enzymes 數(shù)據(jù)集上執(zhí)行隨機(jī)向量規(guī)約時,GPU 只能實現(xiàn)不超過0.05%的運(yùn)算單元利用率和不到2 GB/s 的實際訪存帶寬。

圖12 微測試集隨機(jī)向量規(guī)約操作的性能測試結(jié)果

圖13 隨機(jī)向量規(guī)約操作的GPU 運(yùn)算單元率

圖14 隨機(jī)向量規(guī)約操作的GPU 實際片外訪存帶寬

根據(jù)上述實驗結(jié)果可以得出以下結(jié)論,高效處理圖神經(jīng)網(wǎng)絡(luò)算法需要硬件設(shè)備具有較高的并行度,而以GPU 為代表的通用并行處理器由于無法高效處理圖神經(jīng)網(wǎng)絡(luò)算法的隨機(jī)訪存問題,減弱了其性能功耗表現(xiàn)。因此,針對圖神經(jīng)網(wǎng)絡(luò)算法設(shè)計專用的硬件加速器成為必不可缺的技術(shù)路線和重要研究方向。本文所提出的BenchGNN 在多種任務(wù)類型、應(yīng)用領(lǐng)域、微觀操作類型和數(shù)據(jù)集規(guī)模特性等多種場景對圖神經(jīng)網(wǎng)絡(luò)運(yùn)算設(shè)備進(jìn)行評估,可以作為學(xué)術(shù)界針對圖神經(jīng)網(wǎng)絡(luò)專用硬件加速器研究的設(shè)計目標(biāo)和評價標(biāo)準(zhǔn)。

4 結(jié)論

針對現(xiàn)有圖神經(jīng)網(wǎng)絡(luò)硬件加速器研究缺乏統(tǒng)一的標(biāo)準(zhǔn)測試集的問題,本文提出一種針對圖神經(jīng)網(wǎng)絡(luò)硬件加速器性能評估的標(biāo)準(zhǔn)測試集BenchGNN。BenchGNN 包括用于整體性能評估的宏測試集和用于性能表現(xiàn)優(yōu)劣勢分析的微測試集。BenchGNN 的宏測試集包含圖神經(jīng)網(wǎng)絡(luò)算法的3 種任務(wù)類型和5種應(yīng)用領(lǐng)域,微測試集包含2 種主要操作類型和不同量化特性的圖數(shù)據(jù)集。本文還在現(xiàn)有設(shè)備CPU、GPU 和圖神經(jīng)網(wǎng)絡(luò)專用加速器上對BenchGNN 進(jìn)行了實驗測試,實驗結(jié)果表明BenchGNN 可以展示出不同設(shè)備在處理圖神經(jīng)網(wǎng)絡(luò)運(yùn)算時的性能和功耗表現(xiàn)。同時,結(jié)合微測試集的實驗結(jié)果,BenchGNN 可以對后續(xù)設(shè)計新的圖神經(jīng)網(wǎng)絡(luò)加速器提出有價值的優(yōu)化建議。

猜你喜歡
加速器特征向量頂點(diǎn)
二年制職教本科線性代數(shù)課程的幾何化教學(xué)設(shè)計——以特征值和特征向量為例
莫比斯加速器眾創(chuàng)辦公空間
知識快餐店 科學(xué)加速器
克羅內(nèi)克積的特征向量
過非等腰銳角三角形頂點(diǎn)和垂心的圓的性質(zhì)及應(yīng)用(下)
過非等腰銳角三角形頂點(diǎn)和垂心的圓的性質(zhì)及應(yīng)用(上)
全民小康路上的“加速器”
一類三階矩陣特征向量的特殊求法
數(shù)學(xué)問答
一個人在頂點(diǎn)