没有合适的资源?快使用搜索试试~ 我知道了~
基于FPGA和卷积神经网络量化的语音分类加速器1
需积分: 0 4 下载量 149 浏览量
2022-08-03
15:19:46
上传
评论
收藏 882KB PDF 举报
温馨提示
试读
13页
摘要:传统的卷积神经网络在执行语音分类任务时存在模型存储规模大、浮点数值格式算力需求高的问题,限制了算法在低功耗和高吞吐率场景下的应用。通过对网络参数进行二值化
资源推荐
资源详情
资源评论
基于 FPGA 和卷积神经网络量化的语音分类加速器
*
温 冬,姜晶菲,窦 勇,许金伟,肖 滔
(国防科技大学计算机学院, 湖南 长沙 410073)
摘 要:传统的卷积神经网络在执行语音分类任务时存在模型存储规模大、浮点数值格式算力需
求高的问题,限制了算法在低功耗和高吞吐率场景下的应用。通过对网络参数进行二值化处理、
网络激活值进行定点数量化,降低了神经网络的存储体积并将浮点数运算转化为较快的定点数
运算。基于该量化优化,进行软硬件协同设计,并利用 FPGA 平台开发出全流水、低功耗和高
吞吐率的语音分类加速器,与先进多核 CPU 平台相比,单 PE 加速器在吞吐率上取得了 18-300
倍的加速比。
关键词:可重构计算; 神经网络; 量化压缩; 语音分类
中图分类号:TP391.9 文献标志码:A
A Speech Classification Accelerator Based on FPGA
and Convolution Neural Network Quantization
WEN Dong, JIANG Jing-fei, DOU Yong, XU Jin-wei, XIAO Tao, HAN Zhe
(School of Computer Science, National University of Defense Technology,
Changsha 410073, China)
Abstract: Traditional convolution neural networks have defect of huge parameter storage space
and demand for extensive computing power due to floating data type when handling speech
classification tasks, thus limiting it’s use under low-power and high-throughput circumstance. Turning
parameter into binary format and turning activation data into fix-point format can reduce neural
network’s storage space and replace floating computing with faster fix-point computing. Based on this
optimization and software-hardware-cooperating work, we design a full-pipeline, low-power and
high-throughput speech classification accelerator on FPGA platform, which has 18-300x throughput
accelerating ratio with single PE compared to state-of-art multi-core CPU platform.
Keywords: programmable computing; neural network; quantization; speech classification
收稿日期:****–**–**;;修回日期:****–**–**
*
基金项目:核高基国家重大专项(编号:2018ZX01028101)
通迅地址:410073 湖南省长沙市国防科技大学计算机学院 姜晶菲 jingfeijiang@nudt.edu.cn
Address: School of Computer, National University of Defense Technology, Changsha 410073, Hunan ,
P.R.China
1 引言
自从 Deng、Yu 等人[1]将 RNN(循环神经网络)和 LSTM(长短期记忆)模型引入声学
问题领域以来,RNN 在语音识别和声音分类领域取得了一系列性能上的突破。然而,基于
RNN 的深度神经网络结构复杂,其大量循环时序计算难以训练和并行化,限制了 RNN 模型
在实时场景下的应用。此外,CNN(卷积神经网络)在音频对象上具有同样优异的性能[2]。
许多模型利用 MFCC(梅尔频率倒谱系数)或其它滤波算法从音频中提取音频特征,进而把
音频帧和音频文件转化为特征图[3],然后像计算机视觉任务中的卷积神经网络一样,设置卷
积层、池化层、批量归一化层和全连接层,让卷积神经网络模型运行在音频特征图上。通过
利用 3x3 这样的小尺寸卷积核,声音卷积神经网络相比长短期记忆深度神经网络可以更快地
训练和推理,并且拥有更多的并行加速设计空间。
然而,传统高性能平台在部署卷积神经网络算法模型时存在两个重要的障碍: 功耗和速
度。高性能 CPU 可以在比 GPU 更低的功耗下运行,但其较低的计算并行度无法高效地处理
计算密集型的卷积运算。另一方面,高并行度的 GPU 可以更快地运行卷积神经网络,但它
们高达数百瓦的功耗往往会对部署场景提出更多的限制。为了保证计算精度,深度神经网络
中通常在运算和存储时通常采用浮点数据格式,但浮点格式在存储和计算这两个方面上都对
CPU 和 GPU 平台很不友好。浮点数据需要更大的存储字长和更多的计算功能部件,这就导
致了更大的存储空间开销和更大的电路设计面积,进而增加了硬件功耗。同时,浮点数据格
式的计算复杂度决定了设计者很难通过硬件设计或算法改进减少计算周期数。
一些工作[4]已经证明卷积神经网络在进行推理时并不一定需要浮点数据格式,低精度计
算也可以让算法获得与全精度浮点数据相似的性能。这些工作为硬件设计人员提供了一些新
的思路: 通过量化,研究人员在精度损失很小的情况下可以将权重和激活值数据转化为半精
度浮点格式、8 位浮点格式、定点格式甚至二值化格式[5]。基于各种卷积神经网络的量化方
法,学术界和工业界出现了 BNN(二值化神经网络)加速器和支持 8bit 浮点数据的 GPU 等。
这些设计与传统的处理器平台相比,在大大降低了功耗的同时具有高达数百倍的加速比。基
于卷积神经网络的声学算法和对硬件友好的卷积神经网络模型量化方法非常适合我们设计一
个实时声音分类应用加速器。
与 GPU 和 CPU 平台相比,ASIC(专用集成电路)和 FPGA(现场可编程逻辑门阵列)
高度定制化的设计特性使得开发者可以更灵活和更针对性地利用量化的卷积神经网络模型。
ASIC 和 FPGA 通过设置与量化模型相同的数据位宽与数据格式、设计不同层次的流水线、
扩展并行度,进而达到更好的计算性能和更低的运行功耗。在运行卷积神经网络模型时,ASIC
可以在计算性能和功耗上都取得很好的效果,但昂贵的设计和制造成本限制了它的广泛应用。
而 FPGA 由于其可配置的特点和成熟的工业设计,可以在性能、功耗和成本之间保持较好的
平衡,因此很适合作为卷积神经网络的加速平台。
在前人工智能时代,FPGA 被广泛用于数据中心的网络通信加速、云服务器操作系统虚
拟化和生物科学计算加速等。而在人工智能时代,功耗低面积小的 FPGA 不仅可以为边缘端
带来更多算力,其配置灵活的特性可使用户在云端实现人工智能算法进行定制化加速、高吞
吐率负载和低延迟优化,为高性能计算拓展了新的应用场景。
声音分类是一类典型的情报分析任务之一,对特定集合中语音指令、战场命令等的快速
识别是智能场景分析中的基础一环。目前利用典型的深度卷积神经网络模型可以较好地完成
有限声音集合的粗分类,但模型还有利用量化技术进行压缩和优化的空间。为了进一步压缩
声音分类应用的模型规模,更加充分地利用和发挥定制计算相较于传统高性能计算平台的优
势,需要研究更加精简的定制化模型加速方法。基于此,我们在 Tensorflow 语音数据集中选
取构造了一种典型的声音命令集合,并基于一种典型的声音分类卷积神经网络模型进行定制
优化压缩设计。该网络权值为+1 或-1,原始的激活数据为全精度浮点数据格式,网络由两个
卷积层和三个全连接层构成[6]。我们用 FPGA 硬件资源实现了该二值权重网络(BWN)声
音分类模型的定制加速器,与目前先进的 CPU 平台相比,实现了 18-300 倍的吞吐率加速比
和较低的运行功耗。本文的主要工作如下:
我们利用 Matlab 的内置量化函数和设计空间探索方法将一个声音分类卷积神经网络的浮
点型激活值数据逐层地转化为定点数据,FPGA 平台上的定点计算性能弥补了定点数据的精
度损失。
我们设计了一个基于 FPGA 的多 PE BWN 加速器,该加速器具有共享权值存储设计、均
衡流水线结构和卷积神经网络层间低延迟流水线设计。
我们在 CPU 平台上进行了单线程、多线程和多节点环境下的目标声音分类模型的性能测
试,得到了多组高性能 CPU 平台上的基准性能数据。与上述测试结果相比,我们的设计在性
能功耗比和计算加速比上具有绝对优势。
2 神经网络推理量化
现在的深度神经网络模型通常包含大量的参数,为了更好地训练神经网络模型,研究人
员通常选择全精度浮点数据格式作为参数数据格式。然而,在推理任务中,所有这些参数一
旦训练完成在数值上就不会被改变,因此就不需要继续保留全精度数据格式或保留所有的参
数。通过离线的对神经网络参数进行剪枝、量化压缩精度,我们可以显著的降低网络的存储
体积、总计算量和计算延迟。[7] 提出了一种将浮点深度神经网络参数压缩为包含+1 和-1 二
进制数据的算法。与原有的 64 位浮点数据格式模型相比,这种压缩方法不仅大大减少了参数
存储空间需求,而且用加减运算替代卷积中的乘法运算,显著降低了单个卷积运算的计算延
迟。该方法使设计人员可以将所有参数都放在芯片内,降低了内存数据交换开销;另外对于
FPGA 硬件平台而言,加减电路也比乘法器更易设计和实现。
另外,[7]中提出了将神经网络运行中的激活值数据也全部转化为二值格式的方法。与训
练完成后不发生改变的神经网络参数不同的是,网络激活值数据会随着输入对象(如图片或
音频特征图)的不同而产生数值上的波动,对激活值数据做二值化处理就会产生较大的精度
损失。此时对网络激活值进行定点化处理就可以在精度和计算性能上得到较好的平衡:一方
面定点数计算的计算周期数较浮点数大幅减少;另一方面定点格式可以根据激活值数据实际
的数值分布范围来调整整数和小数位宽,小数位宽越大,对原数据的精度保持就更好,整数
部分位宽则决定了数据格式的数值表征范围。相比二值化数据格式,定点数据可以更好的在
计算精度和计算速度上达到平衡。
3 声音分类模型
3.1 模型结构和权值二值化
该卷积神经网络声音分类模型是在 Tensorflow 语音指令数据集上进行训练得到,能
够分辨出“up”,“down”,“yes”,“right”,“left” 共 5 种单词语音段和未知声音(unknown)。
最初得到的原始网络模型中的权值和中间结果(激活值)都由浮点格式表达。首先,该
模型利用 MFCC 算法将一个音频文件变换成维度为 20*49*1 的浮点格式的张量,该张量
即为音频的特征图矩阵。此张量将被送入包含两个卷积层、三个全连接层的卷积神经网
络中,所有的卷积核大小均为 3,卷积步长为 1。该卷积神经网络没有边缘扩展,便于我
们加速,该网络的结构如图 1 所示。最后,该模型通过 softmax 函数输出六种类型标签
的预测概率。
Figure 1 Convolution Neural Network’s Architecture
图 1 卷积神经网络结构
当模型训练完成、参数数值都确定之后,我们利用 tanh 函数将数值分布没有约
束范围的浮点权值约束到(-1,1)的范围,然后使用一系列放缩与映射的方法将浮
剩余12页未读,继续阅读
资源评论
UEgood雪姐姐
- 粉丝: 25
- 资源: 319
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功