CN118070865A - 人工智能模型的优化方法及装置、电子设备与存储介质 - Google Patents
人工智能模型的优化方法及装置、电子设备与存储介质 Download PDFInfo
- Publication number
- CN118070865A CN118070865A CN202410501468.2A CN202410501468A CN118070865A CN 118070865 A CN118070865 A CN 118070865A CN 202410501468 A CN202410501468 A CN 202410501468A CN 118070865 A CN118070865 A CN 118070865A
- Authority
- CN
- China
- Prior art keywords
- operator
- tensor
- type
- target cache
- artificial intelligence
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 87
- 238000005457 optimization Methods 0.000 title claims abstract description 66
- 238000013473 artificial intelligence Methods 0.000 claims abstract description 138
- 238000004891 communication Methods 0.000 claims description 31
- 230000004044 response Effects 0.000 claims description 24
- 230000004913 activation Effects 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 13
- 230000003068 static effect Effects 0.000 claims description 13
- 238000004364 calculation method Methods 0.000 claims description 10
- 238000010586 diagram Methods 0.000 description 19
- 230000008569 process Effects 0.000 description 19
- 238000004422 calculation algorithm Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000013500 data storage Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000012549 training Methods 0.000 description 5
- 239000012190 activator Substances 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 238000011176 pooling Methods 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一种人工智能模型的优化方法及装置、电子设备与存储介质。人工智能模型包括多个算子,多个算子包括第一算子。该人工智能模型的优化方法包括:设置绕过目标缓存读取或存储第一算子的第一类型的张量,以及设置经过目标缓存读取或存储第一算子的第二类型的张量。该人工智能模型的优化方法通过将第一算子的第一类型的张量的读取或存储设置成绕过目标缓存,从而可以降低目标缓存的负载,提高第一算子的第二类型的张量的缓存命中率,提升人工智能模型的性能。
Description
技术领域
本公开的实施例涉及一种人工智能模型的优化方法、人工智能模型的优化装置、电子设备与存储介质。
背景技术
人工智能(Artificial Intelligence,AI)领域,深度神经网络(Deep NeuralNetwork,DNN)已经成为最先进技术的基础和许多应用的核心推动力。随着人工智能的应用场景的不断泛化,人工智能计算任务也需要部署在深度神经网络上。由于人工智能模型的网络层数深,结构复杂,生成的算子数量众多,带来了巨大的计算资源和时间的消耗。
发明内容
本公开至少一实施例提供一种人工智能模型的优化方法,其中,所述人工智能模型包括多个算子,所述多个算子包括第一算子,所述人工智能模型的优化方法包括:设置绕过目标缓存读取或存储所述第一算子的第一类型的张量,以及设置经过所述目标缓存读取或存储所述第一算子的第二类型的张量。
例如,在本公开至少一实施例提供的人工智能模型的优化方法中,所述设置绕过目标缓存读取或存储所述第一算子的第一类型的张量,包括:设置绕过所述目标缓存从内存中读取所述第一算子的第一类型的张量,或者,设置绕过所述目标缓存将所述第一算子的第一类型的张量存储到所述内存中。
例如,在本公开至少一实施例提供的人工智能模型的优化方法中,设置经过所述目标缓存读取所述第一算子的第二类型的张量,包括:响应于所述第一算子的第二类型的张量没有缓存在所述目标缓存中,从内存中读取所述第一算子的第二类型的张量,并且将所述第一算子的第二类型的张量缓存在所述目标缓存中;响应于所述第一算子的第二类型的张量缓存在所述目标缓存中,从所述目标缓存中读取所述第一算子的第二类型的张量。
例如,在本公开至少一实施例提供的人工智能模型的优化方法中,设置经过所述目标缓存存储所述第一算子的第二类型的张量,包括:响应于所述第一算子的第二类型的张量的尺寸小于所述目标缓存的可用空间的尺寸,或者响应于所述目标缓存中为所述第一算子的第二类型的张量预留有相应的存储空间,将所述第一算子的第二类型的张量缓存在所述目标缓存中;响应于所述第一算子的第二类型的张量的尺寸大于所述目标缓存的可用空间的尺寸并且所述目标缓存中没有为所述第一算子的第二类型的张量预留相应的存储空间,根据缓存策略将所述目标缓存中存储的部分数据逐出到内存中,以将所述第一算子的第二类型的张量缓存在所述目标缓存中。
例如,在本公开至少一实施例提供的人工智能模型的优化方法中,所述第一算子包括第一输入接口、第二输入接口和输出接口,所述第一输入接口对应于所述第一类型的张量,所述第二输入接口和所述输出接口对应于所述第二类型的张量。
例如,在本公开至少一实施例提供的人工智能模型的优化方法中,所述设置绕过目标缓存读取或存储所述第一算子的第一类型的张量,包括:将输入所述第一算子的第一输入接口的张量的读取或存储方式设置为绕过所述目标缓存,以及所述设置经过所述目标缓存读取或存储所述第一算子的第二类型的张量,包括:经过所述目标缓存读取或存储输入所述第一算子的第二输入接口的张量,以及经过所述目标缓存读取或存储所述第一算子的输出接口输出的张量。
例如,在本公开至少一实施例提供的人工智能模型的优化方法中,响应于所述人工智能模型为动态计算图模式,所述人工智能模型的优化方法还包括:设置绕过所述目标缓存读取或存储所述多个算子中的每个算子的第一类型的张量,以及设置经过所述目标缓存读取或存储所述每个算子的第二类型的张量。
例如,在本公开至少一实施例提供的人工智能模型的优化方法中,响应于所述人工智能模型为静态计算图模式,所述多个算子还包括不同于所述第一算子的第二算子,所述人工智能模型的优化方法还包括:设置绕过目标缓存读取或存储所述第二算子的第二类型的张量,以及设置经过所述目标缓存读取或存储所述第二算子的第一类型的张量。
例如,在本公开至少一实施例提供的人工智能模型的优化方法中,所述第二算子的第一类型的张量为所述第二算子的权重张量,所述第二算子的第二类型的张量为所述第二算子的激活张量。
例如,在本公开至少一实施例提供的人工智能模型的优化方法中,所述多个算子还包括不同于所述第一算子的第三算子,所述人工智能模型的优化方法还包括:设置经过所述目标缓存读取或存储所述第三算子的张量。
例如,在本公开至少一实施例提供的人工智能模型的优化方法中,所述第一算子为计算算子,所述第三算子为通信算子。
例如,在本公开至少一实施例提供的人工智能模型的优化方法中,所述通信算子包括多个张量,所述通信算子的多个张量对应多个计算节点的数据,
所述设置经过所述目标缓存读取或存储所述第三算子的张量,包括:设置经过所述目标缓存读取或存储所述通信算子的多个张量,以在所述目标缓存中使用所述通信算子的多个张量执行所述多个计算节点之间的数据交换。
例如,在本公开至少一实施例提供的人工智能模型的优化方法中,所述第一算子的第一类型的张量为所述第一算子的权重张量,所述第一算子的第二类型的张量为所述第一算子的激活张量。
本公开至少一实施例还提供一种人工智能模型的优化装置,其中,所述人工智能模型包括多个算子,所述多个算子包括第一算子,所述人工智能模型的优化装置包括:设置模块,配置为设置绕过目标缓存读取或存储所述第一算子的第一类型的张量,以及设置经过所述目标缓存读取或存储所述第一算子的第二类型的张量。
例如,在本公开至少一实施例提供的人工智能模型的优化装置中,响应于所述人工智能模型为动态计算图模式,所述设置模块还配置为:设置绕过所述目标缓存读取或存储所述多个算子中的每个算子的第一类型的张量,以及设置经过所述目标缓存读取或存储所述每个算子的第二类型的张量。
例如,在本公开至少一实施例提供的人工智能模型的优化装置中,响应于所述人工智能模型为静态计算图模式,所述多个算子还包括不同于所述第一算子的第二算子,所述设置模块还配置为:设置经过所述目标缓存读取或存储所述第二算子的第一类型的张量,以及设置绕过目标缓存读取或存储所述第二算子的第二类型的张量。
例如,在本公开至少一实施例提供的人工智能模型的优化装置中,所述多个算子还包括不同于所述第一算子的第三算子,所述设置模块还配置为,设置经过所述目标缓存读取或存储所述第三算子的张量。
本公开至少一实施例还提供一种电子设备。该电子设备包括:处理器;存储器,包括一个或多个计算机程序模块;其中,所述一个或多个计算机程序模块被存储在所述存储器中并被配置为由所述处理器执行,所述一个或多个计算机程序模块用于实现本公开任一实施例提供的人工智能模型的优化方法。
本公开至少一实施例还提供一种存储介质,存储有非暂时性计算机可读指令,当所述非暂时性计算机可读指令由计算机执行时实现本公开任一实施例提供的人工智能模型的优化方法。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1A为一种人工智能模型中数据读取的示意图;
图1B为一种人工智能模型中数据存储的示意图;
图2为本公开至少一实施例提供的人工智能模型的优化方法的示例性流程图;
图3A为本公开至少一实施例提供的人工智能模型的优化方法的一个示例的示意图;
图3B为本公开至少一实施例提供的人工智能模型的优化方法的另一个示例的示意图;
图4A为本公开至少一实施例提供的第一算子的一个示例的示意图;
图4B为本公开至少一实施例提供的第一算子的另一个示例的示意图;
图5为本公开的至少一实施例提供的人工智能模型的优化装置的示意框图;
图6为本公开的至少一实施例提供的一种电子设备的示意框图;
图7为本公开的至少一实施例提供的另一种电子设备的示意框图;以及
图8为本公开的至少一实施例提供的一种存储介质的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
下面通过几个具体的实施例对本公开进行说明。为了保持本公开实施例的以下说明清楚且简明,可省略已知功能和已知部件的详细说明。当本公开实施例的任一部件在一个以上的附图中出现时,该部件在每个附图中由相同或类似的参考标号表示。
人工智能计算任务由多个计算单元组成,每个计算单元可以被称为算子(Operator,Op)。在人工智能模型中,算子对应层或节点的计算逻辑。例如,卷积层(Convolution Layer)中的卷积计算任务可以是一个算子;全连接层(Fully-connectedLayer,FC layer)中的权值求和计算任务也可以是一个算子。在具体实施人工智能模型时,算子可以通过软件的方式实现(例如通过计算机程序实现),也可以通过硬件的方式实现(例如通过电路实现)。
在人工智能模型的训练或推理过程中,需要对人工智能模型中的多个算子进行调用。大量的算子调用过程会带来数据访问或存储过程的延迟,需要采用特定的优化手段来实现人工智能模型的优化。例如,人工智能芯片通常有片上缓存(例如,片上二级缓存L2等),其读写速度比内存快数倍至数十倍,如果模型需要的数据能驻留在片上缓存上会大大提升模型的性能。
图1A为一种人工智能模型中数据读取的示意图。
例如,如图1A所示,在人工智能模型的算子中,执行单元读取算子的张量数据(输入张量、输出张量或权重张量等)默认采用经过片上缓存的方式。例如,执行单元发出读指令,该指令首先检查待读取的张量数据是否缓存在片上缓存中。例如,如果张量数据已经缓存在片上缓存中,则执行单元直接从片上缓存读取张量数据;如果张量数据没有缓存在片上缓存中,则执行单元会从内存中将张量数据读取到片上缓存上,再从片上缓存读取张量数据,相比前述直接从片上缓存读取张量数据的方式,从内存读取张量数据的方式会带来一定程度的延迟。
图1B为一种人工智能模型中数据存储的示意图。
例如,如图1B所示,在人工智能模型的算子中,执行单元存储算子的张量数据(输入张量、输出张量或权重张量等)也默认采用经过片上缓存的方式。例如,执行单元发出写指令,如果待存储的张量数据比片上缓存的可用空间小或片上缓存为该张量数据预留有相应的存储空间,则执行单元会直接将张量数据缓存到片上缓存;如果待存储的张量数据比片上缓存的可用空间大并且片上缓存没有为该张量数据预留相应的存储空间,则执行单元将张量数据缓存到片上缓存的过程中会将片上缓存中已有的数据逐出到内存。由于数据逐出过程也会耗费时间,如果在缓存多个张量数据的过程中发生多次数据逐出,则会带来较大的延迟,导致模型性能下降。
例如,人工智能模型的优化包括对单算子的优化,当每个算子性能从较低的水平提升到较高的水平时,人工智能模型的性能会得到一定程度的提升。然而,随着单算子的性能的进一步提升,每个算子对硬件资源空间的占用需求也随之提高。由于人工智能模型中的算子数量众多,而人工智能芯片的内存带宽有限,多个算子内部和算子之间的资源竞争、缓存命中等因素会影响人工智能模型的整体性能,导致人工智能模型的性能瓶颈。因此,需要进一步从模型整体来考虑硬件资源的分配和调度。
例如,在人工智能模型中,算子的张量数据主要包括权重张量和激活张量,激活张量可以进一步包括算子的输入张量和输出张量。在人工智能模型的训练或推理过程中,权重张量仅在模型的特定位置处被访问,而激活张量则会一直向前传播。例如,对于激活张量,前一个算子的输出张量是后一个算子的输入张量;而权重张量仅为算子的输入,不是算子的输出,也不是下一个算子的输入,也即是,如果前一个算子的权重张量也缓存在片上缓存中,下一个算子不会去读取片上缓存中的该权重张量。因此,在需要重复读取或存储激活张量的算法中,如果片上缓存的存储空间被较多的权重张量占用,则会导致去内存中重复读取激活张量的可能性较高,以及存储激活张量时发生片上缓存数据逐出的可能性较高,从而带来较大的延迟,导致模型性能下降。
本公开至少一实施例提供一种人工智能模型的优化方法。人工智能模型包括多个算子,多个算子包括第一算子。该人工智能模型的优化方法包括:设置绕过目标缓存读取或存储第一算子的第一类型的张量,以及设置经过目标缓存读取或存储第一算子的第二类型的张量。
本公开的至少一实施例还提供一种人工智能模型的优化装置、电子设备与存储介质,用于实现上述实施例的人工智能模型的优化方法。
本公开至少一实施例提供的方法、装置、电子设备以及存储介质,通过将第一算子的第一类型的张量的读取或存储设置成绕过目标缓存,从而可以降低目标缓存的负载,提高第一算子的第二类型的张量的缓存命中率,提升人工智能模型的性能。
下面,将参考附图详细地说明本公开至少一实施例。应当注意的是,不同的附图中相同的附图标记将用于指代已描述的相同的元件。
在本公开至少一实施例中,人工智能模型包括多个算子,多个算子包括第一算子。需要说明的是,第一算子可以指代人工智能模型的多个算子中的任意一个算子,具体根据实际需要进行选择,本公开的实施例对此不作限制。
图2为本公开至少一实施例提供的人工智能模型的优化方法的示例性流程图。
例如,如图2所示,本公开至少一实施例提供了一种人工智能模型的优化方法,该方法可以包括以下步骤S110和S120。
步骤S110:设置绕过目标缓存读取或存储第一算子的第一类型的张量,以及
步骤S120:设置经过目标缓存读取或存储第一算子的第二类型的张量。
例如,在步骤S110和S120中,目标缓存可以为第二级片上缓存L2,在缓存容量和存取速度满足要求的情况下,目标缓存也可以根据实际需要选择其他级别的片上缓存,本公开的实施例对此不作限制。
例如,在步骤S110和S120中,对于数据的读取或存储方式,硬件原生提供了两种读取或存储数据的路径,即绕过目标缓存直接到内存或其他缓存读取或存储数据,以及经过目标缓存读取或存储数据(例如,具体参考图1A和图1B的示例)。例如,基于以上描述的硬件功能,在人工智能模型的开发过程中,可以设置经过或绕过目标缓存读取或存储第一算子的第一类型或第二类型的张量。
需要说明的是,步骤S110和步骤S120可以为并行执行,也可以按预设的先后顺序执行,本公开的实施例对步骤S110和步骤S120的执行顺序不作限制。
在一些示例中,步骤S110中的第一算子的第一类型的张量可以为第一算子的权重张量,步骤S120中的第一算子的第二类型的张量为第一算子的激活张量。例如,在需要重复读取或存储第一算子的激活张量的算法中,通过将第一算子的权重张量的读取或存储设置成绕过目标缓存,可以减少甚至避免第一算子的权重张量对目标缓存的占用,从而可以降低目标缓存的负载,提高第一算子的激活张量的缓存命中率,提升人工智能模型的性能。
在另一些示例中,对于需要重复读取或存储第一算子的权重张量的算法,步骤S110中的第一算子的第一类型的张量可以为第一算子的激活张量,步骤S120中的第一算子的第二类型的张量为第一算子的权重张量,以提高第一算子的权重张量的缓存命中率。
需要说明的是,第一算子的第一类型的张量和第二类型的张量也可以根据实际应用场景选取为其他类型的张量,本公开的实施例对此不作限制。
需要说明的是,对应于不同类型的人工智能模型或者人工智能模型的不同算法执行过程,第一算子可以为不同的类型,具体可以根据实际情况进行选择,本公开的实施例对此也不作限制。
在一些示例中,对于图2中步骤S110的数据读取过程,步骤S110可以进一步包括步骤S111:设置绕过目标缓存从内存中读取第一算子的第一类型的张量。
在一些示例中,对于图2中步骤S120的数据读取过程,步骤S120可以进一步包括步骤S121~S122。
步骤S121:响应于第一算子的第二类型的张量没有缓存在目标缓存中,从内存中读取第一算子的第二类型的张量,并且将第一算子的第二类型的张量缓存在目标缓存中;
步骤S122:响应于第一算子的第二类型的张量缓存在目标缓存中,从目标缓存中读取第一算子的第二类型的张量。
图3A为本公开至少一实施例提供的人工智能模型的优化方法的一个示例的示意图。例如,图3A为图2中步骤S110和S120的数据读取过程的一个具体示例。
例如,如图3A所示,对于第一算子的第一类型的张量,执行步骤S111,设置绕过目标缓存从内存中读取第一算子的第一类型的张量。例如,具体地,经过步骤S111的设置,执行单元可以直接从内存中读取第一算子的第一类型的张量,而无需检查第一算子的第一类型的张量是否缓存在目标缓存中,从而可以在一定程度上节省读取时间。
例如,如图3A所示,对于第一算子的第二类型的张量,执行步骤S121和S122。例如,具体地,在步骤S121中,如果第一算子的第二类型的张量没有缓存在目标缓存中,则执行单元可以从内存中读取第一算子的第二类型的张量,并且将第一算子的第二类型的张量缓存在目标缓存中;在步骤S122中,如果第一算子的第二类型的张量缓存在目标缓存中,则执行单元可以直接从目标缓存中读取第一算子的第二类型的张量,从而可以提高读取效率。
在一些示例中,对于图2中步骤S110的数据存储过程,步骤S110可以进一步包括步骤S112:设置绕过目标缓存将第一算子的第一类型的张量存储到内存中。
在一些示例中,对于图2中步骤S120的数据存储过程,步骤S120可以进一步包括步骤S123~S124。
步骤S123:响应于第一算子的第二类型的张量的尺寸小于目标缓存的可用空间的尺寸,或者响应于目标缓存中为第一算子的第二类型的张量预留有相应的存储空间,将第一算子的第二类型的张量缓存在目标缓存中;
步骤S124:响应于第一算子的第二类型的张量的尺寸大于目标缓存的可用空间的尺寸并且目标缓存中没有为第一算子的第二类型的张量预留相应的存储空间,根据缓存策略将目标缓存中存储的部分数据逐出到内存中,以将第一算子的第二类型的张量缓存在目标缓存中。
需要说明的是,缓存策略可以包括旁路缓存策略(Cache Aside)、读穿/写穿策略(Read/Write Through)和写回策略(Write Back)等,也可以根据模型开发需求进行构建,具体可以根据实际情况进行选择,本公开的实施例对此不作限制。
图3B为本公开至少一实施例提供的人工智能模型的优化方法的另一个示例的示意图。例如,图3B为图2中步骤S110和S120的数据存储过程的一个具体示例。
例如,如图3B所示,对于第一算子的第一类型的张量,执行步骤S112,设置绕过目标缓存将第一算子的第一类型的张量存储到内存中。例如,具体地,经过步骤S112的设置,执行单元可以直接将第一算子的第一类型的张量存储到内存中,而无需检查片上缓存的可用空间等,从而可以在一定程度上节省存储时间。
例如,如图3B所示,对于第一算子的第二类型的张量,执行步骤S123~S124。例如,具体地,在步骤S123中,如果第一算子的第二类型的张量的尺寸小于目标缓存的可用空间的尺寸,或者目标缓存中为第一算子的第二类型的张量预留有相应的存储空间,则执行单元可以直接将第一算子的第二类型的张量缓存在目标缓存中;在步骤S124中,如果第一算子的第二类型的张量的尺寸大于目标缓存的可用空间的尺寸并且目标缓存中没有为第一算子的第二类型的张量预留相应的存储空间,而且此时目标缓存中缓存有第一算子或其他算子的第一类型的张量,则执行单元可以根据缓存策略将目标缓存中存储的部分数据逐出到内存中,以将第一算子的第二类型的张量缓存在目标缓存中。
在本公开至少一实施例提供的人工智能模型的优化方法中,通过将第一算子的第一类型的张量的读取或存储设置成绕过目标缓存,从而可以降低目标缓存的负载,提高第一算子的第二类型的张量的缓存命中率,提升人工智能模型的性能。
在一些示例中,通过第一算子的各接口的位置,可以区分第一算子的张量的类型。例如,第一算子包括第一输入接口、第二输入接口和输出接口,第一输入接口对应于第一类型的张量,第二输入接口和输出接口对应于第二类型的张量。
例如,步骤S110可以进一步包括步骤S113:将输入第一算子的第一输入接口的张量的读取或存储方式设置为绕过目标缓存。
例如,在步骤S113中,由于第一输入接口对应于第一类型的张量,输入第一算子的第一输入接口的张量为第一算子的第一类型的张量;也即是,通过确定第一算子的第一输入接口的位置,将第一算子的第一类型的张量的读取或存储方式设置为绕过目标缓存。
例如,相应地,步骤S120可以进一步包括步骤S125:经过目标缓存读取或存储输入第一算子的第二输入接口的张量,以及经过目标缓存读取或存储第一算子的输出接口输出的张量。
例如,在步骤S125中,由于第二输入接口和输出接口对应于第二类型的张量,输入第一算子的第二输入接口和输出接口的张量为第一算子的第二类型的张量;也即是,通过确定第一算子的第二输入接口和输出接口的位置,经过目标缓存读取或存储第一算子的第二类型的张量。
图4A为本公开至少一实施例提供的人工智能模型中多个第一算子的一个示例的示意图。
例如,图4A为人工智能模型的一部分的一个示例,该部分包括第一算子1、第一算子2和第一算子3。例如,每个第一算子包括第一输入接口、第二输入接口和输出接口(图中未示出)。
例如,如图4A所示,第一类型的张量1输入第一算子1的第一输入接口,第二类型的张量1输入第一算子1的第二输入接口。例如,第一算子1的输出接口输出的也是第二类型的张量,作为第一算子2的输入并输入第一算子2的第二输入接口,第一类型的张量2输入第一算子2的第一输入接口。例如,第一算子2的输出接口输出的也是第二类型的张量,作为第一算子3的输入并输入第一算子3的第二输入接口。
例如,如图4A所示,在步骤S113中,可以将第一类型的张量1和第一类型的张量2的读取或存储方式设置为绕过目标缓存;在步骤S125中,可以经过目标缓存读取或存储第二类型的张量1、第一算子1的输出和第一算子2的输出。
图4B为本公开至少一实施例提供的人工智能模型中多个第一算子的另一个示例的示意图。
例如,图4B的示例为人工智能模型的一部分的另一个示例,该部分包括第一算子1、第一算子2和第一算子3。例如,每个第一算子包括第一输入接口、第二输入接口和输出接口(图中未示出)。
例如,如图4B所示,第一类型的张量1输入第一算子1的第一输入接口,第二类型的张量1输入第一算子1的第二输入接口;第一类型的张量2输入第一算子2的第一输入接口,第二类型的张量2输入第一算子2的第二输入接口。例如,第一算子1和第一算子2的输出接口分别输出的也是第二类型的张量,作为第一算子3的输入并输入第一算子3的第二输入接口。
例如,如图4B所示,在步骤S113中,可以将第一类型的张量1和第一类型的张量2的读取或存储方式设置为绕过目标缓存;在步骤S125中,可以经过目标缓存读取或存储第二类型的张量1、第二类型的张量2以及第一算子1和第一算子2的输出。
需要说明的是,图4A和图4B所示的人工智能模型以及其中的第一算子等仅为示例性的,人工智能模型的架构、包含的算子类型和数量、第一算子的各接口和张量类型等的具体实现方式可以根据实际需要进行选择,本公开的实施例对此不作限制。
在一些示例中,人工智能模型可以包括静态计算图模式和动态图计算模式。例如,静态计算图模式可以为利用算子和所需的各个参数等所构建的计算图,广泛应用于人工智能模型的推理过程。例如,动态图计算模式可以为即时执行(Eager Execution)模式,该模式可以分别调用单个算子,如果输出结果出现错误,可以查找每一步的计算过程以找到问题所在,从而方便了用户调试,广泛应用于人工智能模型的训练过程。
例如,在动态计算图模式下,只能获得单个算子的信息,而无法获得整个计算图的信息。例如,在某个算子需要读取某个张量时,不知道该张量是哪个算子的输出,也不知道该张量被设置了哪种读取或存储方式等。因此,在动态计算图模式下,可以将所有算子的同一类型的张量设置为相同的读取或存储方式。
例如,在静态计算图模式下,计算图的所有信息是可获得的。例如,在某个算子需要读取某个张量时,该张量是哪一个算子的输出,以及被设置了哪种读取或存储方式等信息都是可知的。因此,在静态计算图模式下,可以对人工智能模型进行更精细化的控制。
在一些示例中,响应于人工智能模型为动态计算图模式,本公开至少一实施例提供的人工智能模型的优化方法还包括步骤S130:设置绕过目标缓存读取或存储多个算子中的每个算子的第一类型的张量,以及设置经过目标缓存读取或存储每个算子的第二类型的张量。
例如,在步骤S130中,在动态计算图模式下,可以将人工智能模型的所有算子的同一类型的张量设置为相同的读取或存储方式,也即将每个算子的第一类型的张量的读取或存储方式设置为绕过目标缓存,将每个算子的第二类型的张量的读取或存储方式设置为经过目标缓存。
在一些示例中,响应于人工智能模型为静态计算图模式,多个算子还包括不同于第一算子的第二算子,本公开至少一实施例提供的人工智能模型的优化方法还包括步骤S140:设置绕过目标缓存读取或存储第二算子的第二类型的张量,以及设置经过目标缓存读取或存储第二算子的第一类型的张量。
例如,在步骤S140中,在静态计算图模式下,对于不同于第一算子的第二算子,可以设置与第一算子不同的读取或存储方式,也即将第二算子的第二类型的张量的读取或存储方式设置为绕过目标缓存,将第二算子的第一类型的张量的读取或存储方式设置为经过目标缓存。
例如,当第一算子的第一类型的张量为第一算子的权重张量,以及第一算子的第二类型的张量为第一算子的激活张量时,第二算子的第一类型的张量为第二算子的权重张量,第二算子的第二类型的张量为第二算子的激活张量。需要说明的是,第一算子和第二算子的张量也可以根据实际需要选择其他类型,本公开的实施例对此不作限制。
需要说明的是,在静态计算图模式下,可以为计算图的某一输入输出路径的张量设置一种读取或存储方式,为计算图的另一输入输出路径的张量设置另一种读取或存储方式;或者,也可以为计算图的某一输入输出路径的不同张量设置不同的读取或存储方式。例如,步骤S140中的第二算子和第一算子可以在同一输入输出路径中或不同的输入输出路径中,具体设置方式可以根据实际需要进行选择,本公开的实施例对此不作限制。
在本公开至少一实施例中,由于动态计算图模式下没有计算图的整体信息,通过将每个算子的第一类型的张量的读取或存储方式设置为绕过目标缓存,可以保证缓存一致性。例如,当算子的第一类型的张量为权重张量时,一方面,从算子角度,权重张量可能只在计算图的某些特定位置读取了一次,特别在重复读取激活算子的算法中,权重张量的利用率相比激活算子更低;另一方面,从模型角度,权重张量仅作为算子的输入而不是算子的输出,也即,下一个算子不会去读权重张量,而激活算子则会一直往前传播;因此,将权重张量设置为绕过目标缓存可以使激活算子缓存在目标缓存的可能性更大,从而可以提升人工智能模型的性能。
在本公开至少一实施例中,由于静态计算图模式中计算图的所有信息是可获得的,通过对计算图不同路径中不同算子的张量的读取和存储方式进行不同的设置,可以对人工智能模型进行更精细化的控制,从而可以进一步提升工智能模型的性能。
在一些示例中,人工智能模型的多个算子还包括不同于第一算子的第三算子,本公开至少一实施例提供的人工智能模型的优化方法还包括步骤S150:设置经过目标缓存读取或存储第三算子的张量。
例如,在步骤S150中,第三算子的类型可以与第一算子不同,第三算子的多个张量也需要利用目标缓存进行读取或存储。例如,在设置绕过目标缓存读取或存储第一算子的第一类型的张量的情况下,可以在目标缓存中为第三算子的张量预留更多的存储空间,从而可以减少第一算子和第三算子的资源竞争。
例如,在一些示例中,第一算子可以为计算算子,第三算子可以为通信算子。例如,计算算子用于在人工智能模型中执行具体的计算任务,例如执行卷积算法、批量标准化(Batch Normalization,BN)算法、池化(Pooling)算法等。例如,通信算子可以用于人工智能模型的分布式训练或推理中多个计算节点的之间的数据交换,例如,集合通信(Collective Communication)等。例如,常见的集合通信有如下几种:广播(Broadcast),即从一个节点向其他所有节点发送相同的数据;分散(Scatter),即一个节点将不同的数据块分发给组内的其他节点,每个节点收取唯一的一块数据;聚集(Gather),即与Scatter相反,组内的其它节点将数据发送给指定的某一个节点;归约(Reduce),即一个节点接受组内其他节点发出的数据,并生成汇总结果;分布式聚集(All-Gather),即每个节点都发送自身的数据,也接受组内其他节点发出的数据;分布式整合(All-Reduce),即每个节点都发送自身的数据,也接受组内其他节点发出的数据,并生成汇总结果;全互换(All-to-All),即每个节点将不同的数据块分发给组内的其他节点,同时也接收其他节点分发的数据块。例如,计算算子和通信算子也可以根据实际需要应用于其他场景,本公开的实施例对此不作限制。
例如,通信算子包括多个张量,通信算子的多个张量对应多个计算节点的数据,步骤S150可以进一步包括步骤S151:设置经过目标缓存读取或存储通信算子的多个张量,以在目标缓存中使用通信算子的多个张量执行多个计算节点之间的数据交换。
例如,在步骤S151中,通信算子的多个张量对应多个计算节点的数据,具体可以用于人工智能模型的分布式训练或推理中多个计算节点的之间的数据交换。例如,通信算子需要使用目标缓存(例如,L2缓存)的近存计算或存内计算功能做多卡规约。例如,通过在目标缓存上对多个计算节点的数据进行近存计算或存内计算,可以简化加载/存储(load/store)数据的过程,减少了存储带宽对计算速度的限制。
例如,在步骤S151中,由于第一算子的第一类型的张量没有占用目标缓存的存储空间,通信算子的张量可以更多地使用目标缓存的硬件资源,从而可以减少第一算子和第三算子的资源竞争,降低了多个计算节点之间的数据交换中的通信开销。
图5为本公开的至少一实施例提供的人工智能模型的优化装置的示意框图。
例如,如图5所示,本公开至少一实施例提供了一种人工智能模型的优化装置200,人工智能模型包括多个算子,多个算子包括第一算子。例如,该人工智能模型的优化装置200包括设置模块210。
例如,设置模块210配置为,设置绕过目标缓存读取或存储第一算子的第一类型的张量,以及设置经过目标缓存读取或存储第一算子的第二类型的张量。也即是,该设置模块210可以被配置为执行例如图2所示的步骤S110和S120。
在一些示例中,设置模块210还配置为,设置绕过目标缓存从内存中读取第一算子的第一类型的张量,或者,设置绕过目标缓存将第一算子的第一类型的张量存储到内存中。
在一些示例中,设置模块210还配置为,响应于第一算子的第二类型的张量没有缓存在目标缓存中,从内存中读取第一算子的第二类型的张量,并且将第一算子的第二类型的张量缓存在目标缓存中;响应于第一算子的第二类型的张量缓存在目标缓存中,从目标缓存中读取第一算子的第二类型的张量。
在一些示例中,设置模块210还配置为,响应于第一算子的第二类型的张量的尺寸小于目标缓存的可用空间的尺寸,或者响应于目标缓存中为第一算子的第二类型的张量预留有相应的存储空间,将第一算子的第二类型的张量缓存在目标缓存中;响应于第一算子的第二类型的张量的尺寸大于目标缓存的可用空间的尺寸并且目标缓存中没有为第一算子的第二类型的张量预留相应的存储空间,根据缓存策略将目标缓存中存储的部分数据逐出到内存中,以将第一算子的第二类型的张量缓存在目标缓存中。
在一些示例中,第一算子包括第一输入接口、第二输入接口和输出接口,第一输入接口对应于第一类型的张量,第二输入接口和输出接口对应于第二类型的张量。
例如,设置模块210还配置为,将输入第一算子的第一输入接口的张量的读取或存储方式设置为绕过目标缓存,以及经过目标缓存读取或存储输入第一算子的第二输入接口的张量,以及经过目标缓存读取或存储第一算子的输出接口输出的张量。
在一些示例中,响应于人工智能模型为动态计算图模式,设置模块210还配置为,设置绕过目标缓存读取或存储多个算子中的每个算子的第一类型的张量,以及设置经过目标缓存读取或存储每个算子的第二类型的张量。
在一些示例中,响应于人工智能模型为静态计算图模式,多个算子还包括不同于第一算子的第二算子。例如,设置模块210还配置为,设置绕过目标缓存读取或存储第二算子的第二类型的张量,以及设置经过目标缓存读取或存储第二算子的第一类型的张量。
例如,第二算子的第一类型的张量为第二算子的权重张量,第二算子的第二类型的张量为第二算子的激活张量。
在一些示例中,多个算子还包括不同于第一算子的第三算子。例如,设置模块210还配置为,设置经过目标缓存读取或存储第三算子的张量。
例如,第一算子为计算算子,第三算子为通信算子。
例如,通信算子包括多个张量,通信算子的多个张量对应多个计算节点的数据。例如,设置模块210还配置为,设置经过目标缓存读取或存储通信算子的多个张量,以在目标缓存中使用通信算子的多个张量执行多个计算节点之间的数据交换。
在一些示例中,第一算子的第一类型的张量为第一算子的权重张量,第一算子的第二类型的张量为第一算子的激活张量。
由于在上述描述例如图2~图4B所示的人工智能模型的优化方法的过程中,已经对上述人工智能模型的优化装置200的操作所涉及的内容的细节进行了介绍,因此这里为简洁起见不再赘述,相关细节可参照上文中关于本公开至少一实施例提供的人工智能模型的优化方法的描述。
需要说明的是,图5所示的人工智能模型的优化装置200中上述的各个模块可被分别配置为执行特定功能的软件、硬件、固件或上述项的任意组合。例如,这些模块可对应于专用的集成电路,也可对应于纯粹的软件代码,还可对应于软件与硬件相结合的模块。作为示例,参照图5描述的装置可以是PC计算机、平板装置、个人数字助理、智能手机、web应用或其它能够执行程序指令的装置,但不限于此。
另外,尽管以上在描述人工智能模型的优化装置200时将其划分为用于分别执行相应处理的模块,然而,本领域技术人员清楚的是,各模块执行的处理也可以在装置中不进行任何具体模块划分或者各模块之间并无明确划界的情况下执行。此外,以上参照图5描述的人工智能模型的优化装置200并不限于包括以上描述的模块,而是还可以根据需要增加一些其它模块(例如,读取模块、控制模块等),或者以上模块也可被组合。
本公开的至少一实施例还提供一种电子设备,该电子设备包括处理器和存储器;该存储器包括一个或多个计算机程序模块;该一个或多个计算机程序模块被存储在存储器中并被配置为由处理器执行,一个或多个计算机程序模块包括用于实现上文描述的本公开的实施例提供的人工智能模型的优化方法。
图6为本公开的至少一实施例提供的一种电子设备的示意框图。
例如,如图6所示,该电子设备300包括处理器310和存储器320。例如,存储器320用于存储非暂时性计算机可读指令(例如一个或多个计算机程序模块)。处理器310用于运行非暂时性计算机可读指令,非暂时性计算机可读指令被处理器310运行时可以执行根据如上描述的人工智能模型的优化方法的一个或多个步骤。存储器320和处理器310可以通过总线***和/或其它形式的连接机构(未示出)互连。
例如,处理器310可以是中央处理单元(CPU)、图形处理器(GPU)、通用图形处理器(GPGPU)、数字信号处理器(DSP)或者具有性能预测能力和/或程序执行能力的其它形式的处理单元,例如现场可编程门阵列(FPGA)等;例如,中央处理单元(CPU)可以为X86、RISC-V或ARM架构等。处理器310可以为通用处理器或专用处理器,可以控制电子设备300中的其它组件以执行期望的功能。
例如,存储器320可以包括一个或多个计算机程序产品的任意组合,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、可擦除可编程只读存储器(EPROM)、便携式光盘只读存储器(CD-ROM)、USB存储器、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序模块,处理器310可以运行一个或多个计算机程序模块,以实现电子设备300的各种功能。在计算机可读存储介质中还可以存储各种应用程序和各种数据以及应用程序使用和/或产生的各种数据等。
需要说明的是,本公开的实施例中,电子设备300的具体功能和技术效果可以参考上文中关于本公开至少一实施例提供的人工智能模型的优化方法的描述,此处不再赘述。
图7为本公开的至少一实施例提供的另一种电子设备的示意框图。
例如,如图7所示,该电子设备400例如适于用来实施本公开实施例提供的人工智能模型的优化方法。需要注意的是,图7示出的电子设备400仅是一个示例,其不会对本公开实施例的功能和使用范围带来任何限制。
例如,如图7所示,电子设备400可以包括处理装置(例如中央处理器、图形处理器等)41,其可以根据存储在只读存储器(ROM)42中的程序或者从存储装置48加载到随机访问存储器(RAM)43中的程序而执行各种适当的动作和处理。在RAM 43中,还存储有电子设备400操作所需的各种程序和数据。处理装置41、ROM 42以及RAM 43通过总线44彼此相连。输入/输出(I/O)接口45也连接至总线44。通常,以下装置可以连接至I/O接口45:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置46;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置47;包括例如磁带、硬盘等的存储装置48;以及通信装置49。通信装置49可以允许电子设备400与其他电子设备进行无线或有线通信以交换数据。
虽然图7示出了具有各种装置的电子设备400,但应理解的是,并不要求实施或具备所有示出的装置,电子设备400可以替代地实施或具备更多或更少的装置。
关于电子设备400的详细说明和技术效果,可以参考上文关于本公开至少一实施例提供的人工智能模型的优化方法的相关描述,此处不再赘述。
图8为本公开的至少一实施例提供的一种存储介质的示意图。
例如,如图8所示,存储介质500存储有非暂时性计算机可读指令510。例如,当非暂时性计算机可读指令510由计算机执行时执行根据上文描述的人工智能模型的优化方法中的一个或多个步骤。
例如,该存储介质500可以应用于图6所示的电子设备300中。例如,存储介质500可以为电子设备300中的存储器320。例如,关于存储介质500的相关说明可以参考图6所示的电子设备300中的存储器320的相应描述,此处不再赘述。
对于本公开,有以下几点需要说明:
(1)本公开实施例附图中,只涉及到与本公开实施例涉及到的结构,其他结构可参考通常设计。
(2)在不冲突的情况下,本公开同一实施例及不同实施例中的特征可以相互组合。
以上,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以权利要求的保护范围为准。
Claims (19)
1.一种人工智能模型的优化方法,其中,所述人工智能模型包括多个算子,所述多个算子包括第一算子,
所述人工智能模型的优化方法包括:
设置绕过目标缓存读取或存储所述第一算子的第一类型的张量,以及
设置经过所述目标缓存读取或存储所述第一算子的第二类型的张量。
2.根据权利要求1所述的人工智能模型的优化方法,其中,所述设置绕过目标缓存读取或存储所述第一算子的第一类型的张量,包括:
设置绕过所述目标缓存从内存中读取所述第一算子的第一类型的张量,或者,
设置绕过所述目标缓存将所述第一算子的第一类型的张量存储到所述内存中。
3.根据权利要求1所述的人工智能模型的优化方法,其中,设置经过所述目标缓存读取所述第一算子的第二类型的张量,包括:
响应于所述第一算子的第二类型的张量没有缓存在所述目标缓存中,从内存中读取所述第一算子的第二类型的张量,并且将所述第一算子的第二类型的张量缓存在所述目标缓存中;
响应于所述第一算子的第二类型的张量缓存在所述目标缓存中,从所述目标缓存中读取所述第一算子的第二类型的张量。
4.根据权利要求1所述的人工智能模型的优化方法,其中,设置经过所述目标缓存存储所述第一算子的第二类型的张量,包括:
响应于所述第一算子的第二类型的张量的尺寸小于所述目标缓存的可用空间的尺寸,或者响应于所述目标缓存中为所述第一算子的第二类型的张量预留有相应的存储空间,将所述第一算子的第二类型的张量缓存在所述目标缓存中;
响应于所述第一算子的第二类型的张量的尺寸大于所述目标缓存的可用空间的尺寸并且所述目标缓存中没有为所述第一算子的第二类型的张量预留相应的存储空间,根据缓存策略将所述目标缓存中存储的部分数据逐出到内存中,以将所述第一算子的第二类型的张量缓存在所述目标缓存中。
5.根据权利要求1所述的人工智能模型的优化方法,其中,所述第一算子包括第一输入接口、第二输入接口和输出接口,所述第一输入接口对应于所述第一类型的张量,所述第二输入接口和所述输出接口对应于所述第二类型的张量。
6. 根据权利要求5所述的人工智能模型的优化方法,其中,所述设置绕过目标缓存读取或存储所述第一算子的第一类型的张量,包括:
将输入所述第一算子的第一输入接口的张量的读取或存储方式设置为绕过所述目标缓存,以及
所述设置经过所述目标缓存读取或存储所述第一算子的第二类型的张量,包括:
经过所述目标缓存读取或存储输入所述第一算子的第二输入接口的张量,以及经过所述目标缓存读取或存储所述第一算子的输出接口输出的张量。
7. 根据权利要求1所述的人工智能模型的优化方法,其中,响应于所述人工智能模型为动态计算图模式,所述人工智能模型的优化方法还包括:
设置绕过所述目标缓存读取或存储所述多个算子中的每个算子的第一类型的张量,以及
设置经过所述目标缓存读取或存储所述每个算子的第二类型的张量。
8.根据权利要求1所述的人工智能模型的优化方法,其中,响应于所述人工智能模型为静态计算图模式,所述多个算子还包括不同于所述第一算子的第二算子,
所述人工智能模型的优化方法还包括:
设置绕过目标缓存读取或存储所述第二算子的第二类型的张量,以及
设置经过所述目标缓存读取或存储所述第二算子的第一类型的张量。
9.根据权利要求8所述的人工智能模型的优化方法,其中,所述第二算子的第一类型的张量为所述第二算子的权重张量,所述第二算子的第二类型的张量为所述第二算子的激活张量。
10.根据权利要求1所述的人工智能模型的优化方法,其中,所述多个算子还包括不同于所述第一算子的第三算子,
所述人工智能模型的优化方法还包括:
设置经过所述目标缓存读取或存储所述第三算子的张量。
11.根据权利要求10所述的人工智能模型的优化方法,其中,所述第一算子为计算算子,所述第三算子为通信算子。
12.根据权利要求11所述的人工智能模型的优化方法,其中,所述通信算子包括多个张量,所述通信算子的多个张量对应多个计算节点的数据,
所述设置经过所述目标缓存读取或存储所述第三算子的张量,包括:
设置经过所述目标缓存读取或存储所述通信算子的多个张量,以在所述目标缓存中使用所述通信算子的多个张量执行所述多个计算节点之间的数据交换。
13.根据权利要求1-12中任一项所述的人工智能模型的优化方法,其中,所述第一算子的第一类型的张量为所述第一算子的权重张量,所述第一算子的第二类型的张量为所述第一算子的激活张量。
14.一种人工智能模型的优化装置,其中,所述人工智能模型包括多个算子,所述多个算子包括第一算子,
所述人工智能模型的优化装置包括:
设置模块,配置为设置绕过目标缓存读取或存储所述第一算子的第一类型的张量,以及设置经过所述目标缓存读取或存储所述第一算子的第二类型的张量。
15. 根据权利要求14所述的人工智能模型的优化装置,其中,响应于所述人工智能模型为动态计算图模式,所述设置模块还配置为:
设置绕过所述目标缓存读取或存储所述多个算子中的每个算子的第一类型的张量,以及
设置经过所述目标缓存读取或存储所述每个算子的第二类型的张量。
16.根据权利要求14所述的人工智能模型的优化装置,其中,响应于所述人工智能模型为静态计算图模式,所述多个算子还包括不同于所述第一算子的第二算子,
所述设置模块还配置为:
设置经过所述目标缓存读取或存储所述第二算子的第一类型的张量,以及
设置绕过目标缓存读取或存储所述第二算子的第二类型的张量。
17.根据权利要求14所述的人工智能模型的优化装置,其中,所述多个算子还包括不同于所述第一算子的第三算子,
所述设置模块还配置为,设置经过所述目标缓存读取或存储所述第三算子的张量。
18.一种电子设备,包括:
处理器;
存储器,包括一个或多个计算机程序模块;
其中,所述一个或多个计算机程序模块被存储在所述存储器中并被配置为由所述处理器执行,所述一个或多个计算机程序模块用于实现权利要求1-13任一项所述的人工智能模型的优化方法。
19.一种存储介质,存储有非暂时性计算机可读指令,当所述非暂时性计算机可读指令由计算机执行时实现权利要求1-13任一项所述的人工智能模型的优化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410501468.2A CN118070865B (zh) | 2024-04-25 | 2024-04-25 | 人工智能模型的优化方法及装置、电子设备与存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410501468.2A CN118070865B (zh) | 2024-04-25 | 2024-04-25 | 人工智能模型的优化方法及装置、电子设备与存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN118070865A true CN118070865A (zh) | 2024-05-24 |
CN118070865B CN118070865B (zh) | 2024-07-23 |
Family
ID=91108175
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410501468.2A Active CN118070865B (zh) | 2024-04-25 | 2024-04-25 | 人工智能模型的优化方法及装置、电子设备与存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118070865B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103412884A (zh) * | 2013-07-18 | 2013-11-27 | 华中科技大学 | 一种异构存储介质下嵌入式数据库的管理方法 |
US20160034397A1 (en) * | 2013-04-16 | 2016-02-04 | Huawei Technologies Co., Ltd. | Method and Apparatus for Processing Data and Computer System |
CN105843775A (zh) * | 2016-04-06 | 2016-08-10 | 中国科学院计算技术研究所 | 片上数据划分读写方法、***及其装置 |
CN110689122A (zh) * | 2019-09-25 | 2020-01-14 | 苏州浪潮智能科技有限公司 | 一种存储***和方法 |
CN112148668A (zh) * | 2020-09-15 | 2020-12-29 | 浙江大华技术股份有限公司 | 基于片上缓存的数据保存方法及装置、存储介质 |
CN113590045A (zh) * | 2021-08-03 | 2021-11-02 | 中国联合网络通信集团有限公司 | 数据分层式存储方法、装置及存储介质 |
CN116028384A (zh) * | 2021-10-26 | 2023-04-28 | 太初(无锡)电子科技有限公司 | 一种基于多张量核心处理器的卷积计算数据重用方法 |
CN116185942A (zh) * | 2021-11-29 | 2023-05-30 | 寒武纪(昆山)信息科技有限公司 | 数据处理方法、装置、存储介质以及电子设备 |
CN116992932A (zh) * | 2022-04-24 | 2023-11-03 | 南京航空航天大学 | 一种数据片外分块传输的参数化lstm加速***及其设计方法 |
US20230385043A1 (en) * | 2022-05-25 | 2023-11-30 | SambaNova Systems, Inc. | Skip Buffer Splitting |
-
2024
- 2024-04-25 CN CN202410501468.2A patent/CN118070865B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160034397A1 (en) * | 2013-04-16 | 2016-02-04 | Huawei Technologies Co., Ltd. | Method and Apparatus for Processing Data and Computer System |
CN103412884A (zh) * | 2013-07-18 | 2013-11-27 | 华中科技大学 | 一种异构存储介质下嵌入式数据库的管理方法 |
CN105843775A (zh) * | 2016-04-06 | 2016-08-10 | 中国科学院计算技术研究所 | 片上数据划分读写方法、***及其装置 |
CN110689122A (zh) * | 2019-09-25 | 2020-01-14 | 苏州浪潮智能科技有限公司 | 一种存储***和方法 |
CN112148668A (zh) * | 2020-09-15 | 2020-12-29 | 浙江大华技术股份有限公司 | 基于片上缓存的数据保存方法及装置、存储介质 |
CN113590045A (zh) * | 2021-08-03 | 2021-11-02 | 中国联合网络通信集团有限公司 | 数据分层式存储方法、装置及存储介质 |
CN116028384A (zh) * | 2021-10-26 | 2023-04-28 | 太初(无锡)电子科技有限公司 | 一种基于多张量核心处理器的卷积计算数据重用方法 |
CN116185942A (zh) * | 2021-11-29 | 2023-05-30 | 寒武纪(昆山)信息科技有限公司 | 数据处理方法、装置、存储介质以及电子设备 |
CN116992932A (zh) * | 2022-04-24 | 2023-11-03 | 南京航空航天大学 | 一种数据片外分块传输的参数化lstm加速***及其设计方法 |
US20230385043A1 (en) * | 2022-05-25 | 2023-11-30 | SambaNova Systems, Inc. | Skip Buffer Splitting |
Non-Patent Citations (1)
Title |
---|
安静到无声: "MobileNeXt: Rethinking Bottleneck Structure for Efficient M obile Network Design 翻译", pages 1 - 11, Retrieved from the Internet <URL:https://blog.51cto.com/lihuanyu/6175106> * |
Also Published As
Publication number | Publication date |
---|---|
CN118070865B (zh) | 2024-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110689115B (zh) | 神经网络模型处理方法、装置、计算机设备及存储介质 | |
CN112214726B (zh) | 运算加速器 | |
CN109102065B (zh) | 一种基于PSoC的卷积神经网络加速器 | |
TWI798618B (zh) | 記憶體分配方法、裝置、及電子設備 | |
JP7430744B2 (ja) | 機械学習モデルを改良して局所性を改善させること | |
KR20210148586A (ko) | 스케줄러, 스케줄러의 동작 방법 및 이를 포함한 가속기 시스템 | |
CN113065643A (zh) | 一种用于执行多任务卷积神经网络预测的装置和方法 | |
US20210200584A1 (en) | Multi-processor system, multi-core processing device, and method of operating the same | |
US11921667B2 (en) | Reconfigurable computing chip | |
CN115640243A (zh) | 用于机器学习处理的存储器共享 | |
CN105874431A (zh) | 减少数据交换负载的计算***以及相关的数据交换方法 | |
CN116382599B (zh) | 一种面向分布式集群的任务执行方法、装置、介质及设备 | |
CN118070865B (zh) | 人工智能模型的优化方法及装置、电子设备与存储介质 | |
CN110837419A (zh) | 基于弹性批处理的推理引擎***、方法及电子设备 | |
KR20230068992A (ko) | 가속을 통한 신경망 훈련 | |
KR20240007354A (ko) | 가속기를 분할하는 전자 장치, 배치를 할당하는 전자 장치 및 그 동작 방법 | |
CN113434813B (zh) | 一种基于神经网络的矩阵乘运算方法及相关装置 | |
KR20230068709A (ko) | 스케줄러, 스케줄러의 동작 방법 및 이를 포함한 전자 장치 | |
KR102674475B1 (ko) | 복수의 뉴럴 네트워크들을 실행하기 위한 전자 장치 | |
CN114402304A (zh) | 存储器共享 | |
KR20210157636A (ko) | 가속기, 가속기의 동작 방법 및 이를 포함한 가속기 시스템 | |
WO2023115529A1 (zh) | 芯片内的数据处理方法及芯片 | |
US11899551B1 (en) | On-chip software-based activity monitor to configure throttling at a hardware-based activity monitor | |
KR20220049294A (ko) | 스케줄러, 스케줄러의 동작 방법 및 이를 포함한 전자 장치 | |
CN117992242B (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 | ||
GR01 | Patent grant |