CN115080240A - 语音处理模型的部署方法、电子设备及存储介质 - Google Patents
语音处理模型的部署方法、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115080240A CN115080240A CN202210761611.2A CN202210761611A CN115080240A CN 115080240 A CN115080240 A CN 115080240A CN 202210761611 A CN202210761611 A CN 202210761611A CN 115080240 A CN115080240 A CN 115080240A
- Authority
- CN
- China
- Prior art keywords
- tensor
- target feature
- feature tensor
- processing model
- determining
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Telephonic Communication Services (AREA)
Abstract
本申请涉及计算机领域,提供一种语音处理模型的部署方法、电子设备及存储介质,该方法包括:获取语音处理模型中多个语音特征张量的张量属性;基于所述张量属性,从所述多个语音特征张量中确定出至少一个目标特征张量,所述目标特征张量表征所述语音处理模型中语音处理算子的输入端口和输出端口所对应的张量;获取所述目标特征张量的生命周期和数据量;基于所述目标特征张量的生命周期和数据量,确定所述目标特征张量对应的第一内存地址,所述第一内存地址用于部署所述语音处理模型的所述目标特征张量。该方法通过对语音特征张量进行分类,根据目标特征张量的生命周期和数据量大小,确定对应的内存地址,实现内存复用,提高终端设备的内存利用率。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及语音处理模型的部署方法、电子设备及存储介质。
背景技术
搭载有语音处理模型的边缘端侧设备可以进行语音识别或声纹识别等工作,实现机器与人即时的沟通及身份识别等功能。
在小内存的边缘端侧设备上进行语音处理模型的部署时,内存经常会成为模型部署的瓶颈,设备内存分配情况往往会成为语音处理模型能否成功落地的关键点,为此,需要在模型推理层面设计高效可靠的内存复用算法,以保证语音处理模型在小内存的边缘端侧设备部署运行时不会发生内存崩溃。
发明内容
本申请旨在至少解决现有技术中存在的技术问题之一。为此,本申请提出一种语音处理模型的部署方法,提升内存利用率。
根据本申请第一方面实施例的语音处理模型的部署方法,包括:
获取语音处理模型中多个语音特征张量的张量属性;
基于所述张量属性,从所述多个语音特征张量中确定出至少一个目标特征张量,所述目标特征张量表征所述语音处理模型中语音处理算子的输入端口和输出端口所对应的张量;
获取所述目标特征张量的生命周期和数据量;
基于所述目标特征张量的生命周期和数据量,确定所述目标特征张量对应的第一内存地址,所述第一内存地址用于部署所述语音处理模型的所述目标特征张量。
根据本申请实施例的语音处理模型的部署方法,通过给划分出的目标特征张量添加生命周期的属性,实现目标特征张量在时间维度的内存复用,提高终端设备的内存利用率,可以大幅降低终端设备的内存占用,数据安全性良好,对语音处理模型的计算性能没有影响,极大地缓解了边缘端侧设备部署模型时的内存压力,具备强鲁棒性和高可扩展性,在边缘端侧设备之外的移动端和服务器端等终端设备也能得到广泛应用。
根据本申请的一个实施例,所述获取所述目标特征张量的生命周期,包括:
获取所述语音处理算子的算子执行顺序;
基于所述算子执行顺序,确定所述目标特征张量的生命周期。
根据本申请的一个实施例,所述基于所述算子执行顺序,确定所述目标特征张量的生命周期,包括:
基于所述算子执行顺序,确定所述目标特征张量对应的开始算子节点;
基于所述算子执行顺序和所述语音处理算子的输入端口对应的张量,确定所述目标特征张量的引用计数;
基于所述算子执行顺序和所述引用计数,确定所述目标特征张量对应的结束算子节点;
基于所述开始算子节点和所述结束算子节点,确定所述目标特征张量的生命周期。
根据本申请的一个实施例,所述基于所述目标特征张量的生命周期和数据量,确定所述目标特征张量对应的第一内存地址,包括:
基于所述目标特征张量的生命周期和数据量,确定所述目标特征张量的偏移地址;
基于所述偏移地址,确定所述第一内存地址。
根据本申请的一个实施例,所述基于所述目标特征张量的生命周期和数据量,确定所述目标特征张量的偏移地址,包括:
将所述目标特征张量按照数据量大小进行降序排序;
基于排序后的所述目标特征张量所对应的生命周期,确定所述偏移地址。
根据本申请的一个实施例,在所述获取语音处理模型中多个语音特征张量的张量属性之后,所述方法还包括:
基于所述张量属性,从所述多个语音特征张量中确定出至少一个非目标特征张量;
确定所述非目标特征张量对应的第二内存地址,所述第二内存地址用于部署所述语音处理模型的所述非目标特征张量。
根据本申请的一个实施例,所述确定所述非目标特征张量对应的第二内存地址,包括:
确定所述非目标特征张量为第一特征张量,所述第一特征张量表征所述语音处理模型的权重对应的张量;
确定所述第一特征张量对应的所述第二内存地址为持久化内存地址。
根据本申请的一个实施例,所述确定所述非目标特征张量对应的第二内存地址,包括:
确定所述非目标特征张量为第二特征张量,所述第二特征张量表征所述语音处理模型中非权重的临时张量;
确定所述第二特征张量对应的所述第二内存地址为内存池的内存块地址,所述内存块地址基于所述第二特征张量的数据量和所述内存池的内存块可复用状态确定。
根据本申请第二方面实施例的语音处理模型的部署装置,包括:
第一获取模块,用于获取语音处理模型中多个语音特征张量的张量属性;
第一处理模块,用于基于所述张量属性,从所述多个语音特征张量中确定出至少一个目标特征张量,所述目标特征张量表征所述语音处理模型中语音处理算子的输入端口和输出端口所对应的张量;
第二获取模块,用于获取所述目标特征张量的生命周期和数据量;
第二处理模块,用于基于所述目标特征张量的生命周期和数据量,确定所述目标特征张量对应的第一内存地址,所述第一内存地址用于部署所述语音处理模型的所述目标特征张量。
根据本申请第三方面实施例的电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述任一种所述语音处理模型的部署方法。
根据本申请第四方面实施例的非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述语音处理模型的部署方法。
根据本申请第五方面实施例的计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述语音处理模型的部署方法。
本申请实施例中的上述一个或多个技术方案,至少具有如下技术效果之一:
通过语音处理模型中语音特征张量的张量属性,从语音特征张量中划分出目标特征张量,根据目标特征张量的生命周期和数据量大小,确定在终端设备部署使的内存地址,实现目标特征张量在时间维度的内存复用,有效提高终端设备的内存利用率。
进一步的,通过分析每个目标特征张量引用计数确定每个目标特征张量的有效生命周期,进而基于贪心算法分配每个目标特征张量内存偏移量,有效降低模型部署和运行时内存占用。
更进一步的,根据张量属性,对语音处理模型中的语音特征张量进行划分,将目标特征张量和非目标特征张量分配到终端设备中不同的位置进行存储,目标特征张量可以时间维度实现内存复用,提高终端设备的内存利用率,大幅降低终端设备的内存占用。
本申请的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的语音处理模型的部署方法的流程示意图之一;
图2是本申请实施例提供的语音处理模型的部署方法的流程示意图之二;
图3是本申请实施例提供的语音处理模型的计算图;
图4是本申请实施例提供的目标特征张量的存储示意图;
图5是本申请实施例提供的语音处理模型的部署装置的结构示意图;
图6是本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本申请的实施方式作进一步详细描述。以下实施例用于说明本申请,但不能用来限制本申请的范围。
在本申请实施例的描述中,需要说明的是,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请实施例的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
下面结合图1至图3描述本申请实施例的语音处理模型的部署方法,该方法的执行主体可以为边缘端侧设备,或者移动端设备,或者服务器端。
在本申请实施例中,语音处理模型是处理语音信号,实现语音识别、语音理解和声纹识别等功能的深度学习模型。
需要说明的是,本申请实施例提供的语音处理模型的部署方法可以将语音处理模型部署到边缘端侧设备、移动端设备或服务器上。
如图1所示,本申请实施例的语音处理模型的部署方法包括步骤110至步骤140。
步骤110、获取语音处理模型中多个语音特征张量的张量属性。
在该实施例中,可以在离线模型转换阶段中,将语音处理模型中所有的语音特征张量,按照语音特征张量的使用情况,对每个语音特征张量进行属性标注。
在语音处理模型中,语音数据及语音数据处理得到的数据以语音特征张量的数据结构的形式表示,语音特征张量是一种组合类型的数据类型,表示为一个多维数组。
在该步骤中,获取语音处理模型中所有的语音特征张量的张量属性,可以根据与语音特征张量的使用情况对应的属性标注,确定每个语音特征张量的张量属性。
可以理解的是,根据语音处理模型中每个语音特征张量的使用情况,确定每个语音特征张量的张量属性,根据每个语音特征张量的张量属性,可以将语音处理模型中语音特征张量划分为不同的类别。
步骤120、基于张量属性,从多个语音特征张量中确定出至少一个目标特征张量。
其中,目标特征张量表征语音处理模型中语音处理算子的输入端口和输出端口所对应的张量。
在该步骤中,根据语音处理模型中每个语音特征张量的张量属性,将语音处理模型中的语音特征张量划分为目标特征张量和非目标特征张量。
可以理解的是,目标特征张量表征语音处理算子的输入端口和输出端口所对应的张量,非目标特征张量是语音处理模型中除目标特征张量以外的语音特征张量。
在实际执行中,语音特征张量的使用情况所对应的张量属性至少可以表现为如下三种情况:
其一、表征模型输入输出的张量属性。
语音处理模型中包括多个语音处理算子,语音处理算子表征数据的处理方式,语音处理算子以语音特征张量为输入,经过计算后,返回新的语音特征张量。
在该实施例中,可以根据某个语音特征张量的张量属性为表征输入输出的张量属性,将该语音特征张量确定为目标特征张量。
其二、表征模型权重的张量属性。
在该实施例中,语音处理模型中表征模型权重信息以及权重分布的语音特征张量的张量属性为表征模型权重的张量属性。
可以理解的是,模型部署阶段是将训练好的权重移动,权重信息以及权重分布的情况基本不会改变。
其三、表征模型临时结果的张量属性。
在该实施例中,语音处理模型中的一些语音特征张量是语音处理算子内部用于计算中间临时结果所申请的张量,是语音处理模型中非权重的临时张量,这些语音特征张量的张量属性为表征模型临时结果的张量属性。
步骤130、获取目标特征张量的生命周期和数据量。
在该步骤中,获取语音处理模型中所有目标特征张量的生命周期和数据量。
需要说明是的,目标特征张量的生命周期表征目标特征张量从出现、进行使用至使用结束的周期,生命周期是表征目标特征张量的张量数据在时间维度的可复用性的参数。
目标特征张量的数据量指目标特征张量在使用过程中所占的内存大小,数据量的单位可以为字节等用于计量存储容量的计量单位。
步骤140、基于目标特征张量的生命周期和数据量,确定目标特征张量对应的第一内存地址。
其中,目标特征张量的第一内存地址用于部署语音处理模型的目标特征张量。
在该步骤中,根据每个目标特征张量各自对应的生命周期和数据量,在所要部署的终端设备中确定出每个目标特征张量的第一内存地址。
需要说明的是,生命周期是表征目标特征张量的张量数据在时间维度的可复用性的参数,根据目标特征张量的生命周期,可以在时间维度划分出一些可以复用的内存地址,再根据目标特征张量的数据量匹配合适大小的可复用的或不可复用的内存地址。
可以理解的是,目标特征张量的第一内存地址是终端设备中存放该目标特征张量的位置的标识,目标特征张量的第一内存地址对应的语音处理模型所要部署的设备内存的地址。
在实际执行中,将语音处理模型部署到边缘端侧设备、移动端设备或服务器上时,根据目标特征张量的第一内存地址将目标特征张量存放到对应的位置,完成语音处理模型中目标特征张量的部署。
相关技术中,在小内存设备上部署基于深度学习算法的语音处理模型时,使用内存池基于垃圾回收机制进行张量数据的内存复用,该种方式内存池占用较大,经常会出现模型部署失败或运行时发生内存奔溃等情况。
经申请人研究发现,经申请人研究发现内存池进行内存复用主要是利用了内存池本身在空间维度的可分时复用性,但忽略了张量数据本身在时间维度的可复用性,该种方式所能达到的内存利用率有限,且当模型数据量较大时,内存池占用较大,无法及时进行内存复用,可能导致模型运行时发生内存奔溃等情况。在本申请实施例中,通过给划分出的目标特征张量添加生命周期的属性,实现目标特征张量在时间维度的内存复用,提高终端设备的内存利用率,可以大幅降低终端设备的内存占用,数据安全性良好,对语音处理模型的计算性能没有影响,极大地缓解了边缘端侧设备部署模型时的内存压力,具备强鲁棒性和高可扩展性,在边缘端侧设备之外的移动端和服务器端等终端设备也能得到广泛应用。
根据本申请实施例提供的语音处理模型的部署方法,通过语音处理模型中语音特征张量的张量属性,从语音特征张量中划分出目标特征张量,根据目标特征张量的生命周期和数据量,确定在终端设备部署使的内存地址,实现目标特征张量在时间维度的内存复用,有效提高终端设备的内存利用率。
上述语音处理模型的部署方法的步骤130包括:
获取语音处理算子的算子执行顺序;
基于算子执行顺序,确定目标特征张量的生命周期。
可以理解的是,语音处理模型中包括多个语音处理算子,目标特征张量表征语音处理算子的输入端口和输出端口所对应的张量,根据语音处理算子的算子执行顺序,可以目标特征张量从开始出现至使用结束的生命周期。
在实际执行中,可以获取语音处理模型的计算图,进而获取到语音处理模型中语音处理算子的算子执行顺序。
其中,语音处理模型的计算图表征语音处理模型中多个语音处理算子之间数据输入和数据输出的关系。
语音处理模型运行处理语音数据时,按照算子执行顺序依次执行语音处理模型中的多个语音处理算子,对语音数据进行运算处理得到运算结果。
例如,如图3所示,语音处理模型包括算子a至算子f六个语音处理算子,获取的算子执行顺序可以为算子a-算子b-(算子c、算子d)-算子e-算子f。
张量A至张量E是语音处理模型中的目标特征张量,根据算子执行顺序,确定目标特征张量的生命周期,张量A的生命周期对应从算子a的输出端口至算子b的输入端口,张量B的生命周期对应从算子b的输出端口至算子c的输入端口以及从算子b的输出端口至算子d的输入端口,依此类推。
在一些实施例中,基于算子执行顺序,确定目标特征张量的生命周期,包括:
基于算子执行顺序,确定目标特征张量对应的开始算子节点;
基于算子执行顺序和语音处理算子的输入端口对应的张量,确定目标特征张量的引用计数;
基于算子执行顺序和引用计数,确定目标特征张量对应的结束算子节点;
基于开始算子节点和结束算子节点,确定目标特征张量的生命周期。
在该实施例中,通过遍历语音处理模型的算子执行顺序,得到每个目标特征张量生命周期连接的开始算子节点,并通过每个目标特征张量生命周期的引用计数确定对应的结束算子节点,根据每个目标特征张量的开始算子节点和结束算子节点,确定每个目标特征张量的生命周期。
目标特征张量表征语音处理算子的输入端口和输出端口所对应的张量,对于某一目标特征张量而言,该目标特征张量由某个语音处理算子的输出端口输出,再输入至其他语音处理算子的输入端口,其中,输出该目标特征张量的语音处理算子称为该目标特征张量的开始算子节点。
相应的,该目标特征张量输入的其他语音处理算子称为该目标特征张量的结束算子节点。
可以理解的是,某一目标特征张量是由对应的一个语音处理算子的输出端口输出的,该目标特征张量可以输入至不同的语音处理算子的输入端口,由不同的语音处理算子进行处理,也即一个目标特征张量对应一个开始算子节点,一个目标特征张量对应一个或多个结束算子节点。
在该实施例中,通过遍历语音处理模型的算子执行顺序,结合语音处理模型中每个语音处理算子的输入端口对应的张量,确定目标特征张量的引用计数,引用计数表征目标特征张量出现后输出至不同语音处理算子进行处理的次数。
遍历语音处理模型的算子执行顺序,根据每个目标特征张量的引用计数,进而确定出每个目标特征张量所对应的结束算子节点。
例如,如图3所示,语音处理模型包括算子a至算子f六个语音处理算子,该语音处理模型的算子执行顺序可以为算子a-算子b-(算子c、算子d)-算子e-算子f。
张量A至张量E是语音处理模型中的目标特征张量,根据算子执行顺序,算子a是张量A的开始算子节点,算子b是张量B的开始算子节点,算子c是张量C的开始算子节点,算子d是张量D的开始算子节点,算子e是张量E的开始算子节点。
算子c和算子d的输入端口对应的张量均为张量B,也即张量B的引用计数为2,张量B分别输入至两个不同的语音处理算子(算子c和算子d)进行处理,其余张量的引用计数为1。
遍历语音处理模型的算子执行顺序,结合张量A至张量E所对应的引用计数,确定算子b是张量A的结束算子节点,算子c和算子d是张量B的结束算子节点,算子e是张量C和张量D的结束算子节点,算子f是张量E的结束算子节点。
进而根据张量A至张量E所对应的开始算子节点和结束算子节点,确定每个目标特征张量有效且准确的生命周期。
上述语音处理模型的部署方法的步骤140包括:
基于目标特征张量的生命周期和数据量,确定目标特征张量的偏移地址;
基于目标特征张量的偏移地址,确定目标特征张量的第一内存地址。
偏移地址是终端设备里的内存分段后,在段内某一地址相对于段首地址的偏移量,根据目标特征张量的偏移地址,可以确定出目标特征张量在终端设备中实际进行存储的第一内存地址,以实现语音处理模型在终端设备的部署。
在该实施例中,确定出每个目标特征张量的偏移地址后,由内存分配执行模块通过每个目标特征张量的偏移地址、数据量大小以及必要的首尾填充字符,得到一个总的内存大小,该内存大小是部署语音处理模型的目标特征张量所需的内存。
在实际执行中,根据总的内存大小,向终端设备请求内存,得到一个实际的内存启示地址,并依次将每个目标特征张量的偏移地址加上实际申请得到的内存起始地址,得到每个目标特征张量的起始内存地址,并对每个目标特征张量的起始内存地址执行对齐操作,得到每个目标特征张量的第一内存地址。
在一些实施例中,基于目标特征张量的生命周期和数据量,确定目标特征张量的偏移地址,包括:
将目标特征张量按照数据量大小进行降序排序;
基于排序后的目标特征张量所对应的生命周期,确定目标特征张量的偏移地址。
在该实施例中,根据每个目标特征张量的生命周期,确定每个目标特征张量在时间维度的可复用性,为每个目标特征张量分配出匹配内存大小的偏移地址。
基于各个目标特征张量的数据量大小,对目标特征张量进行降序排序,数据量大的目标特征张量排在前面,数据量小的目标特征张量排在后面,得到目标特征张量排序后的张量列表。
将排序后的张量列表中每个目标特征张量往内存空间中放置,遍历张量列表中每个目标特征张量,判断当前的目标特征张量和已经分配好的内存空间的目标特征张量的生命周期是否有重合。
其中,内存空间的位置对应目标特征张量的偏移地址。
在该实施例中,若在已经分配好的内存空间中找到与当前的目标特征张量生命周期重合的目标特征张量,在总的内存空间中分配新的内存空间提供给当前的目标特征张量使用,也即生命周期重合的两个目标特征张量需要分配不同的偏移地址。
若在已经分配好的内存空间中找不到与当前的目标特征张量生命周期重合的目标特征张量,通过贪心算法寻找可复用的内存空间中的内存缝隙,将当前的目标特征张量加入进去,并更新可复用的内存空间的可复用地址信息,也即生命周期重合的两个目标特征张量可以分配同一个可复用的偏移地址。
根据每个目标特征张量的数据量大小,为每个目标特征张量分配对应的偏移地址,判断生命周期是否重合,实现偏移地址的复用,并保证不会有任何一个目标特征张量的数据在错误的时间覆盖任何其他目标特征张量。
例如,如图3所示,语音处理模型包括算子a至算子f六个语音处理算子,张量A至张量E是语音处理模型中的目标特征张量。
遍历语音处理模型的算子执行顺序,结合张量A至张量E所对应的引用计数,确定开始算子节点和结束算子节点,得到据张量A至张量E的生命周期。
张量A至张量E根据数据量大小进行降序排序为:张量A-张量E-张量B-张量D-张量C。
如图4所示,根据生命周期是否重合,通过贪心算法寻找可复用的内存空间,张量E、张量D和张量C与张量A的生命周期不重合,张量A的内存空间可作为可复用的内存空间,且张量A的数据量大,可提供足够的内存缝隙给张量E、张量D和张量C使用。
其中,张量B与张量A的生命周期有重合,张量B与张量A需要分配在不同的内存空间。可以理解的是,根据每个目标特征张量的生命周期和数据量,将生命周期没有交集的内存空间进行复用,确保每个目标特征张量的数据使用的安全性,极大地提高内存利用率,减少模型部署所需的内存大小。
需要说明的是,语音处理模型中所有目标特征张量所需的总内存大小是一次性请求的,减少了多次向设备中申请内存的时间成本,减小了模型部署所需的部署时间,且不影响语音处理模型推理阶段的计算性能。
上述语音处理模型的部署方法的步骤110获取语音处理模型中多个语音特征张量的张量属性之后,方法还包括:
基于张量属性,从多个语音特征张量中确定出至少一个非目标特征张量;
确定非目标特征张量对应的第二内存地址。
其中,非目标特征张量的第二内存地址用于部署语音处理模型的,非目标特征张量。
在该实施例中,根据语音处理模型中每个语音特征张量的张量属性,将语音处理模型中的语音特征张量划分为目标特征张量和非目标特征张量,目标特征张量表征语音处理算子的输入端口和输出端口所对应的张量,非目标特征张量是语音处理模型中除目标特征张量以外的语音特征张量。
在实际执行中,非目标特征张量包括表征模型权重的张量属性所对应的语音特征张量和表征模型临时结果的张量属性所对应的语音特征张量。
在该实施例中,判断出语音处理模型的非目标特征张量,确定剩余的非目标特征张量的第二内存地址,非目标特征张量的第二内存地址是终端设备中存放该非目标特征张量的位置的标识。
在一些实施例中,将语音处理模型按照目标特征张量的第一内存地址和非目标特征张量的第二内存地址部署至终端设备。
在该实施例中,根据目标特征张量的第一内存地址,确定目标特征张量在终端设备的存储位置;根据非目标特征张量的第二内存地址,确定非目标特征张量在终端设备的存储位置;将目标特征张量和非目标特征张量分别存储至对应的位置,完成语音处理模型在终端设备的部署。
根据张量属性,对语音处理模型中的语音特征张量进行划分,将目标特征张量和非目标特征张量分配到终端设备中不同的位置进行存储,目标特征张量可以时间维度实现内存复用,提高终端设备的内存利用率,大幅降低终端设备的内存占用。
在一些实施例中,确定非目标特征张量为第一特征张量;
确定第一特征张量对应的第二内存地址为持久化内存地址。
其中,第一特征张量表征语音处理模型的权重对应的张量。
可以理解的是,语音处理模型的部署阶段,是将语音处理模型中训练好的权重移动至终端设备,权重信息以及权重分布的情况基本不会改变。
表征语音处理模型的权重对应的张量的第一特征张量直接分配持久化内存地址,该地址持久化存在,被第一特征张量持续占用,不会被其他类型的语音特征张量复用。
在一些实施例中,确定非目标特征张量为第二特征张量;
确定第二特征张量对应的第二内存地址为内存池的内存块地址。
在该实施例中,基于第二特征张量的数据量和终端设备的内存池的内存块可复用状态,确定第二特征张量在内存池中的内存块地址,也即第二特征张量对应的第二内存地址。
其中,第二特征张量表征语音处理模型中非权重的临时张量。
内存池是终端设备中的一种内存分配方式,又被称为固定大小区块规划,内存池在真正使用内存之前,先申请分配一定数量的、大小的内存块留作备用,出现内存需求时,就从内存池中分出一部分内存块,若内存块不够再继续申请新的内存。
在该实施例中,第二特征张量表征语音处理模型中非权重的临时张量,也即语音处理算子内部用于计算中间临时结果所申请的张量,通过内存池内可复用的内存块来存储第二特征张量,实现使用完毕即清除内存,提升终端设备的内存利用率。
在实际执行中,内存池中负责存放已分配过的所有第二特征张量占用的内存块,每块内存块都对应一个可复用标志状态,其默认值为不可复用状态,当之前分配的第二特征张量使用结束后会自动把该标志位设置为可复用状态。
内存池内部维护一个基于张量大小升序排序的哈希表,该哈希表记录了第二特征张量的数据量大小和给第二特征张量分配的内存块地址等信息,每次需要给新的第二特征张量分配内存块地址时,在该内存池哈希表中检索到合适大小的位置即可。
根据内存池中内存块可复用状态和第二特征张量实际申请的数据量大小,执行分配内存并更新内存块状态信息,内存池中各个内存块的可复用标志状态随着语音处理模型的运行是在不断更新的。
下面介绍一个具体的实施例。
如图2所示,在语音处理模型的离线模型转换及加载阶段,将语音处理模型中所有的语音特征张量,按照语音特征张量的使用情况对应的张量属性,对语音特征张量的张量类型进行分析。
从语音处理模型的语音特征张量划分出目标特征张量、第一特征张量和第二特征张量。
对于语音处理模型中语音处理算子的输入端口和输出端口所对应的目标特征张量,计算每个目标特征张量的生命周期和偏移地址,为每个目标特征张量分配可复用的内存空间。
对于语音处理模型的权重对应的第一特征张量,为第一特征张量分配持久化内存。
对于语音处理模型非权重的语音处理算子内部用于计算中间临时结果所申请的第二特征张量,通过查询内存池中内存块的可复用状态,为第二特征张量分配可复用的内存块。
在该实施例中,通过分析每个目标特征张量引用计数确定每个目标特征张量的有效生命周期,进而基于贪心算法分配每个目标特征张量内存偏移量,有效降低模型部署和运行时内存占用,并基于内存池和分时复用方法对第二特征张量这类临时张量的内存进行复用,进一步提升终端设备的内存利用率。
下面对本申请实施例提供的语音处理模型的部署装置进行描述,下文描述的语音处理模型的部署装置与上文描述的语音处理模型的部署方法可相互对应参照。
如图5所示,本申请实施例提供的语音处理模型的部署装置包括:
第一获取模块510,用于获取语音处理模型中多个语音特征张量的张量属性;
第一处理模块520,用于基于张量属性,从多个语音特征张量中确定出至少一个目标特征张量,目标特征张量表征语音处理模型中语音处理算子的输入端口和输出端口所对应的张量;
第二获取模块530,用于获取目标特征张量的生命周期和数据量;
第二处理模块540,用于基于目标特征张量的生命周期和数据量,确定目标特征张量对应的第一内存地址,第一内存地址用于部署语音处理模型的目标特征张量。
在一些实施例中,第二获取模块530用于获取语音处理算子的算子执行顺序;
基于算子执行顺序,确定目标特征张量的生命周期。
在一些实施例中,第二获取模块530用于基于算子执行顺序,确定目标特征张量对应的开始算子节点;
基于算子执行顺序和语音处理算子的输入端口对应的张量,确定目标特征张量的引用计数;
基于算子执行顺序和引用计数,确定目标特征张量对应的结束算子节点;
基于开始算子节点和结束算子节点,确定目标特征张量的生命周期。
在一些实施例中,第二处理模块540用于基于目标特征张量的生命周期和数据量,确定目标特征张量的偏移地址;
基于偏移地址,确定第一内存地址。
在一些实施例中,第二处理模块540用于将目标特征张量按照数据量大小进行降序排序;
基于排序后的目标特征张量所对应的生命周期,确定目标特征张量的偏移地址。
在一些实施例中,第一处理模块520还用于基于张量属性,从多个语音特征张量中确定出至少一个非目标特征张量;
第二处理模块540还用于确定非目标特征张量对应的第二内存地址,第二内存地址用于部署语音处理模型的非目标特征张量。
在一些实施例中,第二处理模块540还用于确定非目标特征张量为第一特征张量,第一特征张量表征语音处理模型的权重对应的张量;
确定第一特征张量对应的第二内存地址为持久化内存地址。
在一些实施例中,第二处理模块540还用于确定非目标特征张量为第二特征张量,第二特征张量表征语音处理模型中非权重的临时张量;
确定第二特征张量对应的第二内存地址为内存池的内存块地址,内存块地址基于第二特征张量的数据量和内存池的内存块可复用状态确定。
图6示例了一种电子设备的实体结构示意图,如图6所示,该电子设备可以包括:处理器(processor)610、通信接口(Communications Interface)620、存储器(memory)630和通信总线640,其中,处理器610,通信接口620,存储器630通过通信总线640完成相互间的通信。处理器610可以调用存储器630中的逻辑指令,以执行语音处理模型的部署方法,该方法包括:获取语音处理模型中多个语音特征张量的张量属性;基于张量属性,从多个语音特征张量中确定出至少一个目标特征张量,目标特征张量表征语音处理模型中语音处理算子的输入端口和输出端口所对应的张量;获取目标特征张量的生命周期和数据量;基于目标特征张量的生命周期和数据量,确定目标特征张量对应的第一内存地址,第一内存地址用于部署语音处理模型的目标特征张量。
此外,上述的存储器630中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
进一步地,本申请还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法实施例所提供的语音处理模型的部署方法,该方法包括:获取语音处理模型中多个语音特征张量的张量属性;基于张量属性,从多个语音特征张量中确定出至少一个目标特征张量,目标特征张量表征语音处理模型中语音处理算子的输入端口和输出端口所对应的张量;获取目标特征张量的生命周期和数据量;基于目标特征张量的生命周期和数据量,确定目标特征张量对应的第一内存地址,第一内存地址用于部署语音处理模型的目标特征张量。
另一方面,本申请实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的语音处理模型的部署方法,该方法包括:获取语音处理模型中多个语音特征张量的张量属性;基于张量属性,从多个语音特征张量中确定出至少一个目标特征张量,目标特征张量表征语音处理模型中语音处理算子的输入端口和输出端口所对应的张量;获取目标特征张量的生命周期和数据量;基于目标特征张量的生命周期和数据量,确定目标特征张量对应的第一内存地址,第一内存地址用于部署语音处理模型的目标特征张量。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
以上实施方式仅用于说明本申请,而非对本申请的限制。尽管参照实施例对本申请进行了详细说明,本领域的普通技术人员应当理解,对本申请的技术方案进行各种组合、修改或者等同替换,都不脱离本申请技术方案的精神和范围,均应涵盖在本申请的权利要求范围中。
Claims (11)
1.一种语音处理模型的部署方法,其特征在于,包括:
获取语音处理模型中多个语音特征张量的张量属性;
基于所述张量属性,从所述多个语音特征张量中确定出至少一个目标特征张量,所述目标特征张量表征所述语音处理模型中语音处理算子的输入端口和输出端口所对应的张量;
获取所述目标特征张量的生命周期和数据量;
基于所述目标特征张量的生命周期和数据量,确定所述目标特征张量对应的第一内存地址,所述第一内存地址用于部署所述语音处理模型的所述目标特征张量。
2.根据权利要求1所述的语音处理模型的部署方法,其特征在于,所述获取所述目标特征张量的生命周期,包括:
获取所述语音处理算子的算子执行顺序;
基于所述算子执行顺序,确定所述目标特征张量的生命周期。
3.根据权利要求2所述的语音处理模型的部署方法,其特征在于,所述基于所述算子执行顺序,确定所述目标特征张量的生命周期,包括:
基于所述算子执行顺序,确定所述目标特征张量对应的开始算子节点;
基于所述算子执行顺序和所述语音处理算子的输入端口对应的张量,确定所述目标特征张量的引用计数;
基于所述算子执行顺序和所述引用计数,确定所述目标特征张量对应的结束算子节点;
基于所述开始算子节点和所述结束算子节点,确定所述目标特征张量的生命周期。
4.根据权利要求1所述的语音处理模型的部署方法,其特征在于,所述基于所述目标特征张量的生命周期和数据量,确定所述目标特征张量对应的第一内存地址,包括:
基于所述目标特征张量的生命周期和数据量,确定所述目标特征张量的偏移地址;
基于所述偏移地址,确定所述第一内存地址。
5.根据权利要求4所述的语音处理模型的部署方法,其特征在于,所述基于所述目标特征张量的生命周期和数据量,确定所述目标特征张量的偏移地址,包括:
将所述目标特征张量按照数据量大小进行降序排序;
基于排序后的所述目标特征张量所对应的生命周期,确定所述偏移地址。
6.根据权利要求1-5任一项所述的语音处理模型的部署方法,其特征在于,在所述获取语音处理模型中多个语音特征张量的张量属性之后,所述方法还包括:
基于所述张量属性,从所述多个语音特征张量中确定出至少一个非目标特征张量;
确定所述非目标特征张量对应的第二内存地址,所述第二内存地址用于部署所述语音处理模型的所述非目标特征张量。
7.根据权利要求6所述的语音处理模型的部署方法,其特征在于,所述确定所述非目标特征张量对应的第二内存地址,包括:
确定所述非目标特征张量为第一特征张量,所述第一特征张量表征所述语音处理模型的权重对应的张量;
确定所述第一特征张量对应的所述第二内存地址为持久化内存地址。
8.根据权利要求6所述的语音处理模型的部署方法,其特征在于,所述确定所述非目标特征张量对应的第二内存地址,包括:
确定所述非目标特征张量为第二特征张量,所述第二特征张量表征所述语音处理模型中非权重的临时张量;
确定所述第二特征张量对应的所述第二内存地址为内存池的内存块地址,所述内存块地址基于所述第二特征张量的数据量和所述内存池的内存块可复用状态确定。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至8任一项所述语音处理模型的部署方法。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至8任一项所述语音处理模型的部署方法。
11.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至8任一项所述语音处理模型的部署方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210761611.2A CN115080240B (zh) | 2022-06-29 | 2022-06-29 | 语音处理模型的部署方法、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210761611.2A CN115080240B (zh) | 2022-06-29 | 2022-06-29 | 语音处理模型的部署方法、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115080240A true CN115080240A (zh) | 2022-09-20 |
CN115080240B CN115080240B (zh) | 2023-10-10 |
Family
ID=83256967
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210761611.2A Active CN115080240B (zh) | 2022-06-29 | 2022-06-29 | 语音处理模型的部署方法、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115080240B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117785759A (zh) * | 2024-02-28 | 2024-03-29 | 北京壁仞科技开发有限公司 | 数据存储方法、数据读取方法、电子设备和存储介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111078395A (zh) * | 2019-11-12 | 2020-04-28 | 华中科技大学 | 一种基于张量的深度学习gpu内存管理优化方法及系统 |
CN111708641A (zh) * | 2020-07-14 | 2020-09-25 | 腾讯科技(深圳)有限公司 | 一种内存管理方法、装置、设备及计算机可读存储介质 |
CN112199190A (zh) * | 2020-07-31 | 2021-01-08 | 厦门星宸科技有限公司 | 内存分配方法、装置、存储介质及电子设备 |
CN112241324A (zh) * | 2020-12-14 | 2021-01-19 | 蚂蚁智信(杭州)信息技术有限公司 | 内存管理方法及装置 |
WO2021052460A1 (zh) * | 2019-09-18 | 2021-03-25 | 华为技术有限公司 | 数据处理方法、模型优化装置和模型执行装置 |
WO2021057807A1 (zh) * | 2019-09-23 | 2021-04-01 | Oppo广东移动通信有限公司 | 深度学习模型生成方法、装置、设备及存储介质 |
CN112669852A (zh) * | 2020-12-15 | 2021-04-16 | 北京百度网讯科技有限公司 | 内存分配方法、装置及电子设备 |
CN113313241A (zh) * | 2020-02-27 | 2021-08-27 | 阿里巴巴集团控股有限公司 | 确定深度学习模型的张量信息的方法和计算装置 |
CN113806078A (zh) * | 2021-08-27 | 2021-12-17 | 南京中科逆熵科技有限公司 | 一种用于边缘ai推理框架的内存调度方法 |
CN114327844A (zh) * | 2020-09-29 | 2022-04-12 | 华为技术有限公司 | 内存分配方法、相关设备及计算机可读存储介质 |
-
2022
- 2022-06-29 CN CN202210761611.2A patent/CN115080240B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021052460A1 (zh) * | 2019-09-18 | 2021-03-25 | 华为技术有限公司 | 数据处理方法、模型优化装置和模型执行装置 |
WO2021057807A1 (zh) * | 2019-09-23 | 2021-04-01 | Oppo广东移动通信有限公司 | 深度学习模型生成方法、装置、设备及存储介质 |
CN111078395A (zh) * | 2019-11-12 | 2020-04-28 | 华中科技大学 | 一种基于张量的深度学习gpu内存管理优化方法及系统 |
US20210142178A1 (en) * | 2019-11-12 | 2021-05-13 | Huazhong University Of Science And Technology | Tensor-based optimization method for memory management of a deep-learning gpu and system thereof |
CN113313241A (zh) * | 2020-02-27 | 2021-08-27 | 阿里巴巴集团控股有限公司 | 确定深度学习模型的张量信息的方法和计算装置 |
CN111708641A (zh) * | 2020-07-14 | 2020-09-25 | 腾讯科技(深圳)有限公司 | 一种内存管理方法、装置、设备及计算机可读存储介质 |
CN112199190A (zh) * | 2020-07-31 | 2021-01-08 | 厦门星宸科技有限公司 | 内存分配方法、装置、存储介质及电子设备 |
US20220035544A1 (en) * | 2020-07-31 | 2022-02-03 | Sigmastar Technology Ltd. | Memory allocation method and device, and electronic apparatus |
CN114327844A (zh) * | 2020-09-29 | 2022-04-12 | 华为技术有限公司 | 内存分配方法、相关设备及计算机可读存储介质 |
CN112241324A (zh) * | 2020-12-14 | 2021-01-19 | 蚂蚁智信(杭州)信息技术有限公司 | 内存管理方法及装置 |
CN112669852A (zh) * | 2020-12-15 | 2021-04-16 | 北京百度网讯科技有限公司 | 内存分配方法、装置及电子设备 |
CN113806078A (zh) * | 2021-08-27 | 2021-12-17 | 南京中科逆熵科技有限公司 | 一种用于边缘ai推理框架的内存调度方法 |
Non-Patent Citations (2)
Title |
---|
YURY等: "Efficient Memory Management for Deep Neutral Net Inference", 《RESOURCE-CONSTRAINT MACHINE LEARNING(RECOML)WORKSHOP OF MLSYS 2020 CONFERENCE》, pages 1 - 7 * |
黄真亮等: "目标检测算法在嵌入式平台中的应用", 《电子技术》, vol. 50, no. 08, pages 150 - 151 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117785759A (zh) * | 2024-02-28 | 2024-03-29 | 北京壁仞科技开发有限公司 | 数据存储方法、数据读取方法、电子设备和存储介质 |
CN117785759B (zh) * | 2024-02-28 | 2024-04-23 | 北京壁仞科技开发有限公司 | 数据存储方法、数据读取方法、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115080240B (zh) | 2023-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106339254B (zh) | 一种虚拟机快速启动方法、装置及管理节点 | |
CN103346912B (zh) | 告警相关性分析的方法、装置及系统 | |
CN107306196A (zh) | 虚拟化服务监控方法和装置 | |
CN111935223B (zh) | 基于5g和云计算的物联网设备处理方法及云计算中心 | |
CN108960174A (zh) | 一种目标检测结果优化方法及装置 | |
CN108287668A (zh) | 设备数据的处理方法及装置、计算机装置及可读存储介质 | |
CN115080240A (zh) | 语音处理模型的部署方法、电子设备及存储介质 | |
CN110166455A (zh) | 一种多运营商平台数据适配方法及相关设备 | |
CN108418727B (zh) | 一种探测网络设备的方法及系统 | |
CN106980571A (zh) | 一种测试用例集的构建方法和设备 | |
CN113128143B (zh) | Ai处理器的仿真方法、装置、计算机设备及存储介质 | |
CN112925634A (zh) | 异构资源调度方法和系统 | |
Bertault et al. | Drawing hypergraphs in the subset standard (short demo paper) | |
CN114020450A (zh) | 一种神经网络模型执行方法、装置、系统、电子设备 | |
CN115150152B (zh) | 基于权限依赖图缩减的网络用户实际权限快速推理方法 | |
CN106778864A (zh) | 初始样本选择方法及装置 | |
CN108733425A (zh) | 业务变更信息发送方法、装置、电子设备和存储介质 | |
US20170090820A1 (en) | Method and device for operating a many-core system | |
CN114022721A (zh) | 图像特征点选取方法及相关装置、设备和存储介质 | |
CN103546466B (zh) | 一种多业务交互处理的方法和网络设备 | |
CN109040214B (zh) | 一种云环境下可靠性增强的服务部署方法 | |
CN107562420B (zh) | 一种Linux环境网络接口结构体内存处理方法及装置 | |
CN112235152B (zh) | 流量大小估算方法和装置 | |
CN110083583A (zh) | 流式事件处理方法及装置 | |
CN112416608B (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 | ||
GR01 | Patent grant |