1.概述
得益于大数据的兴起以及算力的快速提升,机器学习技术在近年取得了革命性的发展。在图像分类、语音识别、自然语言处理等机器学习任务中,数据为大小维度确定且排列有序的欧氏(Euclidean)数据。然而,越来越多的现实场景中,数据是以图(Graph)这种复杂的非欧氏数据来表示的。Graph不但包含数据,也包含数据之间的依赖关系,比如社交网络、蛋白质分子结构、电商平台客户数据等等。数据复杂度的提升,对传统的机器学习算法设计以及其实现技术带来了严峻的挑战。在此背景之下,诸多基于Graph的新型机器学习算法—GNN(图神经网络),在学术界和产业界不断的涌现出来。GNN对算力和存储器的要求非常高,其算法的软件实现方式非常低效,所以业界对GNN的硬件加速有着非常迫切的需求。我们知道传统的CNN(卷积神经网络网络)硬件加速方案已经有非常多的解决方案;但是,GNN的硬件加速尚未得到充分的讨论和研究,在本文撰写之时,Google和百度皆无法搜索到关于GNN硬件加速的中文研究。本文的撰写动机,旨在将国外最新的GNN算法、加速技术研究、以及笔者对GNN的FPGA加速技术的探讨相结合起来,以全景图的形式展现给读者。
2.GNN简介
GNN的架构在宏观层面有着很多与传统CNN类似的地方,比如卷积层、Polling、激活函数、机器学习处理器(MLP)和FC层等等模块,都会在GNN中得以应用。下图展示了一个比较简单的GNN架构。

图1:典型的GNN架构但是,GNN中的Graph数据卷积计算与传统CNN中的2D卷积计算是不同的。以图2为例,针对红色目标节点的卷积计算,其过程如下:lGraph卷积:以邻居函数采样周边节点特征并计算均值,其邻居节点数量不确定且无序(非欧氏数据)。l2D卷积:以卷积核采样周边节点特征并计算加权平均值,其邻居节点数量确定且有序(欧氏数据)。

图2:Graph卷积和2D卷积
3.GraphSAGE算法简介
学术界已对GNN算法进行了非常多的研究讨论,并提出了数目可观的创新实现方式。其中,斯坦福大学在2017年提出的GraphSAGE是一种用于预测大型图中动态新增未知节点类型的归纳式表征学习算法,特别针对节点数量巨大、且节点特征丰富的图做了优化。如下图所示,GraphSAGE计算过程可分为三个主要步骤:

图3:GraphSAGE算法的视觉表述l邻节点采样:用于降低复杂度,一般采样2层,每一层采样若干节点l聚合:用于生成目标节点的embedding,即graph的低维向量表征l预测:将embedding作为全连接层的输入,预测目标节点d的标签为了在FPGA中实现GraphSAGE算法加速,我们需要知悉其数学模型,以便将算法映射到不同的逻辑模块中。下图所示的代码阐述了本算法的数学过程。

图4:GraphSAGE算法的数学模型对于每一个待处理的目标节点xv,GraphSAGE执行下列操作:1)通过邻居采样函数N(v),采样子图(subgraph)中的节点2)聚合被采样的邻节点特征,聚合函数可以为mean()、lstm()或者polling()等3)将聚合结果与上一次迭代的输出表征合并,并以Wk做卷积4)卷积结果做非线性处理5)迭代若干次以结束当前第k层所有邻节点的处理6)将第k层迭代结果做归一化处理7)迭代若干次以结束所有K层采样深度的处理8)最终迭代结果zv即为输入节点xv的嵌入(embedding)
4.GNN加速器设计挑战
GNN的算法中涉及到大量的矩阵计算和内存访问操作,在传统的x86架构的服务器上运行此算法是非常低效的,表现在速度慢,能耗高等方面。新型GPU的应用,可以为GNN的运算速度和能效比带来显著收益。然而GPU内存扩展性的短板,使其无法胜任海量节点Graph的处理;GPU的指令执行方式,也造成了计算延迟过大并且不可确定,无法胜任需要实时计算Graph的场景。如上所述种种设计挑战的存在,使得业界急需一种可以支持高度并发实时计算、巨大内存容量和带宽、以及在数据中心范围可扩展的GNN加速解决方案。5.GNN加速器的FPGA设计方案Achronix公司推出的Speedster7t系列高性能FPGA,专门针对数据中心和机器学习工作负载进行了优化,消除了CPU、GPU以及传统FPGA存在的若干性能瓶颈。Speedster7tFPGA基于台积电的7nmFinFET工艺,其架构采用革命性的新型2D片上网络(NoC),独创的机器学习处理器矩阵(MLP),并利用高带宽GDDR6控制器、400G以太网和PCIExpressGen5接口,在保障ASIC级别性能的同时,为用户提供了灵活的硬件可编程能力。下图展示了Speedster7t1500高性能FPGA的架构。

图5:AchronixSpeedster7t1500高性能FPGA架构如上所述种种特性,使得AchronixSpeedster7t1500FPGA器件为GNN加速器设计中所面临的各种挑战,提供了完美的解决方案。表1:GNN设计挑战与Achronix的Speedster7t1500FPGA解决方案
GNN设计挑战 | Speedster7t1500解决方案 |
高速矩阵运算 | MLP机器学习处理器矩阵 |
高带宽低延迟存储 | LRAM+BRAM+GDDR6+DDR4 |
高并发低延迟计算 | FPGA使用可编程逻辑电路,在硬件层面确保低高并发延迟计算 |
内存扩展 | 基于4*400Gbps的RDMA,确保在数据中心范围以极低延迟扩展内存访问 |
算法不断演进 | FPGA使用可编程逻辑电路,在硬件层面确保算法可升级重配 |
设计复杂 | 丰富的硬IP减少开发时间和复杂度,NoC简化模块间互连并提高时序 |
5.1GNN加速器顶层架构
本GNN加速器针对GraphSAGE进行设计,但其架构具有一定的通用性,可以适用于其他类似的GNN算法加速,其顶层架构如下图所示。

图6:GNN加速器顶层架构图中GNNCore为算法实现的核心部分,其设计细节将在下文展开谈论;RoCE-Lite为RDMA协议的轻量级版本,用于通过高速以太网进行远程内存访问,以支持海量节点的Graph计算,其设计细节将在本公众号的后续文章中讨论;400GE以太网控制器用来承载RoCE-Lite协议;GDDR6用于存放GNN处理过程中所需的高速访问数据;DDR4作为备用高容量内存,可以用于存储相对访问频度较低的数据,比如待预处理的Graph;PCIeGen5x16提供高速主机接口,用于与服务器软件交互数据;上述所有模块,皆通过NoC片上网络来实现高速互联。5.2GNNCore微架构在开始讨论GNNCore微架构之前,我们先回顾一下本文第3节中的GraphSAGE算法,其内层循环的聚合以及合并(包含卷积)等两个操作占据了算法的绝大部分计算和存储器访问。通过研究,我们得到这两个步骤的特征如下:表2:GNN算法中聚合与合并操作对比
| 聚合操作(Aggregation) | 合并操作(Combination) |
存储器访问模式 | 间接访问,不规则 | 直接访问,规则 |
数据复用 | 低 | 高 |
计算模式 | 动态,不规则 | 静态,规则 |
计算量 | 低 | 高 |
性能瓶颈 | 存储 | 计算 |
可以看出,聚合操作与合并操作,其对计算和存储器访问的需求完全不同。聚合操作中涉及到对邻节点的采样,然而Graph属于非欧氏数据类型,其大小维度不确定且无序,矩阵稀疏,节点位置随机,所以存储器访问不规则并难以复用数据;在合并操作中,其输入数据为聚合结果(节点的低维表征)以及权重矩阵,其大小维度固定,存储位置规则线性,对存储器访问不存在挑战,但是矩阵的计算量非常大。基于以上分析,我们决定在GNNCore加速器设计中用两种不同的硬件结构来处理聚合操作与合并操作,功能框图如下图所示:

图7:GNNCore功能框图聚合器(Aggregator):通过SIMD(单指令多数据处理器)阵列来对Graph进行邻居节点采样并进行聚合操作。其中的“单指令”可以预定义为mean()均值计算,或者其他适用的聚合函数;“多数据”则表示单次mean()均值计算中需要多个邻居节点的特征数据作为输入,而这些数据来自于子图采样器(SubgraphSampler);SIMD阵列通过调度器AggScheduler做负载均衡;子图采样器通过NoC从GDDR6或DDR4读回的邻接矩阵和节点特征数据h0v,分别缓存在AdjacentListBuffer和NodeFeatureBuffer之中;聚合的结果hkN(v)存储在AggBuffer之中。合并器(Combinator):通过脉动矩阵PE来执行聚合结果的卷积操作;卷积核为Wk权重矩阵;卷积结果通过ReLU激活函数做非线性处理,同时也存储在PartialSumBuffer中以方便下一轮迭代。合并的结果通过L2BN归一化处理之后,即为最终的节点表征hkv。在比较典型的节点分类预测应用中,该节点表征hkv可以通过一个全连接层(FC),以得到该节点的分类标签。此过程属于传统的机器学习处理方法之一,没有在GraphSAGE论文中体现,此设计中也没有包含这个功能。6.结论本文深入讨论了GraphSAGEGNN算法的数学原理,并从多个维度分析了GNN加速器设计中的技术挑战。作者通过分解问题并在架构层面逐一解决的方法,综合运用AchronixSpeedster7t1500FPGA所提供的竞争优势,创造了一个性能极佳且高度可扩展的GNN加速解决方案。
责任编辑:lq
原文标题:机器学习实战:GNN(图神经网络)加速器的FPGA解决方案
文章出处:【微信号:gh_9d70b445f494,微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。
相关推荐
众所周知,并联技术已成为实现大功率分布式电源系统的核心技术,但由于各并联电源模块特性并不完全一致,输....
牵手一起梦 发表于 03-03 11:01
•
0次
阅读
2021年2月26日,中国广州,全球极具创新性的可编程逻辑器件供应商——广东高云半导体科技股份有限公....
高云半导体 发表于 03-03 10:47
•
28次
阅读
一、背景介绍 基于二值图像的滤波算法即形态学滤波,在图像目标采集的预处理中经常被使用到,针对不同的使....
如何利用FPGA实现一个ROM
FPGA片内ROM测试实验
...
发表于 03-03 06:47 •
0次
阅读
基于ARM的嵌入式系统从串配置FPGA的实现
发表于 03-03 06:16 •
0次
阅读
基于现场可编程门阵列(Field Programmable Gate Array,FPGA)设计了一....
发表于 03-02 18:14 •
6次
阅读
本文讨论了基于FPGA芯片的直接数字频率合成器(DDS)的设计方法。因为DDS 的实现依赖于高速、高....
发表于 03-02 17:11 •
18次
阅读
“人工智能”、“机器学习”和“深度学习”这三个词经常交替出现,但如果你正在考虑从事人工智能的职业,了....
发表于 03-02 16:57 •
251次
阅读
这个例子需要TensorFlow 2.4或更高版本。此外,BERT模型需要TensorFlow Hu....
先从回归(Regression) 问题说起。我在本吧已经看到不少人提到如果想实现强AI,就必须让机器....
发表于 03-02 15:33 •
29次
阅读
通常 Kernel 一加载起来,大家能在/dev目录下可以看到一大堆的设备。这些设备都是 Kerne....
发表于 03-02 14:25 •
0次
阅读
本文档的主要内容详细介绍的是使用FPGA实现ROM的正弦波发生器详细资料说明免费下载。
发表于 03-02 13:52 •
11次
阅读
介绍了单片机与FPGA 异步串行通信的实现方法,给出了系统结构原理框图及其部分VHDL 程序,并定义....
发表于 03-02 13:52 •
12次
阅读
摘要 神经网络量子态是由人工神经网络所表示的量子态。得益于机器学习,尤其是深度学习近年来取得的突....
相比几十亿出货量,市场规模千亿美元的CPU和GPU,市场规模还未超百亿美元的FPGA并非大众关注的焦....
发表于 03-02 09:53 •
308次
阅读
国产FPGA正在面临挑战
如何选择国产化替代FPGA产品
...
发表于 03-02 06:30 •
0次
阅读
如果你对人工智能和机器学习感兴趣,而且正在积极地规划着自己的程序员职业生涯,那么你肯定面临着一个问题:你应该学习哪些编程...
发表于 03-02 06:22 •
0次
阅读
根据传统圆网印花机的结构以及存在的问题,提出了基于ARM和FPGA的嵌入式圆网印花机控制器的设计方案....
发表于 03-01 16:51 •
17次
阅读
麻省理工学院(MIT)的研究者开发出了一种新型的神经网络,其不仅能在训练阶段学习,而且还能持续不断地....
机器人大讲堂 发表于 03-01 16:31
•
432次
阅读
谷歌 Robotics 研究科学家 Eric Jang 在博客上写了一篇名为“How to Und....
机器人大讲堂 发表于 03-01 16:27
•
94次
阅读
「我决定做一件唯一合理的事,用机器学习来匹配袜子。我只给了自己10分钟的时间来完成项目,所以它不会比....
机器人大讲堂 发表于 03-01 16:17
•
140次
阅读
飞机设计是一个多学科的复杂的系统工程,各个学科通常相互影响,相互耦合。这使得飞机设计过程日趋复杂,设....
发表于 03-01 16:12 •
30次
阅读
继系列上一篇 所以,机器学习和深度学习的区别是什么?浅谈后,今天继续深入探讨两者的更多区别。
如意 发表于 03-01 15:44
•
719次
阅读
TDMA,即Time Division Multiple Access 时分多址,时分多址是把时间分....
发表于 03-01 15:25 •
37次
阅读
来自北京科技大学新金属材料国家重点实验室和北京材料基因工程高精尖创新中心的吕昭平教授和刘雄军教授团队....
知社学术圈 发表于 03-01 13:55
•
132次
阅读
不像在机器学习系统中,人类需要根据数据类型(例如,像素值、形状、方向)识别和手工编码应用的特征,深度....
发表于 03-01 11:44 •
403次
阅读
1. 现有一块xc7vx690tffg芯片。
2. 之前写的fpga程序都是通过在vivado上JTAG线的方式,将mcs文件烧写到flash中,现听说部分...
发表于 03-01 10:45 •
3次
阅读
本文档的主要内容详细介绍的是python机器学习笔记资料免费python机器学习笔记资料免费下载。
....
发表于 03-01 10:09 •
12次
阅读
如图所示拓扑结构的单隐层前馈网络,一般称为三层前馈网或三层感知器,即:输入层、中间层(也称隐层)和输....
发表于 03-01 10:09 •
37次
阅读
神经系统的基本构造是神经元(神经细胞)・它是处理人体内各部分之间相互信息传递的基本单元。据神经生物学....
发表于 03-01 10:09 •
14次
阅读
本文档的主要内容详细介绍的是机器学习的个人学习笔记免费下载。
发表于 03-01 09:28 •
10次
阅读
本文档的主要内容详细介绍的是基于情感字典和机器学习的股市舆情情感分类可视化Web的资料免费下载
发表于 03-01 09:28 •
14次
阅读
本文档机器学习实战的源代码资料合集
发表于 03-01 09:28 •
65次
阅读
本文档的主要内容详细介绍的是基于Android的果蝇识别APP采用随机森林,神经网络等多种算法。
发表于 03-01 09:28 •
12次
阅读
发表于 02-28 15:05 •
101次
阅读
在电子设计中FPGA 技术得到了广泛应用,而且还成为电子系统构建中的主要手段,本文章首先对FPGA ....
发表于 02-28 11:31 •
38次
阅读
Sparrow开发板原理图,版本C。 包含Cyclone IV EP4CE15F23C8 FPGA,....
发表于 02-28 08:00 •
16次
阅读
1,到官方网站上下载Quartus Prime 20.1 Lite版本,该版本免费,无需授权。其中2是主文件,必须要下。3是modelsim,可以方便...
发表于 02-27 12:29 •
0次
阅读
相场方法是一种流行的介观尺度计算方法,用于研究微结构及其物理性质的时空演化。它已被广泛用于描述各种重....
知社学术圈 发表于 02-26 17:29
•
638次
阅读
上述一些I/O标准要求VCCO和/或VREF电压。这些电压由外部提供并连接到为IOB组(称为组)提供....
发表于 02-26 17:23 •
57次
阅读
进入2021年,随着越来越多的组织采用新技术,人工智能在技术和网络安全方面的未来将继续发展。根据最近....
如意 发表于 02-26 16:42
•
299次
阅读
本文档的主要内容详细介绍的是Matlab神经网络的学习练习题合集免费下载。
发表于 02-26 16:17 •
14次
阅读
人工智能技术如今得到越来越多的应用,从研发疫苗到在线购物再到农业种植,人们期望在2021年看到更多的....
如意 发表于 02-26 15:37
•
437次
阅读
本文档的主要内容详细介绍的是188万中文词库包括了输入法和机器学习与训练。
发表于 02-26 15:01 •
15次
阅读
“扎针采血机器人是一种自动化的设备,它不仅能减少交叉感染,还能进行大批量扎针采血工作,这样就大大减轻....
机器人大讲堂 发表于 02-26 14:35
•
238次
阅读
在互联网如此发展迅速的当今,网上每天有成千上万的短视频发布出来,结合漫画便捷的阅读形式和出色的故事描....
机器人大讲堂 发表于 02-26 13:54
•
240次
阅读
为了学习xilinx serdes 原语的使用,以及交流学习经验,在工程项目中方便的应用SERDES....
发表于 02-26 10:04 •
32次
阅读
用于计算机视觉训练的图像数据集
发表于 02-26 07:35 •
0次
阅读
FPGA 由6 部分组成, 分别为可编程输入/输出单元、基本可编程逻辑单元、嵌入式块RAM 、丰富的....
发表于 02-25 17:55 •
108次
阅读
赛灵思本周针对数据中心发布了一系列声明,例如该公司推出了新系列的可编程网络100Gb / s Sma....
我快闭嘴 发表于 02-25 14:15
•
258次
阅读
本文首先简单介绍某小型基于DSP 和FPGA 的导航计算机系统,然后根据其子系统输出的有效信息设计可....
发表于 02-25 11:06 •
22次
阅读
非线性非线性关系是自然界的普遍特性。大脑的智慧就是一种非线性现象。人工神经元处于激活或抑制二种不同的....
发表于 02-25 10:48 •
48次
阅读
1、两块fpga 之间采用12 根线连接,包括8 根数据线, 2 根同步时钟线, 2 根使能信号线。
发表于 02-25 09:58 •
30次
阅读
人工神经网络就是模拟人思维的第二种方式。这是一个非线性动力学系统, 其特色在于信息的分布式存储和并行....
发表于 02-25 09:58 •
34次
阅读
在这个新概念中,科学家能够创建一个混合神经网络,位于世界各地的生物和人工神经元可以通过Intern....
倩倩 发表于 02-25 09:22
•
119次
阅读
物联网防火墙与机器学习技术
发表于 02-25 06:05 •
0次
阅读
TMP411设备是一个带有内置本地温度传感器的远程温度传感器监视器。远程温度传感器,二极管连接的晶体管通常是低成本,NPN或PNP型晶体管或二极管,是微控制器,微处理器或FPGA的组成部分。
远程精度为±1 °C适用于多个设备制造商,无需校准。双线串行接口接受SMBus写字节,读字节,发送字节和接收字节命令,以设置报警阈值和读取温度数据。
TMP411器件中包含的功能包括:串联电阻取消,可编程非理想因子,可编程分辨率,可编程阈值限制,用户定义的偏移寄存器,用于最大精度,最小和最大温度监视器,宽远程温度测量范围(高达150°C),二极管故障检测和温度警报功能。
TMP411器件采用VSSOP-8和SOIC-8封装。
特性
±1°C远程二极管传感器
±1°C本地温度传感器
可编程非理想因素
串联电阻取消
警报功能
系统校准的偏移寄存器
与ADT7461和ADM1032兼容的引脚和寄存器
可编程分辨率:9至12位
可编程阈值限...
发表于 09-19 16:35 •
243次
阅读
TMP468器件是一款使用双线制SMBus或I 2 C兼容接口的多区域高精度低功耗温度传感器。除了本地温度外,还可以同时监控多达八个连接远程二极管的温度区域。聚合系统中的温度测量可通过缩小保护频带提升性能,并且可以降低电路板复杂程度。典型用例为监测服务器和电信设备等复杂系统中不同处理器(如MCU,GPU和FPGA)的温度。该器件将诸如串联电阻抵消,可编程非理想性因子,可编程偏移和可编程温度限值等高级特性完美结合,提供了一套精度和抗扰度更高且稳健耐用的温度监控解决方案。
八个远程通道(以及本地通道)均可独立编程,设定两个在测量位置的相应温度超出对应值时触发的阈值。此外,还可通过可编程迟滞设置避免阈值持续切换。
TMP468器件可提供高测量精度(0.75°C)和测量分辨率(0.0 625°C)。该器件还支持低电压轨(1.7V至3.6V)和通用双线制接口,采用高空间利用率的小型封装(3mm×3mm或1.6mm×1.6mm),可在计算系统中轻松集成。远程结支持-55°C至+ 150°C的温度范围。
特性
8通道远程二极管温度传感器精度:±0.75&...
发表于 09-18 16:05 •
160次
阅读
评论