亚搏体育是什么-机器学习实践GNN(图片神经网络)加速器的FPGA解决方案

亚搏体育是什么-机器学习实践GNN(图片神经网络)加速器的FPGA解决方案

1概述

随着大数据的崛起和计算能力的快速提高,机器学习技术近年来取得了革命性的进步。在图像分类、语音识别、自然语言处理等机器学习操作中,数据是对大小维度确定和排序的欧几里得数据。但是,在越来越多的实际场景中,数据用(Graph)等复杂的非欧几里得数据来表示。Graph不仅包含数据,还包含数据之间的依赖关系,如社交网络、蛋白质分子结构、电子商务平台客户数据等。数据复杂性的增加对现有的机器学习算法设计和实现技术提出了严峻的挑战。在这种背景下,许多基于Graph的新机器学习算法——图形神经网络(GNN)在学术界和产业界不断出现。

GNN对计算能力和内存的要求很高,算法的软件实现方式效率低下,因此业界对GNN的硬件加速有着迫切的需求。我们知道现有的卷积神经网络(CNN)硬件加速方案已经有很多解决方案。但是GNN的硬件加速还没有得到充分的讨论和研究,写这篇文章的时候谷歌和百度都找不到关于GNN硬件加速的中文研究。本文的写作动机是结合笔者对国外最新GNN算法、加速技术研究、GNN的FPGA加速技术的探讨,向读者展示全景图。

2 GNN简介

GNN体系结构在宏观层面上与传统CNN相似的很多部分适用于GNN,包括卷积层、轮询、激活函数、机器学习处理器(MLP)、FC层等。下图显示了一个相对简单的GNN体系结构。

image.png

图1典型的GNN体系结构

但是GNN的Graph数据卷积计算与传统CNN的2D卷积计算不同。在图2中,红色目标节点的卷积计算如下:

Graph卷积:使用邻居函数对周围节点特性进行采样并计算平均值。邻居节点的数量不确定,无序(非欧几里得数据)。

2D卷积:用卷积核对周围节点特征进行采样,计算加权平均值。邻居节点数已确定并排序(欧几里得数据)。

image.png

image.png

图2 Graph卷积和2D卷积

3 GraphSAGE算法简介

学术界已经对GNN算法进行了很多研究讨论,并提出了相当多的创新实施方式。其中,斯坦福大学2017年提出的GraphSAGE是一种诱导式表征学习算法,用于在大型图形中动态添加未知节点类型,并针对节点数量多、节点特性丰富的图形进行了优化。如下图所示,GraphSAGE计算过程可以分为三个主要阶段。

image.png

图3 GraphSAGE算法的可视化表示

相邻节点采样:降低复杂性,正常采样层2,每层多节点采样

聚合:用于生成目标节点的embedding,即graph的低维矢量表示

预测:作为整个连接层的输入,使用embedding预测目标节点D的标签

为了在FPGA中实现GraphSAGE算法加速,需要知道数学模型,以便将算法映射到其他逻辑模块。下图中显示的代码说明了该算法的数学过程。

image.png

图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加速解决方案的解决方案。

image.png

图5 Achronix Speedster7t1500高性能FPGA体系结构

5 GNN加速器FPGA设计

Achronix的Speedster7t系列高性能FPGA针对数据中心和机器学习工作负载进行了优化,消除了CPU、GPU和传统FPGA的性能瓶颈。Speedster7t FPGA基于创新的新2D片上网络(NoC)、独创的机器学习处理器矩阵(MLP)和利用高带宽GDDR6控制器、400G以太网和PCI Express Gen5接口的7纳米FinFET流程。下图显示了Speedster7t1500高性能FPGA的体系结构。

上述功能使Achronix Speedster7t1500 FPGA设备能够针对GNN加速器设计中面临的各种挑战提供完整的解决方案。

表1 GNN设计挑战和Achronix的Speedster7t1500 FPGA解决方案

GNN设计挑战

Speedster7t1500解决方案

快速矩阵运算

MLP机器学习处理器矩阵

高带宽低

存储延迟

LRAM BRAM GDDR6 DDR4

高并发性低

延迟计算

FPGA使用可编程逻辑电路。

确保在硬件级别计算低的高并发延迟

内存扩展

基于4*400Gbps的RDMA,

确保在整个数据中心以非常短的延迟扩展内存访问

算法不断进化

FPGA使用可编程逻辑电路。

请确认是否可以在硬件级别升级算法。

设计很复杂

丰富的硬IP可减少开发时间和复杂性。

NoC简化了模块之间的互连,提高了计时

5.1 GNN加速器顶级体系结构

本GNN加速器是为GraphSAGE设计的,但其体系结构具有通用性,可以应用于其他类似的GNN算法加速,如下图所示。

image.png

图6 GNN加速器顶级体系结构(来源:Achronix原创)

在图中,GNNNCore是算法实现的核心部分,设计细节如下所述。RoCE-Lite是RDMA协议的轻量级版本,用于通过快速以太网进行远程内存访问,支持大容量节点的Graph计算。设计细节将在此公用号码的后续句子中说明。400GE以太网控制器用于托管RoCE-Lite协议。GDDR6用于存储GNN处理所需的高速访问数据。DDR4需要预处理的Graph可用于存储相对访问频率较低的数据的大容量内存,如所示。PCIe Gen5x16提供高速主机接口,可与服务器软件进行交互。上述所有模块均通过NoC片上网络实现高速互连。

5.2 GNN核心微体系结构

在开始讨论GNNNCore微体系结构之前,通过本文第3节中的GraphSAGE算法、内部循环聚合和集成(包括卷积)等两个任务,占据了算法的计算和内存访问的大部分。通过研究,我们得到了这两个阶段的特点如下。

表2 GNN算法的聚合和合并操作比较

汇总工作

(Aggregation)

合并操作

(Combination)

存储器

访问模式

间接访问,不规则

直接访问,规则

数据重用

计算模式

动态的,不规则的

静态,规则

计算量

性能瓶颈

保存

计算

聚合任务和整合任务对计算和存储访问的要求完全不同。聚合操作包括对相邻节点的采样,但Graph大小不确定、无序、矩阵稀疏、节点位置随机,因此存储访问不规则,数据难以重复使用。在合并操作中,输入数据是聚合结果(节点的低维表示)和加权矩阵(大小维固定,存储位置规则线性,存储访问没有问题,但矩阵计算量非常大。

基于上述分析,决定在GNN核心加速器设计中使用两种不同的硬件结构来处理聚合和合并操作,如下图所示。

image.png

图7 GNN核心功能框图(来源:Achronix原件)

Aggregator:通过单指令多数据处理器(SIMD)阵列对Graph的相邻节点进行采样和聚合。其中,“单个命令”可以预定义为mean()平均值计算或其他适用的聚合函数。“多数据”是指,在子图形采样器(subgraph sampler)中获取的单个mean()平均值计算中,需要多个相邻节点的特征数据作为输入。SIMD阵列通过调度程序AGG调度程序实现负载平衡。子贴图采样器通过NoC从GDDR6或DDR4读取的相邻矩阵和节点要素数据h0v分别缓存在Adjacent List Buffer和Node Feature Buffer中。聚合结果hkN(v)存储在Agg Buffer中。

合并器:通过脉动矩阵PE执行聚合结果的卷积操作。卷积核是Wk加权矩阵。卷积结果通过ReLU激活函数进行非线性处理,还存储在Partial Sum Buffer中,以方便下一次迭代。

合并结果表示通过L2BN规范化后最终节点的hkv。

在典型的节点分类预测应用中,节点特性化hkv可以通过整个连接层(FC)获得该节点的分类标签。这个过程是传统的机器学习处理方法之一,没有反映在GraphSAGE论文中,并且这个设计不包含这个功能。

6结论

本文详细介绍了GraphSAGE GNN算法的数学原理,并从多个维度分析了GNN加速器设计的技术挑战。作者通过分解问题并在体系结构级别逐一解决问题,综合利用Achronix Speedster7t1500 FPGA提供的竞争优势,创建了具有卓越性能和可扩展性的GNN加速解决方案。

亚搏体育是什么-机器学习实践GNN(图片神经网络)加速器的FPGA解决方案

发表评论

电子邮件地址不会被公开。 必填项已用*标注