自定义浮点数及其计算方法和硬件结构技术

技术编号:21398400 阅读:69 留言:0更新日期:2019-06-19 06:50
本发明专利技术提供了一种具有共享指数的自定义浮点数,把基于32‑bit浮点数的神经网络模型压缩到8‑bit,大幅度压缩了模型的大小的同时降低运算操作复杂度。在自定义的浮点数运算中,采用的是整数乘法和加法运算。与32‑bit浮点数乘法相比,自定义浮点数的乘法运算节省了17倍的能量消耗,30倍芯片面积;加法运算节省28倍能量消耗,116倍芯片面积。在全连接层的网络参数中,传输到片外存储器的数据所需的内存带宽减少了4倍。自定义浮点数有助于在片上缓冲器中保持4倍以上的参数。在硬件实现中,结合8‑bit的自定义浮点数与乘法器封装结构,实现在运算单元CU上运算增快整个神经网络的运行速度和吞吐量。

【技术实现步骤摘要】
自定义浮点数及其计算方法和硬件结构
本专利技术涉及卷积神经网络
,具体地,涉及一种自定义浮点数及其计算方法和硬件结构,尤其是设计涉及一种基于自定义浮点和共享指数的,在FPGA卷积神经网络的乘法器封装结构。
技术介绍
在最近对卷积神经网络(CNN)的研究中,为了最大限度地提高准确性,大多数模型都不太关注它们的复杂性。例如,现代深度CNN模型中,如AlexNet、GoogleNet、ResNet均需要数百万个参数和数十亿的算术运算,其所需要的极高的计算复杂度和大量的资源消耗阻碍其嵌入式设备的实现。降低数据的表示精度是加速训练和减少内存带宽的常用方法。在内存需求方面,缩短位宽可以使更少的位数被用于读取或存储相同数量的值。在硬件平台上,降低精度也可同时减少运算时间,提高吞吐量。32-bit单精度浮点数是CNN模型中的常用数据类型。32-bit单精度浮点数表示和其对应的实际值如图1所示,尤其应用在FPGA的浮点乘法器上,具有高精度而高功耗、面积大的特点。许多研究者探索了CNN训练中权重或激活使用较短位宽的定点表示。例如,使用16-bit动态定点表示,提出一种称为Ristretto的定点量本文档来自技高网...

【技术保护点】
1.一种自定义浮点数,其特征在于,主要由整数部分和共享指数组成,整数部分主要由1位符号位和Z‑1位尾数位组成,Z表示整数部分的位数,共享指数是8位,共享指数的位宽和单精度浮点数相同。

【技术特征摘要】
1.一种自定义浮点数,其特征在于,主要由整数部分和共享指数组成,整数部分主要由1位符号位和Z-1位尾数位组成,Z表示整数部分的位数,共享指数是8位,共享指数的位宽和单精度浮点数相同。2.根据权利要求1所述的自定义浮点数,其特征在于,由整数部分和共享指数组成,整数部分由1位符号位和Z-1位尾数位组成;当将原始数据从单精度浮点格式量化为自定义浮点数时,使用共享指数,所述共享指数来自原始数据的绝对最大值,如下式表示:Es=Emax-(Z-2)其中,F表示原始数据的单精度浮点数据集,f表示原始数据的单精度浮点数据集中的一个单精度浮点数据,E表示指数,Emax表示原始数据的单精度浮点数据集F中的绝对最大值的指数;Z表示整数部分I的位数,共享指数ES的值由Emax和Z计算得到。3.一种利用权利要求1所述的自定义浮点数的计算方法,其特征在于,采用整数的乘法运算来代替原有的32位浮点数乘法运算,其中,乘法运算是将两个n-bit自定义浮动点值相乘,以产生具有2(n-1)bits尾数、1bit符号和更新共享指数,如下式表示:MC=MA×MBES,C=ES,A+ES,B其中,SA、SB、SC分别表示数据A、B、C的符号位,MA、MB、MC为数据A、B、C尾数位,ES,A、ES,B、ES,C表示A、B、C对应的共享指数。4.根据权利要求3所述的自定义浮点数的计算方法,其特征在于,采用整数加法运算来代替原有的32位浮点数加法运算,其中,加法运算如下式表示:ES,C=ES,A=ES,BiC=iA+iB其中,ES,A、ES,B、ES,C分别表示A、B、C对应的共享指数;iA、iB、iC分别表示A、B、C对应的整数部分。5.根据权利要求3所述的自定义浮点数的计算方法,其特征在于,在卷积神经网络中的量化中,每个层的输出使用一个R和ES来把每层输出量化为8位的自定义浮点数,如下式表示...

【专利技术属性】
技术研发人员:张煜祺刘功申
申请(专利权)人:上海交通大学
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1