一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于数据流架构的人工智能芯片和数据处理方法与流程

2022-05-06 04:52:54 来源:中国专利 TAG:


1.本发明涉及人工智能技术领域,尤其涉及一种基于数据流架构的人工智能芯片和数据处理方法。


背景技术:

2.随着深度学习的快速发展,卷积神经网络已经大量应用于机器视觉应用,例如图像识别与图像分类。基于数据流架构的,由于其极高的芯片利用率,正在越来越多的场景中得到应用。为了提高数据流架构ai芯片的端到端效率,需要对视频、图像流相关数据进行前后端计算处理,如图像白化、色域转换、relu、softmax等,而这些处理通常需要较为复杂的算子,从而需要消耗较大的运算资源。
3.传统计算平台中,例如cpu、gpu以及面向ai的tpu,底层架构都是依托于冯诺依曼体系的指令集架构,其核心思路在于将计算分为处理单元、控制单元、存储指令的指令存储器、以及存储数据的数据存储器,控制单元取指令和数据,控制处理单元完成整个计算过程。在传统的ai系统中,通常将前后处理中复杂算子的运算交由cpu处理,而cpu基于指令集架构的运算方法,通常需要消耗较多的cpu计算时间,从而影响其他计算任务的执行。


技术实现要素:

4.有鉴于此,本发明提供了一种基于数据流架构的人工智能芯片和数据处理方法,以通过数据流流动方式控制计算次序,数据流在基础运算模块间一个个传递,突破指令集限制,优化算力利用率提高运算效率。
5.第一方面,本发明提供了一种基于数据流架构的人工智能芯片,该芯片包括:
6.至少一个基础运算模块,用于对接收到的数据进行基础运算;
7.缓存模块,与所述基础运算模块连接,用于基于接收到的输入数据依序调用所述基础运算模块以数据流的形式进行运算。
8.可选的,在一些实施例中,所述基础运算模块包括相反数运算模块、比较双目运算模块、以e为底数的对数的运算模块、乘法双目运算模块、以e为底数的指数函数运算模块、加法运算模块和倒数运算模块中的至少一种。
9.可选的,在一些实施例中,所述缓存模块包括:
10.数据存储单元,用于存储所述输入数据以及所述基础运算模块的运算结果;
11.接口配置单元,用于根据接收到的运算拆解结果配置所述缓存模块与所述基础运算模块之间数据接口的接口工作模式。
12.可选的,在一些实施例中,所述基础运算模块还用于:
13.根据接收到的运算拆解结果配置运算模式,所述运算模式包括工作模式和直通模式。
14.可选的,在一些实施例中,所述缓存模块还用于:缓存所述基础运算模块的中间运算结果,并将所述中间运算结果输入所述基础运算模块作为下一轮的输入数据。
15.第二方面,本发明实施例还提供了一种数据处理方法,能够基于本发明任一实施例提供的基于数据流架构的人工智能芯片实现,该方法包括:
16.根据接收到运算拆解结果配置所述基础运算模块的运算模式以及所述缓存模块的接口工作模式;
17.根据所述接口工作模式和所述接口工作模式通过对应的所述基础运算模块对所述输入数据进行运算。
18.可选的,在一些实施例中,所述运算拆解结果由外部芯片根据运算公式以及所述基础运算模块拆解生成。
19.可选的,在一些实施例中,所述根据所述接口工作模式和所述接口工作模式通过对应的所述基础运算模块对所述输入数据进行运算包括:
20.根据所述运算模式确定所述基础运算模块处于工作模式或直通模式,当所述基础运算模块处于工作模式,所述基础运算模块用于对接收到的数据进行基础运算;
21.根据所述接口工作模式确定所述基础运算模块的调用顺序;
22.将所述输入数据按照所述调用顺序通过对应的基础运算模块以数据流的形式进行运算。
23.可选的,在一些实施例中,所述根据接收到运算拆解结果配置所述基础运算模块的运算模式以及所述缓存模块的接口工作模式之前,还包括:
24.对复杂算子的运算公式进行拆解,确定多个子公式以及所述子公式的运算顺序;
25.根据所述子公式确定待使用的所述基础运算模块,并根据所述子公式的运算顺序确定待使用的所述基础运算模块的调用顺序;
26.根据所述待使用的所述基础运算模块以及对应的调用顺序确定所述运算模式和所述接口工作模式以生成运算拆解结果。
27.可选的,在一些实施例中,所述将所述输入数据按照所述调用顺序通过对应的基础运算模块以数据流的形式进行运算包括:
28.将所述输入数据按照第一顺序输入对应的基础运算模块得到中间运算结果,将所述中间运算结果存储至所述缓存模块;
29.将所述中间运算结果按照第二顺序输入对应的基础运算模块。
30.本发明实施例提供的基于数据流架构的人工智能芯片,其中设置有用于对接收到的数据进行基础运算的至少一个基础运算模块,还设置有与基础运算模块连接的缓存模块,通过缓存模块调用基础运算模块以数据流的形式进行数据运算,该芯片无需以指令集的形式对复杂算子进行运算,而是以单独的基础运模块组合实现高效率的运算,有效的释放了芯片的算力,实现了视频、图像流快速前后处理,有效的减缓的ai芯片的前后处理效率低下的瓶颈问题。
附图说明
31.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见的,下面描述中的附图仅仅是本技术的部分实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
32.图1是本发明实施例一提供的一种基于数据流架构的人工智能芯片的结构示意图;
33.图2是本发明实施例一提供的缓存模块的结构示意图;
34.图3是本发明实施例一提供的一种基于数据流架构的人工智能芯片的结构示意图;
35.图4是本发明实施例二提供的一种数据处理方法流程图;
36.图5是本发明实施例三提供的一种数据处理方法的子流程图。
具体实施方式
37.下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
38.在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时处理可以被终止,但是还可以具有未包括在附图中的附加步骤。处理可以对应于方法、函数、规程、子例程、子计算机程序等等。
39.此外,术语“第一”、“第二”等可在本文中用于描述各种方向、动作、步骤或元件等,但这些方向、动作、步骤或元件不受这些术语限制。这些术语仅用于将第一个方向、动作、步骤或元件与另一个方向、动作、步骤或元件区分。举例来说,在不脱离本技术的范围的情况下,可以将第一有效信号为第二有效信号,且类似地,可将第二有效信号称为第一有效信号。第一有效信号和第二有效信号两者都是有效信号,但其不是同一有效信号。术语“第一”、“第二”等而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
40.实施例一
41.图1为本发明实施例一提供的一种基于数据流架构的人工智能芯片的结构示意图。如图1所示,本发明实施例提供了一种基于数据流架构的人工智能芯片10,包括至少一个基础运算模块11和缓存模块12。本实施例提供的基于数据流架构的人工智能芯片能够应用于各种ai系统,以完成ai算法中复杂的前后处理算子的数据处理任务,例如对视频、图像流相关数据进行前后端计算处理,例如图像白化、色域转换、relu和softmax等处理过程中复杂算子的数据处理任务,具体的,该芯片中:
42.至少一个基础运算模块11,用于对接收到的数据进行基础运算。
43.此处所指的基础运算是相当于复杂算子中的运算公式而言,其实现的是例如求和、求差、取相反数等只需要进行单一数据处理过程的运算方式,每个基础运算模块11其内部电路结构都设置于用于对接收到的数据进行单一的基础运算。
44.本实施例中,通常在人工智能芯片中设置多个基础运算模块11,其中每个基础运算模块11能够执行相同的基础运算也能够执行不同的基础运算,在实际运算过程中,基础
运算模块11之间根据具体的运算内容(由复杂的算子确定)进行连接,这样待计算的数据输入后自动由第一个基础运算模块11运算完成后流经下一个基础运算模块11完成对应的基础运算,并依次流经后续的每一个基础运算模块11完成对应的基础运算,从而进行快速的流水运算得到与复杂算子相同的计算结果。应当明确的是,在流水运算过程中,每个基础运算模块11能够流经一次或多次,也能够不被流经,具体取决于复杂算子的运算公式。
45.具体的,在一些实施例中,人工智能芯片10中所设置的基础运算模块包括相反数运算模块、比较双目运算模块、以e为底数的对数的运算模块、乘法双目运算模块、以e为底数的指数函数运算模块、加法运算模块和倒数运算模块中的至少一种。其中,相反数运算模块用于对输入的数据实现数据正负切换,将减法运算转换为加法运算;比较双目运算模块通过配置可以输出较大值或较小值,或者计算得到输入的数据集合中的极大值或极小值;以e为底数的对数的运算模块用于以e为底数,以输入的数据为真数,输出的数据为对数;乘法双目运算模块通过配置可以得到输入的两个数据的乘积,或者计算得到输入的数据集的累乘值;以e为底数的指数函数运算模块用于以e为底数,以输入的数据为对数,输出的数据为真数;加法运算模块用于通过配置得到输入的两个数据相加之和,或者计算得到输入的数据集的累加值;倒数运算模块用于计算输入数据的倒数。应当理解的是,此处示例仅用于说明基础运算模块能够包括上述几种,而非限定基础运算模块的种类,实际能够根据复杂算子的具体运算公式设计基础运算模块的种类。
46.缓存模块12,与所述基础运算模块11连接,用于基于接收到的输入数据依序调用所述基础运算模块11以数据流的形式进行运算。
47.缓存模块12能够与每一个基础运算模块11都保持连接,其主要用于存储数据以及控制数据流的流向,以使得数据流通过不同的运算模块11进行计算从而完成整个计算流程,而数据流所流经的基础运算模块11决定其整个运算过程,因此缓存模块12应当能够根据复杂算子控制数据流的流向,而本实施例中缓存模块12并不对复杂算子进行分析以控制数据流的流向,这会使得人工智能芯片的算力得不到最大化利用,本实施例中缓存模块12与外部设备例如计算机设备的cpu连接,由外部设备的cpu对复杂算子进行拆解,并将得到的运算拆解结果和待运算的数据发送至本发明实施例提供的基于数据流架构的人工智能芯片,由人工智能芯片根据运算拆解结果将待运算的数据依次通过基础运算模块11,完成待运算数据的运算。
48.更具体的,在一些实施例中,所述基础运算模块11还用于:根据接收到的运算拆解结果配置运算模式,所述运算模式包括工作模式和直通模式。本实施例中,基础运算模块11能够根据是否需要进行运算被配置为工作模式或直通模式,当基础运算模块11被配置为工作模式,其会对接收到的数据进行基础运算,当基础运算模块11被配置为直通模式,其会将接收到的数据直接传输到下一个基础运算模块11而不进行基础运算,也即根据运算模式确定在数据流中实际发挥运算作用的基础运算模块11。
49.更具体的,在一些实施例中,所述缓存模块12还用于:
50.缓存所述基础运算模块11的中间运算结果,并将所述中间运算结果输入所述基础运算模块11作为下一轮的输入数据。缓存模块12所存储的数据能够供基础运算模块11调用,例如某复杂算子所确定的数据流中,需要以基础运算模块11进行多轮运算,以基础运算模块11的一轮运算结果(为了便于区分,称为中间运算结果)为例,在使用基础运算模块11
对待处理数据完成一轮运算得到中间运算结果后,数据流已经走完一轮,此时需要将中间运算结果存储到缓存模块12中,由缓存模块12将其输入到下一轮运算所需要的基础运算模块11中,这样将每一轮运算都跑完后才还能得到最终期望的结果,也即复杂算子的运算结果。
51.更具体的,在一些实施例中,如图2所示,所述缓存模块12包括:
52.数据存储单元121,用于存所述储输入数据以及所述基础运算模块11的运算结果。数据存储单元121主要用于进行数据存储,其能够将外部设备cpu输入的待处理数据进行存储,也能将基础运算模块11的运算结果进行存储。
53.接口配置单元122,用于根据接收到的运算拆解结果配置所述缓存模块12与所述基础运算模块11之间数据接口的接口工作模式。
54.前文已经提到,本实施例中缓存模块12需要依序调用基础运算模块12以数据流的形式接收到的数据进行运算,其调用基础运算模块12的方式为控制数据流的方向,具体到应用中,缓存模块12中设置有接口配置单元122,用于配置缓存模块12的接口工作模式,接口工作模式决定了数据存储单元121与每个基础运算模块11之间的数据流向。
55.为了便于理解,以一个具体示例说明本实施例提供的基于数据流架构的人工智能芯片,如图3所示,为一种包括相反数运算模块(inv)、比较双目运算模块(cpmx)、以e为底数的对数的运算模块(ln)、乘法双目运算模块(mul)、以e为底数的指数函数运算模块(exp)、加法运算模块(add)和倒数运算模块(recp)的人工智能芯片结构示意图,其中input/output表示待计算数据的输入接口以及运算结果的输出结果,与外部设备的cpu连接,buff表示缓存模块12,假设某一复杂算子的运算公式为y=1/(e^ax b),外部设备的cpu对其进行拆解确定需要使用的是y1=ax、y2=e^y1、y3=y2 b、y=1/y3共四个基础运算模块,根据上述运算拆解结果选择mul乘法双目运算模块、exp以e为底数的对数的运算模块、add加法模块和recp倒数模块参与运算,将buff与相关基础运算模块的通路打开,并控制数据流向顺序,从而将其他不参与计算的基础运算模块排除在外,完成相关配置后,开始数据流运算,由于本例中的待计算公式只需要一轮计算即可完成,因此不需要将输出结果做为输入进行下次运算,即一轮运算完成后直接将运算结果通过buff输出至外部设备的cpu。
56.本实施例提供了一种基于数据流架构的人工智能芯片,其中设置有用于对接收到的数据进行基础运算的至少一个基础运算模块,还设置有与基础运算模块连接的缓存模块,通过缓存模块调用基础运算模块以数据流的形式进行数据运算,该芯片无需以指令集的形式对复杂算子进行运算,而是以单独的基础运模块组合实现高效率的运算,有效的释放了芯片的算力,实现了视频、图像流快速前后处理,有效的减缓的ai芯片的前后处理效率低下的瓶颈问题。
57.实施例二
58.图4为本发明实施例二提供的一种数据处理方法,可适用于基于预设的数据流向和ai算法对待处理数据进行数据处理的场景,该方法可以发明任一实施例提供的基于数据流架构的人工智能芯片所实现。具体的,如图4所示,该方法包括:
59.s210、根据接收到运算拆解结果配置所述基础运算模块11的运算模式以及所述缓存模块的接口工作模式。
60.本身实施例中,所述运算拆解结果由外部芯片(外部设备的cpu)根据运算公式以
及所述基础运算模块拆解生成。本实施例中,运算拆解结果为外部芯片根据复杂算子的运算公式进行公式拆解,得到符合本实施例中基础运算模块11中基础运算组合的公式,并且,运算拆解结果中,还确定了所需要的基础运算模块11之间如何协同工作以数据流的形式完成与复杂算子相同的运算内容。
61.s220、根据所述接口工作模式和所述接口工作模式通过对应的所述基础运算模块对所述输入数据进行运算。
62.可选的,在一些实施例中,如图5所示,步骤s220具体包括步骤s221-223:
63.s221、根据所述运算模式确定所述基础运算模块处于工作模式或直通模式,当所述基础运算模块处于工作模式,所述基础运算模块用于对接收到的数据进行基础运算。
64.s222、根据所述接口工作模式确定所述基础运算模块的调用顺序。
65.s223、将所述输入数据按照所述调用顺序通过对应的基础运算模块以数据流的形式进行运算。
66.本实施例中,基础运算模块能够根据是否需要进行运算被配置为工作模式或直通模式,当基础运算模块被配置为工作模式,其会对接收到的数据进行基础运算,当基础运算模块被配置为直通模式,其会将接收到的数据直接传输到下一个基础运算模块而不进行基础运算,也即根据运算模式确定在数据流中实际发挥运算作用的基础运算模块。
67.接口工作模式决定了缓存模块与每个基础运算模块之间的数据流向。
68.更具体的,在一些实施例中,在步骤s210之前,还包括对复杂算子的运算公式进行拆解的步骤s230-250(图未示):
69.s230、对复杂算子的运算公式进行拆解,确定多个子公式以及所述子公式的运算顺序;
70.s240、根据所述子公式确定待使用的所述基础运算模块,并根据所述子公式的运算顺序确定待使用的所述基础运算模块的调用顺序;
71.s250、根据所述待使用的所述基础运算模块以及对应的调用顺序确定所述运算模式和所述接口工作模式以生成运算拆解结果。
72.步骤s s230-250过程中,子公式为与基础运算对应的公式,以一复杂算子的运算公式为y=1/(e^ax b)示例,子公式包括y1=ax、y2=e^y1、y3=y2 b、y=1/y3共四个,将子公式按照运算顺序依次计算得到的结果应当与复杂算子的运算结果一致。
73.可选的,在一些实施例中,步骤s220中实际进行的是多轮运算,此时需要由缓存模块对基础运算模块计算得到的结果进行存储,具体的,步骤s220包括步骤s224-225(图未示):
74.s224、将所述输入数据按照第一顺序输入对应的基础运算模块得到中间运算结果,将所述中间运算结果存储至所述缓存模块;
75.s225、将所述中间运算结果按照第二顺序输入对应的基础运算模块。
76.其中第一顺序为第一轮运算时使用基础运算模块进行运算的顺序,第二顺序为进行第二轮运算时使用基础运算模块运算的顺序,上述示例虽然仅示出包括两轮的运算过程,应当理解的是,在实际应用过程中,还能够存在第三顺序
……
第n顺序(n为大于等于4的整数),其过程与步骤s225类似,此处不做具体限制。
77.本发明实施例的技术方案,该芯片无需以指令集的形式对复杂算子进行运算,而
是以单独的基础运模块组合实现高效率的运算,有效的释放了芯片的算力,实现了视频、图像流快速前后处理,有效的减缓的ai芯片的前后处理效率低下的瓶颈问题。
78.注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献