主动稀疏化向量处理器制造技术

技术编号:31571143 阅读:14 留言:0更新日期:2021-12-25 11:11
本发明专利技术公开了一种主动稀疏化向量处理器,属于向量控制运算及实现技术领域。本发明专利技术所述向量处理器包括输入暂存电路、算数运算电路和输出暂存电路;输入暂存电路用于接收控制信号和输入数据,算数运算电路根据控制信号对输入数据进行处理,输出暂存电路用于保存并发送运算结果。本发明专利技术所述向量处理器直接对向量进行处理,不需要保留中间结果,具有更少的冗余操作和更少的访存次数;对输入数据进行主动稀疏化,具有更好的性能和更低的功耗,也更加通用;在同样的硬件上实现了多种数据格式、多种运算模式的支持,具有更小的面积和灵活的使用方式。式。式。

【技术实现步骤摘要】
主动稀疏化向量处理器


[0001]本专利技术属于向量控制运算及实现
,具体涉及一种主动稀疏化向量处理器。

技术介绍

[0002]神经网络的推理过程中涉及大量的向量运算,如图像视频去噪、特征提取、物体识别和语音关键词检索等场景。数据的本质为多维向量,将神经网络的推理过程拆分成基础的逻辑运算,主要为向量乘法、向量加法和向量比较。然而,无论是针对定点数还是浮点数,现有的处理器多采用单指令多数据流的并行方式来增加处理器运算能力,可以同时执行若干个基础运算,操作数之间没有逻辑关联。对于向量运算,这种并行方式由于忽略了向量元素间的逻辑关联而引入了大量冗余的中间操作,基础运算的运算能力也限制了向量计算的性能。
[0003]以P维向量和的点乘为例,数学表达如下:
[0004][0005]在单指令多数据流的设计中,需要一个中间变量c,执行P次c=c+A
i
B
i
运算才能得到最终结果。这种方式保留了P个中间结果c,也就存在P次冗余的格式化、存数据、读数据的操作,且P次运算必须依次进行,也就完全没有了并行的优势。
[0006]现有的比特跳零乘加运算电路有位串行算法、全并行算法和部分并行算法,这些算法均使用移位累加的方法,当对应比特是1时加上操作数,当对应比特是0时不执行操作,采用位串行算法的电路一次检查一个比特,采用全并行算法的电路一次检查所有比特,采用部分并行算法的电路一次检查一部分比特。这些设计只能依靠数据的天然的比特稀疏性来加速乘加运算,而这种天然稀疏性并不常见,同时也存在许多无意义的运算。
[0007]以P维向量和的点乘为例,使用各元素的稀疏性进行比特跳零,数学表达如下:
[0008][0009]其中,Q是向量中各元素的值的位数,B
i,j
是生成的控制流中第i个元素的第j位,取值因算法而异,需要执行加法的次数等于向量中个元素非零比特的总数量,平均为总比特数的一半,即Q/2,最少为0,最多为总比特数。
[0010]综上,现有技术计算冗余,计算性能低。

技术实现思路

[0011]本专利技术的目的是克服上述现有技术的缺陷,提供一种主动稀疏化向量处理器。
[0012]本专利技术所提出的技术问题是这样解决的:
[0013]一种主动稀疏化向量处理器,包括输入暂存电路、算数运算电路和输出暂存电路;
[0014]输入暂存电路包括输入控制器和输入寄存器;输入控制器接收输入端发送的握手信号、控制信号和输入数据,将控制信号和输入数据存入输入寄存器,向输入端反馈握手信号;
[0015]算数运算电路包括预处理电路、运算控制器、算数运算器和格式化电路;
[0016]预处理电路读取输入寄存器中的控制信号和输入数据,根据控制信号对输入数据进行预处理;运算控制器读取输入寄存器中的控制信号,根据控制信号和预处理后的输入数据产生算数运算器的控制信号组;算数运算器根据控制信号组,对预处理后的输入数据进行数学运算,得到运算结果;格式化电路将运算结果的格式转换成指定格式,并发送至输出暂存电路;
[0017]输出暂存电路包括输出控制器和输出寄存器;输出控制器接收到转换为指定格式的运算结果后存入输出寄存器,并发送至输出端。
[0018]进一步的,本专利技术所述主动稀疏化向量处理器的工作模式为浮点数点乘、浮点数加法、浮点数最值、定点数点乘、定点数加法或定点数最值。
[0019]进一步的,当工作模式为浮点数点乘时,输入数据包括两个输入向量;预处理电路将两个输入向量中对应的每一对元素拆分重组成符号、阶码、第一尾数和第二尾数;所有的阶码进行比较,得到最大阶码;最大阶码与当前阶码做差得到尾数偏移量;将第二尾数转换成压缩NAF编码,根据尾数偏移量将压缩NAF编码右移用以对齐尾数;运算控制器利用对齐后的压缩NAF编码进行位跳零控制,周期性地从第一输入向量选择元素,选择元素的个数为算术运算器中加法树的通道数;对第一输入向量的元素进行NAF加权后输出待运算数据,直至搜索完压缩NAF编码中所有的非0位;算数运算器的加法树和累加器全部激活,将待运算数据进行求和并累加,输出累加结果至格式化电路;格式化电路将累加结果和预处理电路中的最大阶码打包成浮点数格式。
[0020]进一步的,当工作模式为浮点数加法时,输入数据包括两个输入向量;预处理电路将两个输入向量中对应的每一对元素拆分成第一符号、第一阶码、第一尾数、第二符号、第二阶码和第二尾数;对每一对元素的第一阶码和第二阶码进行比较和做差得到最大阶码和尾数偏移量,第一尾数和第二尾数中最小的尾数根据尾数偏移量右移用于对齐尾数,对齐尾数后的第一尾数和第二尾数作为一个元素组;运算控制器周期性地选取元素组,选取的元素组个数为算数运算器中加法器个数,直到遍历所有的元素组;算数运算器中的所有加法器激活,将运算控制器选取的元素组中的元素进行求和后输出至格式化电路;格式化电路将所有元素组的求和结果和预处理电路中对应的最大阶码打包成浮点数格式。
[0021]进一步的,当工作模式为浮点数最值时,输入数据为一个输入向量;预处理电路比较输入向量中的所有元素,找到最值和最值的索引,直接发送至格式化电路;格式化电路将最值保留,将最值的索引单独打包。
[0022]进一步的,当工作模式为定点数点乘时,输入数据包括两个输入向量;预处理电路将两个输入向量中的所有元素进行符号位扩展,将第二输入向量中的所有元素转换成压缩NAF编码;运算控制器对压缩NAF编码进行位跳零控制,周期性地从第一输入向量选择元素,选择元素的个数为算术运算器中加法树的通道数;对第一输入向量的元素进行NAF加权后输出待运算数据,直至搜索完压缩NAF编码中所有的非0位;算数运算器的加法树和累加器
全部激活,将待运算数据进行求和并累加,输出累加结果至格式化电路;格式化电路将累加结果按照定点数量化要求重新量化。
[0023]进一步的,当工作模式为定点数加法时,输入数据包括两个输入向量;预处理电路将两个输入向量中的所有元素进行符号位扩展;两个输入向量中位置对应的两个元素作为一个元素组;运算控制器周期性地选取元素组,选取的元素组个数为算数运算器中加法器个数,直到遍历所有的元素组;算数运算器中的所有加法器激活,将运算控制器选取的元素组中的元素进行求和后输出至格式化电路;格式化电路将所有元素组的求和结果按照定点数量化要求重新量化。
[0024]进一步的,当工作模式为定点数最值时,输入数据为一个输入向量;预处理电路比较输入向量中的所有元素,找到最值和最值的索引,直接发送至格式化电路;格式化电路将最值保留,将最值的索引单独打包。
[0025]进一步的,压缩NAF编码的转换方法为:
[0026]将有符号二进制数据转换成分离式NAF编码,有两种方式;
[0027]第一种分离式NAF编码方式的具体过程为:
[0028]将N比特有符号二进制数据x算术右移一位,得到N比特二进制的第一中间结果xh,N为正整数;x与xh相加并丢弃溢出,得到N本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种主动稀疏化向量处理器,其特征在于,包括输入暂存电路、算数运算电路和输出暂存电路;输入暂存电路包括输入控制器和输入寄存器;输入控制器接收输入端发送的握手信号、控制信号和输入数据,将控制信号和输入数据存入输入寄存器,向输入端反馈握手信号;算数运算电路包括预处理电路、运算控制器、算数运算器和格式化电路;预处理电路读取输入寄存器中的控制信号和输入数据,根据控制信号对输入数据进行预处理;运算控制器读取输入寄存器中的控制信号,根据控制信号和预处理后的输入数据产生算数运算器的控制信号组;算数运算器根据控制信号组,对预处理后的输入数据进行数学运算,得到运算结果;格式化电路将运算结果的格式转换成指定格式,并发送至输出暂存电路;输出暂存电路包括输出控制器和输出寄存器;输出控制器接收到转换为指定格式的运算结果后存入输出寄存器,并发送至输出端。2.根据权利要求1所述的主动稀疏化向量处理器,其特征在于,向量处理器的工作模式为浮点数点乘、浮点数加法、浮点数最值、定点数点乘、定点数加法或定点数最值。3.根据权利要求2所述的主动稀疏化向量处理器,其特征在于,当工作模式为浮点数点乘时,输入数据包括两个输入向量;预处理电路将两个输入向量中对应的每一对元素拆分重组成符号、阶码、第一尾数和第二尾数;所有的阶码进行比较,得到最大阶码;最大阶码与当前阶码做差得到尾数偏移量;将第二尾数转换成压缩NAF编码,根据尾数偏移量将压缩NAF编码右移用以对齐尾数;运算控制器利用对齐后的压缩NAF编码进行位跳零控制,周期性地从第一输入向量选择元素,选择元素的个数为算术运算器中加法树的通道数;对第一输入向量的元素进行NAF加权后输出待运算数据,直至搜索完压缩NAF编码中所有的非0位;算数运算器的加法树和累加器全部激活,将待运算数据进行求和并累加,输出累加结果至格式化电路;格式化电路将累加结果和预处理电路中的最大阶码打包成浮点数格式。4.根据权利要求2所述的主动稀疏化向量处理器,其特征在于,当工作模式为浮点数加法时,输入数据包括两个输入向量;预处理电路将两个输入向量中对应的每一对元素拆分成第一符号、第一阶码、第一尾数、第二符号、第二阶码和第二尾数;对每一对元素的第一阶码和第二阶码进行比较和做差得到最大阶码和尾数偏移量,第一尾数和第二尾数中最小的尾数根据尾数偏移量右移用于对齐尾数,对齐尾数后的第一尾数和第二尾数作为一个元素组;运算控制器周期性地选取元素组,选取的元素组个数为算数运算器中加法器个数,直到遍历所有的元素组;算数运算器中的所有加法器激活,将运算控制器选取的元素组中的元素进行求和后输出至格式化电路;格式化电路将所有元素组的求和结果和预处理电路中对应的最大阶码打包成浮点数格式。5.根据权利要求2所述的主动稀疏化向量处理器,其特征在于,当工作模式为浮点数最值时,输入数据为一个输入向量;预处理电路比较输入向量中的所有元素,找到最值和最值的索引,直接发送至格式化电路;格式化电路将最值保留,将最值的索引单独打包。6.根据权利要求2所述的主动稀疏化向量处理器,其特征在于,当工作模式为定点数点乘时,输入数据包括两个输入向量;预处理电路将两个输入向量中的所有元素进行符号位扩展,将第二输入向量中的所有元素转换成压缩NAF编码;运算控制器对压缩NAF编码进行
位跳零控制,周期性地从第一输入向量选择元素,选择元素的个数为算术运算器中加法树的通道数;对第一输入向量的元素进行NAF加权后输出待运算数据,直至搜索完压缩NAF编码中所有的非0位;算数运算器的加法树和累加器全部激活,将待运算数据进行求和并累加,输出累加结果至格式化电路;格式化电路将累加结果按照定点数量化要求重新量化。7.根据权利要求2所述的主动稀疏化向量处理器,其特征在于,当工作模式为定点数加法时,输入数据包括两个输入向量;预处理电路将两个输入向量中的所有元素进行符号位扩展;两个输入向量中位置对应的两个元素作为一个元素组;运算控制器周期性地选取元素组,选取的元素组个数为算数运算器中加法器个数,直到遍历所有的元素组;算数运算器中的所有加法器激活,将运算控制器选取的元素组中的元素进行求和后输出至格式化电路;格式化电路将所有元素组的求和结果按照定点数量化要求重新量化。8.根据权利要求2所述的主动稀疏化向量处理器,其特征在于,进一步的,当工作模式为定点数...

【专利技术属性】
技术研发人员:常亮周军竹子轩杨思琪
申请(专利权)人:电子科技大学
类型:发明
国别省市:

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

1