0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于FPGA的图神经网络加速器解决方案

Achronix 来源:Achronix 2024-11-15 14:24 次阅读

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

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

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

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

wKgZoWc26a6Aa_KaAAJ57QCHZz0377.jpg

图1:典型的GNN架构(来源:https://arxiv.org/abs/1901.00596)

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

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

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

wKgaoWc26a6AHzrfAALEk2Z1mr8305.jpg

图2:图卷积和二维卷积(来源:https://arxiv.org/abs/1901.00596)

对GraphSAGE算法的介绍

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

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

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

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

wKgZoWc26a6ATiEEAAOLQPfnhu8082.jpg

图3:GraphSAGE算法的可视化表示(来源:http://snap.stanford.edu/graphsage)

1、样本邻域

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

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

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

wKgZoWc26a6AO-VHAAN_vocgJ24855.jpg

图4:GraphSAGE算法的数学模型(来源:http://snap.stanford.edu/graphsage)

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

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

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

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

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

步骤6:标准化

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

步骤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的架构。

wKgaoWc26a6AIN-aAANIWaOXKJo952.jpg

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

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

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

GNN设计所面临的挑战 Speedster AC7t1500器件提供的解决方案
高速矩阵运算 机器学习处理器(MLP)
高带宽和低延迟存储 LRAM+BRAM+GDDR6+DDR4。
高并发和低延迟计算 FPGA使用可编程逻辑电路,以确保在硬件层面进行低并发和高并发延迟计算。
存储扩展 基于4×400 Gbps的RDMA确保在数据中心以极低的延迟扩展存储访问。
算法不断演进 FPGA中的可编程逻辑确保算法可以在硬件层面进行升级和重新配置。
复杂的设计 丰富的硬IP减少开发时间、降低复杂性,NoC简化模块之间的互连并改善时序


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1628

    文章

    21722

    浏览量

    602872
  • 加速器
    +关注

    关注

    2

    文章

    796

    浏览量

    37835
  • 神经网络
    +关注

    关注

    42

    文章

    4769

    浏览量

    100687
  • 机器学习
    +关注

    关注

    66

    文章

    8401

    浏览量

    132535
  • Achronix
    +关注

    关注

    1

    文章

    76

    浏览量

    22530

原文标题:白皮书:一种基于FPGA的图神经网络加速器解决方案(WP024)(第一部分)

文章出处:【微信号:Achronix,微信公众号:Achronix】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    一种基于FPGA神经网络加速器解决方案

    GNN算法涉及大量的矩阵计算和存储访问操作。在传统的x86架构服务上运行这种算法的效率是非常低的,表现为速度慢、能耗高等。
    发表于 08-06 15:08 4888次阅读
    一种基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>图</b><b class='flag-5'>神经网络</b><b class='flag-5'>加速器</b><b class='flag-5'>解决方案</b>

    超低功耗FPGA解决方案助力机器学习

    (BNN)加速器 • 软件工具——从Caffe/TensorFlow到FPGA神经网络编译工具、Lattice Radiant™设计软件和Lattice Diamond®设计软件
    发表于 05-23 15:31

    【PYNQ-Z2申请】基于PYNQ的卷积神经网络加速

    探索整个过程中资源利用的优化使整个过程更加节能高效预计成果:1、在PYNQ上实现卷积神经网络2、对以往实现结构进行优化3、为卷积神经网络网路在硬件上,特别是在FPGA实现提供一种优化思路和方案
    发表于 12-19 11:37

    机器学习实战:GNN加速器FPGA解决方案

    ,其算法的软件实现方式非常低效,所以业界对GNN的硬件加速有着非常迫切的需求。我们知道传统的CNN(卷积神经网络网络)硬件加速方案已经有非常
    发表于 10-20 09:48

    GNN(神经网络)硬件加速FPGA实战解决方案

    算法的软件实现方式非常低效,所以业界对GNN的硬件加速有着非常迫切的需求。我们知道传统的CNN(卷积神经网络网络)硬件加速方案已经有非常多的
    发表于 07-07 08:00

    一种基于FPGA神经网络加速器解决方案

    。因此,业界对GNN的硬件加速有着非常迫切的需求。尽管传统的卷积神经网络(CNN)硬件加速有很多种解决方案,但GNN的硬件加速还没有得到充分
    发表于 09-25 17:20

    FPGA去实现大型神经网络的设计

    1、加速神经网络的必备开源项目  到底纯FPGA适不适合这种大型神经网络的设计?这个问题其实我们不适合回答,但是FPGA厂商是的实际操作是很
    发表于 10-24 16:10

    《 AI加速器架构设计与实现》+第一章卷积神经网络观后感

    《 AI加速器架构设计与实现》+第一章卷积神经网络观感    在本书的引言中也提到“一胜千言”,读完第一章节后,对其进行了一些归纳(如图1),第一章对常见的神经网络结构进行了介绍,
    发表于 09-11 20:34

    优化基于FPGA的深度卷积神经网络加速器设计

    CNN已经广泛用于图像识别,因为它能模仿生物视觉神经的行为获得很高识别准确率。最近,基于深度学习算法的现代应用高速增长进一步改善了研究和实现。特别地,多种基于FPGA平台的深度CNN加速器被提出
    发表于 11-17 13:31 8038次阅读

    Imagination发布最新神经网络加速器

    Imagination Technologies宣布推出其面向人工智能(AI)应用的最新神经网络加速器(NNA)架构PowerVR Series3NX。
    的头像 发表于 12-06 16:09 3462次阅读

    多项第一!Imagination神经网络加速器通过AIIA DNN benchmark评估

    基于端侧推断任务深度神经网络处理基准测试结果中,Imagination的神经网络加速器在多个框架测试中成绩名列第一!
    的头像 发表于 07-12 15:23 5275次阅读

    神经网络加速器简述

    神经网络加速器基本概念。
    发表于 05-27 15:22 13次下载

    基于FPGA的SIMD卷积神经网络加速器

    一种基于FPGA的SIM卷积神经网络加速器架构。以YOOV2目标检测算法为例,介绍了将卷积神经网络模型映射到FPGA上的完整流程;对
    发表于 05-28 14:00 24次下载

    Rapanda流加速器-实时流式FPGA加速器解决方案

    电子发烧友网站提供《Rapanda流加速器-实时流式FPGA加速器解决方案.pdf》资料免费下载
    发表于 09-13 10:17 0次下载
    Rapanda流<b class='flag-5'>加速器</b>-实时流式<b class='flag-5'>FPGA</b><b class='flag-5'>加速器</b><b class='flag-5'>解决方案</b>

    什么是神经网络加速器?它有哪些特点?

    神经网络加速器是一种专门设计用于提高神经网络计算效率的硬件设备。随着深度学习技术的快速发展和广泛应用,神经网络模型的复杂度和计算量急剧增加,对计算性能的要求也越来越高。传统的通用处理
    的头像 发表于 07-11 10:40 470次阅读