System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种实现脉动阵列计算中数据在本地缓存的方法技术_技高网

一种实现脉动阵列计算中数据在本地缓存的方法技术

技术编号:41305849 阅读:4 留言:0更新日期:2024-05-13 14:51
本发明专利技术属于脉动阵列技术领域,具体公开了一种实现脉动阵列计算中数据在本地缓存的方法。该方法将本地缓存模块作为控制和计算阵列的中间模块,使得脉动阵列计算模块能够根据转化后矩阵外积和矩阵内积的计算结果,对本地缓存模块中缓存的数据块执行读写数据,实现了芯片计算过程中的数据复用,有效地提高了芯片计算过程中的带宽利用率。

【技术实现步骤摘要】

本专利技术属于脉动阵列,具体涉及一种实现脉动阵列计算中数据在本地缓存的方法


技术介绍

1、随着ai应用的不断普及,越来越多的行业和领域实现了ai落地。当前对ai算力需求呈现出高速增长的趋势。不管是自动驾驶、智能制造,还是金融服务、科学计算等领域,都需要强大的ai算力来支持这些数据的分析和处理。

2、为了满足对ai算力越来越高的要求,ai算力不仅在计算速度、计算精度等方面面临挑战。由于ai芯片在处理和传输数据时,带宽大小直接影响了数据传输的速度,进而影响ai芯片处理数据的能力,因此,数据带宽也成为制约ai芯片算力进一步提高的重要因素。


技术实现思路

1、为了解决上述
技术介绍
中提到的至少一个问题,本专利技术提出了提出了一种实现脉动阵列计算中数据在本地缓存的方法。

2、一种实现脉动阵列计算中数据在本地缓存的方法,包括步骤:

3、步骤s1,将数据按照约定的存储规格存放在共享存储阵列模块内。

4、步骤s2,由地址生成模块读取共享存储阵列模块内的数据,并根据数据具体类型生成具体地址。

5、步骤s3,由本地缓存模块根据生成的具体地址来选择数据,将数据进行预对齐后再进行缓存,

6、其中,本地缓存模块包括一个特征寄存器块,一个权重寄存器块,其中,每个寄存器块分为乒乓子块,用于支持同时读写;

7、特征寄存器块用于存储计算过程的特征数据,由2x16x64个19bit的寄存器组成,其中,64个19bit寄存器组成1个寄存器行,16个寄存器行组成1个乒乓子块,2个乒乓子块各自用于同时读写特征数据;

8、权重寄存器块用于存储计算过程的权重数据,由2x64x64个19bit寄存器组成,其中,64个19bit寄存器组成1个寄存器行,64个寄存器行组成1个乒乓子块,2个乒乓子块各自用于同时读写权重数据;

9、特征寄存器块和权重寄存器块都支持fp16、bf16、tf32、int8类型的数据存储,并都支持8位整形4通道、8位整形8通道、8位整形16通道、8位整形32通道、8位整形64通道、8位整形128通道共6种压缩存储方式;

10、将数据进行预对齐,过程如下:

11、首先,确定需要进行缓存的数据,并获取该数据的数据类型和通道数;

12、然后,根据获取到的数据类型和通道数,计算出该数据的缓存点个数;

13、接着,由本地缓存模块中的特征寄存器和权重寄存器,根据数据写入规则执行数据写入,具体写入规则为:

14、根据计算出的数据缓存点个数,选择该数据对应的数据缓存点个执行数据写入,其中,数据缓存点个数的计算方式为:

15、

16、p_num∈[2n],n∈[1,4]

17、

18、公式中,p_num为数据缓存点个数,bit_size为数据类型的大小,c_num为通道数。

19、如果计算出来的缓存点个数大于等于16,则当特征寄存器和权重寄存器中数据的缓存点个数等于16时,执行数据写入指令;

20、如果计算出来的缓存点个数等于16,则以,否则当特征寄存器和权重寄存器中数据的缓存点个数等于计算出来的缓存点个数时,执行数据写入指令。

21、无论训练还是推理,每个时钟周期,一个地址上有效数据点的个数是不同的,直接写入寄存器块,增加了设计的复杂性和后端布局布线的难度,为了解决这一问题,本专利技术提出由本地缓存模块根据生成的具体地址来选择数据,并对数据进行预对齐后再进行缓存,确保每个时钟周期写入到激活寄存器块和权重寄存器块的数据最多16个点。

22、步骤s4,缓存后的数据由本地缓存模块推送至脉动阵列计算模块,并由脉动阵列计算模块对推送的数据执行脉动阵列计算,具体地,脉动阵列计算包括3种外积矩阵计算和3种内积矩阵计算,

23、其中,3种外积矩阵计算分别为反向卷积计算、左右矩阵转置计算、左矩阵转置计算,具体地,

24、反向卷积计算过程为:在64个时钟周期内,每16个时钟周期执行一次特征寄存器块的乒乓子块切换,共4次乒乓子块的切换;当进行一次乒乓子块切换时,执行特征图w维度和特征图h维度的矩阵外积计算,并和上次矩阵外积计算的结果在特征图w维度和特征图h维度上进行累加;

25、左右矩阵转置计算过程为:在64个时钟周期内,每16个时钟周期执行一次特征寄存器块的乒乓子块切换,共4次乒乓子块的切换;当进行一次乒乓子块切换时,执行右矩阵列维度上的矩阵外积计算,并和上次矩阵外积计算的结果在右矩阵列维度上进行累加;

26、左矩阵转置计算过程为:在64个时钟周期内,每16个时钟周期执行一次特征寄存器块的乒乓子块切换,共4次乒乓子块的切换;当进行一次乒乓子块切换时,执行右矩阵列维度上的矩阵外积计算,并和上次矩阵外积计算的结果在右矩阵行维度上进行累加;

27、3种内积矩阵计算分别为卷积计算、常规矩阵计算、右矩阵转置计算,具体地,

28、卷积计算过程为:在64个时钟周期内,每16个时钟周期执行一次特征寄存器块的乒乓子块切换,共4次乒乓子块的切换;当进行一次乒乓子块切换时,执行特征图c维度上的点积计算,并和上次点积计算的结果在特征图c维度上进行累加;

29、常规矩阵计算:在64个时钟周期内,每16个时钟周期执行一次特征寄存器块的乒乓子块切换,共4次乒乓子块的切换;当进行一次乒乓子块切换时,执行左矩阵列维度上的矩阵内积计算,并和上次矩阵内积计算的结果在左矩阵列维度上进行累加;

30、右矩阵转置计算:在64个时钟周期内,每16个时钟周期执行一次特征寄存器块的乒乓子块切换,共4次乒乓子块的切换;当进行一次乒乓子块切换时,执行右矩阵行方向上的矩阵内积计算,并和上次矩阵内积计算的结果在右矩阵行维度上进行累加。

31、传统的ai芯片在进行训练或者推理过程的计算时,如npu,多是采用对特征值和权重指进行点积运算的方式,其计算过程中数据流数据流对存储的访问是单方向的,本专利技术提出将本地缓存模块作为控制和计算阵列的中间模块,使得脉动阵列计算模块能够根据转化后矩阵外积和矩阵内积的计算结果,对本地缓存模块中缓存的数据块执行读写数据,实现了实现芯片计算过程中的数据复用,有效地提高了芯片计算过程中的带宽利用率。

32、步骤s5,由计算结果处理模块对脉动阵列计算模块的计算结果进行后处理,对将后处理的计算结果返回至共享存储阵列模块。

33、本专利技术提出了一种实现脉动阵列计算中数据在本地缓存的方法,与现有的技术相比,具有以下有益效果:

34、本专利技术提出将本地缓存模块作为控制和计算阵列的中间模块,使得脉动阵列计算模块能够根据转化后矩阵外积和矩阵内积的计算结果,对本地缓存模块中缓存的数据块执行读写数据,实现了实现芯片计算过程中的数据复用,有效地提高了芯片计算过程中的带宽利用率。

35、本专利技术提出由本地缓存模块根据生成的具体地址来选择本文档来自技高网...

【技术保护点】

1.一种实现脉动阵列计算中数据在本地缓存的方法,其特征在于,包括步骤:

2.根据权利要求1所述的一种实现脉动阵列计算中数据在本地缓存的方法,其特征在于,步骤S3中所述的本地缓存模块包括一个特征寄存器块,一个权重寄存器块,其中,每个寄存器块分为乒乓子块,用于支持同时读写;

3.根据权利要求2所述的一种实现脉动阵列计算中数据在本地缓存的方法,其特征在于,所述的特征寄存器块和权重寄存器块都支持fp16、bf16、tf32、int8类型的数据存储,并都支持8位整形4通道、8位整形8通道、8位整形16通道、8位整形32通道、8位整形64通道、8位整形128通道共6种压缩存储方式。

4.根据权利要求1所述的一种实现脉动阵列计算中数据在本地缓存的方法,其特征在于,步骤S3中所述的将数据进行预对齐,包括步骤:

5.根据权利要求4所述的一种实现脉动阵列计算中数据在本地缓存的方法,其特征在于,所述根据计算出的缓存点个数,选择对应的数据并执行数据写入指令,具体写入规则为:

6.根据权利要求1所述的一种实现脉动阵列计算中数据在本地缓存的方法,其特征在于,步骤S4中所述的对推送的数据执行脉动阵列计算,具体包括3种外积矩阵计算和3种内积矩阵计算。

7.根据权利要求6所述的一种实现脉动阵列计算中数据在本地缓存的方法,其特征在于,3种外积矩阵计算分别为反向卷积计算、左右矩阵转置计算、左矩阵转置计算,其中,

8.根据权利要求6所述的一种实现脉动阵列计算中数据在本地缓存的方法,其特征在于,3种内积矩阵计算分别为卷积计算、常规矩阵计算、右矩阵转置计算,其中,

...

【技术特征摘要】

1.一种实现脉动阵列计算中数据在本地缓存的方法,其特征在于,包括步骤:

2.根据权利要求1所述的一种实现脉动阵列计算中数据在本地缓存的方法,其特征在于,步骤s3中所述的本地缓存模块包括一个特征寄存器块,一个权重寄存器块,其中,每个寄存器块分为乒乓子块,用于支持同时读写;

3.根据权利要求2所述的一种实现脉动阵列计算中数据在本地缓存的方法,其特征在于,所述的特征寄存器块和权重寄存器块都支持fp16、bf16、tf32、int8类型的数据存储,并都支持8位整形4通道、8位整形8通道、8位整形16通道、8位整形32通道、8位整形64通道、8位整形128通道共6种压缩存储方式。

4.根据权利要求1所述的一种实现脉动阵列计算中数据在本地缓存的方法,其特征在于,步骤s3中所述的将数...

【专利技术属性】
技术研发人员:张朋朋崔云飞欧阳鹏
申请(专利权)人:北京清微智能科技有限公司
类型:发明
国别省市:

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

1