Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

西安交通大学XJTU-Tripler队伍作者

西安交大获得DAC19系统设计竞赛FPGA赛道亚军,这里是他们的设计方案

近日,第二届「低功耗目标检测系统设计挑战赛」落下帷幕。来自西安交通大学人工智能与机器人研究所的队伍 XJTU-Tripler 获得本次比赛的亚军。本文将介绍这支队伍的设计解决方案。

2019 年 6 月 5 日,由自动化设计顶级会议 Design Automation Conference(DAC'2019, CCF A 类会议)主办的第二届「低功耗目标检测系统设计挑战赛」于美国拉斯维加斯落下帷幕。该比赛由 Xilinx、大疆和英伟达赞助,针对比赛方给定的无人机视角的 12 类训练数据集(93.52K 张分辨率为 360x640 的图片,单目标标注)进行训练,在比赛方自有的 52.75K 张测试数据集上进行测试。最终检测精度 IoU (Intersection over Union) 高且能量消耗低者胜出。全球共有 58 支队伍注册了 FPGA 比赛任务,最终只有 11 支队伍提交了设计(完赛率 19%)。冠军是由 UIUC、IBM、Inspirit IoT 公司联合组队的 iSmart3(该队伍同时也是 GPU 赛道的冠军);亚军 XJTU-Tripler 来自西安交通大学人工智能与机器人研究所;季军来自 ETH Zurich 的 SystemsETHZ。

图 1:58 家注册队伍的全球分布情况

2018 和 2019 年赛事对比

2019 年为该系列赛事的第二届比赛。与上一届相比,Xilinx 提供了 Ultra96 代替了去年的 PYNQ Z-1 FPGA 开发板,FPGA 芯片由 Zynq 7020 升级为 ZU3。Ultra96 是一款优秀的 Xilinx ZYNQ 开发板,针对低功耗 IoT 环境而设计。其 PS 侧搭载四核 ARM Cortex-A53 CPU,主频为 1.3GHz,搭载 2GB LPDDR4;PYNQ Z-1 是上一代 7 系列 FPGA,PS 侧搭载双核 ARM A9 CPU,主频为 866Mhz,搭载 512MB 的 DDR3。

图 2:2018 和 2019 年比赛使用的不同 FPGA 开发板及核心芯片资源对比。Ultra96(左)PYNQ Z-1(右)

2019 年和 2018 年的前三设计对比如下表所示:

由此可见,2019 年的作品比 2018 年有了大幅提升,除了得益于 FPGA 平台本身的性能外,在设计层面也有比较明显的变化。

亚军 XJTU-Tripler 设计方案简介

HiPU 整体介绍

HiPU 是一款面向深度神经网络的通用加速器,完成了类似于英伟达的 NVDLA 与外部控制器的整合功能,并且在 FPGA 上的资源消耗与工作频率指标都有显著提升。由于西安交通大学人工智能与机器人研究所团队 (http://iair.xjtu.edu.cn) 主要面向专用集成电路 (AISC) 进行设计,其 FPGA 设计主要是进行功能的验证,因此,针对赛方提供的计算平台,我们需要对 HiPU 进行适当的裁剪,以适应 ZU3 的资源。图 3 所示为裁剪后的 HiPU 设计框图及其特性。在 Ultra96 板卡上,HiPU 可以在 233MHz 上运行,其峰值算力为 268Gops;采用 C/RISC-V 汇编作为编程接口,卷积效率平均在 80% 以上。

图 3:HiPU 的结构框图与特性

  • HiPU 支持各种常见的 NN 运算,包括:CONV,FC、Dep-wise CONV、Pooling、Ele-wise Add/Mul 等运算。其中 FC 也可以做到接近 100% 的计算效率。

  • HiPU 支持 channel 方向的 shuffle、divide、concat 操作。当这些操作紧接在卷积运算之后时,它们可以在硬件上进行合并,不消耗额外的时间。

  • HiPU 可以在任何种类的 Xilinx FPGA 上运行,不受 Zynq 架构的限制。

HiPU 底层实现矩阵运算、向量运算,以及标量运算。在做好调度的情况下,它可以支持任意类型的并行计算。未来将实现稀疏矩阵运算的优化,从而支持高效率的 DeCONV 运算,feature map 稀疏优化。

下图为以 DAC19 系统设计竞赛为素材,采用 HiPU 的实时双路检测 Demo:

视频链接如下:https://www.bilibili.com/video/av55982436/

面向 DAC 比赛的优化

为了达到检测精度与能耗的平衡,XJTU-Triper 团队选择并优化了面向端侧的轻量级神经网络框架。并针对 ZU3 的资源限制,精简了团队正在设计的一个可以支持通用网络的 DNN 加速器 (HiPU),并将其部署在 ZU3 的 PL 侧。主要工作分为针对硬件平台的算法优化和架构设计优化两部分:

算法优化主要有:

  1. 选择 ShuffleNet V2 作为特征提取的主框架;

  2. 选择 YOLO 作为单目标位置的回归框架;

  3. 神经网络进行 8bit 量化。

硬件优化主要有:

  1. 支持 CONV、FC、Dep-wise CONV、Pooling、Ele-wise Add/Mul 等操作;

  2. 支持 Channel shuffle、divide、concat 操作,且不消耗额外时间;

  3. 提供 C、RISC-V 汇编接口的 API,调度灵活;

  4. HiPU 完全由 PL 侧实现,不依赖 PS 侧。PS 主要工作负载为图片预处理和结果输出。

  • 目标检测网络选择

为满足移动端的检测实时性,该团队最终选定了 YOLO 作为基础检测框架,并自行定制网络 ShuffleDet。将其中的特征提取网络替换为轻量级的 ShuffleNet V2,其参数规模略大于 1X。

如图 4 所示为定制的单目标检测网络。

图 4:ShuffleDet 的网络结构示意图

  • 神经网络的训练与量化

首先在 ImageNet 数据集上预训练一个标准的 ShuffleNet V2 分类网络。待模型收敛后,将其中的特征提取部分的参数迁移到 ShuffleDet 网络中。使用比赛方的训练集进行其他层的参数训练。为了适应 FPGA 的定点运算,待所有参数训练完成后,对所有参数进行量化操作。该团队将网络参数和 feature map 均量化为 8bit 定点。

量化过程主要分为以下几步:

1) 将 BN 层合并到参数中;

2) 将合并后的参数进行对称量化;

3) 量化后的参数如果直接使用,精度损失过于严重,因此量化后还需要对参数进行 fine tune。经过量化后,最终的 ShuffleDet 网络的卷积层数约为 74 层,权重约为 1.94MB,Bias 约为 78KB。

如图 5 所示为量化操作的示意图。

图 5:网络参数的量化流程

  • HiPU 优化分析通过层间级联减少所需的 DDR 带宽

HiPU 设计性能有两个重要的方面:一个方面是 MAC 运算单元的利用率;一个是数据传输网络是否可以匹配 MAC 所需的数据。其中数据传输网络的限制大多数来自 DDR 接口。本设计针对 DDR 接口进行专门的优化。

由于 HiPU 中 SRAM 的大小限制,无法将一层 feature map 的数据完全放在 HiPU 的 SRAM 中。采用平常的计算次序则需要将每一层的 feature map 计算结果返回到 DDR 中存储。这样一来每一层的 feature map 数据都需要一次 DDR 的访问,对 DDR 的带宽需求非常大,也会消耗额外的功耗。

团队通过层间级联的方式降低 DDR 的带宽需求。以 ShuffleNet 的 bottleneck 为分界,从每个 bottleneck 的输入处从 DDR 读取一行 feature map,依次计算完所有的层后,输出的一行 feature map 才写回到 DDR。依次计算完所有行。如图 6 所示为 Module C 的层间级联计算次序。

图 6:Module-C 采用层间级联计算方式

  • DSP 双倍频和单倍频的设计方案

在设计 HiPU 时,分别针对 Xilinx 中 DSP 模块工作在单倍频与双倍频进行设计。双倍频模式可以显著提升 Xilinx 中 DSP 的利用率,且基础工作频率与单倍频设计相当 (233MHz),是未来产品中以 FPGA 为交付版本的更好选择。

双倍频 DSP 方案的主要设计难点为:1)DSP 累加链在同相位不同时钟频率下的设计;2)双倍频时钟域下单倍频数据的选择信号生成;3)双倍频时钟域中的 LUT 需要进行物理约束以确保工作频率不受影响。仔细处理好上述 3 个难点,就可以得到更加高效的设计。

由于双倍频 DSP 方案消耗的 DSP 数目仅为单倍频方案的一半,当使用相同数目的 DSP 时,双倍频方案的峰值算力为单倍频的一倍,即可以达到 476Gops。然而本次竞赛由于时间关系,没有将双倍频 DSP 的规模做到极致,仅做到与单倍频峰值算力一致的程度。在这种情况下,双倍频方案由于工作频率较高,能耗比单倍频方案较高。最终团队提交了单倍频方案。

  • 系统优化设计

1) 图像解码与卷积神经网络计算并行化

由于 HiPU 仅仅依赖 Zynq 的 PL 侧资源进行设计,PS 侧的资源可以空出来做系统 IO 相关的工作。我们团队在处理当前图片的检测运算时,在 PS 侧预读并解码下一幅图片,提高处理的并行度,从而使整体检测帧率从 30.3Hz 提高到 50.9Hz。

如图 7 所示为图像解码与卷积神经网络并行化的示意图。

图 7:图像解码与卷积神经网络并行化的示意图

2)    使用门控时钟降低 PL 侧的能耗

为了降低系统的能量消耗,该团队设计了门控时钟策略。当 HiPU 计算完一张图片的时候自动关闭时钟,下一张图片开始计算的时候再激活时钟。设置这个策略主要基于以下两个原因:

首先,系统对 jpg 格式图片解算的时间不固定,当 SD 卡型号不固定的时候,其均值在 7ms-12ms 之间,部分图片解算时间最大值可以到达 100ms;

其次,系统的功耗测量进程和其他额外开销会占用一部分的 cpu 时间,并且 PS 和 PL 共享 DDR 带宽,这导致了 HiPU 在 166Mhz 的时帧率到达约 50hz,但是升高 HiPU 到 200Mhz 时,系统处理帧率仍然保持在 50hz 左右。

上述两个原因会导致 HiPU 处理时间和图片 jpeg 解算时间匹配变得不固定;当 HiPU 处理图像时间比图像解算时间短时,HiPU 会「空跑」浪费能量。另外,针对抢占 DDR 带宽的情况,还需继续优化。

3)输入图像格式转换以提升处理效率

HiPU 一次并行计算 8 个输入 channel。然而网络第一层输入图像仅有 RGB 这 3 个通道,导致 HiPU 计算效率仅为 3/8。因此,我们团队针对输入图像设计了一个转换模块。如果 Conv1 的 kernel 的 width 为 3,则将输入图像的通道从 3 扩展到 9。最终使得第一层的处理效率从 0.38 提升到了 0.56,其转换示意图如图 8 所示。

图 8:输入图像在行方向上的转换

4) 使用 C 代码加速 PS 侧原来的 Python 代码

使用 C 代码重构 PS 侧比较耗时的操作,并在 Pynq 框架中采用 ctypes 接口调用重构的 C 代码: 1) 预先计算 PL 侧数据中置信度和 bbox 坐标的地址指针;2) 找到最大的置信度和对应的 BBox 的坐标,然后根据相对坐标计算出绝对坐标。

  • 小结 

1)与 Nvidia TX2 实现的性能对比

团队将同样的 ShuffleDet 算法在 TX2 平台上也进行了部署,下表是两者的性能分析对比。可以看出 8bits 量化后造成了 0.056 的 IoU 损失(-8.3%),但 FPGA 上的设计实现带来了 28.87 的帧率提升(+131%)和 8309J 的能量减少(-46.56%)。

ShuffleDet 在 TX2 和 Ultra96 FPGA 平台上的性能比较

2)面向自主智能体的机载计算方案

团队围绕面向自主智能体的机载计算开展研究工作,目前已完成了基于无人机的目标捕获和定位,以及无人机/无人车空地协同等原型系统设计 (前期的研究主要采用 TX2 用于算法的快速迭代),之后将使用 FPGA 平台代替 TX2。

  • 无人机最终演示视频链接:https://www.bilibili.com/video/av55971956/

  • 空地协同快速通过迷宫视频链接:https://www.bilibili.com/video/av55966162/

  • 空地协同实景导航视频链接:https://www.bilibili.com/video/av55972226/

3)未来的工作

未来该团队的设计需要在以下几个方面继续加强:首先,轻量级算法设计与训练。团队将投入更多的精力去分析各个网络结构在量化后的优劣;其次,硬件设计需要继续迭代,下一版设计会提高灵活性以支持更多模型,同时精简运算逻辑以在 ZU3 上实现更高的峰值算力。除了继续提升和优化 FPGA 的设计外,我们还会进行原型芯片设计和流片。

本项目由西安交通大学 人工智能与机器人研究所 任鹏举副教授所在的认知计算架构小组完成的设计,团队成员:赵博然、赵文哲、夏天、陈飞、樊珑、宗鹏陈负责硬件开发;魏亚东、涂志俊、赵之旭、董志伟负责算法优化 。

工程西安交大大疆英伟达
相关数据
IBM机构

是美国一家跨国科技公司及咨询公司,总部位于纽约州阿蒙克市。IBM主要客户是政府和企业。IBM生产并销售计算机硬件及软件,并且为系统架构和网络托管提供咨询服务。截止2013年,IBM已在全球拥有12个研究实验室和大量的软件开发基地。IBM虽然是一家商业公司,但在材料、化学、物理等科学领域却也有很高的成就,利用这些学术研究为基础,发明很多产品。比较有名的IBM发明的产品包括硬盘、自动柜员机、通用产品代码、SQL、关系数据库管理系统、DRAM及沃森。

https://www.ibm.com/us-en/
相关技术
权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

调度技术

调度在计算机中是分配工作所需资源的方法。资源可以指虚拟的计算资源,如线程、进程或数据流;也可以指硬件资源,如处理器、网络连接或扩展卡。 进行调度工作的程序叫做调度器。调度器通常的实现使得所有计算资源都处于忙碌状态,允许多位用户有效地同时共享系统资源,或达到指定的服务质量。 see planning for more details

重构技术

代码重构(英语:Code refactoring)指对软件代码做任何更动以增加可读性或者简化结构而不影响输出结果。 软件重构需要借助工具完成,重构工具能够修改代码同时修改所有引用该代码的地方。在极限编程的方法学中,重构需要单元测试来支持。

人工智能技术

在学术研究领域,人工智能通常指能够感知周围环境并采取行动以实现最优的可能结果的智能体(intelligent agent)

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

收敛技术

在数学,计算机科学和逻辑学中,收敛指的是不同的变换序列在有限的时间内达到一个结论(变换终止),并且得出的结论是独立于达到它的路径(他们是融合的)。 通俗来说,收敛通常是指在训练期间达到的一种状态,即经过一定次数的迭代之后,训练损失和验证损失在每次迭代中的变化都非常小或根本没有变化。也就是说,如果采用当前数据进行额外的训练将无法改进模型,模型即达到收敛状态。在深度学习中,损失值有时会在最终下降之前的多次迭代中保持不变或几乎保持不变,暂时形成收敛的假象。

YOLO技术

YOLO 模型最早是由 Joseph Redmon 等人在 2015 年发布的,并在随后的两篇论文中进行了修订。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

卷积神经网络技术

卷积神经网路(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。卷积神经网路由一个或多个卷积层和顶端的全连通层(对应经典的神经网路)组成,同时也包括关联权重和池化层(pooling layer)。这一结构使得卷积神经网路能够利用输入数据的二维结构。与其他深度学习结构相比,卷积神经网路在图像和语音识别方面能够给出更好的结果。这一模型也可以使用反向传播算法进行训练。相比较其他深度、前馈神经网路,卷积神经网路需要考量的参数更少,使之成为一种颇具吸引力的深度学习结构。 卷积网络是一种专门用于处理具有已知的、网格状拓扑的数据的神经网络。例如时间序列数据,它可以被认为是以一定时间间隔采样的一维网格,又如图像数据,其可以被认为是二维像素网格。

逻辑技术

人工智能领域用逻辑来理解智能推理问题;它可以提供用于分析编程语言的技术,也可用作分析、表征知识或编程的工具。目前人们常用的逻辑分支有命题逻辑(Propositional Logic )以及一阶逻辑(FOL)等谓词逻辑。

无人机技术

无人机(Uncrewed vehicle、Unmanned vehicle、Drone)或称无人载具是一种无搭载人员的载具。通常使用遥控、导引或自动驾驶来控制。可在科学研究、军事、休闲娱乐用途上使用。

图神经网络技术

图网络即可以在社交网络或其它基于图形数据上运行的一般深度学习架构,它是一种基于图结构的广义神经网络。图网络一般是将底层图形作为计算图,并通过在整张图上传递、转换和聚合节点特征信息,从而学习神经网络基元以生成单节点嵌入向量。生成的节点嵌入向量可作为任何可微预测层的输入,并用于节点分类或预测节点之间的连接,完整的模型可以通过端到端的方式训练。

深度神经网络技术

深度神经网络(DNN)是深度学习的一种框架,它是一种具备至少一个隐层的神经网络。与浅层神经网络类似,深度神经网络也能够为复杂非线性系统提供建模,但多出的层次为模型提供了更高的抽象层次,因而提高了模型的能力。

奇虎360机构

360公司成立于2005年8月,创始人周鸿祎 2011年3月30日在纽交所成功上市 2018年2月28日,回归A股上市,上证交易所(601360) 是中国第一大互联网安全公司,用户6.5亿,市场渗透率94.7% 中国第一大移动互联网安全公司,用户数超过8.5亿 中国领先的AIoT公司,将人工智能技术应用于智能生活、家庭安防、出行安全、儿童安全等多个领域

http://smart.360.cn/cleanrobot/
目标检测技术

一般目标检测(generic object detection)的目标是根据大量预定义的类别在自然图像中确定目标实例的位置,这是计算机视觉领域最基本和最有挑战性的问题之一。近些年兴起的深度学习技术是一种可从数据中直接学习特征表示的强大方法,并已经为一般目标检测领域带来了显著的突破性进展。

暂无评论
暂无评论~