论文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:《基于FPGA的机器学习硬件加速研究进展》阅读笔记相关推荐
- 基于FPGA的快速傅里叶变换加速(三)
基于FPGA的快速傅里叶变换加速(三) 硬件加速介绍及部分verilog代码实现 1. 硬件加速 1.1 FPGA 1.1.1 FPGA介绍 概念: 基本结构: 工作原理: 1.1.2 开发板 开发板 ...
- 电子技术课程设计基于FPGA的音乐硬件演奏电路的设计与实现
wx供重浩:创享日记 对话框发送:乐曲电路 免费获取完整无水印论文报告(包含电路图) 文章目录 一.设计任务要求 二.总体框图 三.选择器件 四.功能模块 五.总体设计电路图 六.结束语 一.设计任务 ...
- 高级综合(high-level-synthesis,HLS):软件算法在FPGA上实现硬件加速的综合工具
目录 高级综合HLS(high-level-synthesis):软件算法在FPGA上实现硬件加速的综合工具 HLS简述 HLS应用背景 HLS基本要素 HLS优势 小结 高级综合HLS(high-l ...
- 基于机器视觉的表面缺陷检测方法研究进展(2022最新)
参考文献:基于机器视觉的表面缺陷检测方法研究进展-赵朗月 声明 此文章仅为作者阅读学习记录,如有错误欢迎指正交流,如果对你有帮助还望点赞支持,谢谢! 文章目录 声明 摘要 1.传统图像处理方式 2.基 ...
- 《中国人工智能学会通讯》——第3章 3.1基于深度学习的网络表示研究进展
第3章 3.1基于深度学习的网络表示研究进展 网络结构在现实世界中无处不在(如航线网络.通信网络.论文引用网络.世界万维网和社交网络等),在此基础之上的应用和研究问题受到了学术界和工业界的广泛关注,这 ...
- 1.基于深度学习的知识追踪研究进展_刘铁园
基于深度学习的知识追踪研究进展_刘铁园 1.知识追踪改进方向 针对可解释问题的改进 针对长期依赖问题的改进 针对缺少学习特征问题的改进 2.基于深度学习的知识追踪 DLKT 2.1 符号定义 2.2 ...
- 基于PYNQ-Z2实现BNN硬件加速
用HLS工具在PYNQ-Z2开发板上实现BNN(二值神经网络)硬件加速--毕设小结 本文主要是本人本科毕业设计的主要工作. 主要工作有两部分,一是使用Vivado HLS工具实现二值卷积神经网络模型并 ...
- java交通信号灯毕业论文范文_信号灯设计论文,关于基于FPGA的交通信号灯控制系统设计相关参考文献资料-免费论文范文...
导读:本文关于信号灯设计论文范文,可以做为相关参考文献. 文/ 胡桂戎 陕西警官职业学院 陕西 西安 710021 [摘 要]本文采用FPGA 设计,结合了道路传感器,设计了交通信号灯全感应自适应的控 ...
- 【论文笔记】《基于深度学习的中文命名实体识别研究》阅读笔记
作者及其单位:北京邮电大学,张俊遥,2019年6月,硕士论文 摘要 实验数据:来源于网络公开的新闻文本数据:用随机欠采样和过采样的方法解决分类不均衡问题:使用BIO格式的标签识别5类命名实体,标注11 ...
- 基于FPGA的线阵CCD图像测量系统研究——笔记
本文是对基于FPGA的线阵CCD图像测量系统研究(作者:高尚)的阅读笔记 第一章绪论 1. 读读看 读了前面的摘要依然没有看懂作者要做什么.接着往下读....终于看到了一个字眼"基于机器视觉 ...
最新文章
- Volley 请求提示:com.android.volley.ClientError
- 分享一款Markdown的css样式
- 用动图讲解分布式 Raft
- python程序员工作怎样-python程序员待遇如何
- Servlet基本概念及执行流程
- Some Tips About Layout Resource
- 设计模式--装饰模式
- Java 集合 List Arrays.asList
- rank,dense_rank,row_number使用和区别
- HALCON 21.11:深度学习笔记---有监督训练(6)
- Migrations有两个文件迁移数据的方法
- html网页设计动画效果,35个使用动画效果的网页设计欣赏
- 不求人小白也能搭建私有云盘,焕然一新体验
- 等比求和模版,下标从1开始
- Event Bubbling Exampl
- 2022年氧化工艺考试练习题模拟考试平台操作
- 2021强烈推荐的十大Win10必备工具(重装系统必备)
- Redis修行 — 基数统计:HyperLogLog
- Python爬虫:爬取17K小说
- 无人驾驶,令人失望的 2018 年!