开发者社区> 雷锋网> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

由 AI 芯片到目标检测板,「西安交大」是如何斩获 DAC FPGA 赛道亚军?

简介: 恭喜「西安交通大学人工智能与机器人研究所团队 XJTU-Tripler」
+关注继续查看

雷锋网(公众号:雷锋网) AI 科技评论按:2019 年 6 月 5 日,由电子自动化设计顶级会议 DAC 2019 主办的「低功耗目标检测系统设计挑战赛」于美国拉斯维加斯落下帷幕。西安交通大学人工智能与机器人研究所团队 XJTU-Tripler 凭借对算法和架构的特殊优化,最终取得准确率 IoU61.5%;能耗 9537J,帧率 50.91Hz,功率 9.248W 的优秀成绩,斩获 FPGA 赛道的亚军,同时他们也作为国内唯一一个进入前三的队伍。目前,他们已计划开源比赛相关工具,并且提供后续支持。雷锋网 AI 科技评论将他们所提供的设计方案及解析整理如下。

TB1ufkVbfBj_uVjSZFpXXc0SXXa.png

比赛背景

DAC,英文全称 ACM/IEEE Design Automation Conference,是电子设计自动化和嵌入式系统领域的顶级会议。系统设计大赛(System Design Contest)由 DAC 主办,旨在为全球机器学习系统设计者提供技术交流平台,挖掘领域内优秀方案和人才。

赛制规定以 FPGA 和 GPU 两种硬件架构划分,分别进行竞赛。针对 FPGA 赛道,本届大赛由 Xilinx、大疆和英伟达赞助,针对比赛方给定无人机视角的训练数据集 (9 万张分辨率为 360x640 的图片,单目标标注)进行训练,在比赛方自有的 5 万张测试数据集上进行测试。最终检测精度 IoU(Intersection over Union))高、且能量消耗低者胜出。

任务部署

西安交通大学人工智能与机器人研究所任鹏举副教授所在的认知计算架构团队 XJTU-Tripler 在本次大赛中,硬件方面使用的是专为低功耗 IoT 环境而设计的 Ultra96——Xilinx ZYNQ 的开发板,其 PS 侧搭载四核 ARM Cortex-A53 CPU,主频为 1.5GHz;由比赛方所提供。软件方面则用到了基于 Python 的 PYNQ 框架进行开发。其中由团队成员:赵博然、赵文哲、夏天、陈飞、樊珑、宗鹏陈负责硬件开发;魏亚东、涂志俊、赵之旭、董志伟负责算法优化。

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

算法优化

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

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

对神经网络进行 8bit 量化。

HiPU 优化

支持 CONV,FC,Dep-wise CONV,Pooling,Ele-wise Add/Mul 等操作,峰值算力为 268Gops,效率大于 80%;

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

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

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

相关技术详解

单目标检测网络选择

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

TB1NgnHd4iH3KVjSZPfXXXBiVXa.png

ShuffleDet 的网络结构示意图

神经网络的训练与量化

XJTU-Tripler 团队首先在 ImageNet 数据集上预训练一个标准的 ShuffleNet V2 分类网络。待模型收敛后,将其中前三层特征提取部分的参数重载回 ShuffleDet 网络中。使用比赛方的训练集进行全部层参数的训练。

为了适应 FPGA 的定点运算,待所有参数训练完成后,对所有参数进行量化操作。该团队将网络参数和 feature map 均量化为 8bit 定点。量化过程主要分为以下几步:1) 将 BN 层合并到参数中;2) 将合并后的参数进行对称量化;3) 离线量化完成后需对参数进行 fine tune。下图为量化操作的示意图。

TB13LYHd3aH3KVjSZFjXXcFWpXa.png

网络参数的量化流程

经过量化后,最终目标检测网络 ShuffleDet 的卷积层数约为 74 层,权重约为 1.94MB,Bias 约为 78KB。量化前的全精度准确率为 67.1%,量化后的精度为 61.5%,量化操作带来的精度损失为 5.6%。

关于 HiPU

1) 整体概况

由于西安交通大人工智能与机器人研究所团队主要面向专用集成电路(AISC)进行设计,其 FPGA 上的设计实现主要是进行功能的验证,因此,针对赛方提供的计算平台,我们需要对 HiPU 进行适当的裁剪,以适应 ZU3 的资源。如下图所示为裁剪后的 HiPU 设计框图,及其特性。HiPU 工作在 233MHz,其峰值算力为 268Gops;采用 C/RISC-V 汇编作为编程接口,卷积效率平均在 80% 以上。

TB13QzId8WD3KVjSZFsXXcqkpXa.jpg

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 稀疏优化。

2) 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。依次计算完所有行。如下图所示为 Module C 的层间级联计算次序。

 

TB1_VvId.WF3KVjSZPhXXXclXXa.jpg

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

3) HiPU 优化点分析——输入图像格式转换以提升处理效率

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

TB17.HHd.GF3KVjSZFoXXbmpFXa.jpg

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

系统优化设计与分析

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

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

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

 

TB18_THd2WG3KVjSZPcXXbkbXXa.jpg

(a) 并行化之前的工作流程

 

TB1f6YOd8Cw3KVjSZFlXXcJkFXa.jpg

(b) 并行化之后的工作流程

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

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

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

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

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

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

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

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

结果

全球共有 58 支队伍注册了 FPGA 比赛任务,有 11 支队伍提交了设计(完赛率 19%)。冠军为 iSmart3,由 UIUC、IBM、Inspirit IoT 公司联合组队;亚军为 XJTU-Tripler,由西安交通大学人工智能与机器人研究所设计;季军为 SystemsETHZ,来自 ETH Zurich 的队伍。

其中,XJTU-Tripler 团队是唯一使用 Verilog,而不是 HLS 进行设计的获奖队伍。由于其设计的高性能 DNN 加速器,其使用的神经网络规模也是最大的。最终竞赛成绩如下:

TB1cpzId2WG3KVjSZFPXXXaiXXa.png

DAC19 系统设计竞赛排名

TB1ELAVbfBj_uVjSZFpXXc0SXXa.png

资源情况比较

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

TB1nVrKd.GF3KVjSZFvXXb_nXXa.png

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

更多关于 DAC 2019

https://www.dac.com/content/2019-system-design-contest

雷锋网 AI 科技评论

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
云知声发布多模态AI芯片战略,同步曝光三款在研芯片
未来,云知声的AI芯片将不仅仅局限于语音处理。
415 0
依图开放AI芯片视觉计算创新平台,实现算法芯片对接「即插即用」
造芯,比以往任何时刻都更牵动人心。前有芯片技术被卡脖子多年,后有中美贸易下芯片产业链国有化势在必行。 但造芯远非一日之功,这背后所牵涉到的算法技术、设计能力、数据打磨、供应链支持繁杂而深远,往往是牵一发而动全身。于是,一个能够集聚产业链各方力量并实现资源优化配置的产业平台就成为关键。
120 0
IDC最新报告:阿里视觉AI能力中国厂商第一
视觉AI一直以来都是AI研究的重要领域,具有非常广泛的应用。
209 0
2021云栖大会【视觉AI平台与生态论坛】线上直播等你来~
2021云栖大会【视觉AI平台与生态论坛】将于10月22日在杭州云栖小镇开启,可能因为地域的原因,您未能亲临现场,本次大会将在线上同步直播,大家不用出门,在家就能看到最新科技领域的成果展示~
328 0
开发者大会倒计时7天!【视觉AI开发平台及其行业应用论坛】等你来
2021阿里云开发者大会将于5月29日在北京国家会议中心召开,大会开设「视觉AI开发平台及其行业应用论坛」,主要介绍低代码行业智能开发者平台:从面向ISV的算法低代码生产体系,到面向普通IT开发者的视觉智能开放平台;医疗、教育、数据传媒及专业影楼的智能数字化处理解决方案服务商都在使用,我们的开发者平台正在面向各行各业,深度践行着低代码行业智能。
238 0
达摩院视觉AI课程重磅上线,多种AI应用场景精彩纷呈!
阿里云视觉智能开放平台是基于阿里巴巴视觉智能技术实践经验,为用户提供易用、普惠的视觉API服务,平台目前涵盖了14个类目,共计170+视觉AI能力,在公测期间在公测期间免费为用户提供上百款AI能力的调用,欢迎各位同学报名进入直播间,观看达摩院视觉AI课程,了解体验更多的免费视觉AI能力。
703 0
达摩院—视觉AI训练营打卡引导
达摩院趣味视觉AI训练营开始报名了!!!3月招聘季,想要搞定面试?达摩院&阿里云开发者社区携官方学习资料来给你开小灶啦!我们为大家筛选了优质的视觉AI课程,还有结业证书,精美礼品等你来拿。
3042 0
3月招聘季 充电拿offer——达摩院趣味视觉AI训练营云上充电,限时免费报名中!
达摩院趣味视觉AI训练营开始报名了!!!3月招聘季,想要搞定面试?达摩院&阿里云开发者社区携官方学习资料来给你开小灶啦!我们为大家筛选了优质的视觉AI课程,还有结业证书,精美礼品等你来拿。
216 0
阿里云视觉智能开放平台2021首秀——趣味视觉AI训练营限时免费报名中!
趣味视觉AI训练营限时报名中!!!新功能,新算法,阿里云视觉智能开发平台产品专家带你体验视觉AI平台新能力,0代码体验AI能力,一键生成可视化AI结果。本次训练营带来更多的视觉AI应用场景,达摩院算法专家分享图像分割的算法基础知识,演示人物背景替换实现过程,体验热门算法-人物动漫化。调用视觉AI能力体验AI带来的趣味性。
328 0
阿里云异构计算平台 ——加速AI视觉智能创新
本文的整理自2017云栖大会-上海峰会上阿里云GPU云计算专家刘令飞分享讲义,讲义主要介绍了异构计算——AI视觉智能创新。从介绍什么是异构计算,到介绍GPU适用的领域及业务场景,最后介绍了弹性GPU服务给阿里云的发展带来了怎么样的影响。
2091 0
+关注
514
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载