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

兼容不同数据存取模式的人工智能芯片和数据处理方法与流程

2022-05-21 02:57:28 来源:中国专利 TAG:


1.本发明涉及人工智能技术领域,尤其涉及一种兼容不同数据存取模式的人工智能芯片和数据处理方法。


背景技术:

2.随着摩尔定律的发展,硬件已经支持了很宽的simd部件、深度的存储层次、分支预测、级数很深的流水线、乱序执行、多线程等。但目前处理器演讲遇到了功耗瓶颈,处理器架构必须改善能效比,传统通用架构设计方法的能效比已经达到极限。为提高能效比,针对应用领域做优化的领域专用处理器架构(dsa)被提出。dsa可为特定一类应用做架构优化,进而实现更好的能效比。和通用处理器相比,dsa在设计时,需考虑专用领域的特殊需求,也需设计者对该领域有深入理解。dsa的例子包括为机器学习设计的神经网络处理器,为图像和虚拟现实设计的gpu。
3.传统的领域专用处理器通常在进行数据存取时往往需要使用专用的地址生成器,用来生成取数地址。但某些领域算法迭代速度快,定制化的地址生成器往往只能提供固定的数据存取模式也即使用指定来源的地址,而无法满足新的算法需求。某些领域会有一些不常用的复杂算法,为支持这些不常用的复杂算法,将大大增加地址生成器的复杂度,给数据存取带来不便。


技术实现要素:

4.有鉴于此,本发明提供了一种兼容不同数据存取模式的人工智能芯片和数据处理方法,能够兼容由外部芯片生成的读写地址以及由人工智能芯片自身生成的读写地址,对不同数据存取模式兼容性强。
5.第一方面,本发明提供了一种兼容不同数据存取模式的人工智能芯片,该芯片包括:
6.专用地址生成模块,用于根据预设算法生成第一地址;
7.选择模块,用于选择接收所述第一地址和/或外部输入的第二地址;
8.数据缓存模块,用于缓存待处理数据并根据所述第一地址和/或所述第二地址传输所述待处理数据;
9.运算模块,用于接受所述待处理数据并完成对所述待处理数据的运算。
10.可选的,在一些实施例中,还包括:
11.片上地址缓存模块,设置于所述选择模块与所述数据缓存模块之间,用于缓存所述第一地址和/或所述第二地址。
12.可选的,在一些实施例中,还包括:
13.片下地址缓存模块,与所述选择模块连接,用于接收并存储由外部芯片生成的第二地址,。
14.可选的,在一些实施例中:
15.所述运算模块还用于将所述待处理数据的运算结果返回至所述数据缓存模块,以使所述数据缓存模块根据所述第一地址和/或所述第二地址完成对所述运算结果的回存。
16.可选的,在一些实施例中,所述片上地址缓存模块还用于:
17.判断地址缓存剩余空间是否小于等于预设空间,若是则向所述片下地址缓存模块或所述专用地址生成模块发送反压信号,以暂停接受所述第一地址和/或所述第二地址。
18.第二方面,本发明实施例还提供了一种数据处理方法,能够基于本发明任一实施例提供的兼容不同数据存取模式的人工智能芯片实现,该方法包括:
19.根据待运行的运算算法确定数据读写地址来源;
20.基于所述数据读写地址来源获取指定的数据读写地址;
21.根据所述数据读写地址将所述待处理数据发送至所述运算模块完成运算生成运算结果;
22.根据所述数据读写地址将所述运算结果回存。
23.可选的,在一些实施例中,所述数据读写地址来源包括所述专用地址生成模块和/或所述片下地址缓存模块,所述数据读写地址包括所述第一地址和/或所述第二地址,所述基于所述数据读写地址来源获取指定的数据读写地址之前,还包括:
24.判断所述数据读写地址来源是否为专用地址生成模块;
25.若是,根据所述运算算法配置所述专用地址生成模块,以使所述专用地址生成模块生成所述第一地址;
26.若否,由外部芯片根据所述运算算法对应的地址生成程序生成所述第二地址,并将所述第二地址存入所述片下地址缓存模块。
27.可选的,在一些实施例中,所述根据待运行的运算算法确定数据读写地址来源包括:
28.通过所述选择模块选择自所述专用地址生成模块获取所述第一地址和/或自所述片下地址缓存模块获取所述第二地址。
29.可选的,在一些实施例中,所述基于所述数据读写地址来源获取指定的数据读写地址之后,还包括:
30.判断地址缓存剩余空间是否小于预设空间,若是则向所述片下地址缓存模块或所述专用地址生成模块发送反压信号,以暂停接受所述第一地址和/或所述第二地址。
31.可选的,在一些实施例中,所述数据读写地址包括读取地址和回存地址。
32.本发明实施例提供的兼容不同数据存取模式的人工智能芯片,其能够通过自身的专用地址生成模块根据预设算法生成第一地址,再由选择模块选择接收专用地址生成模块生成的第一地址还是接收来自外部输入的第二地址,数据缓存模块在缓存待处理数据的同时根据选择模块选择的第一地址或第二地址实现将待处理数据传输至指定的地址,再由运算模块接收待处理数据完成运算,该芯片既能够使用自身生成的第一地址,也能够选择外部输入的第二地址,兼容性更强,能够适应专用处理器的算法更迭,通过外部输入的第二地址也能满足新的算法需求,同时也能兼顾非常用的复杂算法对于地址的特殊需求。
附图说明
33.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现
有技术描述中所需要使用的附图作简单的介绍,显而易见的,下面描述中的附图仅仅是本技术的部分实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
34.图1是本发明实施例一提供的一种兼容不同数据存取模式的人工智能芯片结构示意图;
35.图2是本发明实施例一提供的另一种兼容不同数据存取模式的人工智能芯片结构示意图;
36.图3是本发明实施例一提供的又一种兼容不同数据存取模式的人工智能芯片结构示意图;
37.图4是本发明实施例二提供的一种数据处理方法的流程图;
38.图5是本发明实施例二提供的另一种数据处理方法的流程图。
具体实施方式
39.下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
40.在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时处理可以被终止,但是还可以具有未包括在附图中的附加步骤。处理可以对应于方法、函数、规程、子例程、子计算机程序等等。
41.此外,术语“第一”、“第二”等可在本文中用于描述各种方向、动作、步骤或元件等,但这些方向、动作、步骤或元件不受这些术语限制。这些术语仅用于将第一个方向、动作、步骤或元件与另一个方向、动作、步骤或元件区分。举例来说,在不脱离本技术的范围的情况下,可以将第一有效信号为第二有效信号,且类似地,可将第二有效信号称为第一有效信号。第一有效信号和第二有效信号两者都是有效信号,但其不是同一有效信号。术语“第一”、“第二”等而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
42.实施例一
43.图1为本发明实施例一提供的一种兼容不同数据存取模式的人工智能芯片的结构示意图。如图1所示,本发明实施例提供了一种兼容不同数据存取模式的人工智能芯片10,包括专用地址生成模块11、选择模块12、数据缓存模块13和运算模块14。本实施例提供的兼容不同数据存取模式的人工智能芯片能够应用于各种ai系统,以完成ai算法中复杂的前后处理算子的数据处理任务,例如对视频、图像流相关数据进行前后端计算处理,具体的,该芯片中:
44.专用地址生成模块11,用于根据预设算法生成第一地址。
45.本实施例中,兼容不同数据存取模式的人工智能芯片本质上也是一种领域专用处
理器,其能够对待处理的数据进行专业的运算处理,以获取期待的运算结果,而在其进行数据运算的过程中,其需要通过地址实现指定数据的读取、运算和存储,而由于领域专用处理器的特殊性,其通常自行生成取数地址来实现上述功能,本实施例中的专用地址生成模块11即领域专用处理器中用于生成取数地址的模块,其上设置有针对不同领域专用处理器特殊设置的预设算法,能够针对领域特定算法生成所需的取数地址,为了便于与后文中外部输入的地址区分,此处将专用地址生成模块11生成的地址称为第一地址。
46.选择模块12,用于选择接收所述第一地址和/或外部输入的第二地址。
47.选择模块12与专用地址生成模块11连接的同时还与外部输入连接,其能够接受专用地址生成模块11生成的第一地址和来自外部输入的第二地址,并能够选择具体以哪一个地址作为运算过程使用的地址。
48.数据缓存模块13,用于缓存待处理数据并根据所述第一地址和/或所述第二地址传输所述待处理数据。
49.数据缓存模块13与选择模块12以及外部输入连接,其能够接受并缓存来自外部输入的待处理数据并根据选择模块12接受的第一地址或第二地址进行数据的读写:将待处理数据传输到指定的地址或保存到指定的地址。
50.运算模块14,用于接受所述待处理数据并完成对所述待处理数据的运算。
51.运算模块14与数据缓存模块13连接,其主要用于对待处理数据进行专用运算。本实施例中,运算模块14在数据运算过程中,需要使用第一地址或第二地址来从数据缓存模块13中读取指定的数据以完成对应的运算。
52.本实施例中,人工智能芯片10在正常工作时,运算模块14运算需要的待处理数据存储在数据缓存模块13中,数据缓存模块13需要使用第一地址或第二地址实现待处理数据的传输,而具体使用第一地址还是第二地址由选择模块根据运算模块14的具体运算算法选择,当能够使用由专用地址生成模块11生成的第一地址时,则采用第一地址,当由于运算算法更新更原因导致专用地址生成模块11生成的第一地址不适用时,则获取外部输入的第二地址。
53.本实施例提供了一种兼容不同数据存取模式的人工智能芯片,其能够通过自身的专用地址生成模块根据预设算法生成第一地址,再由选择模块选择接收专用地址生成模块生成的第一地址还是接收来自外部输入的第二地址,数据缓存模块在缓存待处理数据的同时根据选择模块选择的第一地址或第二地址实现将待处理数据传输至指定的地址,再由运算模块接收待处理数据完成运算,该芯片既能够使用自身生成的第一地址,也能够选择外部输入的第二地址,兼容性更强,能够适应专用处理器的算法更迭,通过外部输入的第二地址也能满足新的算法需求,同时也能兼顾非常用的复杂算法对于地址的特殊需求。
54.更具体的,在一些实施例中,提供的兼容不同数据存取模式的人工智能芯片如图2所示,还包括:
55.片上地址缓存模块15,设置于所述选择模块12与所述数据缓存模块13之间,用于缓存所述第一地址和/或所述第二地址。
56.片上地址缓存模块15用于存储接收到的第一地址或第二地址,以避免数据运算过程中等待地址生成所浪费的算力资源,其能够先将第一地址或第二地址生成完毕后存储在片上地址缓存模块15,以使得运算模块14在运算过程中数据缓存模块13能随时使用第一地
址或第二地址。
57.更具体的,在一些实施例中,如图3所示,还设置有片下地址缓存模块16,与所述选择模块12连接,用于接收并存储由外部芯片生成的第二地址。
58.片下地址缓存模块16的作用于片上地址缓存模块15类似,但是片下地址缓存模块16仅用于缓存外部芯片生成的第二地址,这是因为外部芯片可产生任意算法所需的数据读取地址,但产生地址速度慢,且要将产生的地址传输到片上,增加整个系统的带宽需求,传输也需要一定的时间,降低整个系统的性能。因此片下地址缓存模块16能够在某些运算中,存储好提前计算好第二地址,在运算时直接取出,减少地址计算耗时,提高效率。应当理解的是,图3所示的为片下地址缓存模块16设置在人工智能芯片10上的情况,在这种情况下实际实现了对人工智能芯片10兼容性的更新,其上已经存储有而地址,而在一些替代实施例中,还能够将片下地址缓存模块16设置在人工智能芯片10外,例如设置在与人工智能芯片10连接的外部设备,以供人工智能芯片10随插随用。
59.可选的,在一些实施例中,所述运算模块14还用于将所述待处理数据的运算结果返回至所述数据缓存模块13,以使所述数据缓存模块13根据所述第一地址和/或所述第二地址完成对所述运算结果的回存。
60.第一地址和第二地址不仅是在将待处理数据传输至运算模块14过程中发挥作用,在运算完成后预算结果的回存过程中同样发挥作用:第一地址和第二地址都包括读取地址和回存地址,在传输待处理数据过程中使用的是读取地址,而在运算结果返回至数据缓存模块13后,数据缓存模块13取出回存地址根据回存地址将运算结果存储至特定的位置。
61.可选的,在一些实施例中,所述片上地址缓存模块15还用于:
62.判断地址缓存剩余空间是否小于等于预设空间,若是则向所述片下地址缓存模块16或所述专用地址生成模块11发送反压信号,以暂停接受所述第一地址和/或所述第二地址。
63.当片上地址缓存模块15没有足够的缓存空间时,此时需要暂停接受地址,其通过反压信号通知片下地址缓存模块16或专用地址生成模块11停止发送地址,待片上地址缓存模块15中的地址(能够是第一地址也能够使第二地址)取出后,地址缓存剩余空间大于预设空间后,其向片下地址缓存模块16或专用地址生成模块11发送反压关闭信号,此时片下地址缓存模块16继续向片上地址缓存模块15发送第二地址或专用地址生成模块11继续向片上地址缓存模块15发送第一地址。
64.实施例二
65.图4为本发明实施例二提供的一种数据处理方法,可适用于利用领域专用处理器进行数据处理的场景,该方法可以基于发明任一实施例提供的兼容不同数据存取模式的人工智能芯片所实现。具体的,如图4所示,该方法包括:
66.s210、根据待运行的运算算法确定数据读写地址来源。
67.待运行的运算算法为运算模块对待处理数据进行处理的算法,数据读写地址来源主要用于确定是由兼容不同数据存取模式的人工智能芯片自身生成取数地址还是由外部芯片生成取数地址。
68.s220、基于所述数据读写地址来源获取指定的数据读写地址。
69.数据读写地址即包括由人工智能芯片自行生成的第一地址和/或外部芯片生成的
第二地址。
70.s230、根据所述数据读写地址将所述待处理数据发送至所述运算模块完成运算生成运算结果。
71.数据缓存模块根据数据读写地址将缓存的待处理数据发送到运算模块,运算结果为运算模块根据待运行的运算算法对待处理数据进行处理后的结果。
72.s240、根据所述数据读写地址将所述运算结果回存。
73.运算结果在完成运算后,将运算结果发回数据缓存模块,数据缓存模块根据数据读写地址将运算结果存储到指定的位置:所述数据读写地址包括读取地址和回存地址,读取地址用于实现待处理数据到运算模块的传输,待处理数据用于实现运算结果到指定的位置的存储。
74.可选的,在一些实施例中,所述数据读写地址来源包括所述专用地址生成模块11和/或所述片下地址缓存模块16,所述数据读写地址包括所述第一地址和/或所述第二地址,所述基于所述数据读写地址来源获取指定的数据读写地址之前,也即步骤s220之前,如图5还包括步骤s250-270:
75.s250、判断所述数据读写地址来源是否为专用地址生成模块。
76.s260、若是,根据所述运算算法配置所述专用地址生成模块,以使所述专用地址生成模块生成所述第一地址。
77.s270、若否由外部芯片根据所述运算算法对应的地址生成程序生成所述第二地址,并将所述第二地址存入所述片下地址缓存模块。
78.地址生成程序为根据运算算法的需求所编写的特定程序,外部芯片能够运行地址生成程序产生运算算法需求的读写地址,并将地址存入片下地址缓存模块。
79.更具体的,在一些实施例中,所述根据待运行的运算算法确定数据读写地址来源,也即步骤s220,包括:
80.通过所述选择模块选择自所述专用地址生成模块获取所述第一地址和/或自所述片下地址缓存模块获取所述第二地址。
81.可选的,在一些实施例中,所述基于所述数据读写地址来源获取指定的数据读写地址之后,还包括:
82.判断地址缓存剩余空间是否小于预设空间,若是则向所述片下地址缓存模块或所述专用地址生成模块发送反压信号,以暂停接受所述第一地址和/或所述第二地址。地址缓存剩余空间指的是片上地址缓存模块的缓存空间,待片上地址缓存模块中的地址取出后,地址缓存剩余空间大于预设空间后,其向片下地址缓存模块或专用地址生成模块发送反压关闭信号,此时片下地址缓存模块继续向片上地址缓存模块发送第二地址或专用地址生成模块继续向片上地址缓存模块发送第一地址。
83.本实施例提供了一种基于兼容不同数据存取模式的人工智能芯片的数据处理方法,能够通过人工智能芯片自身的专用地址生成模块根据预设算法生成第一地址,再由选择模块选择接收专用地址生成模块生成的第一地址还是接收来自外部输入的第二地址,数据缓存模块在缓存待处理数据的同时根据选择模块选择的第一地址或第二地址实现将待处理数据传输至指定的地址,再由运算模块接收待处理数据完成运算,该芯片既能够使用自身生成的第一地址,也能够选择外部输入的第二地址,兼容性更强,能够适应专用处理器
的算法更迭,通过外部输入的第二地址也能满足新的算法需求,同时也能兼顾非常用的复杂算法对于地址的特殊需求。
84.注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
再多了解一些

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

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

相关文献