用于减少数据移动的跳零稀疏技术制造技术

技术编号:35332534 阅读:45 留言:0更新日期:2022-10-26 11:50
本申请提供一种跳零稀疏技术,用于减少存储器和加速器之间的数据移动并减少加速器的计算工作量。本技术包括检测存储器上的零值和近零值,非零值被传输到加速器进行计算,零值和近零值作为零值回写到存储器中。和近零值作为零值回写到存储器中。和近零值作为零值回写到存储器中。

【技术实现步骤摘要】
【国外来华专利技术】用于减少数据移动的跳零稀疏技术

技术介绍

[0001]标量、向量和矩阵乘法是计算设备执行的常见计算。标量、向量和矩阵乘法运算常用于机器学习、人工智能、神经网络、数据分析等。例如,许多应用程序计算输入或激活矩阵和权重向量或矩阵的向量和/或矩阵乘法。该计算可以执行数百、数千甚至更多次。
[0002]请参考图1,c
×
r矩阵A与r行的列向量X的矩阵向量乘法包括X与A的每一行的点积。点积可以通过将矩阵A第一行中的每个元素与向量X列中的对应元素相乘,将其部分乘积相加,对矩阵A的每一行重复上述过程。矩阵

矩阵乘法可以看作是多次矩阵

向量乘法。在图2中示出c
×
r矩阵A和r
×
c矩阵X的示例性矩阵

矩阵乘法。还要注意,当矩阵之一是单行矩阵(例如,行向量)或单列矩阵(例如,列向量)时,矩阵

矩阵乘法和矩阵

向量乘法是相同的。
[0003]现在参考图3,其示出了示例性稀疏矩阵。稀疏矩阵是其中大多数元素值为零的矩阵。相反,大多数元素值不为零的矩阵称为稠密矩阵。矩阵通常存储为二维数组。数组中的每个条目代表矩阵的一个元素a
i,j
,并通过两个索引i和j访问。对于m
×
n矩阵,存储矩阵所需的存储量与m
×
n成正比。对于稀疏矩阵,可以通过仅存储非零元素值来减少用于存储的存储量。有多种数据结构用于以压缩格式存储稀疏矩阵,包括但不限于键字典、列表列表、坐标列表、压缩稀疏行、压缩稀疏列等。
[0004]现在参考图4,其示出了根据传统技术的示例性压缩稀疏行(CSR)数据结构。CSR数据结构表示具有三个数组的稀疏矩阵:行指针数组、列索引数组和值数组。值数组包括非零值。列索引数组指示给定行中非零值所在的列。行指针数组指示相应行的非零值在值数组中的起始位置。类似地,压缩稀疏列(CSC)数据结构可以表示具有列指针数组、行索引数组和值数组的稀疏矩阵。通常,压缩格式的矩阵数据结构,例如CSR和CSC,会减少矩阵消耗的存储量。压缩格式矩阵数据结构,如CSR或CSC,也可以通过消除涉及零值矩阵元素的计算来减少计算工作量。当稀疏率由于压缩和解压缩开销而高时,CSR和CSC技术提供了改进的性能。其他传统的稀疏技术包括Eyerisis和压缩直接内存访问引擎(DMA)。在Eyerisis中,处理元素旨在跳过零输入,主要是为了降低功耗。Eyerisis可以在计算受限的情况下提高性能,但不会使从存储器到处理器/加速器的数据移动受益。在压缩DMA引擎中,对零数据使用掩码和在计算前解码数据。然而,压缩DMA引擎只有益于数据传输,并且需要在计算前解压缩。
[0005]大多数稀疏技术是在处理器或加速器上实现的,而不是在存储器子系统上实现的。大多数稀疏技术利用压缩来提高计算效率。诸如易失性存储器(如DRAM)和非易失性存储器(如FLASH)等片外存储设备的带宽通常不足以支持高速处理器和加速器,因此成为性能瓶颈。因此,持续需要用于稀疏标量、向量和矩阵计算的改进的数据传输和计算技术。

技术实现思路

[0006]通过参考以下描述和附图可以最好地理解本申请,这些描述和附图用于说明针对用于减少数据移动的跳零稀疏技术的本申请的实施例。
[0007]一个实施例中,跳零稀疏计算系统可以包括处理器和存储器。处理器可以包括处理器稀疏控制单元和命令接口;所述处理器稀疏控制单元可以被配置为将存储器访问请求封装在跳零稀疏命令中;所述处理器的命令接口可以被配置为发送所述跳零稀疏命令并从第一组元素和第二组元素接收给定元素。所述处理器可以被配置为对所述第一组元素和第二组元素的相应给定元素执行计算操作以生成结果元素。所述处理器的命令接口还可以被配置为发送结果元素。所述存储器可包括存储单元阵列、命令接口和存储器稀疏控制单元;所述存储器的命令接口可以配置为接收跳零稀疏命令;存储器稀疏控制单元可以被配置为访问所述存储单元阵列中的第一组元素,确定所述第一组中的零和近零元素值并且基于所确定的第一组元素的零和接近零元素生成第一零元素掩码;存储器稀疏控制单元还可以被配置为访问所述存储单元阵列中的第二组元素,确定所述第二组元素中的零和接近零的元素值并且基于所确定的第二组元素的零和近零元素生成第二零元素掩码;存储器稀疏控制单元还可以被配置为基于所述跳零稀疏命令、第一零元素掩码和第二零元素掩码的计算操作生成计算零掩码;存储器稀疏控制单元还可以被配置为基于计算零掩码将零值写入存储单元阵列作为计算结果的一部分;所述存储器的命令接口还可以被配置为发送来自第一和第二组元素与所述计算零掩码中的非零指示符相对应的给定元素并接收结果元素;所述存储器稀疏控制单元还可以被配置为基于所述计算零掩码将所述结果元素写入所述存储单元阵列作为第一和第二组元素的计算结果的附加部分。
[0008]在另一个实施例中,处理器可以包括处理器稀疏控制单元,其被配置为生成封装存储器访问请求的第一跳零稀疏命令;所述处理器还可以包括命令接口,所述命令接口被配置为发送第一跳零稀疏命令,接收第一零元素掩码和来自第一组元素给定元素,以及接收第二零元素掩码和第二组元素的给定元素。所述处理器的处理器稀疏控制单元还可以被配置为基于所述第一跳零稀疏命令、第一零元素掩码和第二零元素掩码的计算操作生成第一计算零掩码;所述处理器可以被配置为对所述第一组元素和第二组元素的各个给定元素执行计算操作以生成第一结果元素。所述处理器的命令接口还可以被配置为发送所述第一结果元素;存储器可以包括存储单元阵列、命令接口和存储器稀疏控制单元;存储器的命令接口可以配置为接收所述第一跳零稀疏命令;所述存储器稀疏单元可以被配置为访问存储单元阵列中的第一组元素,确定所述第一组中的零和近零元素值,并基于所确定的所述第一组元素的零和近零元素值生成第一零元素掩码;存储器稀疏控制单元还可以被配置为访问存储单元阵列中的第二组元素,确定所述第二组元素中的零和近零元素值并且基于所确定的第二组元素的零和近零元素生成第二零元素掩码;所述存储器的命令接口还可以被配置为发送来自第一组元素中对应于第一零元素掩码中的非零指示符的给定元素、传输第一零元素掩码、发送来自第二组元素的与对应于第二零元素掩码中的非零指示符的给定元素,发送第二零元素掩码,并接收第一结果元素。所述存储器稀疏控制单元还可以被配置为将所述第一结果元素作为第一和第二组元素的计算结果写入存储单元阵列。
[0009]提供本
技术实现思路
以简化形式介绍在以下详细描述中进一步描述的概念的选择。本内容无意确定要求保护的主题的关键特征或基本特征,也不旨在用于限制要求保护的主题的范围。
附图说明
[0010]本申请的实施例通过示例而非限制的方式在附图中示出,并且其中相同的附图标记指代相似的元件,并且其中:图1示出了根据传统技术的矩阵

向量乘法。图2示出了根据传统技术的示例性矩阵

矩阵乘法。图3示出了根据传统技术的示例性稀疏矩阵。图4示出了根本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种处理器,包括:处理器稀疏控制单元,所述处理器稀疏控制单元被配置为将存储器访问请求封装跳零稀疏命令中;命令接口,所述命令接口被配置为发送所述跳零稀疏命令并从第一组元素和第二组元素接收给定元素;所述处理器被配置为对所述第一组元素和第二组元素的各个给定元素执行计算操作以生成结果元素;和所述命令接口还被配置为发送所述结果元素。2.根据权利要求1的处理器,其中:所述第一组元素包括标量、向量或矩阵中的一种;和所述第二组元素包括标量、向量或矩阵中的一种。3.根据权利要求1所述的处理器,其中所述计算操作包括加法、减法、乘法或除法运算中的一种。4.如权利要求1所述的处理器,其特征在于,所述处理器稀疏控制单元包括:跳零命令单元,所述跳零命令单元被配置为生成所述跳零稀疏命令,所述跳零稀疏命令包括跳零命令指示符(TAGID)、计算操作码(OP)、第一和第二组元素的数据类型(DataType)、所述第一组元素(Addr1)、所述第二组元素的地址(Addr2)、计算结果的目标地址(Addrdst)和数据长度(length)。5.一种存储器,包括:存储单元阵列;命令接口,所述命令接口被配置为接收跳零稀疏命令;存储器稀疏控制单元,所述存储器稀疏控制单元配置为;访问所述存储单元阵列中的第一组元素,确定所述第一组中的零和近零元素值,并基于确定的所述第一组元素的零和近零元素生成第一零元素掩码;访问所述存储单元阵列中的第二组元素,确定所述第二组元素中的零和近零元素值,并基于所确定的所述第二组元素的零和近零元素生成第二零元素掩码;根据所述跳零稀疏命令、所述第一零元素掩码和所述第二零元素掩码的计算操作生成计算零掩码;和将基于所述计算零掩码的零值作为计算结果的一部分写入所述存储单元阵列;所述命令接口还被配置为发送来自所述第一和第二组元素中对应于所述计算零掩码中的非零指示符的给定元素并接收结果元素;和所述存储器稀疏控制单元还被配置为将所述结果元素作为基于所述计算零掩码的第一和第二组元素的计算结果的附加部分写入到所述存储单元阵列。6.如权利要求5所述的存储器,还包括:所述存储器稀疏控制单元的零计数单元,所述零计数单元被配置为基于近零阈值及所述第一和第二组元素的数据类型确定零和近零元素值。7.如权利要求6所述的存储器,还包括:所述存储器稀疏控制单元的掩码信息处理程器,所述掩码信息处理程器被配置为生成所述第一零元素掩码,其中所述第一组元素中的零和近零元素由第一状态指示,并且所述
第一组元素中的非零元素由第二状态指示;以及生成所述第二零元素掩码,其中所述第二组元素中的零和近零元素由第一状态指示,且所述第二组元素中的非零元素由第二状态指示。8.根据权利要求5所述的存储器,其中所述跳零稀疏命令包括跳零命令指示符(TAGID)、计算操作码(OP)、第一和第二组元素的数据类型(DataType)、第一组元素的地址(Addr1)、第二组元素的地址(Addr2)、计算结果的目标地址(Addrdst)和数据长度(length)。9.根据权利要求5所述的存储器,还包括:所述存储器稀疏控制单元的回写控制单元,所述回写控制单元被配置为:将基于所述计算零掩码的零值作为计算结果的一部分写入所述存储单元阵列;和将所述结果元素作为基于所述计算零掩码的第一组元素和第二组元素的计算结果的附加部分写入所述存储单元阵列。10.一种跳零稀疏计算加速器方法,包括:生成封装存储器访问请求的跳零稀疏命令;发送所述跳零稀疏命令;响应于所述跳零稀疏命令,从第一组元素接收给定元素,和从第二组元素接收给定元素;对来自所述第一和第二组元素的各个给定元素执行计算操作以生成结果元素;和发送所述结果元素。11.根据权利要求10所述的跳零稀疏计算加速器方法,其中所述跳零稀疏命令包括跳零命令指示符(TAGID)、计算操作码(OP)、第一和第二组元素的数据类型(DataType))、第一组元素的地址(Addr1)、第二组元素的地址(A...

【专利技术属性】
技术研发人员:薛菲孙飞周杨杰段立德郑宏忠
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:

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

1