高级搜索

留言板

尊敬的读者、作者、审稿人, 关于本刊的投稿、审稿、编辑和出版的任何问题, 您可以本页添加留言。我们将尽快给您答复。谢谢您的支持!

姓名
邮箱
手机号码
标题
留言内容
验证码

基于忆阻器的图卷积神经网络加速器设计

李冰 午康俊 王晶 李森 高岚 张伟功 倪天明

李冰, 午康俊, 王晶, 李森, 高岚, 张伟功, 倪天明. 基于忆阻器的图卷积神经网络加速器设计[J]. 电子与信息学报, 2023, 45(1): 106-115. doi: 10.11999/JEIT211435
引用本文: 李冰, 午康俊, 王晶, 李森, 高岚, 张伟功, 倪天明. 基于忆阻器的图卷积神经网络加速器设计[J]. 电子与信息学报, 2023, 45(1): 106-115. doi: 10.11999/JEIT211435
LI Bing, WU Kangjun, WANG Jing, LI Sen, GAO Lan, ZHANG Weigong, NI Tianming. Design of Graph Convolutional Network Accelerator Based on Resistive Random Access Memory[J]. Journal of Electronics & Information Technology, 2023, 45(1): 106-115. doi: 10.11999/JEIT211435
Citation: LI Bing, WU Kangjun, WANG Jing, LI Sen, GAO Lan, ZHANG Weigong, NI Tianming. Design of Graph Convolutional Network Accelerator Based on Resistive Random Access Memory[J]. Journal of Electronics & Information Technology, 2023, 45(1): 106-115. doi: 10.11999/JEIT211435

基于忆阻器的图卷积神经网络加速器设计

doi: 10.11999/JEIT211435
基金项目: 国家自然科学基金(62174001, 61904001),安徽省重点研究与开发计划(202104b11020032),安徽工程大学中青年拔尖人才计划
详细信息
    作者简介:

    李冰:女,博士,副研究员,研究方向为人工智能加速器软硬件协同优化、存内计算、类脑神经计算和忆阻器

    午康俊:男,硕士生,研究方向为计算机体系结构、存内计算、忆阻器

    王晶:女,博士,研究员,研究方向为计算机体系结构、高性能计算、容错计算

    李森:男,博士,工程师,研究方向为计算机系统与可靠性

    高岚:女,博士,讲师,研究方向为GPU体系结构及并行编程、CPU-GPU异构系统、共享缓存资源管理

    张伟功:男,博士,研究员,研究方向为计算机体系结构、高可靠嵌入式系统设计

    倪天明:男,博士,副教授,研究方向为数字集成电路可测性/可靠性和可制造性设计、3维集成电路容错设计、数字集成电路抗辐射加固设计、硬件安全

    通讯作者:

    王晶 jwang@cnu.edu.cn

  • 中图分类号: TN929.5; TN601

Design of Graph Convolutional Network Accelerator Based on Resistive Random Access Memory

Funds: The National Natural Science Foundation of China (62174001, 61904001), Anhui Provincial Key Research and Development Program (202104b11020032), Anhui Polytechnic University Young and Middle-Aged Top Talent Training Program
  • 摘要: 图卷积神经网络(GCN)在社交网络、电子商务、分子结构推理等任务中的表现远超传统人工智能算法,在近年来获得广泛关注。与卷积神经网络(CNN)数据独立分布不同,图卷积神经网络更加关注数据之间特征关系的提取,通过邻接矩阵表示数据关系,因此其输入数据和操作数相比卷积神经网络而言都更加稀疏且存在大量数据传输,所以实现高效的GCN加速器是一个挑战。忆阻器(ReRAM)作为一种新兴的非易失性存储器,具有高密度、读取访问速度快、低功耗和存内计算等优点。利用忆阻器为CNN加速已经被广泛研究,但是图卷积神经网络极大的稀疏性会导致现有加速器效率低下,因此该文提出一种基于忆阻器交叉阵列的高效图卷积神经网络加速器,首先,该文分析GCN中不同操作数的计算和访存特征,提出权重和邻接矩阵到忆阻器阵列的映射方法,有效利用两种操作数的计算密集特征并避免访存密集的特征向量造成过高开销;进一步地,充分挖掘邻接矩阵的稀疏性,提出子矩阵划分算法及邻接矩阵的压缩映射方案,最大限度降低GCN的忆阻器资源需求;此外,加速器提供对稀疏计算支持,支持压缩格式为坐标表(COO)的特征向量输入,保证计算过程规则且高效地执行。实验结果显示,该文加速器相比CPU有483倍速度提升和1569倍能量节省;相比GPU也有28倍速度提升和168倍能耗节省。
  • 为了应对图结构数据规模不断扩大带来的挑战,随着人工智能的发展研究人员结合卷积特征提取方案针对图结构数据提出了图卷积网络(Graph Convolutional Network, GCN) [1]并应用到社交网络[2]、分子结构预测[3]等多个领域中。目前已有多个针对图卷积神经网络的专用加速器设计,例如混合架构图卷积网络加速器(a GCN accelerator with Hybrid architecture, HyGCN)[4]分析节点聚合和特征提取阶段计算差异,对每个阶段采用不同的架构和数据流;运行时工作负载再平衡图卷积网络加速器(a Graph Convolutional Network Accelerator with runtime Workload reBalancing, AWB-GCN)[5]提出了一些数据重映射方案自动调整工作负载,缓解GCN计算时邻接矩阵不规则的数据分布导致的处理单元(Processing Element, PE)空转问题。高吞吐量高能效图神经网络加速器(a high-throughput and Energy-efficient accelerator for Large Graph Neural networks, EnGN)[6]则集成了神经图处理单元(Neural Graph Processing Unit, NGPU)以在统一的架构下执行图神经网络特征提取、聚合和更新操作,并利用图分块(graph tiling)、环边归约(ring-edge-reduce)、节点度感知缓存(degree aware vertex cache)等技术解决图规模庞大、稀疏连接不规则内存访问以及图节点幂律分布导致的数据局部性低,处理单元利用率不足,内存冗余等问题。然而上述基于传统冯诺依曼架构的加速器都存在大量数据移动和频繁访存,能耗延迟过高。忆阻器(Resistive Random Access Memory, ReRAM)[7]作为一种新兴的非易失性存储器件,具有高密度、读取访问速度快和低功耗等特性,由忆阻器组成的交叉阵列可以实现存内计算,有效减少数据移动。目前已经有多个基于忆阻器的神经网络加速器[8-11]以及图处理加速器[12-14],但是由于图卷积神经网络庞大的计算规模,极其稀疏的连接关系以及相对稳定的邻居节点使其不适宜直接部署在上述加速器中。图神经网络存内处理架构(a Processing-In-Memory architecture for Graph Neural Networks, GNN-PIM)[15]是第1个基于存内处理的图神经网络加速器,它提出一种数据流让图神经网络中多个子图并行运算,但是其静态的数据选择模式无法解决不规则图数据分布的影响并且节点数据仍旧需要大量传输过程。忆阻器交叉阵列虽然可以解决数据移动问题,但是真实大规模图数据中节点有限的邻居关系致使邻接矩阵极其稀疏,同时输入特征向量的稀疏性也很大,如果直接映射计算,会在无效零值上浪费大量资源。图学习任务自适应忆阻器计算 (Task-Adaptive in-situ ReRAM computing for graph learning, TARe)[16]提出了一种基于ReRAM的原位图学习加速器架构,支持混合原位加载,选择性地将稀疏的输入数据存储在忆阻器阵列上做计算,并提出一种稀疏数据映射机制来优化映射过程,但是此方案未充分复用邻接矩阵和权值,并且在映射时未考虑划分方案对结果的影响。综上,结合忆阻器和图卷积神经网络特性,本文将设计一个利用图卷积神经网络数据稀疏差异性的ReRAM图卷积神经网络加速器。本文的主要贡献为:

    (1) 本文分析了GCN中各操作数的计算访存特征并提出权重和邻接矩阵到忆阻器的映射过程,充分利用这两种操作数的计算密集特征同时避免访存密集的特征向量产生过高开销。

    (2) 针对邻接矩阵稀疏性,本文提出子矩阵划分算法以及邻接矩阵的压缩映射方案,最大限度降低GCN忆阻器资源需求,并且加速器提供对稀疏计算支持,支持压缩格式为坐标表的特征向量输入,保证计算过程规则且高效地执行。

    (3) 根据本文的实验结果,加速器相比CPU和GPU分别有483倍和28倍的速度提升以及1569倍和168倍的能耗节省。

    本文的余下部分按以下形式组织,第2节将介绍图卷积神经网络和忆阻器的相关背景知识。第3节将详细讨论加速器设计方案,包括加速器整体架构以及针对不同稀疏数据的具体优化措施。第4节展示本文实验相关设置和结果分析。最后第5节工作总结。

    图卷积神经网络因其对关系数据的强大建模能力已被应用于包括推荐系统、生物化学、网络分析、计算机视觉以及自然语言处理等多个领域中[17]图1为图卷积神经网络计算步骤,公式为

    图 1  图卷积神经网络计算
    X(l+1)=σ(AX(l)W(l))
    (1)

    其中,A是图的邻接矩阵,每行数据表示当前节点与其他所有节点的连接关系,考虑到节点邻居分布的不规则性通常需要对邻接矩阵A进行归一化处理并且其在整个图卷积神经网络计算过程中保持不变。X(l)是第l层的输入特征矩阵,每个行向量表示节点的特征向量。W(l)是第l层的权重矩阵,同一层中所有节点共用一套权值参数。σ(.)为非线性激活函数,例如线性整流单元(REctified Linear Units, RELU)函数。图卷积神经网络矩阵乘积虽然存在大量无效0值参与运算,但是其规则的数据运算过程可以被忆阻器交叉阵列高效处理。

    忆阻器是一种非易失性存储器,由上下电极和金属氧化物组成,通过改变金属氧化物的电阻来存储数据并且断电后保持不变。以交叉阵列(crossbar)形式组织的忆阻器能够模拟向量矩阵乘法,图2(a)展示了具体计算过程,对每个字线施加不同电压作为向量输入值,矩阵数据用忆阻器中的电导表示,根据基尔霍夫定律从位线中测得电流值即为向量矩阵乘积结果。如式(2)所示:V为输入电压,G为电导率,I为输出电流值,i,j 分别表示对应字线和位线。交叉阵列内存储的矩阵数据可以长期保持且不受断电影响,因此可以实现存算一体化,非常适合用于运算存储密集型计算的加速。本文将基于忆阻器交叉阵列设计一种对稀疏进行特别优化的图卷积神经网络加速器

    图 2  Crossbar乘加运算和Crossbar上GCN映射方案
    Ij=iVi×Gij
    (2)

    加速器架构采用类似ISAAC[8]的层级设计,由多个片(Tile)组成(图3)。每个Tile包括以下几部分:多个原位乘加模块(In-situ Multiplication Adder, IMA)用于执行向量矩阵运算;Tile缓冲区存储输入向量值以及计算结果;控制单元调度缓冲区和IMA之间的数据交互;IO接口则加载图数据和相关指令到缓冲区和控制单元上,其中IMA通过低开销的H树结构互连。IMA内部又包含多个忆阻器阵列及相关外围电路:寻址单元将压缩格式存储的数据映射到交叉阵列正确的位置上,同时它还负责控制行列地址选通信号来激活参与计算的行列;输入输出寄存器缓存输入特征和中间结果;数模转换器(Digital Analog Converter, DAC)和模数转换器(Analog Digital Converter, ADC)用于数模转换和模数转换,由于ADC的面积和功耗开销相对更大,因此每个交叉阵列的多个位线共享一个ADC;采样保持器对模拟值进行采样并在转换为数字形式之前将其存留;为了支持高精度数据,数据高位和低位存储在相邻的忆阻器阵列上进行计算,所得各部分结果利用移位加单元合成完整的计算结果;最后经ReLU单元激活后即可得到本层输出结果。

    图 3  加速器整体架构

    表1是各数据集信息,其中Cora, Citeseer, Pubmed是3个引文网络数据集[18],Nell是知识图谱数据集[19]。图卷积神经网络每层特征提取时所有节点特征共享相同的权重矩阵,邻接矩阵则应用于图卷积所有层的节点聚合过程。为了减少数据传输提高数据重用率,将邻接矩阵以及每层权重参数固定在交叉阵列忆阻器单元上,一方面复用数据,降低延迟能耗,另一方面也避免了对ReRAM的频繁写操作,增加忆阻器使用寿命。本文划分Tile为两部分,一部分Tile存储各层权重矩阵W,其余Tile保存邻接矩阵A,将各节点的特征向量Xi作为输入依次送入Tile中计算。如图2(b)所示,对式(1)存在两种计算顺序,分别为(XT×AT)T×W((X×W)T×AT)T。因为真实图数据节点数目众多(几千至数万不等)但各节点仅与有限邻居节点相连,导致邻接矩阵A很大并且极其稀疏(平均稀疏度99.9%),特征矩阵X也具有较大的稀疏性(平均稀疏度99.6%)而权重矩阵W通常很小且密集(表1),如果先计算(XT×AT)会生成非常大的密集矩阵,再与另一个密集矩阵W相乘将导致大量计算[5]和中间结果数据传输。为了减少计算量和数据传输,本文采用第2种计算顺序((X×W)T×AT)T ,接下来根据这两个计算步骤分别介绍本文的映射和优化。

    表 1  不同数据集密集度、体量和维度
    CoraCiteseerPubmedNell
    密集度(%)A0.180.110.0280.0073
    X11.270.8510.00.011
    W100100100100
    体量(%)A65.0147.1097.4492.12
    X134.4052.422.477.58
    维度节点数270833271971765755
    特征数143337035005414
    下载: 导出CSV 
    | 显示表格

    输入特征X1的体量和稀疏度随图卷积任务的不同而有所变化,一般特征值维度越大其体量和稀疏度也就越大,某些任务中X1的稀疏度高达99.9%的同时数据量占比近1/2,因此有必要对其进行稀疏优化。在X×W计算时稀疏特征向量通常以行列坐标值(row,col ,value )压缩格式存储在缓冲区中,row为特征所属节点,col表示此节点的第col个特征,value为特征值。Tile上的控制单元依据行坐标值row和列坐标值col将数据传输至对应IMA相应阵列字线上,对应IMA记为IMAcount,相应交叉阵列和字线分别记为XBarcountWordlinecount。由于不同任务节点特征数目不同,所需的IMA数目也不同,用NodeIMA表示完成一个节点特征提取所需的IMA数目,为了计算NodeIMA我们首先需要知道一个IMA最多可以处理的特征值数目,用IMAFeature表示,XBarnum是IMA上的交叉阵列数目,XBarsize为交叉阵列大小

    IMAFeature=XBarnum×XBarsize
    (3)
    NodeIMA=Feature/IMAFeature
    (4)

    因为1个节点特征提取可能需要多个IMA,记为一个IMA组,本文用IMAcount表示当前特征值属于IMA组中的第几个IMA

    IMAcount=col/IMAFeature
    (5)

    为了提高运算并行度,本文将权重矩阵复制多份,同时提取多个节点特征,用Simultnode表示同时运算的节点数目。则总体IMA计数IMAcount计算如式(6)所示

    IMAcount=(rowmodsimultnode)×NodeIMA+IMAcount
    (6)

    接着IMA内寻址单元通过列坐标col将其分发至对应交叉阵列的对应字线上。分发规则为式(7)和式(8)。需要注意的是存在部分任务其特征向量维度过大,计算需要多个Tile共同完成,此时col应为减去对应偏置后的值,偏置为Tile乘以每个Tile能够处理的特征值数目

    XBarcount=(colIMAcount×IMAFeature)/XBarsize
    (7)
    Wordlinecount=colmodXBarsize
    (8)

    图4展示了具体映射过程,在本例中NodeIMA=2, IMAFeature=4, Simultnode=2, XBarsize=2, XBarnum=2。用不同颜色表示不同的节点,每个圆圈表示一个特征值,非0有效值的颜色更加突出,在Buffer缓冲区中数据以行列坐标压缩存储。本文以蓝色节点的特征值(1, 4,V2)为例说明数据传输过程:首先计算IMAcount=4/4=1, IMAcount=(1 mod 2)×2+1=3,可知此特征值应送入IMA3中。接着XBarcount=(41×4)/2=0, Wordlinecount=4 mod 2=0,则将其载入XBar0的第0条字线上进行乘加运算。这样仅需激活有效数据对应的字线,降低输入特征稀疏性对能耗的影响。

    图 4  稀疏特征映射

    具有全局不变性的邻接矩阵应用于GCN各层计算,其在初始化时被写入忆阻器单元,但是邻接矩阵稀疏性极大,在各个数据集中稀疏度均超过99%。因为邻接矩阵上所有有效数据均需频繁参与运算,出于对ReRAM计算并行性以及特征数据映射和乘加操作复杂度的考虑,本文采用先划分后压缩的稀疏处理方案。如图5所示,首先将稀疏邻接矩阵划分为子矩阵,图5中每个小方块代表一个子矩阵,全0子矩阵用空白方块表示,接着将非0子矩阵按照IMA中交叉阵列排布按列压缩,最后把压缩后的数据映射到各个Tile上。

    图 5  稀疏邻接矩阵子矩阵划分、压缩和映射

    通过划分子矩阵并压缩映射的方案能有效缓解稀疏性对邻接矩阵计算的影响,但是不同大小的子矩阵划分粒度会导致不同的Tile映射数目需求,进而影响加速器能效。不同子矩阵划分粒度下的Tile消耗如图6(a)所示,横轴表示子矩阵划分粒度,纵轴为Tile占用数目,Cora和Citeseer数据对应左侧坐标轴,Pubmed和Nell数据对应右侧坐标轴,可以发现不同划分方案结果并非线性关系。接着观察不同子矩阵划分下的Tile分布情况,图6(b)为Cora数据集在子矩阵划分大小分别为32和16时的Tile分布情况,横轴为不同划分下所需的Tile列数,纵轴为每列Tile数目,本文观察到子矩阵划分粒度为16时相比32时占用更多Tile列,但同时稀疏利用率也越高使得每列Tile数目相对更少,反之亦然。为了得到最优划分,本文希望每个Tile列上数据尽可能利用稀疏的同时占用更少Tile列。由于子矩阵划分粒度在交叉阵列大小范围内,是离散且有限的,并且其在Tile上规则排布,模拟开销小,所以本文通过遍历模拟子矩阵压缩后的Tile映射选择Tile资源数目最少的划分方案即为最优划分。

    图 6  邻接矩阵不同子矩阵划分下Tile数目

    本文参考交叉阵列卷积网络加速器(a convolutional neural network accelerator with In-Situ Analog Arithmetic in Crossbars, ISAAC)等[8,20]以往工作基于忆阻器神经形态计算系统建模工具(a behavior-level modeling tool for Memristor-based Neuromorphic Computing Systems, MNSIM)[21]构建了一款模拟器对加速器进行评估,MNSIM是一款专为基于忆阻器的存内计算架构设计的模拟器,它提供对CNN计算精度和硬件性能(即面积、功率、能量和延迟等)的建模仿真。本文加速器采用32 nm工艺, ReRAM单元为1T1R结构,HRS / LRS分别为150 kΩ/ 30 kΩ,读/写电压为0.5 V/3 V,系统时钟频率为500 MHz。加速器总体大小约为4.3 GB,共65536个Tile,但是由于功耗限制同时运行的Tile数目不超过120,每个Tile约70 kB,包含16个IMA 和 4 kB Output buffer,每个IMA包含8个64×64的交叉阵列和1 kB Input buffer。每个交叉阵列有64个1 bit DAC和2个8 bit ADC。每个ReRAM单元存储1 bit数据。

    用于评估GCN的数据集为Cora, Citeseer, Pubmed和Nell。Cora, Citeseer, Pubmed是3个引文网络数据集[18],包含每篇论文的稀疏词袋特征向量和论文之间的引文链接列表;Nell是从[19]所述知识图谱中得到的数据集。实验对比了GCN及上述数据集在4个平台的实验结果,采用稀疏特征映射,邻接矩阵子矩阵划分优化方案的OPT,未采用优化方案的BASE,基于PyG[22,5]框架的Intel至强E5-2680-V3 CPU平台和基于PyG框架的NVIDIA RTX 8000 GPU平台。

    为了获得GCN在加速器平台运行的延迟及能耗结果,本文首先将数据集特征向量和邻接矩阵分别预处理映射,得到各数据特征向量和邻接矩阵在加速器上的映射参数,例如Tile数目、各Tile上交叉阵列激活行列数等。接着我们将其映射到加速器上进行仿真运算,最终得到GCN计算的延迟、能耗结果。

    本文首先评估不同子矩阵划分方案的Tile资源占用量,并选择最小占用的子矩阵划分方案,结果如表2所示。

    表 2  各数据集子矩阵划分粒度
    CoraCiteseerPubmedNell
    子矩阵划分62×6264×645×510×10
    Tile数目11611512213194
    基线Tile数目121169608466049
    Tile减少率(倍)1.041.474.9820.68
    下载: 导出CSV 
    | 显示表格

    对于Cora,Citeseer这种体量相对较小(节点数目3k左右)的图数据,使用较大的子矩阵划分粒度(62×62, 64×64)消耗更少的Tile资源;而对于节点数目数10k的大体量数据集,较小的划分粒度(5×5, 10×10)Tile资源占用更少。但是二者并非完全线性关系,不是数据体量越大就应该使用越小的划分方案,Nell数据集节点数为65755,远大于Pubmed数据集19717,但是Nell邻接矩阵划分粒度却大于Pubmed,具体的划分方案需要依据不同数据集邻接矩阵稀疏分布的不同而定。对于Nell数据集根据幂律分布[23]存在一些节点度很大,导致邻接矩阵中包含密集度较大的列,此时若选择很小的子矩阵划分方案会增加Tile占用且由于这些密集的列使得小划分方案不能充分利用稀疏性;而对于Pubmed数据集,因为其度大的节点数据相对更少,更加均匀的稀疏分布使Pubmed更适合小的子矩阵划分粒度进而消耗更少的Tile资源。实验结果表明通过合适的子矩阵划分平均可以节省7倍Tile资源。

    接着本文对比采用稀疏特征映射,邻接矩阵子矩阵划分优化方案的OPT和未采用优化方案的BASE,延迟和能耗结果分别在图7图8展示。在延迟方面,对X×W计算(图7图8XW)应用稀疏特征映射方案与否对这部分延迟影响不大,虽然仅需激活有效数据对应阵列字线,但是只要存在字线被激活即会产生相应延迟开销;而对于A×(XW)(图8A*)计算应用子矩阵划分可以有效降低延迟开销,平均可以达到38.8倍速度提升。Pubmed和Nell数据集的延迟降低相比Cora和Citeseer数据集更加明显,因为应用子矩阵划分方案后Pubmed和Nell数据集的Tile节省要远大于Cora和Citeseer数据集。在能耗方面,不论是X×W阶段稀疏特征映射还是A×(XW)阶段邻接矩阵子矩阵划分方案都能带来显著的能耗降低,平均分别为3.69倍和181.99倍。并且本文还发现对于小体量数据集来说X×W阶段计算是限制延迟和能耗的主要因素,而对于大体量数据集来说A×(XW)阶段计算对延迟和能耗的影响更大。

    图 7  各数据集在加速器优化方法(OPT)和基础方法(BASE)下两步计算正则化延迟结果
    图 8  各数据集在加速器优化方法(OPT)和基础方法(BASE)下两步计算正则化能耗结果

    最后本文将采用稀疏特征映射,邻接矩阵子矩阵划分优化方案的OPT,未采用优化方案的BASE,与基于PyG框架在Intel至强E5-2680-V3 CPU (CPU)和NVIDIA RTX 8000 GPU(GPU)的方案进行对比,对比结果如图9图10所示。在延迟方面,OPT与未优化的BASE在Cora和Citeseer数据集上表现相近。因为Cora和Citeseer数据集体量较小,延迟开销主要在X×W计算阶段产生,而稀疏特征映射方案对延迟性能影响有限,因此表现相近。加速器相较于CPU可以获得平均72.32倍(BASE)和78.16倍(OPT)的速度提升,相较于GPU可以获得平均17.48倍(BASE)和18.93倍(OPT)的速度提升。由于Cora数据集的特征数目远低于Citeseer(表1),故Cora数据集在加速器上能够获得更好的延迟优化效果。对于Pubmed和Nell数据集来说,延迟开销主要产生在A×(XW)计算阶段,其过于稀疏的数据运算中包含太多无效值,极大降低了运算效率,在应用邻接矩阵子矩阵划分后Pubmed和Nell可以得到更小的子矩阵粒度(5×5, 10×10)同时Tile资源占用也更低,故而延迟优化效果显著,OPT相比BASE在Pubmed和Nell数据集上分别有5.61倍和26.96倍的速度提升,并且OPT相较于CPU在这两个数据集上平均可以获得887.74倍速度提升,相较于GPU平均可以获得36.5倍速度提升。综合来说,OPT相较于CPU和GPU分别有平均483倍和28倍(最大60倍)的速度提升。

    图 9  不同数据集下优化方案OPT相比CPU, GPU和BASE的速度提升
    图 10  不同数据集下优化方案OPT相比CPU, GPU和BASE的能耗降低

    在能耗方面, OPT在各数据集上的表现均远好于BASE,平均可以得到32.41倍能量节省,并且数据集体量越大优化效果越明显,这是因为图数据节点大多仅存在有限邻居,数据集体量越大意味着稀疏性越强,经稀疏优化后的能量节省效果也就越明显。即便不经稀疏优化,利用低功耗忆阻器存内运算,BASE相较于CPU和GPU仍旧可以得到平均57倍和19倍能量节省。OPT相较于CPU和GPU则有1569倍和168倍能量节省。

    本文提出一种基于忆阻器交叉阵列的图卷积神经网络加速器,并针对输入特征和邻接矩阵在加速器上的不同加载方式分别应用不同的稀疏优化方案,结果表明,本文的加速器相比CPU有平均483倍的速度提升和1569倍的能耗节省;相比GPU可以得到平均28倍的速度提升和168倍的能耗节省。

  • 图  1  图卷积神经网络计算

    图  2  Crossbar乘加运算和Crossbar上GCN映射方案

    图  3  加速器整体架构

    图  4  稀疏特征映射

    图  5  稀疏邻接矩阵子矩阵划分、压缩和映射

    图  6  邻接矩阵不同子矩阵划分下Tile数目

    图  7  各数据集在加速器优化方法(OPT)和基础方法(BASE)下两步计算正则化延迟结果

    图  8  各数据集在加速器优化方法(OPT)和基础方法(BASE)下两步计算正则化能耗结果

    图  9  不同数据集下优化方案OPT相比CPU, GPU和BASE的速度提升

    图  10  不同数据集下优化方案OPT相比CPU, GPU和BASE的能耗降低

    表  1  不同数据集密集度、体量和维度

    CoraCiteseerPubmedNell
    密集度(%)A0.180.110.0280.0073
    X11.270.8510.00.011
    W100100100100
    体量(%)A65.0147.1097.4492.12
    X134.4052.422.477.58
    维度节点数270833271971765755
    特征数143337035005414
    下载: 导出CSV

    表  2  各数据集子矩阵划分粒度

    CoraCiteseerPubmedNell
    子矩阵划分62×6264×645×510×10
    Tile数目11611512213194
    基线Tile数目121169608466049
    Tile减少率(倍)1.041.474.9820.68
    下载: 导出CSV
  • [1] KIPF T N and WELLING M. Semi-supervised classification with graph convolutional networks[C]. The 5th International Conference on Learning Representations, Toulon, France, 2017.
    [2] PARK H W, PARK S, and CHONG M. Conversations and medical news frames on twitter: Infodemiological study on COVID-19 in South Korea[J]. Journal of Medical Internet Research, 2020, 22(5): e18897. doi: 10.2196/18897
    [3] SHI Chence, XU Minkai, ZHU Zhaocheng, et al. GraphAF: A flow-based autoregressive model for molecular graph generation[C]. The 8th International Conference on Learning Representations, Addis Ababa, Ethiopia, 2020.
    [4] YAN Mingyu, DENG Lei, HU Xing, et al. HyGCN: A GCN accelerator with hybrid architecture[C]. 2020 IEEE International Symposium on High Performance Computer Architecture, San Diego, USA, 2020: 15–29.
    [5] GENG Tong, LI Ang, SHI Runbin, et al. AWB-GCN: A graph convolutional network accelerator with runtime workload rebalancing[C]. The 53rd Annual IEEE/ACM International Symposium on Microarchitecture, Athens, Greece, 2020: 922–936.
    [6] LIANG Shengwen, WANG Ying, LIU Cheng, et al. EnGN: A high-throughput and energy-efficient accelerator for large graph neural networks[J]. IEEE Transactions on Computers, 2021, 70(9): 1511–1525. doi: 10.1109/TC.2020.3014632
    [7] WONG H S P, LEE H Y, YU Shimeng, et al. Metal–oxide RRAM[J]. Proceedings of the IEEE, 2012, 100(6): 1951–1970. doi: 10.1109/JPROC.2012.2190369
    [8] SHAFIEE A, NAG A, MURALIMANOHAR N, et al. ISAAC: A convolutional neural network accelerator with in-situ analog arithmetic in crossbars[C]. The ACM/IEEE 43rd Annual International Symposium on Computer Architecture, Seoul, Korea, 2016: 14–26.
    [9] TANG Shibin, YIN Shouyi, ZHENG Shixuan, et al. AEPE: An area and power efficient RRAM crossbar-based accelerator for deep CNNs[C]. The IEEE 6th Non-Volatile Memory Systems and Applications Symposium, Hsinchu, China, 2017: 1–6.
    [10] CHI Ping, LI Shuangchen, XU Cong, et al. PRIME: A novel processing-in-memory architecture for neural network computation in ReRAM-based main memory[C]. The ACM/IEEE 43rd Annual International Symposium on Computer Architecture, Seoul, Korea, 2016: 27–39.
    [11] YANG T H, CHENG H Y, YANG C L, et al. Sparse ReRAM engine: Joint exploration of activation and weight sparsity in compressed neural networks[C]. The 46th Annual International Symposium on Computer Architecture, Phoenix, USA, 2019: 236–249.
    [12] SONG Linghao, ZHUO Youwei, QIAN Xuehai, et al. GraphR: Accelerating graph processing using ReRAM[C]. 2018 IEEE International Symposium on High Performance Computer Architecture, Vienna, Austria, 2018: 531–543.
    [13] CHALLAPALLE N, RAMPALLI S, SONG Linghao, et al. GaaS-X: Graph analytics accelerator supporting sparse data representation using crossbar architectures[C]. The 47th Annual International Symposium on Computer Architecture, Valencia, Spain, 2020: 433–445.
    [14] DAI Guohao, HUANG Tianhao, WANG Yu, et al. GraphSAR: A sparsity-aware processing-in-memory architecture for large-scale graph processing on ReRAMs[C]. The 24th Asia and South Pacific Design Automation Conference, Tokyo, Japan, 2019: 120–126.
    [15] WANG Zhao, GUAN Yijin, SUN Guangyu, et al. GNN-PIM: A processing-in-memory architecture for graph neural networks[C]. The 13th Conference on Advanced Computer Architecture, Kunming, China, 2020: 73–86.
    [16] HE Yintao, WANG Ying, LIU Cheng, et al. TARe: Task-adaptive in-situ ReRAM computing for graph learning[C]. The 58th ACM/IEEE Design Automation Conference, San Francisco, USA, 2021: 577–582.
    [17] WU Zonghan, PAN Shirui, CHEN Fengwen, et al. A comprehensive survey on graph neural networks[J]. IEEE Transactions on Neural Networks and Learning Systems, 2021, 32(1): 4–24. doi: 10.1109/TNNLS.2020.2978386
    [18] SEN P, NAMATA G, BILGIC M, et al. Collective classification in network data[J]. AI Magazine, 2008, 29(3): 93. doi: 10.1609/aimag.v29i3.2157
    [19] CARLSON A, BETTERIDGE J, KISIEL B, et al. Toward an architecture for never-ending language learning[C]. The 24th AAAI Conference on Artificial Intelligence, Atlanta, America, 2010: 1306–1313.
    [20] SONG Linghao, QIAN Xuehai, LI Hai, et al. PipeLayer: A pipelined ReRAM-based accelerator for deep learning[C]. 2017 IEEE International Symposium on High Performance Computer Architecture, Austin, USA, 2017: 541–552.
    [21] ZHU Zhenhua, SUN Hanbo, QIU Kaizhong, et al. MNSIM 2.0: A behavior-level modeling tool for memristor-based neuromorphic computing systems[C]. The 2020 on Great Lakes Symposium on VLSI, Beijing, China, 2020: 83–88.
    [22] FEY Y and LENSSEN J E. Fast graph representation learning with PyTorch geometric[EB/OL]. https://arxiv.org/abs/1903.02428v3, 2019.
    [23] ABOU-RJEILI A and KARYPIS G. Multilevel algorithms for partitioning power-law graphs[C]. The 20th IEEE International Parallel & Distributed Processing Symposium, Rhodes, Greece, 2006: 10.
  • 期刊类型引用(0)

    其他类型引用(6)

  • 加载中
图(10) / 表(2)
计量
  • 文章访问数:  1311
  • HTML全文浏览量:  499
  • PDF下载量:  270
  • 被引次数: 6
出版历程
  • 收稿日期:  2021-12-06
  • 修回日期:  2022-04-05
  • 网络出版日期:  2022-04-19
  • 刊出日期:  2023-01-17

目录

/

返回文章
返回