![](https://csdnimg.cn/release/download_crawler_static/86311581/bg1.jpg)
30
专题
神经网络加速器及其软件编程系统
引言
近年来,随着神经网络算法研究不断取得重大
进展,其在图像识别、目标检测、语音识别和自然语
言处理等方面均得到了广泛的应用。然而,随着神经
网络层数的不断增加,算法所需的计算量也呈指数级
上升,这对传统的处理器架构提出了巨大的挑战。面
对这个问题,研究人员先后研发了多种不同架构的神
经网络加速器,本文旨在回顾并分析神经网络加速器
的发展历程以及对应的软件编程系统。
神经网络模型通常具 有三种典型的层结构,分别
是卷积层、池化层以及全连接层。从功能性方面来看,
卷积层通常用于特征抽取,通过卷积核在输入特征图
上滑动进行乘法和加法运算,输出特征图。池化层通
常位于卷积层之后,用于减小信息的空间维度,以避
免过拟合,并提高神经网络的容错性。通过挖掘神经
网络结构中的数据复用模式和神经网络层的运算模
式,并针对关键层和运算进行加速优化,可以有效提
升整个模型的处理速度。
基于以上基本思想,在过去的几十年中有众多研
究人员在硬件架构和编程系统两方面进行了不懈探
索,提出了多种神经网络加速器架构。在硬件架构方
面,研究人员提出了并行化、硬件神经元时分复用、
深度学习指令集等思路来设计专门的神经网络加速
器,以减少运算时间,提高准确率。
编程系统是连接用户和神经网络加速器硬件之间
的桥梁,其通过构建优化的软件架构,简化神经网络
算法在神经网络加速器的部署过程,力图使端到端的
性能达到最优。
神经网络加速器
2012 年,Chen 等人提出硬件神经网络加速器在
RMS(Recognition-Mining-Synthesis,识别 - 发掘 -
综合)应用领域将具有广阔的应用前景
[1]
。随着暗硅
(dark silicon)时代的到来,在合理功耗范围内芯片已
经无法通过简单的增加处理器核数来提高性能。因
此,针对特定应用需求的加速器将成为未来的发展趋
势。研究结果表明,硬件神经网络加速器可以胜任诸
多对算力性能要求较高的应用场景。
基于神经网络算法的结构特征和运算机制,研究
人员提出了多种不同的硬件架构,下面将简述其中的
一些代表性成果。
通用处理芯片
以通用处理器 CPU、图形处理器 GPU 实现深
度学习应用的这条技术路线在工业界有较为广泛的应
用。谷歌、脸书、百度、阿里巴巴、腾讯等公司纷纷
构建大规模的 CPU/GPU 计算集群来并行加速神经网
络算法,其中大多数计算集群的计算节点采用 CPU
或者 CPU+GPU 的 异 构 模 式 进 行。为了保 证 计 算 性 能 ,
这需要付出极大的功耗代价。例如,谷歌在 2012 年利
用 1.6 万个 CPU 核的集群经过数天训练了一个 10 亿
参数的神经网络模型,并于 2013 年用 GPU 集群将其
扩展至 110 亿参数。而在实现用于围棋对弈的 Alpha-
Go 系 统 时, 谷 歌 采 用 了超 过 1000 颗 CPU 和 200 颗
关键词 :
神经网络加速器 软件编程系统
李
威
中国科学院计算 技术 研究所
评论0