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

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

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

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


1.引言

《基于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】
【3】
【4】
【6】


3.当前发展现状

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

软件层次上的优化:

  • 对机器学习算法本身进行优化改进
  • 对算法运行时库环境等的优化改进
    ** 并行化机器学习算法则是目前最普遍的加速手段**,他主要是对机器学习算法进行并行化与分布式处理使得算法本身在特定的硬件并行平台上实现任务级和数据级并行。

硬件层次上的优化

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

机器学习算法自身三个特征:数据密集型与计算密集型的结合、流式数据传输与迭代计算和较低的分支指令等 【9】。
……

3.2 目前的加速平台

3.3 衡量加速效果的指标

3.4 加速算法的着眼点


6.总结

近年来类似对机器学习加速器的综述还有文献【76,79-80】等。其中文献【79-80】两文主要针对神经网络加速器的进展进行了汇总,而本文更加深入低介绍了机器学习领域的硬件加速器发展情况;
文献【76】主要针对基于FPGA的深度学习加速器做出了总结。

【76】
【79】
【80】

你可能感兴趣的:(高性能计算HPC,fpga开发,机器学习,人工智能)