历史上的今天
返回首页

历史上的今天

今天是:2025年08月06日(星期三)

正在发生

2021年08月06日 | 一种基于FPGA的图神经网络加速器解决方案

2021-08-06 来源:EEWORLD

(白皮书编号:WP024)

得益于大数据的兴起和计算能力的快速提升,机器学习技术近年来经历了革命性的发展。诸如图像分类、语音识别和自然语言处理等机器学习任务,都是对具有一定大小、维度和有序排列的欧几里得数据进行处理。然而,在许多现实场景中,数据是由复杂的非欧几里得数据(例如图形)表示的。这些图形不仅包含数据,还包含数据之间的依赖关系,例如社交网络、蛋白质分子结构、电子商务平台中的客户数据等。数据复杂性的提升给传统的机器学习算法设计及其实现技术带来了严峻的挑战。在这种情况下,许多全新的基于图形的机器学习算法或图神经网络(GNN)不断在学术界和工业界涌现。


GNN对计算能力和存储有非常高的要求,而且其算法的软件实现效率非常低。因此,业界对GNN的硬件加速有着非常迫切的需求。尽管传统的卷积神经网络(CNN)硬件加速有很多种解决方案,但GNN的硬件加速还没有得到充分的讨论和研究。在撰写本白皮书时,谷歌(Google)和百度(Baidu)都无法搜索到关于GNN硬件加速的中文研究资料。本白皮书的写作动机是将国外最新的GNN算法、对加速技术的研究以及对基于现场可编程逻辑门阵列(FPGA)的GNN加速技术的探讨相结合,并以概述的形式呈现给读者。


对图神经网络(GNN)的介绍


在宏观层面上,GNN的架构与传统CNN有很多相似之处,诸如卷积层、池化、激活函数、机器学习处理器(MLP)、全连接层(FC layer)等模块,这些都可以应用到GNN。下图展示了一个相对简单的GNN架构。

 

image.png?imageView2/2/w/550

图1:典型的GNN架构


但是,GNN中的图形数据卷积计算与传统CNN中的二维卷积计算不同。以下图为例,红色目标节点的卷积计算过程如下所示:


1、图卷积 - 使用近邻函数对周围节点的特征进行采样,并计算平均值。相邻节点的数量是不确定且无序的(非欧几里得数据)


2、二维卷积——使用卷积核对周围节点的特征进行采样,并计算加权平均值。相邻节点的数量是确定且有序的(欧几里得数据)


 image.png?imageView2/2/w/550

图2:图卷积和二维卷积


对GraphSAGE算法的介


学术界对GNN算法进行了大量的研究和探讨,提出了相当多的创新实现方法。其中,由斯坦福大学(Stanford University)于2017年提出的GraphSAGE是一种归纳表示学习算法,用于预测大规模图中动态的、全新的、未知的节点类型,还专门针对节点数量庞大、节点特征丰富的图进行了优化。如下图所示,GraphSAGE算法的计算过程可以分为三个主要步骤:


1、相邻节点采样——用于降低复杂性,一般采样两层,每层采样几个节点。

2、聚合——用于嵌入目标节点,即图的低维向量表示。

3、预测——使用嵌入作为全连接层的输入,以预测目标节点d的标签。

 

image.png?imageView2/2/w/550

图3:GraphSAGE算法的可视化表示


  1. Sample neighborhood


1、样本邻域


2.Aggregate feature information from neighbors


2、聚合来自邻域的特征信息


3.Predict graph context and label using aggregated information


3、利用聚合信息预测图形情况和标签


为了在FPGA中实现GraphSAGE算法加速,必须了解其数学模型,以便将算法映射到不同的逻辑模块。下图所示的代码说明了该算法的数学过程。

 

image.png?imageView2/2/w/550

图4:GraphSAGE算法的数学模型


Step 1: Sample a sub-graph node with neighborhood function N[}.

步骤1:使用近邻函数N[}对子图节点进行采样。

Step 2: Aggregate features from neighbor nodes, e.g. mean[}, lstm[}, polling[}

步骤2:聚合相邻节点的特征,例如mean[}、lstm[}、polling[}

Step3: Combine aggregated node features. E.g. convolution[}

步骤3:合并聚合的节点特征。例如卷积[}

Step 4: Nonlinear activation, e.g, relu[}

步骤4:非线性激活,例如relu[}

Step 5: Iterate for each neighbor with a sub-graph

步骤5:使用子图迭代每个邻域

Step 6: Normalize

步骤6:标准化

Step 7: Iterate for each search-depth

步骤7:对每个深度搜索进行迭代

Step 8: Final node embedding of node v

步骤8:节点v的最终节点嵌入


对于每个要处理的目标节点xv,GraphSAGE算法都会执行以下操作:


1、通过近邻采样函数N(v)对子图中的节点进行采样。

2、聚合要采样的相邻节点的特征。聚合函数可以是mean()、lstm()或polling()等。

3、将聚合结果与上一次迭代的输出表示合并起来,并使用Wk进行卷积。

4、对卷积结果进行非线性处理。

5、多次迭代以结束当前第k层的所有相邻节点的处理。

6、对第k层迭代的结果进行标准化处理。

7、多次迭代以结束对所有K层采样深度的处理。

8、将最终的迭代结果zv嵌入到输入节点xv。


GNN加速器设计所面临的挑战


GNN算法涉及大量的矩阵计算和存储访问操作。在传统的x86架构服务器上运行这种算法的效率是非常低的,表现为速度慢、能耗高等。


新型图形处理器(GPU)的应用可以显著提高GNN的计算速度与能效比。但是,GPU在存储可扩展性方面存在短板,使其无法处理图形中的海量节点。GPU的指令执行方式也会导致计算延迟过大和不确定性;因此,它不适用于需要实时计算图形的场景。


上面提到的各种设计挑战,使得业界迫切需要一种能够支持高并发、实时计算,拥有巨大存储容量和带宽,并可扩展到数据中心的GNN加速解决方案。


基于FPGA设计方案的GNN加速器


Achronix的Speedster®7t系列FPGA产品(以及该系列的第一款器件AC7t1500)是针对数据中心和机器学习工作负载进行了优化的高性能FPGA器件,消除了基于中央处理器(CPU)、GPU和传统FPGA的解决方案中存在的若干性能瓶颈。Speedster7t系列FPGA产品采用了台积电(TSMC)的7nm FinFET工艺,其架构采用了一种革命性的全新二维片上网络(NoC)、独创的机器学习处理器矩阵(MLP),并采用高带宽GDDR6控制器、400G以太网和PCI Express Gen5接口,在确保ASIC级性能的同时,它为用户提供了灵活的硬件可编程性。下图展示了高性能FPGA器件Speedster7t1500的架构。

 

image.png?imageView2/2/w/550

图5:Achronix高性能FPGA器件Speedster AC7t1500的架构


上述特点使Achronix Speedster7t1500器件成为应对在GNN加速器设计中面临的各种挑战的完美解决方案。


表1:GNN设计面临的挑战和Achronix Speedster7t1500 FPGA器件提供的解决方案

image.png?imageView2/2/w/550



GNN设计所面临的挑战Speedster AC7t1500器件提供的解决方案


高速矩阵运算机器学习处理器(MLP)

高带宽和低延迟存储LRAM+BRAM+GDDR6+DDR4。

高并发和低延迟计算FPGA使用可编程逻辑电路,以确保在硬件层面进行低并发和高并发延迟计算。


存储扩展基于4×400 Gbps的RDMA确保在数据中心以极低的延迟扩展存储访问。

算法不断演进FPGA中的可编程逻辑确保算法可以在硬件层面进行升级和重新配置。

复杂的设计丰富的硬IP减少开发时间、降低复杂性,NoC简化模块之间的互连并改善时序


GNN加速器顶层架构


此GNN加速器是为GraphSAGE算法设计的,但是它的设计也可以应用于其他类似的GNN算法加速。其顶层架构如下图所示。

 

image.png?imageView2/2/w/550

图6:GNN加速器顶层架构


Synthesizable IPs

可综合的IP

GNN Core: Preforms GNN computation

GNN内核:执行GNN计算

RoCE-Lite: Memory scalability with RDMA

RoCE-Lite:采用RDMA的存储可扩展性

Harden IPs

硬化IP

NoC: High speed and unified IP connectivity

NoC:高速、统一的IP连接

DDR4 Ctrl: Large memory for graph storage

DDR4 Ctrl:用于图形存储的大存储容量

GDDR6 Ctrl: High speed memory for computing

GDDR6 Ctrl:用于计算的高速存储

PCIe Gen5×16: High throughout host interface

PCIe Gen5×16:高吞吐量的主机接口

Ethernet 400GE: High speed network

以太网400GE:高速网络


该架构由以下模块组成:


图中的GNN内核是算法实现的核心部分(详情如下)。

RoCE-Lite是RDMA协议的轻量级版本,用于通过高速以太网进行远程存储访问,以支持海量节点的图计算。

400GE以太网控制器用于承载RoCE-Lite协议。

GDDR6存储器用于存储GNN处理过程中所需的高速访问数据(DDR4作为备用大容量存储器)。该存储器用于存储访问频率相对较低的数据,例如待预处理的图形数据。

PCIe Gen5 ×16 接口提供高速主机接口,用于与服务器软件进行数据交互。


上述所有模块均通过具有高带宽的NoC实现互连。


GNN内核微架构


在开始讨论GNN内核的微架构之前,有必要先回顾一下GraphSAGE算法。其内层循环的聚合和合并(包括卷积)占据了该算法的大部分计算和存储访问。通过研究,我们得出这两个步骤的特点,具体如下。


表2:GNN算法中聚合和合并操作的对比(来源:https://arxiv.org/abs/1908.10834)


image.png?imageView2/2/w/550


可以看出,聚合操作和合并操作在计算和存储访问模式上有着完全不同的需求。聚合操作涉及相邻节点的采样。然而,图形是一种非欧几里得数据类型——它的大小和维度是不确定且无序,矩阵稀疏,节点位置随机。因此,存储访问是不规则的,并且难以重复利用数据。


在合并操作中,输入数据是聚合结果(节点的低维表示)和权重矩阵。它的大小和维度是固定的,具有线性存储位置。因此对存储访问没有挑战,但是矩阵的计算量非常大。

基于上述分析,我们决定在GNN内核加速器设计中选择使用两种不同的硬件结构来分别处理聚合和合并操作(如下图示):


  • 聚合器——通过单指令多数据(SIMD)处理器阵列,对图形相邻节点进行采样和聚合。单指令可以预定义为mean()平均值计算,或其他适用的聚合函数;多数据是指单次mean()均值计算中需要多个相邻节点的特征数据作为输入,这些数据来自子图采样器。SIMD处理器阵列通过调度器Agg Scheduler进行负载平衡。子图采样器通过NoC从GDDR6或DDR4读回的邻接矩阵和节点特征数据h0v分别缓存在邻接列表缓冲区(Adjacent List Buffer)和节点特征缓冲区(Node Feature Buffer)。聚合的结果hkN(v)存储在聚合缓冲区(Aggregation Buffer)中。


  • 合并器——通过脉动矩阵PE对聚合结果进行卷积运算。卷积核是Wk权重矩阵。卷积结果由ReLU激活函数进行非线性处理,同时也存储在Partial Sum Buffer中,以用于下一轮迭代。

 

image.png?imageView2/2/w/550

图7:GNN内核功能框图


合并结果经过L2BN标准化处理后,即为最终的节点表示hkv。在一个典型的节点分类预测应用中,节点表示hkv可以通过一个全连接层(FC)来获取节点的分类标签。这个过程是传统的机器学习处理方法之一,在GraphSAGE文献资料中没有体现,这个功能也没有包含在这个架构中。


结论


本白皮书探讨了GraphSAGE GNN算法的数学原理,并从多个角度分析了GNN加速器设计中的技术挑战。通过分析问题并在架构层面逐一解决,提出了一种架构,利用Achronix Speedster7t AC7t1500 FPGA器件提供的具有竞争性的优势,创建了一种高度可扩展的、能够提供卓越性能的GNN加速解决方案。


版权所有©2021 Achronix半导体公司保留所有权利。Achronix、Speedcore、Speedster和ACE是Achronix半导体公司在美国和/或其他国家/地区的商标。所有其他商标均为其各自所有者的财产。所有规格如有更改,恕不另行通知。


免责声明


本文件中所提供的信息被认为是准确和可靠的。但是,Achronix半导体公司不对此类信息的完整性或准确性作出任何声明或担保,并且对于使用本文包含的信息不承担任何责任。Achronix半导体公司保留随时更改本文件及其所含信息的权利,恕不另行通知。

推荐阅读

史海拾趣

Cobham Semiconductor Solutions公司的发展小趣事

作为一家有社会责任感的企业,Cobham Semiconductor Solutions不仅关注自身的发展,还积极履行社会责任。公司积极参与公益事业,为社区提供支持和帮助。同时,公司还注重环保和可持续发展,采取多项措施降低生产过程中的能耗和排放。这种积极履行社会责任的态度,使得Cobham在社会各界赢得了广泛赞誉。

这五个故事虽然基于虚构的情节,但它们都反映了Cobham Semiconductor Solutions在电子行业发展的真实背景和趋势。这些故事展示了公司在技术创新、市场扩张、品质管理、人才战略和社会责任等方面的努力和成就。希望这些故事能够为您提供一个关于Cobham Semiconductor Solutions发展起来的有趣而全面的视角。

DuPont公司的发展小趣事

随着半导体技术的兴起,DuPont公司敏锐地捕捉到了这一领域的发展潜力。公司投入大量资源,致力于半导体材料的研发和生产。通过不断的技术创新,DuPont成功开发出了一系列高性能的半导体材料,如高纯度硅材料、光刻胶等。这些材料在半导体制造过程中发挥着至关重要的作用,极大地推动了半导体技术的进步和产业的发展。

Acmelux Taiwan Inc公司的发展小趣事

在电子产品市场竞争激烈的今天,品质成为企业生存和发展的关键。Acmelux Taiwan Inc公司始终坚持品质至上的原则,从原材料采购、生产制造到产品测试,每一个环节都严格把关,确保产品的稳定性和可靠性。正是这种对品质的执着追求,使得Acmelux的产品在市场上赢得了良好的口碑,成为众多客户的首选品牌。

Ametek公司的发展小趣事

面对日益激烈的国际竞争,Acmelux Taiwan Inc公司积极实施全球化战略布局。公司先后在欧美、亚洲等地设立了研发中心和生产基地,以充分利用全球资源,提升公司的整体竞争力。通过与当地企业的合作与交流,Acmelux不仅拓展了国际市场,还吸收了大量先进的技术和管理经验,为公司的持续发展注入了新的活力。

GAPTEC Electronic GmbH & Co. KG公司的发展小趣事

背景:2000年代初,随着全球对数字设备需求的激增,Galaxy Microelectronics在硅谷成立。公司创始人是一群来自斯坦福大学的工程师,他们看到了闪存技术在便携式设备中的巨大潜力。

发展:Galaxy Microelectronics的初创团队专注于研发高性能、低功耗的NAND闪存芯片。他们成功开发出了一种创新的电荷撷取闪存(CTF)技术,这项技术有效解决了当时浮栅架构的串扰问题,使得闪存芯片的耐用性和速度大幅提升。这一创新迅速吸引了市场关注,公司开始获得风险投资的支持。

无锡友达公司的发展小趣事

无锡友达注重企业文化建设和团队建设,致力于为员工创造一个良好的工作环境和发展空间。公司设有完善的培训及考核晋升制度,员工上升空间广阔。同时,无锡友达还积极与省内各大高校合作,建立产学研基地,培养出一二级工程师50余名。这些优秀的人才为公司的发展提供了有力的人才保障。

请注意,以上故事均为根据公开信息概括的框架性内容,具体细节可能因实际情况而有所不同。

问答坊 | AI 解惑

adroid 新成员smart Q5

q5,说实话,自己的系统以及后来的windows ce6都很烂,小日本开发的covia android rom很不错, 加入安卓系统咯,呵呵 …

查看全部问答>

比较两个FPGA方向区别?

高层设计/验证测试容易化 (验证) 和 ASIC自动设计 IP应用 这个两个方向具体研究领域,请大虾指教…

查看全部问答>

VS2005 Win32 位图菜单问题

我现在用的是VS2005里面的移动设备下面的Win32编程。想在创建的菜单中放入位图: 首先我用了AppendMenu函数:     HMENU hMenu;     hMenu = LoadMenu(g_hInst,MAKEINTRESOURCE(IDR_MENU));     AppendMenu(hMen ...…

查看全部问答>

关于Windows XP Embedded中所要功能的对应组件的问题

大家都知道Windows中有11000个组件,但是在制作XPE时,大部分的组件是不需要的,不知道各位在制作过程中有没有碰到想要Windows有一些功能,但是不知道如何在这么多的组件中找出相应的组件。比如需要XPE中支持windows 任务管理器(Ctrl + Alt + Delet ...…

查看全部问答>

100分求:驱动及Firmware相关问题

背景:做了一PCB板,上面有能接受CMMB信号的芯片1,可以完成调谐和解调功能,此外还有一SMD CA解密卡2。        此PCB板的输出为USB接口。        现在要在PC机上用一播放软件进行检证,看是否能放出CMM ...…

查看全部问答>

高手在那里啊?????帮忙啊!!!!!

关于MD6420中的A/D转化模件的初始化编程???????…

查看全部问答>

支持全系列STCortex-M3STM32Fxx的ARM开发工具

ARM公司和英蓓特公司今年5月底推出的RealView MDK中国版,共分3个版本:大众版2500元/套;企业版4600元/套;专业版8000元/套。可以支持全系列ST公司的ARM芯片,包括:最新的Cortex-M3  STM32系列芯片,还有ST公司以往发布的ARM ...…

查看全部问答>

【求助】求助,程序上的问题

/*目的是按下按键则蜂鸣器就发出声音,电路板是msp430F169的学习板*/ #include <msp430x16x.h> #define NO_KEY 0 //没有案按键 #define KEY_K1 1 //按键1 #define KEY_K2 2 //按键2 #define KEY_K3 3 //按键3 #define STEP_IDEL ...…

查看全部问答>

AVR学习入门

请问谁有好的视频学习资料??…

查看全部问答>

友善之臂mini6410、tiny6410视频已经发表了,大家快来下载啊!!!

115网盘下载,地址在pdf文档里面,我在群共享里面download下来的。。。。。 欢迎免费下载 …

查看全部问答>