人工智能模型的处理电路及运算排程方法技术

技术编号:37483733 阅读:13 留言:0更新日期:2023-05-07 09:23
本申请公开了人工智能模型的处理电路及运算排程方法。该处理电路耦接一外部内存并包含一内存、一内存管理电路以及一运算电路。内存管理电路从该外部内存读取一张量,并将该张量储存至该内存。运算电路被配置以进行以下操作:对该张量的一第一子张量进行一第一种类的运算,以产生一第一中间数据;对该张量的一第二子张量进行该第一种类的运算,以产生一第二中间数据;对该第一中间数据及该第二中间数据进行一第二种类的运算,以产生一第三中间数据;对该张量的一第三子张量进行该第一种类的运算,以产生一第四中间数据;以及,对该第一中间数据、该第二中间数据及该第四中间数据进行该第二种类的运算,以产生一第五中间数据。以产生一第五中间数据。以产生一第五中间数据。

【技术实现步骤摘要】
人工智能模型的处理电路及运算排程方法


[0001]本专利技术是关于人工智能模型,尤其是关于人工智能模型的处理电路与运算排程方法。

技术介绍

[0002]在一个芯片上系统(例如,系统单芯片(system

on

chip,SoC))中,内存带宽总量通常是固定的,且被多个模块使用。当某个模块所占用的内存带宽过大时,会导致其他模块获取内存发生阻塞,进而导致系统性能降低。人工智能(artificial intelligence,AI)模型作为芯片上系统中的一个模块,经常需要处理大量的数据,对内存的带宽需求大;因此,减小AI模型的带宽需求成为一个重要的课题。

技术实现思路

[0003]鉴于先前技术之不足,本专利技术的一目的在于提供一种人工智能模型的处理电路及运算排程方法,以改善先前技术的不足。
[0004]本专利技术的一实施例提供一种人工智能模型的处理电路。该处理电路耦接一外部内存并且包含一内存、一内存管理电路以及一运算电路。内存管理电路从该外部内存读取一张量,并将该张量储存至该内存。运算电路被配置以进行以下操作:对该张量的一第一子张量进行一第一种类的运算,以产生一第一中间数据;对该张量的一第二子张量进行该第一种类的运算,以产生一第二中间数据;对该第一中间数据及该第二中间数据进行一第二种类的运算,以产生一第三中间数据;对该张量的一第三子张量进行该第一种类的运算,以产生一第四中间数据;以及,对该第一中间数据、该第二中间数据及该第四中间数据进行该第二种类的运算,以产生一第五中间数据。
[0005]本专利技术的另一实施例提供一种人工智能模型的处理电路。该处理电路耦接一外部内存并且包含一内存。该处理电路执行以下操作:从该外部内存读取一张量及复数个核心参数,并将该张量及该些核心参数储存至该内存,其中,该张量包含一第一子张量及一第二子张量,该些核心参数包含一向量核心参数;根据该向量核心参数的一第一部分对该第一子张量进行一第一向量运算,以产生一第一中间数据;以及,根据该向量核心参数的一第二部分对该第二子张量进行一第二向量运算,以产生一第二中间数据。该向量核心参数的该第一部分不等于该向量核心参数的该第二部分。
[0006]本专利技术的另一实施例提供一种人工智能模型的运算排程方法。该人工智能模型包含一第一运算子及一第二运算子。该运算排程方法包含:将一张量分为H个子张量,H是大于1之整数;将该第一运算子分为H个第一子运算子;将该第二运算子分为H个第二子运算子;确定该H个第一子运算子及该H个第二子运算子之间的一依赖关系;根据该依赖关系排序该H个第一子运算子及该H个第二子运算子,以得到一操作顺序;以及,根据该操作顺序确定执行该人工智能模型的一处理电路何时从该处理电路所包含的一内存中删除一目标数据,该目标数据是该H个第一子运算子及该H个第二子运算子的其中一者的一输出数据。
[0007]本专利技术的实施例所体现的技术手段可以改善先前技术之缺点的至少其中之一,因此本专利技术相较于先前技术可以减少内存用量及/或降低对内存的带宽需求。
[0008]有关本申请的特征、实作与功效,兹配合图式作较佳实施例详细说明如下。
附图说明
[0009]图1显示AI网络的一个例子;
[0010]图2为本专利技术人工智能模型的运算排程方法的一实施例的流程图;
[0011]图3是图1的张量及运算子经切分后的结果;
[0012]图4显示子运算子之间的连线的拓朴图(topological graph);
[0013]图5是图2的步骤S230的一实施例的详细流程;
[0014]图6显示多个子运算子之间的依赖关系;
[0015]图7是图2的步骤S240的一实施例的详细流程;
[0016]图8A及图8B显示本专利技术的队列的一实施例的示意图;
[0017]图9是本专利技术电子装置的一实施例的功能方块图;
[0018]图10显示本专利技术的生命周期列表的一实施例的示意图;
[0019]图11显示分配内存的流程图;
[0020]图12A及图12B为本专利技术的活跃列表的一实施例的示意图;
[0021]图13是另一个AI模型的示意图;
[0022]图14是另一个AI模型的示意图;
[0023]图15A及图15B是本专利技术人工智能模型的执行方法的一实施例的流程图;
[0024]图16是本专利技术缓存电路及内存的储存内容的一实施例的示意图;
[0025]图17是图15A的步骤S1510或步骤S1520的详细流程;
[0026]图18是图15A的步骤S1530的详细流程;
[0027]图19是本专利技术缓存电路及内存的储存内容的另一实施例的示意图;
[0028]图20是图15B的步骤S1560的详细流程;
[0029]图21是本专利技术内存管理电路的一实施例的功能方块图;
[0030]图22是本专利技术多级流水线的示意图;以及
[0031]图23是本专利技术多级流水线操作的一实施例的流程图。
具体实施方式
[0032]以下说明内容之技术用语是参照本
之习惯用语,如本说明书对部分用语有加以说明或定义,该部分用语之解释是以本说明书之说明或定义为准。
[0033]本专利技术的公开内容包含人工智能模型的处理电路及运算排程方法。由于本专利技术的人工智能模型的处理电路所包含之部分组件单独而言可能为已知组件,因此在不影响该装置专利技术之充分公开及可实施性的前提下,以下说明对于已知组件的细节将予以节略。
[0034]图1是AI网络的一个例子,可视为一个简单的AI模型,或一个复杂的AI模型的一部分。AI网络100用来对输入数据Din进行运算,以产生输出数据Dout。图1的AI网络100包含三个运算子(operator):减法运算子110(「SUB」)、卷积(convolution)运算子120(「CONV」)及加法运算子130(「ADD」)。减法运算子110对张量(tensor)TS1(即,输入数据Din)进行减法运
算,以产生张量TS2。卷积运算子120对张量TS2进行卷积运算,以产生张量TS3。加法运算子130对张量TS3进行加法运算,以产生张量TS4(即,输出数据Dout)。在图1的例子中,张量TS1、张量TS2、张量TS3及张量TS4的大小(维度信息)都为[1,3,224,224]。
[0035]图2为本专利技术人工智能模型的运算排程方法的一实施例的流程图。图2的流程由芯片开发工具(例如,计算机)执行,包含以下步骤。
[0036]步骤S210:将张量切分为H个子张量(或称为块(tile)),H可以是张量的任一维度(H为大于1的整数)。更明确地说,此步骤是根据AI网络100的最后一个运算子的输出张量的其中一个维度,来确定H的值,然后将张量分为H个子张量。以图1的AI网络100为例,因为最后一个运算子(加法运算子130)的输出张量(即,张量TS4)的大小是[1,3,224,224],所以H可本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种人工智能模型的处理电路,其特征在于,所述处理电路耦接一外部内存,包含:一内存;一内存管理电路,从所述外部内存读取一张量,并将所述张量储存至所述内存;以及一运算电路,被配置以进行以下操作:对所述张量的一第一子张量进行一第一种类的运算,以产生一第一中间数据;对所述张量的一第二子张量进行所述第一种类的运算,以产生一第二中间数据;对所述第一中间数据及所述第二中间数据进行一第二种类的运算,以产生一第三中间数据;对所述张量的一第三子张量进行所述第一种类的运算,以产生一第四中间数据;以及对所述第一中间数据、所述第二中间数据及所述第四中间数据进行所述第二种类的运算,以产生一第五中间数据。2.如权利要求1所述的处理电路,其特征在于,所述内存管理电路将所述第一中间数据及所述第二中间数据存入所述内存,并在所述第五中间数据产生之后,从所述内存中删除所述第一中间数据。3.如权利要求1所述的处理电路,其特征在于,所述第一种类的运算是一加法运算或一减法运算,所述第二种类的运算是一卷积运算。4.如权利要求1所述的处理电路,其特征在于,所述第一中间数据、所述第二中间数据及所述第四中间数据对应到所述张量的同一维度。5.如权利要求4所述的处理电路,其特征在于,所述第四中间数据在所述第三中间数据产生后产生。6.如权利要求1所述的处理电路,其特征在于,所述处理电路更包含:一缓存电路;其中,当所述运算电路进行所述第一种类的运算时,所述内存管理电路从所述内存读取一核心参数的至少一部分至所述缓存电路,并且所述运算电路仅根据所述核心参数的所述至少一部分来进行所述第一种类的运算;其中,所述第一种类的运算是一减法运算或一加法运算。7.如权利要求1所述的处理电路,其特征在于,所述第一中间数据、所述第二中间数据及所述第四中间数据的大小相同。8.如权利要求1所述的处理电路,其特征在于,所述内存管理电路包含一第一通道及一第二通道,所述对所述第一子张量进行所述第一种类的运算包含以下的步骤:(A)使用所述第一通道从所述内存读取所述第一子张量的一第一数据块;(B)对所述第一数据块进行所述第一种类的运算以产生所述第一中间数据的一第一部分;(C)使用所述第二通道从所述内存读取所述第一子张量的一第二数据块;(D)使用所述第一通道将所述第一中间数据的所述第一部分储存至所述内存;(E)对所述第二数据块进行所述第一种类的运算以产生所述第一中间数据的一第二部分;以及(F)使用所述第二通道将所述第一中间数据的所述第二部分储存至所述内存;其中,所述步骤(B)及所述步骤(C)至少部分同时执行,且所述步骤(D)及所述步骤(E)
至少部分同时执行。9.一种人工智能模型的处理电路,其特征在于,所述处理电路耦接一外部内存并且包含一内存,所述处理电路执行以下操作:从所述外部内存读取一张量及复数个核心参数,并将所述张量及各所述核心参数储存至所述内存,其中,所述张量包含一第一子张量及一第二子张量,各所述核心参数包含一向量核心参数;根据所述向量核心参数的一第一部分对所述第一子张量进行一第一向量运算,以产生一第一中间数据;以及根据所述向量核心参数的一第二部分对所述第二子张量进行一第二向量运算,以产生一第二中间数据;其中,所述向量核心参数的所述第一部分不等于所述向量核心参数的所述第二部分。10.如权利要求9所述的处理电路,其特征在于,所述张量更包含一第三子张量,各所述核心参数更包含用于一卷积运算的一卷积核心参数,所述处理电路更执行以下操作:根据所述卷积核心参数对所述第一中间数据及所述第二中间数据进行所述卷积运算,以产生一第三中间数据;以及在所述卷积运算后,根据所述向量核心参数的一第三部分对所述第三子张量进行一第三向量运算,以产生一第四中间数据。11.如权利要求10所述的处理电路,其特征在于,所述卷积运算为一第一卷积运算,所述处理电路...

【专利技术属性】
技术研发人员:俞清
申请(专利权)人:星宸科技股份有限公司
类型:发明
国别省市:

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

1