论文1:《基于FPGA的机器学习硬件加速研究进展》阅读笔记

《基于FPGA的机器学习硬件加速研究进展》王超,王腾,马翔,周学海.中国科学技术大学计算机学院

如何高效稳定的存取数据信息以及加快数据挖掘算法的执行已经成为学术界和工业界急需解决的问题。

利用新型的软硬件手段加速机器学习算法已经成为目前的研究热点之一

王超 &&&&
请问高性能计算的学习路线应该是怎样的?


1.引言

在这里插入图片描述

整个加速硬件的发展汇总
目前,学术界和工业界存在多种较为成熟的加速平台,这些加速平台可以概括为四类:
  • Intel集成众核MIC
  • 专用集成电路ASIC
  • 通用图形处理单元GPGPU
  • 云计算平台、可重构逻辑电路如FPGA以及各种异构计算平台。

加速无法只依靠硬件系统运行,同时还需要一系列配套的软件系统支撑。

目前也存在多种软件与中间件系统,适用于不同饿加速平台中:

  • 适用于云计算平台的Hadoop,Spark,DryadLINQ,Pregel以及PowerGraph【2】等
  • 适用于GPGPU平台的CUDA
  • OpenCL和OpenACC

这些软件系统既充分利用了加速平台的能力又方便用户编程和使用,用户只需要按照响应的规范和利用提供的接口来编写软件应用就可以获得较为可观的加速效果。

  • 云计算平台和通用图形处理器(GPGPU)是目前使用较为广泛的通用加速平台
  • FPGA与ASIC则往往用于特定的问题实现特定的加速器来实现硬件加速;
  • 将CPU,GPU,和FPGA相结合的异构计算平台,如Axel,OptiML和Lime等,理论上有较大的加速潜力,目前多处于研究阶段。

并行方式:

  • 云计算平台主要依赖大规模基于CPU节点的计算集群来实现,利用粗粒度的任务级并行来加速应用执行;
  • GPGPU利用细粒度的数据级并行;
  • FPGA/ASIC利用细粒度的数据级并行以及管道流水线的方式来加速应用,可以用在边缘计算等场景中【3】。

从软件系统来说

云计算平台主要包括基于Map-Reduce编程模型的Hadoop,Spark等以及基于图计算的编程模型Pregel,PowerGraph等;
GPGPU的软件系统则涵盖了基于SPMD(单程序多数据)的CUDA,OpenCL和OpenACC等。

硬件加速器

对于FPGA/ASIC等加速器结构,目前有相对成熟的深度学习自动代码生成方法如TVM【4】等,可以为不同硬件后端的深度学习工作负载提供可移植性,并提供一系列优化策略,比如高级算子融合,硬件原语映射以及内存延迟覆盖等

同时也有多家企业展开了深度学习开发平台的建设:

  • 基于FPGA的包括百度昆仑AI,深鉴科技的DNNDK和微软的Brainwave Project等;
  • ASIC方面的硬件加速器有谷歌TPU、寒武纪元系列【6】、海思科技昇腾910、高通骁龙855和苹果的A12 Bionic等不仅有服务端更有移动端的芯片。

不同硬件的开发情况对比

多CPU构成的云计算平台的数据通信开销成为阻碍效率提升的绊脚石;
GPU在处理数据关联程度比较高的数据时无法获得较好的计算效率,并伴随着较大的功耗;
【2】Gonzalez J E,Low Y,Gu H,et al.PowerGraph:Distributed graph-parallel computation on natural graphs//Proceedings of the 10th USENIX Symposium on Operating Systems Design and Implementation(OSDI 12).Hollywood,USA,2012:17-30
【3】Li C,Xue Y,Wang J,et al.Edge-oriented computing pardigms:A survey on architecture design and system management.ACM Computing Surveys,2018,51(2):1-34
【4】Chen T,Moreau T,Jiang Z,et al.TVM:An automated end-to-end optimizing compiler for deep learning//Proceedings of the 13th USENIX Symposium on Operating Systems Design and Implementation(OSDI 8).Carlsbad,USA,2018:578-594

准备阅读

【6】Jouppi N P,Young C,Patil N,et al.In-datacenter performance analysis of a tensor processing unit//Proceedings of the 44th Annual International Symposium on Computer Architecture Toronto,Canada,2017:1-12.


3.当前发展现状

目前对机器学习算法进行加速的手段可以大致分为三大类:软件层次上的优化、机器学习算法的并行化和硬件层次上的改进。

软件层次上的优化:

  • 对机器学习算法本身进行优化改进: 针对SVM算法的SMO方法的提出
  • 对算法运行时库环境等的优化改进
    并行化机器学习算法则是目前最普遍的加速手段,他主要是对机器学习算法进行并行化与分布式处理使得算法本身在特定的硬件并行平台上实现任务级和数据级并行。
    很多机器学习算法能够相对简单地进行并行化处理并且能够很好运行在多核多节点的硬件平台上,如云计算平台或者GPU等【8】。

硬件层次上的优化

主要是指针对机器学习算法的特征来改进现有处理器体系结构使其能够高效快速地执行机器学习算法。

机器学习算法自身三个特征:数据密集型与计算密集型的结合、流式数据传输与迭代计算和较低的分支指令等 【9】。目前的通用CPU体系结构并不适合于处理机器学习问题。
机器学习算法是数据密集型和计算密集型的综合:

  • 需要频繁访问内存来获取大量数据
  • 需要对数据机型高强度大规模的复杂运算
  • 以流的方式顺序读入数据并进行处理,并且往往以整个数据集为单位进行迭代计算
    ==》

导致基于LRU策略的CPU cache miss比率很高,引起整个算法执行效率较低;
分支在机器学习算法中占比很低,整个机器学习算法具有顺序执行的特征,进而说明CPU中分支预测部件利用率不做

3.2 目前的加速平台

目前对于机器学习算法的加速平台分为4类:

  • 云计算平台
  • 通用图形处理器平台GPGPU
  • FPGA/ASIC平台
  • 综合上述3种平台特性的异构计算平台

云计算平台是目前普及最广的平台,利用云计算平台可以比较方便的对数据进行分布式处理和并行化机器学习算法。
云计算平台一般都由大量同构的基于CPU的单节点服务器构成,多个节点间相互配合、协同工作,并且可以对问题采用任务级并行和任务级并行的手段。云计算平台编程模型大体上可以分为基于Map-Reduce编程模型和基于图计算编程模型2种,采用Map-Reduce编程模型的程序可以抽象成Map和Reduce两个阶段,这种模型比较适合处理依赖程度比较低的数据;采用图计算编程模型的程序可以抽象成基于一个图的计算,每个图的节点都根据相邻边和节点的信息进行计算,这种模型比较适合数据依赖程度比较高的情况【10】。
同时还有一种由Map-Reduce编程模型发展起来的计算引擎Spark。它是由UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用并行框架,该框架具有Hadoop MapReduce所具有的优点;同时不同于MapReduce的,Spark将任务的中间输出结构岙村在内存中来降低读写HDFS文件系统需求。因此Spark能更好地适用于数据挖掘和机器学习等需要迭代的MapReduce算法。


CUDA、OpenCL和OpenACC等编程规范的提出和实现使得针对GPU编程变得简单快捷,因此GPU也成为了目前也较为广泛使用的加速并行平台。


FPGA与ASIC平台忧郁设计难度和编程门槛较高等因素使得其不能广泛普及,它们主要存在于嵌入式设备、云数据中心、各类一起以及大型通信设备中或者特定领域的应用当中。


还有一些异构计算平台【11】综合利用了CPU、GPU 和FPGA,并且也采用了由异构计算节点构成的集群方案,目前尚不成熟,任然处于研究阶段。现有的异构计算平台原型有Axel【12】、OptiML【13】和Lime【14】等。


阿里巴巴提出商用机器学习加速平台,PAI3.0【15】


3.3 衡量加速效果的指标

。。。。。。

3.4 加速算法的着眼点

。。。。。。


6.总结

近年来类似对机器学习加速器的综述还有文献【76,79-80】等。其中文献【79-80】两文主要针对神经网络加速器的进展进行了汇总,而本文更加深入低介绍了机器学习领域的硬件加速器发展情况;
文献【76】主要针对基于FPGA的深度学习加速器做出了总结。
【7】朱虎明,李佩,焦李成等.深度神经网络并行化研究综述.计算机学报,2018,41(8):171-191
【76】Guo K,Zeng S,Yu J,et al.[DL]A survey of FPGA-based neural network inference accelerators.ACM Transactions on Recongifurable Technology and Systems,2019,12(1):1-26
【79】陈桂林,马胜,郭阳.硬件加速神经网络综述.计算机研究与发展,2019,56(2):240-253
【80】秦智勇.航天神经网络加速器关键技术与挑战//中国航天电子技术研究院科学技术委员会.第六届航天电子战略研究论坛论文集.北京,中国,2019,(1):28-31

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

haimianjie2012

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值