System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 加速单元及片上系统技术方案_技高网

加速单元及片上系统技术方案

技术编号:43149470 阅读:10 留言:0更新日期:2024-10-29 17:49
本申请提供一种加速单元及片上系统,所述加速单元包括:存储器,用于存储矩阵数据;乘加模块,每个乘加模块均包括至少两个乘加单元和一个两级累加器,用于完成矩阵和向量的乘加运算;控制器,用于将所述矩阵数据按照所述矩阵的列顺序依次从所述存储器加载到所述乘加模块中的乘加单元;数据输出单元,用于输出矩阵和向量乘加运算结果。

【技术实现步骤摘要】

本申请涉及数字信号处理,尤其涉及一种加速单元及片上系统


技术介绍

1、近年来,基于transformer(变换器)的大型语言模型在解码阶段主要依赖矩阵和向量乘法操作来生成单词输出,这导致对话任务需执行大量此类运算。在处理大规模数据的任务中,矩阵和向量乘法涉及庞大输入数据,无法在计算中重复使用,使其成为数据密集型应用。因此,优化存储带宽的利用至关重要。此外,设计专用加速单元能有效提升计算效率。

2、相关技术中,fpga(field-programmablegatearray,现场可编程门阵列)因其可编程性常被用于加速矩阵和向量的乘法。然而,在fpga系统中,如何同时最大化存储带宽和dsp(digitalsignalprocessor,数字信号处理器)资源使用效率,同时降低功耗,是设计的关键挑战。此外,批量处理多个向量是常见需求,而dsp倍频技术能提升计算性能以满足这一需求。

3、另外,对于不同数据类型的乘累加计算,如同时支持int8(8位整型)和int4(4位整型),进一步增加了设计的复杂性。因此,在定制硬件解决方案时,需要综合考虑存储带宽、dsp资源、功耗和计算性能等多个因素,以优化大型语言模型中解码阶段的矩阵和向量的乘法操作。

4、但是,相关技术中的fpga矩阵计算加速系统在设计数据流控制时较为复杂,涉及多层次的数据传输与存储缓冲机制,导致数据传输能效不尽如人意。

5、尽管在最大化fpga访存带宽利用率的条件下,相关技术能够实现片上dsp单元的2倍频操作,然而对于混合精度计算,如int8、int4等数据类型,其支持能力尚显不足。


技术实现思路

1、本申请提供一种加速单元及片上系统,解决了现有技术中,数据流控制较为复杂,计算系统包含多个层次的数据传输和存储缓冲,数据传输能效较低,并且不能很好地支持混合精度如int8、int4等数据类型的计算的问题。

2、为达到上述目的,本申请采用如下技术方案:

3、第一方面,提供一种加速单元,其特征在于,所述加速单元包括:

4、存储器,用于存储矩阵数据;

5、乘加模块,每个乘加模块均包括至少两个乘加单元和一个两级累加器,用于完成矩阵和向量的乘加运算;

6、控制器,用于将所述矩阵数据按照所述矩阵的列顺序依次从所述存储器加载到所述乘加模块中的乘加单元;

7、数据输出单元,用于输出矩阵和向量乘加运算结果。

8、可选的,将所述矩阵中同一列数据中的元素按照顺序依次输入到所述一个乘加模块中同一列的不同乘加单元。

9、可选的,不同乘加模块的乘法器的输入端存储的向量数据不同。

10、可选的,所述矩阵中同一列数据的不同行延迟不同的周期后输入到对应的所述乘加单元中;所述不同的延迟周期根据所述矩阵和向量的乘加运算延迟来确定。

11、可选的,所述多个加速单元级联为一组,一组内的一个所述加速单元的乘加运算结果作为另外一个所述加速单元的输入。

12、可选的,所述一组加速单元的最终乘加运算结果输入到累加器。

13、可选的,所述乘加单元包括至少两个数字信号处理单元。

14、所述至少两个数字信号处理单元中的每个包括:第一寄存器、第三寄存器和第四寄存器,用于存储向量数据;

15、其中,所述第一寄存器连接到第三寄存器和第四寄存器;

16、矩阵数据寄存器和第二寄存器,用于保存从矩阵的存储器中读取的矩阵数据;

17、所述至少两个数字信号处理单元的矩阵数据寄存器相互连接。

18、可选的,在所述至少两个数字信号处理单元中的一个中,所述第三寄存器和所述第四寄存器存储不同的向量数据;

19、在一个时钟周期内计算第三寄存器中的向量数据与所述第二寄存器中的所述矩阵数据的乘加运算;

20、在下一个时钟周期内计算所述第四寄存器中的向量数据与第二寄存器中的所述矩阵数据的乘加运算。

21、可选的,所述至少两个数字信号处理单元中的矩阵数据相同,其中,第一数字信号处理单元的矩阵数据经过延迟后进入到第二数字信号处理单元。

22、可选的,所述至少两个数字信号处理单元中的矩阵数据不同,其中,第一数字信号处理单元的矩阵数据为一列数据中的低位数据,第二数字信号处理单元的矩阵数据为所述一列数据中的高位数据;

23、所述第一数字信号处理单元的第一寄存器与所述第二数字信号处理单元的第一寄存器中存储的为同一个向量数据的不同部分数据。

24、第二方面,提供一种片上系统,所述片上系统包括如第一方面任一所述的加速单元,用于执行矩阵与向量的乘加运算。

25、本申请实施例提供的一种加速单元,通过加载一次矩阵数据可以完成4组向量的计算,提高了系统批处理的计算的效率,充分利用了乘加单元的计算位宽,降低了乘加单元输入端口的硬件连线开销;通过两列乘加单元构成一组,可以同时处理一个int8的矩阵数据与2个向量的乘加,或者复用数据通路,处理两个int4矩阵数据与1个向量的乘加计算,减少fpga系统的布线开销,提升系统计算效率;并且通过两级累加结构,使得系统可以支持不同规模、不同批处理数量的矩阵向量乘法计算。

本文档来自技高网...

【技术保护点】

1.一种加速单元,其特征在于,所述加速单元包括:

2.根据权利要求1所述的加速单元,其特征在于,将所述矩阵中同一列数据中的元素按照顺序依次输入到所述一个乘加模块中同一列的不同乘加单元。

3.根据权利要求1或2所述的加速单元,其特征在于,不同乘加模块的乘法器的输入端存储的向量数据不同。

4.根据权利要求1或2所述的加速单元,其特征在于,所述矩阵中同一列数据的不同行延迟不同周期后输入到对应的所述乘加单元中;所述不同的延迟周期根据所述矩阵和向量的乘加运算延迟来确定。

5.根据权利要求1或2所述的加速单元,其特征在于,所述多个加速单元级联为一组,一组内的一个所述加速单元的乘加运算结果作为另外一个所述加速单元的输入;

6.根据权利要求1或2所述的加速单元,其特征在于,所述乘加单元包括至少两个数字信号处理单元;

7.根据权利要求6所述的加速单元,其特征在于,在所述至少两个数字信号处理单元中的一个中,所述第三寄存器和所述第四寄存器存储不同的向量数据;

8.根据权利要求6所述的加速单元,其特征在于,所述至少两个数字信号处理单元中的矩阵数据相同,其中,第一数字信号处理单元的矩阵数据经过延迟后进入到第二数字信号处理单元。

9.根据权利要求6所述的加速单元,其特征在于,所述至少两个数字信号处理单元中的矩阵数据不同,其中,第一数字信号处理单元的矩阵数据为一列数据中的低位数据,第二数字信号处理单元的矩阵数据为所述一列数据中的高位数据;

10.一种片上系统,其特征在于,所述片上系统包括如权利要求1-9任一所述的加速单元,用于执行矩阵与向量的乘加运算。

...

【技术特征摘要】

1.一种加速单元,其特征在于,所述加速单元包括:

2.根据权利要求1所述的加速单元,其特征在于,将所述矩阵中同一列数据中的元素按照顺序依次输入到所述一个乘加模块中同一列的不同乘加单元。

3.根据权利要求1或2所述的加速单元,其特征在于,不同乘加模块的乘法器的输入端存储的向量数据不同。

4.根据权利要求1或2所述的加速单元,其特征在于,所述矩阵中同一列数据的不同行延迟不同周期后输入到对应的所述乘加单元中;所述不同的延迟周期根据所述矩阵和向量的乘加运算延迟来确定。

5.根据权利要求1或2所述的加速单元,其特征在于,所述多个加速单元级联为一组,一组内的一个所述加速单元的乘加运算结果作为另外一个所述加速单元的输入;

6.根据权利要求1或2所述的加速单元,其特征在于,...

【专利技术属性】
技术研发人员:请求不公布姓名请求不公布姓名请求不公布姓名请求不公布姓名
申请(专利权)人:北京无问芯穹科技有限公司
类型:发明
国别省市:

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

1