CN115907013A - 人工智能模型的算子的管理系统、方法、设备和介质 - Google Patents

人工智能模型的算子的管理系统、方法、设备和介质 Download PDF

Info

Publication number
CN115907013A
CN115907013A CN202211209687.0A CN202211209687A CN115907013A CN 115907013 A CN115907013 A CN 115907013A CN 202211209687 A CN202211209687 A CN 202211209687A CN 115907013 A CN115907013 A CN 115907013A
Authority
CN
China
Prior art keywords
operator
plug
parameter
operators
conversion
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
Application number
CN202211209687.0A
Other languages
English (en)
Inventor
请求不公布姓名
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Biren Intelligent Technology Co Ltd
Original Assignee
Shanghai Biren Intelligent Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Biren Intelligent Technology Co Ltd filed Critical Shanghai Biren Intelligent Technology Co Ltd
Priority to CN202211209687.0A priority Critical patent/CN115907013A/zh
Publication of CN115907013A publication Critical patent/CN115907013A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

提供人工智能模型的算子的管理系统、人工智能模型的算子的管理方法、电子设备和非暂时存储介质。人工智能模型的算子的管理系统包括:算子管理器模块,包括算子容器,所述算子容器用于存储多个算子,所述多个算子的每个算子具有参数,其中所述参数至少包括所述算子所支持的对所述算子进行的操作的类型、所述算子所支持的后端平台类型、所述算子的算子标识;前端算子定义插件,被配置为响应于加载具有所述参数的算子而被调用,以从所述算子容器中提供具有所述参数的所述算子。

Description

人工智能模型的算子的管理系统、方法、设备和介质
技术领域
本申请涉及人工智能领域,且更具体地涉及人工智能模型的算子的管理 系统、人工智能模型的算子的管理方法、电子设备和非暂时存储介质。
背景技术
人工智能模型通常是用来进行推理预测的神经网络模型,例如图像推理 模型、语音推理模型等。输入一张带有动物的图像,经过人工智能模型的推 理,直接输出一个标签,表示这张图中的物体是什么,例如是狗或者猫。神经 网络模型可以是卷积神经网络模型等。
人工智能模型的运算可以由计算图(computation graph)中的算子(operator)来实现。人工智能模型的运算通过预设的计算图转换规则,即可转换为该人 工智能模型所对应的计算图。计算图是一种用于表示人工智能模型的计算任 务和数据流过程的多图结构。算子指的是对人工智能模型中各层的张量所做 的各种运算,例如人工智能模型的卷积层对人工智能模型的输入数据所做的 卷积运算即为卷积算子。张量可以理解为多维数组,其可以具有任意多的维 度,不同的张量可以由不同的数据类型和形状。算子可以理解为一个计算函 数,其输入和输出都是张量。人工智能模型的计算图可以包括对张量进行众 多种类运算的算子,例如卷积算子、全连接算子、池化算子、转置算子、Sobel 算子、reshape算子、Transpose算子等等。
人工智能推理引擎是将逻辑规则应用于知识库以推断出新信息的系统组 件。由于知识库中的每个新事实都可能触发推理引擎中的其他规则,因此该 过程将重复进行。推理引擎主要以特殊规则或事实两种模式之一工作,前向 链接和后向链接。前向链接从已知事实开始,然后断言新事实。向后链接从 目标开始,并向后工作以确定必须断言哪些事实才能实现目标。推理引擎通 过三个连续步骤循环:匹配规则,选择规则和执行规则。这个循环可以一直 持续到没有新的规则可以匹配为止。
随着手机算力的不断提升,以及深度学习的快速发展,特别是小网络模 型不断成熟,原本在云端执行的推理预测就可以转移到端上来做。在端侧部 署运行人工智能AI算法,具有低延时、兼顾数据隐私、节省云端资源等优势。
现有的各种推理引擎框架,如ONNX Runtime、移动人工智能(Mobile NeuralNetwork,MNN)、TensorRT等。例如MNN是一个轻量级的深度人工 智能推理引擎,在端侧加载深度人工智能模型进行推理预测,适用于服务器/ 个人电脑/手机/嵌入式各类设备。
上述各种推理引擎框架均支持一定程度的自定义算子。自定义算子指的 是根据用户的实际需求而编写的运行特定运算的算子。
仍需要一种算子管理框架来高效地管理和支持自定义算子。
发明内容
根据本申请的一个方面,提供一种人工智能模型的算子的管理系统,包 括:算子管理器模块,包括算子容器,所述算子容器用于存储多个算子,所述 多个算子的每个算子具有参数,其中所述参数至少包括所述算子所支持的对 所述算子进行的操作的类型、所述算子所支持的后端平台类型、所述算子的 算子标识;前端算子定义插件,被配置为响应于加载具有所述参数的算子而 被调用,以从所述算子容器中提供具有所述参数的所述算子。
根据本申请的另一个方面,提供一种人工智能模型的算子的管理方法, 包括:提供算子管理器模块,包括算子容器,所述算子容器用于存储多个算 子,所述多个算子的每个算子具有参数,其中所述参数至少包括所述算子所 支持的对所述算子进行的操作的类型、所述算子所支持的后端平台类型、所 述算子的算子标识;提供前端算子定义插件,被配置为响应于加载具有所述 参数的算子而被调用,以从所述算子容器中提供具有所述参数的所述算子。
根据本申请的另一个方面,提供一种电子设备,包括:存储器,用于存 储指令;处理器,用于读取所述存储器中的指令,并执行根据本申请实施方 式的方法。
根据本申请的另一个方面,提供一种非暂时存储介质,其上存储有指 令,其中,所述指令在被处理器读取时,使得所述处理器执行根据本申请实 施方式的方法。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实 施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面 描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲, 在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了根据本申请实施方式的人工智能模型的算子的管理系统的示 例方框图。
图2示出了根据本申请另一实施方式的人工智能模型的算子的管理系统 的示例方框图。
图3示出了根据本申请实施方式的人工智能模型的算子的管理方法。
图4示出了根据本申请实施方式的人工智能模型的算子的管理方法的算 子插件的增加过程的流程图。
图5示出根据本申请实施方式的加载动态算子插件的过程的示意流程图。
图6示出了根据本申请实施方式的推理引擎加载模型到执行推理的过程 的流程图。
图7示出了适于用来实现本申请实施方式的示例性电子设备的框图。
图8示出了根据本公开的实施例的非暂时性计算机可读存储介质的示意 图。
具体实施方式
现在将详细参照本申请的具体实施例,在附图中例示了本申请的例子。 尽管将结合具体实施例描述本申请,但将理解,不是想要将本申请限于描述 的实施例。相反,想要覆盖由所附权利要求限定的在本申请的精神和范围内 包括的变更、修改和等价物。应注意,这里描述的方法步骤都可以由任何功 能块或功能布置来实现,且任何功能块或功能布置可被实现为物理实体或逻 辑实体、或者两者的组合。
在现有技术中,虽然现有的推理引擎框架可以在一定程度上支持自定义 算子,但有些自定义算子是直接通过开源添加代码的方式支持的、例如利用 Python或C++等语言来编写自定义算子,有些自定义算子则是利用动态链接 库的方式在执行期固定地加载的。
但是,以添加代码的方式添加自定义算子,不具有灵活的可扩展性,且 部署不方便。而在执行期固定地加载动态库的方式则不能在运行时实时添加 和升级。导致自定义算子在现有推理引擎框架中不能像已定义的算子一样具 有与其相关的例如图转换、编译、连接等的支持。现有技术中只允许自定义 很少的插件,且不支持自定义算子的复杂行为,无法将自定义算子像内置算 子一样融入图优化过程。这里的图优化指的是对包括算子的计算图的优化。
本申请旨在在人工智能领域中的模型及算子一直在发展并扩展的今天, 提供一种动态算子库和其管理方案,使得可以在推理引擎框架代码发布后、 在部分核心流程不变的情况下,也能方便地动态扩展自定义算子,并支持的 新扩展的自定义算子、并支持例如与自定义算子相关的新的模型以及策略。 本申请通过插件方式的动态算子库使得算子之间解耦,可以有效的并行添加 新的自定义算子。新添加的算子所依赖的操作也可以以插件的方式进入程序, 能够便利地扩展计算图上的操作,如图转换、编译、链接等。
图1示出了根据本申请实施方式的人工智能模型的算子的管理系统100 的示例方框图。
如图1所示,人工智能模型的算子的管理系统100包括算子管理器模块 110,包括算子容器(Container),算子容器用于存储多个算子,多个算子的每 个算子具有参数,其中参数至少包括算子所支持的对算子进行的操作的类型、 算子所支持的后端平台类型、算子的算子标识;前端算子定义插件120,被配 置为响应于加载具有参数的算子而被调用,以从算子容器中提供具有参数的 算子。
如此,在算子管理器模块中设置了算子容器之后,可以存储任何新自定 义的算子及至少包括新自定义算子所支持的对算子进行的操作的类型、算子 所支持的后端平台类型、算子的算子标识的参数,来为以后支持算子的与自 定义算子相关的新的模型以及策略以及图优化等做基础。而前端算子定义插 件可以帮助基于特定参数来提供具有特定参数的算子,即实现算子的查找、 加载等操作。
图2示出了根据本申请另一实施方式的人工智能模型的算子的管理系统 200的示例方框图。
如图2所示,人工智能模型的算子的管理系统200包括算子管理器模块 210,包括算子容器(Container),算子容器用于存储多个算子,多个算子的每 个算子具有参数,其中参数至少包括算子所支持的对算子进行的操作的类型、 算子所支持的后端平台类型、算子的算子标识;前端算子定义插件220,被配 置为响应于加载具有参数的算子而被调用,以从算子容器中提供具有参数的 算子。
在这里,参数除了包括算子所支持的对算子进行的操作的类型、算子所 支持的后端平台类型、算子的算子标识以外,还可以包括扩展参数,以便日 后扩展算子的其他参数来扩展其功能。
另外,算子管理器模块210还具有查找接口211、注册接口212和加载 接口213中的至少一个,其中,查找接口211被配置为基于参数来在算子容 器中查找具有参数的算子;注册接口212被配置为将算子及其参数注册到算 子容器中;加载接口213被配置为基于可配置的路径和插件匹配规则从路径 加载前端算子定义插件。
如此,通过查找接口211、注册接口212和加载接口213可以方便地在 算子容器中注册具有参数的新的自定义算子、并利用参数查找并提供算子容 器中的各种算子以及在推理引擎框架中加载前端算子定义插件。
以上的动态的算子插件可以拥有统一接口:register(container,操作类型, 后端类型,算子标识),这个接口的实现将调用算子管理器模块 (PluginContainer)的寄存器接口。
在一个实施例中,人工智能模型的算子的管理系统200还包括:前端算 子优化定义插件230,被配置为响应于对具有参数的算子进行前端优化而被 调用,以提供对具有参数的算子进行前端优化的功能。
前端算子优化定义插件230可以通过如下步骤而插入的:响应于具有参 数的算子被注册到算子容器中,确定是否需要针对具有参数的算子增加前端 优化策略(即优化定义);如果确定需要针对具有参数的算子增加前端优化策 略,则生成前端算子优化定义插件230;将前端算子优化定义插件230添加到 系统中。
这里的前端优化策略是例如推理框架前端的图优化策略。算子的图优化 策略通常包括对各个计算图中的算子进行算子替换、算子拆分、算子融合和 算子消除等来进行图转换,然后将图转换后的计算图解空间求解最优计算图, 从而达到优化计算图的目的。
对于新的自定义算子,可能根据其形态和特性来定义该自定义的算子可 以存在什么样的优化策略,例如,它可以与何种算子进行融合、消除,它可以 替换为何种算子,以及其可以被拆分成哪些算子,或者有几种不同的融合、 消除、替换、拆分方式。因此,通过前端算子优化定义插件中定义对特定算子 的特定的优化策略,可以在后续进行图优化的时候对特定算子进行这些优化 策略,再进行整体的图优化。
如此,由于新的自定义算子有可能与计算图中的其他算子一起进行图优 化,因此根据本申请的实施方式,在例如新的自定义算子被注册到算子容器 中时,可以同步地添加与该自定义算子相关的前端算子优化定义插件来支持 该自定义算子的前端优化策略。
在一个实施例中,人工智能模型的算子的管理系统200还包括:算子转 换插件240,被配置为响应于对具有参数的算子进行转换而被调用,以提供对 具有参数的算子进行转换从而进行包括算子的计算图的图优化的功能,其中, 转换包括算子融合、算子拆分、算子替换、算子消除中的一种或多种。
算子转换插件240是通过如下步骤而插入的:响应于具有参数的算子被 注册到算子容器中,确定是否需要针对具有参数的算子增加转换策略;如果 确定需要针对具有参数的算子增加转换策略,则生成算子转换插件240;将算 子转换插件240添加到系统中。
算子替换的操作是将后端不支持的算子替换为后端支持的一个或多个算 子的组合。在这里,例如后端可以包括图形处理单元GPU、中央处理器CPU、 现场可编程逻辑阵列FPGA等。目前,各种深度学习框架中计算图执行通常 是在单一的计算设备上,像tensorflow、pytorch等深度学习框架在GPU后端 上取得非常好的效果,但不支持其他的后端设备如FPGA,因此需要将后端不 支持的算子替换为后端支持的一个或多个算子的组合。其中,算子替换还可 以包括算子类型的转换。算子类型转换的操作是将算子从一种类型转换为另 一类型。
算子拆分的操作是将计算量大于第一预定阈值的算子拆分为多个相同类 型的计算量小于第二预定阈值的算子,其中,第一预定阈值大于或等于第二 预定阈值。也就是说,将计算量大的大算子拆分为计算量小的几个小算子。 具体地,可以将计算量大的大算子拆分为计算量小的同类型的几个小算子。 例如,将一个大的Conv算子拆分为共享同一输入的多个小的Conv算子,共 同实现该大的Conv算子的功能。也可以将后端不支持的类型的计算量大的 大算子拆分成后端支持的计算量小的不同类型的小算子。
算子融合的操作是将符合一个条件的多个算子聚合为一个算子。例如, 条件是:如果存在共享同一输入的多个Conv算子,就可以将这些Conv算子 合并为一个更大的Conv算子。或者,条件是将Conv算子、批标准化(batch normalization,BN)算子和Relu算子融合为一个新的算子,例如称为CBR算 子,以降低算子调度开销和算子间的数据访存开销。举例来说,假设要计算 Relu(X+Y),X和Y的长度均为L。在Tensorflow中会对应到2个算子: Add和Relu。做Add计算时,先要将X和Y从内存中读出,然后再将计 算结果写入到内存,因此Add计算需要从内存中读写的数据量为3L。做 Relu计算时,同样需要将输入数据从内存中读出,然后再将结果写回到内存, 因此Relu计算需要从内存中读写的数据量为2L。Add和Relu加起来读写 数据的总量为5L。如果将其融合为一个算子,将X和Y从内存中读出后, 先做加法,然后做Relu计算,再将最后的结果保存到内存,这样读写数据的 总量仅为3L。
算子消除的操作是将符合一个条件的算子消除。例如两个算子分别是 transpose(m,n)以及紧接着的transpose(n,m),相当于两个算子运算完实 际上对张量没有改变,那么就可以将transpose(m,n)以及紧接着的transpose (n,m)直接消除(其中,m和n是正整数)。
图优化可以减少算子的数量,例如通过算子融合还是算子消除,或者在 算子替换和算子拆分之后再与算子进行算子融合或消除,因为对于框架来说, 从一个算子到另一个算子之间就意味着数据的搬运。例如,将BN算子与Conv 算子融合,就可以减少了将原Conv算子输出数据搬运给BN算子输入。图优 化还可以匹配硬件的限制,例如后端硬件不支持的算子替换为后端硬件支持 的算子等等,例如,将各种算子替换成卷积算子。
如此,在插入自定义算子时,可以插入算子转换插件,以支持对插入了 自定义算子的计算图应用多种转换操作,用于通过求出插入自定义算子之后 的计算图的图优化的最优解进行图优化,如此可以在推理引擎框架中提供对 自定义算子的图转换和图优化的支持。
如此,可以在推理引擎框架中添加算子转换插件,基于前端算子优化定 义插件支持的特定算子的特定优化策略以及已有算子的已有优化策略,利用 算子转换插件对计算图中的算子进行转换,更有利于对新增了自定义算子的 计算图的特定图优化的支持。
在进行图优化之后,原本新增的自定义算子可能会被转换为与原先的自 定义算子不同的新的转换算子,当然,也可能在图优化之后与原先的自定义 算子没有变化,因此,之后对图优化之后的自定义算子统称为具有参数的算 子或优化后的计算图中的新的转换算子。
在一个实施例中,人工智能模型的算子的管理系统200还可以包括算子 编译插件250,被配置为响应于对具有参数的算子或优化后的计算图中的新 的转换算子进行编译而被调用,以提供对具有参数的算子或优化后的计算图 中的新的转换算子进行编译的功能。
算子编译插件250是通过如下步骤而插入的:响应于具有参数的算子被 注册到算子容器中,确定编译插件集合是否能够编译具有参数的算子或优化 后的计算图中的新的转换算子;如果确定编译插件集合不能够编译具有参数 的算子或优化后的计算图中的新的转换算子,则生成算子编译插件250;将算 子编译插件250添加到系统中(的例如编译插件集合中)。
算子编译插件250可以将具有参数的算子或优化后的计算图中的新的转 换算子进行编译以便后续链接为可执行单元。
编译一般是先生成中间表达式(intermediate representation)。具体过程在此由于篇幅原因不详细阐述。
在这里,编译插件集合可以是推理引擎框架中已有的用于编译算子的插 件集合,如果确定已有的编译插件集合不能够编译具有参数的新算子或优化 后的计算图中的新的转换算子,则说明新算子(新的转换算子)缺少对其的 编译插件,因此,生成用于编译该新算子(新的转换算子)以实现新算子(新 的转换算子)的后端代码的配置和生成中间表达式的算子编译插件250。
如此,可以在推理引擎框架中添加算子编译插件来将具有参数的算子或 优化后的计算图中的新的转换算子进行编译。
在一个实施例中,人工智能模型的算子的管理系统200还可以包括:算 子链接插件260,被配置为响应于对具有参数的算子或优化后的计算图中的 新的转换算子进行链接而被调用,以提供对具有参数的算子或优化后的计算 图中的新的转换算子进行链接的功能。
算子链接插件260是通过如下步骤而插入的:响应于具有参数的算子被 注册到算子容器中,确定链接插件集合是否能够链接具有参数的算子或优化 后的计算图中的新的转换算子;如果确定链接插件集合不能够链接具有参数 的算子或优化后的计算图中的新的转换算子,则生成算子链接插件260;将算 子编译插件260添加到系统中(的例如链接插件集合中)。
算子链接插件260可以将具有参数的算子或优化后的计算图中的新的转 换算子的编译结果进行链接以生成可执行单元。
在这里,链接插件集合可以是推理引擎框架中已有的用于链接算子的插 件集合,如果确定已有的链接插件集合不能够链接具有参数的新算子或优化 后的计算图中的新的转换算子,则说明新算子(新的转换算子)缺少对其的 链接插件,因此,生成用于链接该新算子(新的转换算子)以对应于后端实现 根据之前编译得到的中间表达式生成新算子(新的转换算子)的可执行二进 制代码的算子链接插件250。
如此,可以在推理引擎框架中添加算子链接插件来将具有参数的算子或 优化后的计算图中的新的转换算子的编译结果进行链接以生成可执行单元, 以便后续执行该可执行单元。
在一个实施例中,人工智能模型的算子的管理系统200还可以包括:算 子执行插件270,被配置为响应于对具有参数的算子进行执行而被调用,以提 供对具有参数的算子进行执行的功能。
算子执行插件270是通过如下步骤而插入的:响应于具有参数的算子被 注册到算子容器中,确定算子执行集合是否能够执行具有参数的算子或优化 后的计算图中的新的转换算子;确定算子执行集合不能够执行具有参数的算 子或优化后的计算图中的新的转换算子,则生成算子执行插件270;将算子执 行插件270添加到系统中(的例如算子执行集合中)。
如此,可以在推理引擎框架中添加算子执行插件来调用后端来执行先前 生成的可执行单元(可执行二进制代码)。
在这里,算子执行集合可以是推理引擎框架中已有的用于执行算子的插 件集合,如果确定已有的算子执行集合不能够链接具有参数的新算子或优化 后的计算图中的新的转换算子,则说明新算子(新的转换算子)缺少对其的 执行插件,因此,生成用于执行该新算子(新的转换算子)的算子执行插件 250。
举一个具体的例子来阐述增加一个后端支持的新算子conv之后的流程。
假设该新算子的后端直接使用conv算子,不需要替换。可以进行如下流 程:
a.增加一个前端conv算子。
b.前端直接使用conv算子,不需要优化策略,则不增加前端优化算子。
c.后端直接使用conv算子,不要替换操作,则不增加后端转换算子。
d.增加后端conv的编译插件(例如,对应CPU后端,在新加的插件内 实现conv算子的CPU代码的配置和生成中间表达式)。
e.增加后端conv的链接插件(例如,对应CPU后端,在新加的插件内 实现根据conv的中间表达式生成可执行二进制代码)。
f.增加conv算子的执行插件(例如,对应CPU后端,在新加的插件内 调用CPU后端的执行方法)。
下面,举一个具体的例子来阐述增加一个后端不支持的新算子conv之后 的流程。
增加一个conv算子,假设后端希望使用CBAR(conv+bias+Add+Relu)。
a.增加一个前端conv算子。
b.前端策略决定进行CB融合,增加前端优化插件(实现conv+bias双 算子融合,得到新的前端CB算子)。
c.后端策略决定进行CBAR的融合,则增加CB算子的转换插件(实现 了前端CB+Add+Relu算子的融合,得到新的后端的CBAR算子)。
d.增加后端CBAR的编译插件(例如,对应CPU后端,在新加的插件内 实现CBAR算子的cpu代码的配置和生成中间表达式)。
e.增加后端CBAR的链接插件(例如,对应CPU后端,在新加的插件内 实现根据CBAR的中间表达式生成可执行二进制代码)。
增加CBAR算子的执行插件(例如,对应CPU后端,在新加的插件 内调用CPU后端的执行方法)。
如此,通过动态算子库的方式,推理引擎在运行时只需要加载需要的算 子及插件,程序运行时尺寸降低且效率增加。产品发布后容易通过发布新算 子的插件实现升级,从而支持热部署,在人工智能领域中模型及算子一直在 发展并扩展的同时,提供灵活扩充的能力。
图3示出了根据本申请实施方式的人工智能模型的算子的管理方法300。
如图3所示,人工智能模型的算子的管理方法300包括:步骤310,提 供算子管理器模块,包括算子容器,算子容器用于存储多个算子,多个算子 的每个算子具有参数,其中参数至少包括算子所支持的对算子进行的操作的 类型、算子所支持的后端平台类型、算子的算子标识;步骤320,提供前端算 子定义插件,被配置为响应于加载具有参数的算子而被调用,以从算子容器 中提供具有参数的算子。
在一个实施例中,人工智能模型的算子的管理方法300包括:还包括: 提供算子管理器模块的查找接口、注册接口和加载接口中的至少一个,其中, 查找接口被配置为基于参数来在算子容器中查找具有参数的算子;注册接口 被配置为将算子及其参数注册到算子容器中;加载接口被配置为基于可配置 的路径和插件匹配规则从路径加载前端算子定义插件。
以上的动态的算子插件可以拥有统一接口:register(container,操作类型, 后端类型,算子标识),这个接口的实现将调用算子管理器模块 (PluginContainer)的寄存器接口。
图4示出了根据本申请实施方式的人工智能模型的算子的管理方法400 的算子插件的增加过程的流程图。
在一个实施例中,确定需要针对新算子增加前端算子(步骤401)的情况 下,人工智能模型的算子的管理方法400包括:提供前端算子定义插件(步 骤402),被配置为响应于加载具有参数的算子而被调用,以从算子容器中提 供具有参数的算子。
在一个实施例中,人工智能模型的算子的管理方法300还包括:提供前 端算子优化定义插件,被配置为响应于对具有参数的算子进行前端优化而被 调用,以提供对具有参数的算子进行前端优化的功能。
提供前端算子优化定义插件包括:响应于具有参数的算子被注册到算子 容器中,确定是否需要针对具有参数的算子增加前端优化策略(步骤403); 如果确定需要针对具有参数的算子增加前端优化策略,则生成前端算子优化 定义插件;将前端算子优化定义插件添加到系统中(步骤404)。
在一个实施例中,人工智能模型的算子的管理方法300还包括:提供算 子转换插件,被配置为响应于对具有参数的算子进行转换而被调用,以提供 对具有参数的算子进行转换从而进行包括算子的计算图的图优化的功能,其 中,转换包括算子融合、算子拆分、算子替换、算子消除中的一种或多种。
提供算子转换插件包括:响应于具有参数的算子被注册到算子容器中, 确定是否需要针对具有参数的算子增加转换策略(步骤405);如果确定需要 针对具有参数的算子增加转换策略,则生成算子转换插件;将算子转换插件 添加到系统中(步骤406)。
在一个实施例中,人工智能模型的算子的管理方法300还包括:提供算 子编译插件,被配置为响应于对具有参数的算子或优化后的计算图中的新的 转换算子进行编译而被调用,以提供对具有参数的算子或优化后的计算图中 的新的转换算子进行编译的功能。
提供算子编译插件包括:响应于具有参数的算子被注册到算子容器中, 确定编译插件集合是否能够编译具有参数的算子或优化后的计算图中的新的 转换算子(步骤407);如果确定编译插件集合不能够编译具有参数的算子或 优化后的计算图中的新的转换算子,则生成算子编译插件;将算子编译插件 添加到系统中(步骤408)。
在一个实施例中,人工智能模型的算子的管理方法300还包括:提供算 子链接插件,被配置为响应于对具有参数的算子或优化后的计算图中的新的 转换算子进行链接而被调用,以提供对具有参数的算子或优化后的计算图中 的新的转换算子进行链接的功能。
提供算子链接插件包括:响应于具有参数的算子被注册到算子容器中, 确定链接插件集合是否能够链接具有参数的算子或优化后的计算图中的新的 转换算子(步骤409);如果确定链接插件集合不能够链接具有参数的算子或 优化后的计算图中的新的转换算子,则生成算子链接插件;将算子编译插件 添加到系统中(步骤410)。
在一个实施例中,人工智能模型的算子的管理方法300还包括:提供算 子执行插件,被配置为响应于对具有参数的算子进行执行而被调用,以提供 对具有参数的算子进行执行的功能。
提供算子编译插件包括:响应于具有参数的算子被注册到算子容器中, 确定算子执行集合是否能够执行具有参数的算子或优化后的计算图中的新的 转换算子(步骤411);确定算子执行集合不能够执行具有参数的算子或优化 后的计算图中的新的转换算子,则生成算子执行插件;将算子编译插件添加 到系统中(步骤412)。
如此,通过动态算子库的方式,推理引擎在运行时只需要加载需要的算 子及插件,程序运行时尺寸降低且效率增加。产品发布后容易通过发布新算 子的插件实现升级,从而支持热部署,在人工智能领域中模型及算子一直在 发展并扩展的同时,提供灵活扩充的能力。
图5示出根据本申请实施方式的加载动态算子插件的过程的示意流程图。
如图5所示,在需要加载动态算子插件的时候,在步骤510中,在预定 目录或指定目录中查找动态算子插件,在步骤520中,确定找到动态算子插 件吗。如果是,则在步骤530中,确认是否加载成功,如果否,则终止。如 果是,则在步骤540中,调用plugin.register(pluginContainer)来运行动态算子 插件,如果否,则终止。
图6示出了根据本申请实施方式的推理引擎加载模型到执行推理的过程 的流程图。
如图6所示,其中每一步的针对算子的操作从动态算子管理容器中获取 所需要的插件,包括算子表达、前端优化、算子转换、算子编译、算子链接、 算子执行。
具体地,在模型加载时,模型解析器通过动态算子加载、管理及查找接 口从动态算子库中获得前端算子定义插件,以便进行模型加载。
在前端优化时,前端优化器通过动态算子加载、管理及查找接口从动态 算子库中获得前端算子优化定义插件,以便进行前端优化。
在图转换(优化)时,图转换器通过动态算子加载、管理及查找接口从动 态算子库中获得算子转换插件,以便进行图转换(优化)。
在算子编译时,编译接口通过动态算子加载、管理及查找接口从动态算 子库中获得算子编译插件,以便进行算子编译。
在算子链接时,链接接口通过动态算子加载、管理及查找接口从动态算 子库中获得算子(子图)链接插件,以便进行算子链接。
在算子执行时,算子执行接口通过动态算子加载、管理及查找接口从动 态算子库中获得算子执行插件,以便进行算子执行。
如此,通过动态算子库的方式,推理引擎在运行时只需要加载需要的算 子及插件,程序运行时尺寸降低且效率增加。产品发布后容易通过发布新算 子的插件实现升级,从而支持热部署,在人工智能领域中模型及算子一直在 发展并扩展的同时,提供灵活扩充的能力。
图7示出了适于用来实现本申请实施方式的示例性电子设备的框图。
电子设备可以包括处理器(H1);存储介质(H2),耦合于处理器(H1), 且在其中存储计算机可执行指令,用于在由处理器执行时进行本申请的实施 例的各个方法的步骤。
处理器(H1)可以包括但不限于例如一个或者多个处理器或者或微处理 器等。
存储介质(H2)可以包括但不限于例如,随机存取存储器(RAM)、只读 存储器(ROM)、快闪存储器、EPROM存储器、EEPROM存储器、寄存器、 计算机存储介质(例如硬碟、软碟、固态硬盘、可移动碟、CD-ROM、DVD- ROM、蓝光盘等)。
除此之外,该电子设备还可以包括数据总线(H3)、输入/输出(I/O)总 线(H4),显示器(H5)以及输入/输出设备(H6)(例如,键盘、鼠标、扬声 器等)等。
处理器(H1)可以通过I/O总线(H4)经由有线或无线网络(未示出) 与外部设备(H5、H6等)通信。
存储介质(H2)还可以存储至少一个计算机可执行指令,用于在由处理 器(H1)运行时执行本技术所描述的实施例中的各个功能和/或方法的步骤。
在一个实施例中,该至少一个计算机可执行指令也可以被编译为或组成 一种软件产品,其中一个或多个计算机可执行指令被处理器运行时执行本技 术所描述的实施例中的各个功能和/或方法的步骤。
图8示出了根据本公开的实施例的非暂时性计算机可读存储介质的示意 图。
如图8所示,计算机可读存储介质820上存储有指令,指令例如是计算 机可读指令810。当计算机可读指令810由处理器运行时,可以执行参照以上 描述的各个方法。计算机可读存储介质包括但不限于例如易失性存储器和/或 非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或 高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、 硬盘、闪存等。例如,计算机可读存储介质820可以连接于诸如计算机等的 计算设备,接着,在计算设备运行计算机可读存储介质820上存储的计算机 可读指令810的情况下,可以进行如上描述的各个方法。
当然,上述的具体实施例仅是例子而非限制,且本领域技术人员可以根 据本申请的构思从上述分开描述的各个实施例中融合和组合一些步骤和装置 来实现本申请的效果,这种融合和组合而成的实施例也被包括在本申请中, 在此不一一描述这种融合和组合。
注意,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认 为这些优点、优势、效果等是本申请的各个实施例必须具备的。另外,上述公 开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节 并不限制本申请为必须采用上述具体的细节来实现。
本公开中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子 并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。 如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、 装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词 汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和” 指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所 使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
本公开中的步骤流程图以及以上方法描述仅作为例示性的例子并且不意 图要求或暗示必须按照给出的顺序进行各个实施例的步骤。如本领域技术人 员将认识到的,可以按任意顺序进行以上实施例中的步骤的顺序。诸如“其 后”、“然后”、“接下来”等等的词语不意图限制步骤的顺序;这些词语仅用于 引导读者通读这些方法的描述。此外,例如使用冠词“一个”、“一”或者“该” 对于单数的要素的任何引用不被解释为将该要素限制为单数。
另外,本文中的各个实施例中的步骤和装置并非仅限定于某个实施例中 实行,事实上,可以根据本申请的概念来结合本文中的各个实施例中相关的 部分步骤和部分装置以构思新的实施例,而这些新的实施例也包括在本申请 的范围内。
以上描述的方法的各个操作可以通过能够进行相应的功能的任何适当的 手段而进行。该手段可以包括各种硬件和/或软件组件和/或模块,包括但不限 于硬件的电路、专用集成电路(ASIC)或处理器。
可以利用被设计用于进行在此描述的功能的通用处理器、数字信号处理 器(DSP)、ASIC、场可编程门阵列信号(FPGA)或其他可编程逻辑器件(PLD)、 离散门或晶体管逻辑、离散的硬件组件或者其任意组合而实现或进行描述的 各个例示的逻辑块、模块和电路。通用处理器可以是微处理器,但是作为替 换,该处理器可以是任何商业上可获得的处理器、控制器、微控制器或状态 机。处理器还可以实现为计算设备的组合,例如DSP和微处理器的组合,多 个微处理器、与DSP核协作的微处理器或任何其他这样的配置。
结合本公开描述的方法或算法的步骤可以直接嵌入在硬件中、处理器执 行的软件模块中或者这两种的组合中。软件模块可以存在于任何形式的有形 存储介质中。可以使用的存储介质的一些例子包括随机存取存储器(RAM)、 只读存储器(ROM)、快闪存储器、EPROM存储器、EEPROM存储器、寄存 器、硬碟、可移动碟、CD-ROM等。存储介质可以耦接到处理器以便该处理 器可以从该存储介质读取信息以及向该存储介质写信息。在替换方式中,存 储介质可以与处理器是整体的。软件模块可以是单个指令或者许多指令,并 且可以分布在几个不同的代码段上、不同的程序之间以及跨过多个存储介质。
在此公开的方法包括用于实现描述的方法的动作。方法和/或动作可以彼 此互换而不脱离权利要求的范围。换句话说,除非指定了动作的具体顺序, 否则可以修改具体动作的顺序和/或使用而不脱离权利要求的范围。
上述功能可以按硬件、软件、固件或其任意组合而实现。如果以软件实 现,功能可以作为指令存储在切实的计算机可读介质上。存储介质可以是可 以由计算机访问的任何可用的切实介质。通过例子而不是限制,这样的计算 机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其他光碟存储、 磁碟存储或其他磁存储器件或者可以用于携带或存储指令或数据结构形式的 期望的程序代码并且可以由计算机访问的任何其他切实介质。如在此使用的, 碟(disk)和盘(disc)包括紧凑盘(CD)、激光盘、光盘、数字通用盘(DVD)、 软碟和蓝光盘,其中碟通常磁地再现数据,而盘利用激光光学地再现数据。
因此,计算机程序产品可以进行在此给出的操作。例如,这样的计算机 程序产品可以是具有有形存储(和/或编码)在其上的指令的计算机可读的有 形介质,该指令可由处理器执行以进行在此描述的操作。计算机程序产品可 以包括包装的材料。
软件或指令也可以通过传输介质而传输。例如,可以使用诸如同轴电缆、 光纤光缆、双绞线、数字订户线(DSL)或诸如红外、无线电或微波的无线技 术的传输介质从网站、服务器或者其他远程源传输软件。
此外,用于进行在此描述的方法和技术的模块和/或其他适当的手段可以 在适当时由用户终端和/或基站下载和/或其他方式获得。例如,这样的设备可 以耦接到服务器以促进用于进行在此描述的方法的手段的传送。或者,在此 描述的各种方法可以经由存储部件(例如RAM、ROM、诸如CD或软碟等的 物理存储介质)提供,以便用户终端和/或基站可以在耦接到该设备或者向该 设备提供存储部件时获得各种方法。此外,可以利用用于将在此描述的方法 和技术提供给设备的任何其他适当的技术。
其他例子和实现方式在本公开和所附权利要求的范围和精神内。例如, 由于软件的本质,以上描述的功能可以使用由处理器、硬件、固件、硬连线或 这些的任意的组合执行的软件实现。实现功能的特征也可以物理地位于各个 位置,包括被分发以便功能的部分在不同的物理位置处实现。而且,如在此 使用的,包括在权利要求中使用的,在以“至少一个”开始的项的列举中使用 的“或”指示分离的列举,以便例如“A、B或C的至少一个”的列举意味着 A或B或C,或AB或AC或BC,或ABC(即A和B和C)。此外,措辞 “示例的”不意味着描述的例子是优选的或者比其他例子更好。
可以不脱离由所附权利要求定义的教导的技术而进行对在此描述的技术 的各种改变、替换和更改。此外,本公开的权利要求的范围不限于以上描述 的处理、机器、制造、事件的组成、手段、方法和动作的具体方面。可以利用 与在此描述的相应方面进行基本相同的功能或者实现基本相同的结果的当前 存在的或者稍后要开发的处理、机器、制造、事件的组成、手段、方法或动 作。因而,所附权利要求包括在其范围内的这样的处理、机器、制造、事件的 组成、手段、方法或动作。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者 使用本申请。对这些方面的各种修改对于本领域技术人员而言是非常显而易 见的,并且在此定义的一般原理可以应用于其他方面而不脱离本申请的范围。 因此,本申请不意图被限制到在此示出的方面,而是按照与在此公开的原理 和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本 申请的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和 实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组 合。

Claims (16)

1.一种人工智能模型的算子的管理系统,包括:
算子管理器模块,包括算子容器,所述算子容器用于存储多个算子,所述多个算子的每个算子具有参数,其中所述参数至少包括所述算子所支持的对所述算子进行的操作的类型、所述算子所支持的后端平台类型、所述算子的算子标识;
前端算子定义插件,被配置为响应于加载具有所述参数的算子而被调用,以从所述算子容器中提供具有所述参数的所述算子。
2.根据权利要求1所述的系统,其中,所述算子管理器模块还具有查找接口、注册接口和加载接口中的至少一个,
其中,所述查找接口被配置为基于所述参数来在所述算子容器中查找具有所述参数的算子;
所述注册接口被配置为将算子及其参数注册到所述算子容器中;
所述加载接口被配置为基于可配置的路径和插件匹配规则从所述路径加载所述前端算子定义插件。
3.根据权利要求1所述的系统,还包括:前端算子优化定义插件,被配置为响应于对具有所述参数的算子进行前端优化而被调用,以提供对具有所述参数的算子进行前端优化的功能,
其中,所述前端算子优化定义插件是通过如下步骤而插入的:
响应于具有所述参数的算子被注册到所述算子容器中,确定是否需要针对具有所述参数的算子增加前端优化策略;
如果确定需要针对具有所述参数的算子增加前端优化策略,则生成所述前端算子优化定义插件;
将所述前端算子优化定义插件添加到所述系统中。
4.根据权利要求3所述的系统,还包括:算子转换插件,被配置为响应于对具有所述参数的算子进行转换而被调用,以提供对具有所述参数的算子进行转换从而进行包括所述算子的计算图的图优化的功能,其中,所述转换包括算子融合、算子拆分、算子替换、算子消除中的一种或多种,
其中,所述算子转换插件是通过如下步骤而插入的:
响应于具有所述参数的算子被注册到所述算子容器中,确定是否需要针对具有所述参数的算子增加转换策略;
如果确定需要针对具有所述参数的算子增加转换策略,则生成所述算子转换插件;
将所述算子转换插件添加到所述系统中。
5.根据权利要求4所述的系统,还包括:算子编译插件,被配置为响应于对具有所述参数的算子或优化后的计算图中的新的转换算子进行编译而被调用,以提供对具有所述参数的算子或优化后的计算图中的新的转换算子进行编译的功能,
其中,所述算子编译插件是通过如下步骤而插入的:
响应于具有所述参数的算子被注册到所述算子容器中,确定编译插件集合是否能够编译具有所述参数的算子或优化后的计算图中的新的转换算子;
如果确定编译插件集合不能够编译具有所述参数的算子或优化后的计算图中的新的转换算子,则生成所述算子编译插件;
将所述算子编译插件添加到所述系统中。
6.根据权利要求5所述的系统,还包括:算子链接插件,被配置为响应于对具有所述参数的算子或优化后的计算图中的新的转换算子进行链接而被调用,以提供对具有所述参数的算子或优化后的计算图中的新的转换算子进行链接的功能,
其中,所述算子链接插件是通过如下步骤而插入的:
响应于具有所述参数的算子被注册到所述算子容器中,确定链接插件集合是否能够链接具有所述参数的算子或优化后的计算图中的新的转换算子;
如果确定链接插件集合不能够链接具有所述参数的算子或优化后的计算图中的新的转换算子,则生成所述算子链接插件;
将所述算子编译插件添加到所述系统中。
7.根据权利要求6所述的系统,还包括:算子执行插件,被配置为响应于对具有所述参数的算子进行执行而被调用,以提供对具有所述参数的算子进行执行的功能,
其中,所述算子执行插件是通过如下步骤而插入的:
响应于具有所述参数的算子被注册到所述算子容器中,确定算子执行集合是否能够执行具有所述参数的算子或优化后的计算图中的新的转换算子;
确定算子执行集合不能够执行具有所述参数的算子或优化后的计算图中的新的转换算子,则生成所述算子执行插件;
将所述算子执行插件添加到所述系统中。
8.一种人工智能模型的算子的管理方法,包括:
提供算子管理器模块,包括算子容器,所述算子容器用于存储多个算子,所述多个算子的每个算子具有参数,其中所述参数至少包括所述算子所支持的对所述算子进行的操作的类型、所述算子所支持的后端平台类型、所述算子的算子标识;
提供前端算子定义插件,被配置为响应于加载具有所述参数的算子而被调用,以从所述算子容器中提供具有所述参数的所述算子。
9.根据权利要求8所述的方法,还包括:提供所述算子管理器模块的查找接口、注册接口和加载接口中的至少一个,
其中,所述查找接口被配置为基于所述参数来在所述算子容器中查找具有所述参数的算子;
所述注册接口被配置为将算子及其参数注册到所述算子容器中;
所述加载接口被配置为基于可配置的路径和插件匹配规则从所述路径加载所述前端算子定义插件。
10.根据权利要求8所述的方法,还包括:提供前端算子优化定义插件,被配置为响应于对具有所述参数的算子进行前端优化而被调用,以提供对具有所述参数的算子进行前端优化的功能,
其中,所述提供前端算子优化定义插件包括:
响应于具有所述参数的算子被注册到所述算子容器中,确定是否需要针对具有所述参数的算子增加前端优化策略;
如果确定需要针对具有所述参数的算子增加前端优化策略,则生成所述前端算子优化定义插件;
将所述前端算子优化定义插件添加到所述系统中。
11.根据权利要求8所述的方法,还包括:提供算子转换插件,被配置为响应于对具有所述参数的算子进行转换而被调用,以提供对具有所述参数的算子进行转换从而进行包括所述算子的计算图的图优化的功能,其中,所述转换包括算子融合、算子拆分、算子替换、算子消除中的一种或多种,
其中,所述提供算子转换插件包括:
响应于具有所述参数的算子被注册到所述算子容器中,确定是否需要针对具有所述参数的算子增加转换策略;
如果确定需要针对具有所述参数的算子增加转换策略,则生成所述算子转换插件;
将所述算子转换插件添加到所述系统中。
12.根据权利要求11所述的方法,还包括:提供算子编译插件,被配置为响应于对具有所述参数的算子或优化后的计算图中的新的转换算子进行编译而被调用,以提供对具有所述参数的算子或优化后的计算图中的新的转换算子进行编译的功能,
其中,所述提供算子编译插件包括:
响应于具有所述参数的算子被注册到所述算子容器中,确定编译插件集合是否能够编译具有所述参数的算子或优化后的计算图中的新的转换算子;
如果确定编译插件集合不能够编译具有所述参数的算子或优化后的计算图中的新的转换算子,则生成所述算子编译插件;
将所述算子编译插件添加到所述系统中。
13.根据权利要求12所述的方法,还包括:提供算子链接插件,被配置为响应于对具有所述参数的算子或优化后的计算图中的新的转换算子进行链接而被调用,以提供对具有所述参数的算子或优化后的计算图中的新的转换算子进行链接的功能,
其中,所述提供算子链接插件包括:
响应于具有所述参数的算子被注册到所述算子容器中,确定链接插件集合是否能够链接具有所述参数的算子或优化后的计算图中的新的转换算子;
如果确定链接插件集合不能够链接具有所述参数的算子或优化后的计算图中的新的转换算子,则生成所述算子链接插件;
将所述算子编译插件添加到所述系统中。
14.根据权利要求13所述的方法,还包括:提供算子执行插件,被配置为响应于对具有所述参数的算子进行执行而被调用,以提供对具有所述参数的算子进行执行的功能,
其中,所述提供算子编译插件包括:
响应于具有所述参数的算子被注册到所述算子容器中,确定算子执行集合是否能够执行具有所述参数的算子或优化后的计算图中的新的转换算子;
确定算子执行集合不能够执行具有所述参数的算子或优化后的计算图中的新的转换算子,则生成所述算子执行插件;
将所述算子编译插件添加到所述系统中。
15.一种电子设备,包括:
存储器,用于存储指令;
处理器,用于读取所述存储器中的指令,并执行如权利要求8-14中任一项所述的方法。
16.一种非暂时存储介质,其上存储有指令,
其中,所述指令在被处理器读取时,使得所述处理器执行如权利要求8-14中任一项所述的方法。
CN202211209687.0A 2022-09-30 2022-09-30 人工智能模型的算子的管理系统、方法、设备和介质 Pending CN115907013A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211209687.0A CN115907013A (zh) 2022-09-30 2022-09-30 人工智能模型的算子的管理系统、方法、设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211209687.0A CN115907013A (zh) 2022-09-30 2022-09-30 人工智能模型的算子的管理系统、方法、设备和介质

Publications (1)

Publication Number Publication Date
CN115907013A true CN115907013A (zh) 2023-04-04

Family

ID=86481419

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211209687.0A Pending CN115907013A (zh) 2022-09-30 2022-09-30 人工智能模型的算子的管理系统、方法、设备和介质

Country Status (1)

Country Link
CN (1) CN115907013A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116756589A (zh) * 2023-08-16 2023-09-15 北京壁仞科技开发有限公司 匹配算子的方法、计算设备和计算机可读存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116756589A (zh) * 2023-08-16 2023-09-15 北京壁仞科技开发有限公司 匹配算子的方法、计算设备和计算机可读存储介质
CN116756589B (zh) * 2023-08-16 2023-11-17 北京壁仞科技开发有限公司 匹配算子的方法、计算设备和计算机可读存储介质

Similar Documents

Publication Publication Date Title
CN113703775B (zh) 一种编译方法、装置、设备及存储介质
US10534590B2 (en) Dynamic recompilation techniques for machine learning programs
WO2021098509A1 (zh) 神经网络联合编译的方法、装置和电子设备
CN112579063B (zh) 一种用于深度学习编译器中探索优化空间的加速方法
WO2021000970A1 (zh) 深度学习算法的编译方法、装置及相关产品
US9823911B2 (en) Method and apparatus for compiling code based on a dependency tree
US10901715B1 (en) Lazy compilation and kernel fusion in dynamic computation graphs
CN111160551A (zh) 计算图执行方法、计算机设备及存储介质
CN113031966B (zh) 一种智能选择编译加速库的深度学习编译优化方法
CN111104120B (zh) 神经网络编译方法、系统及相应异构计算平台
US9977663B2 (en) Technologies for optimizing sparse matrix code with field-programmable gate arrays
CN113283613B (zh) 深度学习模型的生成方法、优化方法、装置、设备及介质
US20200394027A1 (en) Quantum compiler
WO2021000971A1 (zh) 操作数据的生成方法、装置及相关产品
JP5966509B2 (ja) プログラム、コード生成方法および情報処理装置
CN110689116A (zh) 一种神经网络剪枝方法、装置、计算机设备及存储介质
US20210295158A1 (en) End-to-end optimization
CN115034402A (zh) 模型推理性能的优化方法、装置及相关产品
CN115907013A (zh) 人工智能模型的算子的管理系统、方法、设备和介质
CN109542455A (zh) 合约执行方法、合约精简方法、设备和存储介质
US20230394110A1 (en) Data processing method, apparatus, device, and medium
CN116368494A (zh) 一种神经网络编译优化方法和相关装置
CN116089895A (zh) 一种算子融合方法及装置
US20220172044A1 (en) Method, electronic device, and computer program product for deploying machine learning model
US20080040705A1 (en) Method for building software project

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
CB02 Change of applicant information
CB02 Change of applicant information

Country or region after: China

Address after: 201100 room 1302, 13 / F, building 16, No. 2388, Chenhang highway, Minhang District, Shanghai

Applicant after: Shanghai Bi Ren Technology Co.,Ltd.

Address before: 201100 room 1302, 13 / F, building 16, No. 2388, Chenhang highway, Minhang District, Shanghai

Applicant before: Shanghai Bilin Intelligent Technology Co.,Ltd.

Country or region before: China