CN116227599A - 一种推理模型的优化方法、装置、电子设备及存储介质 - Google Patents
一种推理模型的优化方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116227599A CN116227599A CN202310119874.8A CN202310119874A CN116227599A CN 116227599 A CN116227599 A CN 116227599A CN 202310119874 A CN202310119874 A CN 202310119874A CN 116227599 A CN116227599 A CN 116227599A
- Authority
- CN
- China
- Prior art keywords
- operator
- calculation
- operators
- sub
- current
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 87
- 238000005457 optimization Methods 0.000 title claims abstract description 22
- 238000004364 calculation method Methods 0.000 claims abstract description 172
- 230000004927 fusion Effects 0.000 claims abstract description 112
- 238000010586 diagram Methods 0.000 claims abstract description 31
- 230000008569 process Effects 0.000 claims abstract description 26
- 238000004590 computer program Methods 0.000 claims description 16
- 238000013473 artificial intelligence Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 230000004913 activation Effects 0.000 description 6
- 238000013138 pruning Methods 0.000 description 4
- 238000003780 insertion Methods 0.000 description 3
- 230000037431 insertion Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 210000002569 neuron Anatomy 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000007493 shaping process Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 210000000225 synapse Anatomy 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种推理模型的优化方法、装置、电子设备及存储介质。所述方法包括:从模型对应的计算输入图中获取当前算子和下一层算子;确定所述当前算子需要拆分时,将所述当前算子拆分为多个子算子以及融合算子;基于所述多个子算子以及联合融合算子生成第一计算输出图,所述联合融合算子基于所述融合算子与所述下一层算子生成;从所述计算输入图中重新获取当前算子,按照上述过程在所述第一计算输出图的基础上确定出第二计算输出图,直到所述计算输入图中的所有算子遍历完成,得到目标计算输出图,以实现推理模型的优化。该方法通过将算子拆分为更小规模的子算子,能够减少单个子算子执行时所需要的缓存资源,从而可以降低整个模型在硬件中计算时需要的资源。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种推理模型的优化方法、装置、电子设备及存储介质。
背景技术
5G和人工智能(Artificial Intelligence,AI)技术促进各行各业的发展,使得各行业更加智能化高效化。这些转变的背后涉及AI模型推理,AI模型在部署前通常进行优化工作,以降低模型推理占用的硬件资源。
现有技术提出在算子硬件资源利用率短缺时,输入更多的权重到算子中使输出数据量翻倍,以提升硬件资源利用率。但是,该方案中算子的硬件资源需要按照资源消耗最大的计算层进行配置,这样配置会存在硬件资源无法满足某一层算子所需的缓存资源的情况,从而导致模型推理无法实现。
发明内容
本发明提供了一种推理模型的优化方法、装置、电子设备及存储介质,以解决现有技术存在硬件资源无法满足某一层算子所需的缓存资源,从而导致模型推理无法实现的问题。
根据本发明的一方面,提供了一种推理模型的优化方法,包括:
从模型对应的计算输入图中获取当前算子和下一层算子;
确定所述当前算子需要拆分时,将所述当前算子拆分为多个子算子以及融合算子;
基于所述多个子算子以及联合融合算子生成第一计算输出图,所述联合融合算子基于所述融合算子与所述下一层算子生成;
从所述计算输入图中重新获取当前算子,按照上述过程在所述第一计算输出图的基础上确定出第二计算输出图,直到所述计算输入图中的所有算子遍历完成,得到目标计算输出图,实现推理模型的优化。
根据本发明的另一方面,提供了一种推理模型的优化装置,包括:
获取模块,用于从模型对应的计算输入图中获取当前算子和下一层算子;
第一确定模块,用于确定所述当前算子需要拆分时,将所述当前算子拆分为多个子算子以及融合算子;
生成模块,用于基于所述多个子算子以及联合融合算子生成第一计算输出图,所述联合融合算子基于所述融合算子与所述下一层算子生成;
第二确定模块,用于从所述计算输入图中重新获取当前算子,按照上述过程在所述第一计算输出图的基础上确定出第二计算输出图,直到所述计算输入图中的所有算子遍历完成,得到目标计算输出图,以实现推理模型的优化。
根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的推理模型的优化方法。
根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的推理模型的优化方法。
本发明实施例的技术方案,从模型对应的计算输入图中获取当前算子和下一层算子;确定所述当前算子需要拆分时,将所述当前算子拆分为多个子算子以及融合算子;基于所述多个子算子以及联合融合算子生成第一计算输出图,所述联合融合算子基于所述融合算子与所述下一层算子生成;从所述计算输入图中重新获取当前算子,按照上述过程在所述第一计算输出图的基础上确定出第二计算输出图,直到所述计算输入图中的所有算子遍历完成,得到目标计算输出图,以实现推理模型的优化,解决了现有技术存在硬件资源无法满足某一层算子所需的缓存资源,从而导致模型推理无法实现的问题,取到了降低整个模型在硬件中推理时需要的缓存资源的有益效果。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一提供的一种推理模型的优化方法的流程示意图;
图2为本发明实施例一提供的一种算子输入图的示意图;
图3为本发明实施例一提供的第一计算输出图的示意图;
图4为本发明一实施例提供的输出通道权重数据存放示例图;
图5为本发明实施例二提供的一种推理模型的优化方法的流程示意图;
图6为本发明实施例二提供的第三计算输出图的示意图;
图7为本发明示例实施例提供的一种推理模型的优化方法的流程示意图;
图8为本发明示例实施例提供的实现模型推理的硬件框图;
图9为本发明示例实施例提供的权重和特征图数据区选择标识的示意图;
图10为本发明示例实施例提供的一种特征图旋转标识示意图;
图11为本发明实施例三提供的一种推理模型的优化装置的结构示意图;
图12为本发明实施例的推理模型的优化方法的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。应当理解,本发明的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本发明的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要注意,本发明中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本发明实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
人工智能模型的推理平台包括中央处理器(Central Processing Unit,CPU)、图形处理器(Graphical Processing Unit,GPU)、FPGA(现场可编程门阵列,Field-Programmable Gate Array)实现、ASIC(Application Specific Integrated Circuit专用集成电路)。
人工智能模型在部署前通常进行优化工作,以降低模型推理的复杂度,减少模型的推理时间。通常采用如下措施进行优化:
剪枝:剪枝操作可以减少模型参数,剪枝减少模型节点间连接的数量,从而降低模型的参数,减少模型推理需要的计算量;剪枝操作后的模型中神经元数量和神经元上突触数量减少了,进而减少模型推理需要的计算量。
量化:量化是将模型的权重数据使用16位定点数或者是8位整数进行表示,通常模型中的权重数据使用的是32位单精度小数。模型量化后可以使模型变小,例如使用8位整形权重数据的模型大小通常为原模型的四分之一,因此可以减少模型的存储空间和模型推理的内存使用空间,进而加快推理速度。这是因为硬件设备的8位整形数据的运算速度通常高于32位单精度小数的运算速度。
实施例一
图1为本发明实施例一提供的一种推理模型的优化方法的流程示意图,该方法可适用于对人工智能模型推理过程进行优化的情况,该方法可以由模型推理的优化装置来执行,其中该装置可由软件和/或硬件实现,并一般集成在电子设备上,在本实施例中的电子设备可以为计算机设备。
需要说明的是,优化后的模型在边缘计算设备中的FPGA上进行推理,边缘计算设备可以包括终端设备、车联网设备、物联网设备等。
如图1所示,本发明实施例一提供的一种推理模型的优化方法,包括如下步骤:
S110、从模型对应的计算输入图中获取当前算子和下一层算子。
其中,模型可以为人工智能模型,示例性的,模型可以为神经网络模型。模型对应的计算输入图可以理解为对应于模型本身,也即从待优化的模型中获取当前算子和下一层算子。计算输入图中包括算子描述以及算子连接关系,算子可以为模型中不同网络层的算子。示例性的,图2为本发明实施例一提供的一种算子输入图的示意图,如图2所示,输入图中包括多个网络层的算子以及每层算子之间的连接关系,其中,卷积层算子和激活层算子相连。图2中,in_c=64表示算子的输入通道数量为64,out_c=64表示算子的输出通道数量为64,Height=64表示输入通道的数据高度为64,Width表示输入通道的数据宽度为184,Padding=[1,1]表示卷积填充数据为[1,1]。
其中,当前算子可以理解为在遍历计算输入图的过程中当前遍历到的算子,例如当前遍历到卷积层算子,则可以将卷积层算子作为当前算子,算子输入图中的任意一个算子都可以作为当前算子。下一层算子可以理解为当前算子的下一层算子,例如,图2中的激活函数层算子可以作为下一层算子。
可以理解的是,模型中经常使用的算子是卷积类算子,卷积运算是一个滤波,卷积运算涉及的计算量占整个模型推理的总计算量的一大部分,卷积运算涉及诸多参数,如卷积核、步长、填充以及通道参数等。
在本实施例中,对模型的计算输入图进行遍历的过程中,可以根据算子间的先后顺序关系获取当前算子和下一层算子,当前算子为下一层算子的前一层算子。
S120、确定所述当前算子需要拆分时,将所述当前算子拆分为多个子算子以及融合算子。
本实施例中,需要确定当前算子是否需要进行拆分,确定的方式可以包括:综合当前算子的输入通道数据规模以及模型推理硬件所提供的计算资源规模,若当前算子为卷积层算子还需要综合当前算子的权重数据,确定当前算子是否需要进行拆分。其中,模型推理硬件可以为FPGA芯片,基于FPGA实现模型推理需要充分适应FPGA的并行性,降低逻辑复杂度提高运算频率,才能到达卓越的性能;输入通道数据可以为输入通道的权重数据;卷积核数据可以为卷积核的权重数据。
其中,子算子可以理解为当前算子拆分后得到的算子,作为当前算子的子算子,子算子和当前算子的类型相同,例如,当前算子为卷积层算子,则子算子也为卷积层算子。融合算子可以理解为用于将多个子算子的计算结果进行融合的算子,融合算子将多个子算子的计算结果融合起来,形成当前算子的输出。对于卷积层算子而言,融合算子可以将多个子算子计算结果中对应位置的值累加起来作为卷积层算子的输出。
本实施例中,拆分的方式可以为:按照当前算子的输入通道的顺序,将输入通道均分为多个输入通道,作为子算子的输入通道,子算子的输出通道和当前算子的输出通道的数量相同。
示例性的,图2中的激活层算子可以作为当前算子,拆分后可以得到两个子算子,两个子算子都具有32个输入通道、64个输出通道,高度为64、宽度为184,补充为[1,1]。
需要说明的是,每个子算子的权重数据的数量是预先设置好的,不是在推理过程中通过动态分配得到。每次子算子执行的权重数据的数量都是预先分配好的,不是动态载入的,于此可以降低逻辑实现的复杂度。
S130、基于所述多个子算子以及联合融合算子生成第一计算输出图,所述联合融合算子基于所述融合算子与所述下一层算子生成。
其中,计算输出图是根据计算输入图生成,计算输出图中可以包括输入图中的算子进行拆分后得到的子算子以及融合算子,计算输出图中还包括每个算子对应的控制数据。计算输出图可以理解为推理模型的优化方法的输出,根据计算输出图即可确定对应的模型,进而进行后续的模型推理,模型推理可以指利用训练好的模型,使用新数据推理出正确结论的过程。
其中,融合算子与下一层子算子进行融合后可以生成联合融合算子,例如,融合算子为Add算子,下一层算子为ReUL算子即激活算子,则联合融合算子为Add+ReUL算子。
本实施例中,在将当前算子拆分为多个子算子后,可以通过编译程序生成子算子对应的控制数据,并将多个子算子及其对应的控制数据插入到计算输出图中;在确定融合算子与下一层算子能够进行融合时,将融合算子与下一层算子进行融合生成联合融合算子,并生成联合融合算子对应的控制数据,将联合融合算子及其对应的控制数据继续插入上述计算输出图中得到第一计算输出图,第一计算输出图可以为包括子算子以及联合融合算子的计算输出图。其中,若当前算子不需要拆分,则可以生成当前算子对应的控制数据,并将当前算子及其对应的控制数据插入到输出图中;若融合算子无法与下一层算子融合,则可以生成融合算子对应的控制数据,并将融合算子及其对应的控制数据插入到输出图中。
需要说明的是,可以根据融合算子的功能以及FPGA引擎支持的功能确定融合算子是否可以与下一层算子融合。示例性的,融合算子的功能为将两个算子的计算结果相加,下一层算子为ReLU计算,如果FPGA引擎中一次读取数据支持计算结果相加以及ReLU计算时,则可以融合,否则不支持融合。ReLU为激活函数,激活函数可以定义为F(x)=max(0,x)。
图3为本发明实施例一提供的第一计算输出图的示意图,如图3所示,第一计算输出图中包括子算子A和子算子B,以及联合融合算子。
进一步的,不同算子对应的控制数据在推理时可以存放在先入先出缓存器FIFO或者是随机存取存储器RAM。
控制数据包含:控制数据的载入指令,算子特征图数据的载入指令,算子特征图数据的载出指令,权重数据的载入指令等。不同算子对应的控制数据保证算子在FPGA推理是的正常运行。
本实施例中,通过在模型优化的过程中引入控制数据,以在推理过程中FPGA可以通过控制数据控制各类数据的载入载出和各个单元模块间的同步,控制数据也可以保证计算推理中只需按照预设的顺序读取特征图数据的存取地址,然后按照存储地址获得特征图数据,可以大大降低特征图数据读取的逻辑复杂度。
S140、从所述计算输入图中重新获取当前算子,按照上述过程在所述第一计算输出图的基础上确定出第二计算输出图,直到所述计算输入图中的所有算子遍历完成,得到目标计算输出图,实现推理模型的优化。
本实施例中,重新获取当前算子可以包括:若当前算子不需要拆分,则可以将当前算子的下一层算子作为重新获取的当前算子;若当前算子需要拆分,但融合算子与下一层算子不进行融合,则将下一层算子作为重新获取的当前算子;若当前算子需要拆分,且融合算子与下一层算子进行融合,则将下一层算子的再下一层算子即当前算子的下下层算子作为重新获取的当前算子。
其中,第二计算输出图可以为在计算输入图中重新获取当前算子后按照步骤S110到步骤S130执行得到的结果插入第一计算输出图后得到的输出图。目标计算输出图可以为计算输入图中所有算子遍历完成后得到的计算输出图。
本实施例中,在得到第一计算输出图后,可以将当前算子的指针移动到新的当前算子,重新执行步骤S110到步骤S130确定出第二计算输出图,再将当前算子的指针移动到新的当前算子,重新执行步骤S110到步骤S130确定出新的计算输出图,直到计算输入图中的所有算子遍历完成,最终得到目标计算输出图,实现推理模型的优化。
本发明实施例一提供的一种推理模型的优化方法,首先从模型对应的计算输入图中获取当前算子和下一层算子;然后确定所述当前算子需要拆分时,将所述当前算子拆分为多个子算子以及融合算子;之后基于所述多个子算子以及联合融合算子生成第一计算输出图,所述联合融合算子基于所述融合算子与所述下一层算子生成;最终从所述计算输入图中重新获取当前算子,按照上述过程在所述第一计算输出图的基础上确定出第二计算输出图,直到所述计算输入图中的所有算子遍历完成,得到目标计算输出图,以实现推理模型的优化。上述方法通过将算子拆分为更小规模的子算子,能够减少单个子算子执行时所需要的缓存资源,从而可以降低整个模型在硬件中计算时需要的资源;上述方法通过联合融合算子得到的模型,可以减少特征图数据从DDR载入到FPGA内部的开销以及反向开销,减少潜在的计算引擎的等待时间,提升推理效率。
本发明任意实施例提供的模型推理的优化方法,是在计算机中执行。后续模型推理过程可在FPGA中执行,可以有多个FPGA,这些FPGA可以协同计算一个模型,即将多个子算子在多个不同的FPGA上执行计算,从而可以降低推理时延。
在上述实施例的基础上,提出了上述实施例的变型实施例,在此需要说明的是,为了使描述简要,在变型实施例中仅描述与上述实施例的不同之处。
进一步的,根据当前算子输入通道所需要的计算资源是否大于模型推理硬件所提供的资源,以及当前算子占用的存储资源是否大于模型推理硬件所提供的资源,确定当前算子是否需要拆分。
具体的,若当前算子输入通道所需要的计算资源小于或等于模型推理硬件所提供的计算资源,以及当前算子推理时占用的存储资源小于或等于模型推理硬件所提供的存储资源,确定当前算子不需要拆分,否则,需要拆分。
其中,若当前算子为卷积层算子,当前算子输入通道需要的计算资源小于或等于模型推理硬件能够提供的计算资源,且当前算子的权重数据和特征图数据所占用的存储资源均小于或等于模型推理硬件能够提供的存储资源,说明模型推理硬件的资源足以提供当前算子所需要的资源,则可以确定当前算子不需要拆分;当前算子输入通道需要的计算资源大于模型推理硬件能够提供的计算资源、当前算子的权重数据所占用的存储资源大于模型推理硬件能够提供的存储资源或当前算子的特征图数据所占用的存储资源大于模型推理硬件能够提供的存储资源,则可以确定当前算子需要拆分。
其中,若当前算子为非卷积层算子,当前算子输入通道需要的计算资源小于或等于模型推理硬件能够提供的计算资源且当前算子的特征图数据占用的存储资源小于或等于模型推理硬件能够提供的存储资源,则可以确定当前算子不需要拆分;当前算子输入通道需要的计算资源大于模型推理硬件能够提供的计算资源或当前算子的特征图数据占用的存储资源大于模型推理硬件能够提供的存储资源,则可以确定当前算子需要拆分。
进一步的,当前算子拆分为多个算子时,按照当前算子的输入通道的顺序进行拆分,将当前算子的输入通道拆分后作为子算子的输入通道。
其中,拆分可以按照输入通道的顺序进行拆分,将连续的多个输入通道拆分在同一个子算子内。此处对输入通道是否进行平均拆分不作具体限制,可以根据实际情况进行拆分。
示例性的,当前算子的输入通道为64个,则可以将前32个输入通道作为子算子A的输入通道,将后32个输入通道作为子算子B的输入通道;还可以将前16个通道作为子算子A的输入通道,将后48个输入通道作为子算子B的输入通道。
进一步的,每个子算子的权重数据由连续多个输入通道的权重数据进行转置后得到,所述每个子算子的权重数据的数量为预设数量,具体权重数据的数量在生成控制数据时确定。
其中,子算子的权重数据可以由连续多个输入通道的权重数据进行转置后得到,连续多个通道的权重数据共享一个存储地址。每个子算子的权重数据的数量是预先设置好的,每个子算子的权重数据的数量在FPGA能够提供的计算资源的范围内,不会出现由于子算子所处的存储资源超出FPGA能够提供的存储资源而导致模型推理无法实现的问题。
图4为本发明一实施例提供的输入通道权重数据存放示例图,如图4所示,权重数据在权重存放时需要按照连续三行进行矩阵转置,以方便数据的高效访问操作。
进一步的,不同算子对应的控制数据包括以下一个或多个:
计算引擎变量初始化标识、权重数据区选择标识、特征图数据区选择标识、特征图数据间接缓存的起始地址、计算结果缓存起始地址、权重数据缓存的起始地址、特征图数据旋转标志、输出数据的次数、特征图数据的间接地址、特征图数据地址内循环步进值、特征图数据地址外循环步进值以及执行操作类型。
其中,计算引擎变量初始化标识可以用于初始化计算引擎从控制存储器中读取计算引擎工作的初始化数据。对一个算子的计算会涉及到多次初始化,初始化主要包括读取权重数据缓存的起始地址、特征图数据旋转标志、输出数据的次数、特征图数据地址内循环步进值,特征图数据地址外循环步进值以及需要执行操作类型等。
权重数据区选择标识和特征图数据区选择标识可以用于区分不同的数据区,示例性的,设置选择标识为0时选择低地址区,设置选择标识为1时选择高地址区。
计算结果缓存起始地址用于指示算子的计算结果存放在输出缓存的起始地址。
特征图数据旋转标志可以将数据缓冲区和数据接收对应起来,用于指示如何读取特征图数据以及减少重复数据的从DDR的载入,减少外部存储的访问。
输出数据的次数可以用于控制算子的计算结果写入输出缓冲区,示例性的,计算结果可以是64个,也可以是256个,根据输出数据的次数可以确定分几次将计算结果输出。
特征图数据的间接地址可以为用于获取特征图数据在缓冲区中的地址,可以控制RAM前1024个空间都用于存放特征图数据的间接地址。
特征图数据地址内循环步进值和特征图数据地址外循环步进值可以用于控制特征图数据的读取。示例性的,计算需求是需要将15个数据乘以各自的系数并进行累加,则内循环步进值为1,将5个数据作为一组,数据1到5的地址存放在空间地址缓冲区,循环5次;外循环的步进值为10,循环3次。
执行操作类型可以理解为数据需要进行什么样的运算,可以包括卷积运算、加法运算、卷积+ReLU运算以及加法+ReLU运算等。
实施例二
图5为本发明实施例二提供的一种推理模型的优化方法的流程示意图,本实施例二在上述各实施例的基础上进行优化。本实施例尚未详尽的内容请参考实施例一。
如图5所示,本发明实施例二提供的一种模型推理的优化方法,包括如下步骤:
S210、从模型对应的计算输入图中获取当前算子和下一层算子。
S220、确定所述当前算子需要拆分时,将所述当前算子拆分为多个子算子以及融合算子。
进一步的,该方法还包括:确定当前算子不需要拆分时,生成当前算子对应的控制数据,并将当前算子和所述当前算子对应的控制数据插入到计算输出图中得到当前算子对应的计算输出图。
其中,若当前算子不需要进行拆分,则说明FPGA的计算资源可以满足当前算子,此时可以直接生成当前算子对应的控制数据并将当前算子和当前算子对应的控制数据插入到计算输出图中。
S230、生成多个子算子对应的控制数据,并将所述多个子算子以及所述多个子算子对应的控制数据插入计算输出图中生成第三计算输出图。
其中,在将当前算子拆分为至少两个子算子后,可以生成每个子算子对应的控制数据,并将拆分得到的至少两个子算子和每个子算子对应的控制数据插入计算输出图中,将已插入子算子的计算输出图作为第三计算输出图。
示例性的,图6为本发明实施例二提供的第三计算输出图的示意图,如图6所示,在激活层算子下面插入子算子A和子算子B后得到第三计算输出图。
S240、生成联合融合算子对应的控制数据,并将联合融合算子以及所述联合融合算子对应的控制数据插入所述第三计算输出图中得到第一计算输出图。
进一步的,该方法还包括:所述融合算子与所述下一层算子不能融合时,生成融合算子对应的控制数据,并将所述融合算子和所述融合算子对应的控制数据插入所述第三计算输出图中得到当前算子对应的计算输出图。
其中,当融合算子与下一层算子不能融合时,可以生成融合算子对应的控制数据,同时可以将融合算子以及融合算子对应的控制数据插入到第三计算输出图中。
S250、从所述计算输入图中重新获取当前算子,按照上述过程确定出第二计算输出图,直到所述计算输入图中的所有算子遍历完成,得到目标计算输出图,实现推理模型的优化。
本发明实施例二提供的一种推理模型的优化方法,具体化了基于所述多个子算子、所述计算输入图以及联合融合算子生成第一计算输出图的过程。利用该方法,能够减少单个子算子执行时所需要的缓存资源,从而可以降低整个模型在硬件中计算时需要的资源。
本发明实施例在上述各实施例的技术方案的基础上,提供了一种具体的实施方式。
作为本实施一种具体的实施方式,图7为本发明示例实施例提供的一种推理模型的优化方法的流程示意图,如图7所示,该方法可以包括如下流程:获得输入图即计算输入图当前算子和下一层算子;判断是否进行算子拆分即判断当前算子是否需要拆分;若不需要拆分,则生成当前算子对应的控制数据,将当前算子及对应控制数据插入到输出图即算子输出图,输入图当前算子移到下一层即重新获取当前算子;若需要拆分,则将当前算子拆分为多个子算子及融合算子;生成子算子对应的控制数据,将多个子算子及对应控制数据插入到输出图中;判断融合算子与下一层算子是否融合;若否,则生成融合算子对应的控制数据,融合算子及对应控制数据插入到输出图中;若是,则生成联合融合算子,同时生成联合融合算子对应的控制数据,将联合融合算子及对应控制数据插入到输出图中;输入图当前算子移到下一层,直到输入图中的算子都遍历完成。
若当前算子输入通道所需要的计算资源小于或等于模型推理硬件所提供的计算资源,以及当前算子占用的存储资源小于或等于模型推理硬件所提供的存储资源,确定当前算子不需要拆分,否则,需要拆分。
其中,当前算子为非卷积算子时,当前算子的输入通道数据所需要的计算资源是否大于FPGA可以提供的资源的判断方式如下:假设有16个输入通道,64个输出通道,每个输入通道同时处理3行数据,每行数据同时处理3个数据,同时计算需要的DSP数量为64*3*3*16=9216,推理设备提供的DSP数量为4096,因此当前算子的输入通道数据所需要的计算资源大于FPGA可以提供的资源。
其中,当前算子为卷积算子时,当前算子的权重数据对应的存储资源是否满足FPGA提供资源的判断:假设权重缓冲区的最大使用空间为2.5K,有64个输出通道,每个输出通道需要为每个输入通道提供9个权重数据,一个输出通道需要的权重数据为576,由于576<2560,因此当前算子的权重数据所占用的资源小于FPGA可以提供的资源。
综合上述分析可知,算子的计算资源需求大于FPGA能够提供的资源,需要对当前算子进行拆分。当前算子拆分为多个子算子(子算子A,子算子B,…)和融合算子。拆分可以按照当前算子输入通道的顺序进行拆分,连续多个输入通道拆分在同一个子算子内;单个子算子的输入通道的数量小于拆分前算子的输入通道的数量。
生成算子(子算子)对应的控制数据,控制数据包括控制FIFO和控制RAM的数据。控制FIFO的数据中包含计算引擎变量初始化标识,权重数据区选择标识、特征图数据区选择标识,特征图数据间接缓存的起始地址,计算结果缓存起始地址等;控制RAM的数据中包含权重数据缓存的起始地址,特征图数据旋转标志,输出数据的次数,特征图数据的间接地址,特征图数据地址内循环步进值,特征图数据地址外循环步进值,需要执行操作类型等。其中,控制数据保证推理引擎的各个单元间同步。
算子(子算子)在执行时将依赖控制数据。计算引擎运行时读取控制数据,根据控制数据初始化计算引擎。图8为本发明示例实施例提供的实现模型推理的硬件框图,如图8所示,通过数据接口对双倍速率同步动态随机存储器DDR访问进行数据存取,将获取的数据放入CPU、Control RAM模块、Weight数据模块以及输入特征图模块;将获取的数据通过FIFO接口读写数据指示,将CPU指令通过FIFO接口发送给CPU,CPU通过FIFO接口将获取的数据发送给Control FIFO模块;CPU从计算单元获取写数据指示;数据接口还将输出特征图模块中数据在CPU的控制下写入到双倍速率同步动态随机存储器DDR。
示例性的,算子(子算子)对应的控制FIFO的数据如下表1所示:
表1算子(子算子)对应的控制FIFO的数据
其中,权重数据和特征图数据区选择标识的作用为:假设特征图数据缓存和权重数据缓存均有两个数据区可以使用,数据区选择标识为0时选择低地址部分,数据区选择标识为1时选择高地址部分。可选的,特征图数据缓存和权重数据缓存均可以有多个数据区可以使用,相应的,数据区选择标识的个数可以为多个,可以将数据区选择标识设置为0,1,2…n等。图9为本发明示例实施例提供的权重和特征图数据区选择标识的示意图,如图9所示,在特征图数据缓存中,数据区选择标识为0时,表征选择特征图第一个通道的第1行数据、第2行数据和第3行数据的低地址部分,数据区选择为1时,表征选择特征图第一个通道的第1行数据、第2行数据和第3行数据的高地址部分;在权重数据缓存区中,数据区选择标识为0时,表征选择输出通道1权重数据缓存、输出通道2权重数据缓存以及输出通道3权重数据缓存的低地址部分,数据区选择为1时,表征选择输出通道1权重数据缓存、输出通道2权重数据缓存以及输出通道3权重数据缓存的高地址部分。
示例性的,算子对应的控制数据举例如下表2所示:
表2算子对应的控制数据示例表
其中,特征图数据旋转标志用于指示如何读取特征图数据以减少重复数据的读入,减少对外部存储的访问。图10为本发明示例实施例提供的一种特征图数据旋转标识示意图,如图10所示,在特征图数据缓存中,特征图第一个通道的第1行数据、第2行以及第3行对应的特征图旋转标志为0,则计算引擎读取获得的数据为特征如第一个通道的第1行数据、第2行数据和第3行数据;特征图第一个通道的第4行数据、第2行以及第3行对应的特征图旋转标志为1,则计算引擎读取获得的数据为特征如第一个通道的第2行数据、第3行数据和第4行数据;特征图第一个通道的第4行数据、第5行以及第3行对应的特征图旋转标志为2,则计算引擎读取获得的数据为特征如第一个通道的第3行数据、第4行数据和第5行数据。其中,最大池化计算、加法计算、激活计算和正则化计算标志对应4种运算,分别对应推理模型中的Max_pool、Add、Activation和BatchNorm。
具体的,判断融合算子是否可以与当前算子的下一层算子进行融合生成联合融合算子。融合算子是Add算子,下一层算子是ReLU算子,计算引擎支持Add算子的结果进行ReLU运算,融合算子可以和下一层的ReLU算子进行融合生成联合融合算子,按照生成联合融合算子进行执行。
示例性的,联合融合算子是Add+ReLU,对应的控制FIFO的数据如表3所示,控制RAM的数据如表4所示:
表3控制FIFO的数据示例表
表4控制RAM的数据示例表
实施例三
图11为本发明实施例三提供的一种推理模型的优化装置的结构示意图,该装置可适用于对人工智能模型推理过程进行优化,其中该装置可由软件和/或硬件实现,并一般集成在电子设备上。
如图11所示,该装置包括:获取模块110、第一确定模块120、生成模块130以及第二确定模块140。
获取模块110,用于从模型对应的计算输入图中获取当前算子和下一层算子;
第一确定模块120,用于确定所述当前算子需要拆分时,将所述当前算子拆分为多个子算子以及融合算子;
生成模块130,用于基于所述多个子算子以及联合融合算子生成第一计算输出图,所述联合融合算子基于所述融合算子与所述下一层算子生成;
第二确定模块140,用于从所述计算输入图中重新获取当前算子,按照上述过程在所述第一计算输出图的基础上确定出第二计算输出图,直到所述计算输入图中的所有算子遍历完成,得到目标计算输出图,以实现推理模型的优化。
在本实施例中,该装置首先通过获取模块110从模型对应的计算输入图中获取当前算子和下一层算子;然后通过第一确定模块120确定所述当前算子需要拆分时,将所述当前算子拆分为多个子算子以及融合算子;之后通过生成模块130基于所述多个子算子以及联合融合算子生成第一计算输出图,所述联合融合算子基于所述融合算子与所述下一层算子生成;最后通过第二确定模块140用于从所述计算输入图中重新获取当前算子,按照上述过程在所述第一计算输出图的基础上确定出第二计算输出图,直到所述计算输入图中的所有算子遍历完成,得到目标计算输出图,以实现推理模型的优化。
本实施例提供了一种推理模型的优化装置,能够降低整个模型在硬件中计算时需要的资源。
进一步的,根据当前算子输入通道所需要的计算资源是否大于模型推理硬件所提供的资源,以及当前算子卷积核数据所占用的存储资源是否大于模型推理硬件所提供的资源,确定当前算子是否需要拆分。
进一步的,所述装置还包括第三确定模块:
第三确定模块用于:确定当前算子不需要拆分时,生成当前算子对应的控制数据,并将当前算子和所述当前算子对应的控制数据插入到计算输出图中得到当前算子对应的计算输出图。
进一步的,生成模块130包括第一插入单元和第二插入单元;
第一插入单元用于:生成多个子算子对应的控制数据,并将所述多个子算子以及所述多个子算子对应的控制数据插入计算输出图中生成第三计算输出图;
第二插入单元用于:生成联合融合算子对应的控制数据,并将联合融合算子以及所述联合融合算子对应的控制数据插入所述第三计算输出图中得到第一计算输出图。
基于上述技术方案,生成模块130还包括第三插入单元;
第三插入单元用于:所述融合算子与所述下一层算子不能融合时,生成融合算子对应的控制数据,并将所述融合算子和所述融合算子对应的控制数据插入所述第三计算输出图中得到当前算子对应的计算输出图。
进一步的,当前算子拆分为多个算子时,按照当前算子的输入通道的顺序进行拆分,将当前算子的输入通道拆分后作为子算子的输入通道。
进一步的,每个子算子的权重数据由连续多个输入通道的权重数据进行转置后得到,所述每个子算子的权重数据的数量为预设数量。
进一步的,不同算子对应的控制数据包括以下一个或多个:
计算引擎变量初始化标识、权重数据区选择标识、特征图数据区选择标识、特征图数据间接缓存的起始地址、计算结果缓存起始地址、权重数据缓存的起始地址、特征图数据旋转标志、输出数据的次数、特征图数据的间接地址、特征图数据地址内循环步进值、特征图数据地址外循环步进值以及执行操作类型。
上述推理模型的优化装置可执行本发明任意实施例所提供的推理模型的优化方法,具备执行方法相应的功能模块和有益效果。
实施例四
图12示出了可以用来实施本发明的实施例的电子设备10的结构示意图。电子设备旨表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图12所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(ROM)12、随机访问存储器(RAM)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(ROM)12中的计算机程序或者从存储单元18加载到随机访问存储器(RAM)13中的计算机程序,来执行各种适当的动作和处理。在RAM 13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、ROM 12以及RAM 13通过总线14彼此相连。输入/输出(I/O)接口15也连接至总线14。
电子设备10中的多个部件连接至I/O接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如模型推理的优化方法。
在一些实施例中,推理模型的优化方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由ROM 12和/或通信单元19而被载入和/或安装到电子设备10上。当计算机程序加载到RAM 13并由处理器11执行时,可以执行上文描述的模型推理的优化方法中的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行模型推理的优化方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (11)
1.一种推理模型的优化方法,其特征在于,所述方法包括:
从模型对应的计算输入图中获取当前算子和下一层算子;
确定所述当前算子需要拆分时,将所述当前算子拆分为多个子算子以及融合算子;
基于所述多个子算子以及联合融合算子生成第一计算输出图,所述联合融合算子基于所述融合算子与所述下一层算子生成;
从所述计算输入图中重新获取当前算子,按照上述过程在所述第一计算输出图的基础上确定出第二计算输出图,直到所述计算输入图中的所有算子遍历完成,得到目标计算输出图,以实现推理模型的优化。
2.根据权利要求1所述的方法,其特征在于,根据当前算子输入通道所需要的计算资源是否大于模型推理硬件所提供的资源,以及当前算子占用的存储资源是否大于模型推理硬件所提供的资源,确定当前算子是否需要拆分。
3.根据权利要求1所述的方法,其特征在于,还包括:
确定当前算子不需要拆分时,生成当前算子对应的控制数据,并将当前算子和所述当前算子对应的控制数据插入到计算输出图中得到当前算子对应的计算输出图。
4.根据权利要求1所述的方法,其特征在于,所述基于所述多个子算子、以及联合融合算子生成第一计算输出图,包括:
生成多个子算子对应的控制数据,并将所述多个子算子以及所述多个子算子对应的控制数据插入计算输出图中生成第三计算输出图;
生成联合融合算子对应的控制数据,并将联合融合算子以及所述联合融合算子对应的控制数据插入所述第三计算输出图中得到所述第一计算输出图。
5.根据权利要求4所述的方法,其特征在于,还包括:
所述融合算子与所述下一层算子不能融合时,生成融合算子对应的控制数据,并将所述融合算子和所述融合算子对应的控制数据插入所述第三计算输出图中得到当前算子对应的计算输出图。
6.根据权利要求1所述的方法,其特征在于,当前算子拆分为多个算子时,按照当前算子的输入通道的顺序进行拆分,将当前算子的输入通道拆分后作为子算子的输入通道。
7.根据权利要求6所述的方法,其特征在于,每个子算子的权重数据由连续多个输入通道的权重数据进行转置后得到,所述每个子算子的权重数据的数量为预设数量。
8.根据权利要求3-5任一项所述的方法,其特征在于,不同算子对应的控制数据包括以下一个或多个:
计算引擎变量初始化标识、权重数据区选择标识、特征图数据区选择标识、特征图数据间接缓存的起始地址、计算结果缓存起始地址、权重数据缓存的起始地址、特征图数据旋转标志、输出数据的次数、特征图数据的间接地址、特征图数据地址内循环步进值、特征图数据地址外循环步进值以及执行操作类型。
9.一种模型推理的优化装置,其特征在于,所述装置包括:
获取模块,用于从模型对应的计算输入图中获取当前算子和下一层算子;
第一确定模块,用于确定所述当前算子需要拆分时,将所述当前算子拆分为多个子算子以及融合算子;
生成模块,用于基于所述多个子算子以及联合融合算子生成第一计算输出图,所述联合融合算子基于所述融合算子与所述下一层算子生成;
第二确定模块,用于从所述计算输入图中重新获取当前算子,按照上述过程在所述第一计算输出图的基础上确定出第二计算输出图,直到所述计算输入图中的所有算子遍历完成,得到目标计算输出图,以实现推理模型的优化。
10.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-8中任一项所述的推理模型的优化方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-8中任一项所述的推理模型的优化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310119874.8A CN116227599A (zh) | 2023-02-15 | 2023-02-15 | 一种推理模型的优化方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310119874.8A CN116227599A (zh) | 2023-02-15 | 2023-02-15 | 一种推理模型的优化方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116227599A true CN116227599A (zh) | 2023-06-06 |
Family
ID=86588627
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310119874.8A Pending CN116227599A (zh) | 2023-02-15 | 2023-02-15 | 一种推理模型的优化方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116227599A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117271101A (zh) * | 2023-11-22 | 2023-12-22 | 上海燧原科技有限公司 | 一种算子融合方法、装置、电子设备及存储介质 |
CN118132150A (zh) * | 2024-05-07 | 2024-06-04 | 中科寒武纪科技股份有限公司 | 计算图的数据访存模式推导方法及相关产品 |
-
2023
- 2023-02-15 CN CN202310119874.8A patent/CN116227599A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117271101A (zh) * | 2023-11-22 | 2023-12-22 | 上海燧原科技有限公司 | 一种算子融合方法、装置、电子设备及存储介质 |
CN117271101B (zh) * | 2023-11-22 | 2024-03-01 | 上海燧原科技股份有限公司 | 一种算子融合方法、装置、电子设备及存储介质 |
CN118132150A (zh) * | 2024-05-07 | 2024-06-04 | 中科寒武纪科技股份有限公司 | 计算图的数据访存模式推导方法及相关产品 |
CN118132150B (zh) * | 2024-05-07 | 2024-08-02 | 中科寒武纪科技股份有限公司 | 计算图的数据访存模式推导方法及相关产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116227599A (zh) | 一种推理模型的优化方法、装置、电子设备及存储介质 | |
US20230026006A1 (en) | Convolution computation engine, artificial intelligence chip, and data processing method | |
CN111752691B (zh) | Ai计算图的排序方法、装置、设备及存储介质 | |
CN115880132B (zh) | 图形处理器、矩阵乘法任务处理方法、装置及存储介质 | |
CN115150471B (zh) | 数据处理方法、装置、设备、存储介质及程序产品 | |
CN115860080B (zh) | 计算核、加速器、计算方法、装置、设备、介质及系统 | |
CN113010312B (zh) | 一种超参数调优方法、装置及存储介质 | |
CN117217274B (zh) | 向量处理器、神经网络加速器、芯片及电子设备 | |
CN116166583B (zh) | 一种数据精度的转换方法、装置、dma控制器及介质 | |
CN117273069A (zh) | 一种基于神经网络模型的推理方法、装置、设备及介质 | |
CN112001492A (zh) | 关于二值权重DenseNet模型的混合流水式加速架构及加速方法 | |
CN113869484A (zh) | 一种计算同步方法、同步管理装置以及计算单元 | |
WO2023071566A1 (zh) | 数据处理方法、装置、计算机设备、计算机可读存储介质及计算机程序产品 | |
CN115438007A (zh) | 一种文件合并方法、装置、电子设备及介质 | |
CN115346099A (zh) | 基于加速器芯片的图像卷积方法、芯片、设备及介质 | |
CN115293978A (zh) | 卷积运算电路和方法、图像处理设备 | |
CN113128673B (zh) | 数据处理方法、存储介质、神经网络处理器及电子设备 | |
CN115668225A (zh) | 神经网络调度方法及装置 | |
CN112230884B (zh) | 目标检测硬件加速器及加速方法 | |
CN112308217A (zh) | 一种卷积神经网络加速方法及系统 | |
CN115759260B (zh) | 深度学习模型的推理方法、装置、电子设备和存储介质 | |
CN115292662B (zh) | 一种卷积加速运算方法、装置、电子设备及存储介质 | |
CN112035383B (zh) | 一种数据调度方法、装置及系统 | |
CN118519610A (zh) | 一种基于脉动阵列的运算方法、装置、设备及存储介质 | |
CN117992196A (zh) | 用于存算一体芯片的任务调度方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |