一种计算加速方法、系统、设备以及存储介质与流程

文档序号:32609404发布日期:2022-12-20 19:12阅读:28来源:国知局
一种计算加速方法、系统、设备以及存储介质与流程

1.本发明涉及计算加速器领域,具体涉及一种计算加速方法、系统、设备以及存储介质。


背景技术:

2.随着信息社会的快速发展,信息的种类越来越多,数据的计算方式也愈加丰富。为了能够保证高效实时地对具备一定特征的数据进行某种特定类型的计算,专用的计算加速器被大量研究和开发,采用硬件的方式完成特定类型的计算,大大缩短了计算延时,如视频信号处理计算加速器、无线通信信号处理计算加速器等。
3.现有的计算加速器通常只能对某种特定的计算类型进行加速,而当该加速功能没有被执行时,加速器的计算资源就会处于闲置状态,不能够被用作其他计算类型的加速。


技术实现要素:

4.有鉴于此,为了克服上述问题的至少一个方面,本发明实施例提出一种计算加速方法,包括以下步骤:
5.响应于接收到计算任务,将所述计算任务转换成多个基础计算指令;
6.读取并解析所述基础计算指令以得到所述基础计算指令中携带的计算类型、数据类型、输入数据地址以及输出数据地址;
7.根据所述数据类型和所述输入数据地址从缓存中获取待计算的数据,并根据所述计算类型生成对应的控制信号以控制对应的计算加速单元对待计算的数据进行计算并将计算结果保存到所述输出数据地址对应的缓存位置。
8.在一些实施例中,根据所述计算类型生成对应的控制信号以控制对应的计算加速单元对待计算的数据进行计算,进一步包括:
9.根据所述计算类型生成对应的计算类型控制字并根据所述计算类型控制字将当前的控制信号切换为相应计算加速单元的控制信号,其中,所述计算加速单元包括乘法单元、除法单元、fft单元、哈希单元。
10.在一些实施例中,还包括:
11.响应于将计算结果保存到所述输出数据地址对应的位置,生成缓存完成标识;
12.根据所述缓存完成标识读取下一个基础计算指令以进行所述下一个基础计算指令的处理。
13.在一些实施例中,响应于接收到计算任务,将所述计算任务转换成多个基础计算指令,进一步包括:
14.利用第1个字节指示计算类型,第2个字节指示数据类型,第3~6个字节指示输入数据地址、第7~10个字节指示输出数据地址。
15.基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种计算加速系统,包括:
16.存储模块,配置为响应于接收到计算任务,将所述计算任务转换成多个基础计算指令;
17.处理模块,配置为读取并解析所述基础计算指令以得到所述基础计算指令中携带的计算类型、数据类型、输入数据地址以及输出数据地址;
18.加速模块,配置为根据所述数据类型和所述输入数据地址从缓存中获取待计算的数据,并根据所述计算类型生成对应的控制信号以控制对应的计算加速单元对待计算的数据进行计算并将计算结果保存到所述输出数据地址对应的缓存位置。
19.在一些实施例中,加速模块还配置为:
20.根据所述计算类型生成对应的计算类型控制字并根据所述计算类型控制字将当前的控制信号切换为相应计算加速单元的控制信号,其中,所述计算加速单元包括乘法单元、除法单元、fft单元、哈希单元。
21.在一些实施例中,加速模块还配置为:
22.响应于将计算结果保存到所述输出数据地址对应的位置,生成缓存完成标识;
23.根据所述缓存完成标识读取下一个基础计算指令以进行所述下一个基础计算指令的处理。
24.在一些实施例中,存储模块还配置为:
25.利用第1个字节指示计算类型,第2个字节指示数据类型,第3~6个字节指示输入数据地址、第7~10个字节指示输出数据地址。
26.基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种计算机设备,包括:
27.至少一个处理器;以及
28.存储器,所述存储器存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时执行如上所述的任一种计算加速方法的步骤。
29.基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时执行如上所述的任一种计算加速方法的步骤。
30.本发明具有以下有益技术效果之一:本发明提出的方案通过将复杂的计算任务分解成为基础的计算步骤,采用基础计算指令分步执行和基础计算硬件加速相结合的方式完成整个计算过程。通过改变连续输入的基础计算指令的内容,就可以完成不同计算任务的硬件加速,大大提升了计算加速系统的灵活度。
附图说明
31.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
32.图1为本发明的实施例提供的计算加速方法的流程示意图;
33.图2为本发明的实施例提供的计算加速系统的结构示意图;
34.图3为本发明的实施例提供的计算机设备的结构示意图;
35.图4为本发明的实施例提供的计算机可读存储介质的结构示意图。
具体实施方式
36.为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
37.需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
38.根据本发明的一个方面,本发明的实施例提出一种计算加速方法,如图1所示,其可以包括步骤:
39.s1,响应于接收到计算任务,将所述计算任务转换成多个基础计算指令;
40.s2,读取并解析所述基础计算指令以得到所述基础计算指令中携带的计算类型、数据类型、输入数据地址以及输出数据地址;
41.s3,根据所述数据类型和所述输入数据地址从缓存中获取待计算的数据,并根据所述计算类型生成对应的控制信号以控制对应的计算加速单元对待计算的数据进行计算并将计算结果保存到所述输出数据地址对应的缓存位置。
42.本发明提出的方案通过将复杂的计算任务分解成为基础的计算步骤,采用基础计算指令分步执行和基础计算硬件加速相结合的方式完成整个计算过程。
43.在一些实施例中,根据所述计算类型生成对应的控制信号以控制对应的计算加速单元对待计算的数据进行计算,进一步包括:
44.根据所述计算类型生成对应的计算类型控制字并根据所述计算类型控制字将当前的控制信号切换为相应计算加速单元的控制信号,其中,所述计算加速单元包括乘法单元、除法单元、fft单元、哈希单元。
45.在一些实施例中,还包括:
46.响应于将计算结果保存到所述输出数据地址对应的位置,生成缓存完成标识;
47.根据所述缓存完成标识读取下一个基础计算指令以进行所述下一个基础计算指令的处理。
48.在一些实施例中,响应于接收到计算任务,将所述计算任务转换成多个基础计算指令,进一步包括:
49.利用第1个字节指示计算类型,第2个字节指示数据类型,第3~6个字节指示输入数据地址、第7~10个字节指示输出数据地址。
50.具体的,本发明提出的一种高灵活度的计算加速系统可以包括基础计算指令存储模块、基础计算指令处理模块、数据缓存模块、硬件加速模块。
51.其中基础计算指令存储模块中存储了需要执行的基础计算指令,基础计算指令包括了计算类型、数据类型,输入数据地址、输出数据地址。在本具体实施例中,假设基础计算指令共10个字节,第1个字节指示计算类型、第2个字节指示数据类型,第3~6个字节指示输入数据地址、第7~10个字节指示输出数据地址。这些基础计算指令是对某个复杂计算任务进行分解得来的,比如将某个复杂任务分解为乘法、除法、加法、fft等更为基础的运算类型,按照一定顺序执行多个基础运算,进而完成某种特定的复杂计算任务。
52.基础计算指令处理模块可以对特定格式的基础计算指令进行处理,该模块中包括了指令读取单元、指令解码单元、数据读写单元。指令读取单元是在上一条指令读取完成后从基础计算指令存储模块中读取下一条指令到基础计算指令处理模块中。指令解码单元可以提取基础计算指令中的计算类型,并将其作为计算类型控制字输出到硬件加速模块,并可以根据数据类型和输入数据地址调用数据读写单元从数据缓存模块中读取相应的数据,并将其输出到硬件加速模块,同时,基础计算指令处理模块也会提取出指令中的输出数据地址传送给硬件加速模块。
53.数据缓存模块分为两个单元,一个是初始化数据缓存单元,保存了待加速计算任务的相关初始数据;一个是计算结果缓存单元,用来缓存中间计算结果和最终的计算结果。
54.硬件加速模块中包括了计算状态控制单元、多种类型的基础计算加速单元,如乘法单元、除法单元、fft单元、哈希单元等。计算状态控制单元的输入输出信号有计算类型控制字、控制信号、输入数据总线、输出数据总线、输出数据地址。计算状态控制单元根据输入的计算类型控制字将计算状态控制单元的控制信号切换相应基础计算加速单元的控制信号上来。每个基础计算加速单元均有控制信号、输入数据总线、输出数据总线,控制信号有两个作用,一是用来控制该基础计算单元根据输入数据总线输入的数据进行硬件加速计算,另一个是在计算完成后,对外部指示该基础计算已完成。
55.如图2所示,具体流程如下:
56.(1)将复杂的计算任务转换成一系列本专利提出的基础计算指令,并将其按照地址递增的关系存储到基础计算指令存储模块;
57.(2)基础计算指令模块中的指令读取单元从基础计算指令存储模块中读取当前指令;
58.(3)基础计算指令模块的指令解码单元对该条指令进行解析,将解析出的计算类型控制字、输出数据地址传送给硬件加速模块;
59.(4)指令解码单元将解析出的数据类型和输入数据地址传输给数据读写单元,数据读写单元读出相应的数据传输到硬件加速模块;
60.(5)硬件加速模块中的计算状态控制单元根据输入的计算类型控制字将控制信号切换到相应基础计算加速单元的控制信号上来,并将输入的待计算数据传输到相应基础计算加速单元的输入数据总线,然后计算状态控制单元生成控制信号的开始标识;
61.(6)对应的基础计算加速单元开始进行计算,计算完成后在控制信号上返回完成标识;
62.(7)计算控制单元将输出数据地址和第(5)步得出的结果传输给数据缓存模块的计算结果缓存单元,计算结果缓存单元对计算结果进行缓存;
63.(8)缓存完成后,计算结果缓存单元向基础计算指令处理单元发送缓存完成标识;
64.(9)基础计算指令处理单元收到缓存完成标识后,继续读取下一条指令,然后跳转到(3);
65.(10)直到所有指令都被执行完成,意味着该复杂计算任务已经执行完成,数据缓存模块中的计算结果缓存单元对外输出最终的计算结果。
66.本发明提出的方案通过将复杂的计算任务分解成为基础的计算步骤,采用基础计算指令分步执行和基础计算硬件加速相结合的方式完成整个计算过程。通过改变连续输入
的基础计算指令的内容,就可以完成不同计算任务的硬件加速,大大提升了计算加速系统的灵活度。
67.基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种计算加速系统,如图所示,包括:
68.存储模块,配置为响应于接收到计算任务,将所述计算任务转换成多个基础计算指令;
69.处理模块,配置为读取并解析所述基础计算指令以得到所述基础计算指令中携带的计算类型、数据类型、输入数据地址以及输出数据地址;
70.加速模块,配置为根据所述数据类型和所述输入数据地址从缓存中获取待计算的数据,并根据所述计算类型生成对应的控制信号以控制对应的计算加速单元对待计算的数据进行计算并将计算结果保存到所述输出数据地址对应的缓存位置。
71.本发明提出的方案通过将复杂的计算任务分解成为基础的计算步骤,采用基础计算指令分步执行和基础计算硬件加速相结合的方式完成整个计算过程。
72.在一些实施例中,加速模块还配置为:
73.根据所述计算类型生成对应的计算类型控制字并根据所述计算类型控制字将当前的控制信号切换为相应计算加速单元的控制信号,其中,所述计算加速单元包括乘法单元、除法单元、fft单元、哈希单元。
74.在一些实施例中,加速模块还配置为:
75.响应于将计算结果保存到所述输出数据地址对应的位置,生成缓存完成标识;
76.根据所述缓存完成标识读取下一个基础计算指令以进行所述下一个基础计算指令的处理。
77.在一些实施例中,存储模块还配置为:
78.利用第1个字节指示计算类型,第2个字节指示数据类型,第3~6个字节指示输入数据地址、第7~10个字节指示输出数据地址。
79.基于同一发明构思,根据本发明的另一个方面,如图3所示,本发明的实施例还提供了一种计算机设备501,包括:
80.至少一个处理器520;以及
81.存储器510,存储器510存储有可在处理器上运行的计算机程序511,处理器520执行程序时执行如上的任一种计算加速方法的步骤。
82.基于同一发明构思,根据本发明的另一个方面,如图4所示,本发明的实施例还提供了一种计算机可读存储介质601,计算机可读存储介质601存储有计算机程序610,计算机程序610被处理器执行时执行如上的任一种计算加速方法的步骤。
83.最后需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。
84.此外,应该明白的是,本文的计算机可读存储介质(例如,存储器)可以是易失性存储器或非易失性存储器,或者可以包括易失性存储器和非易失性存储器两者。
85.本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬
件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。
86.以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
87.应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
88.上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
89.本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
90.所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1