CN115600664B - 算子处理方法、电子设备及存储介质 - Google Patents
算子处理方法、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115600664B CN115600664B CN202211194266.5A CN202211194266A CN115600664B CN 115600664 B CN115600664 B CN 115600664B CN 202211194266 A CN202211194266 A CN 202211194266A CN 115600664 B CN115600664 B CN 115600664B
- Authority
- CN
- China
- Prior art keywords
- operator
- target
- core
- preset
- category
- 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.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 31
- 238000005457 optimization Methods 0.000 claims abstract description 84
- 238000000034 method Methods 0.000 claims abstract description 32
- 238000004364 calculation method Methods 0.000 claims abstract description 20
- 230000006870 function Effects 0.000 claims description 118
- 239000011159 matrix material Substances 0.000 claims description 22
- 230000004913 activation Effects 0.000 claims description 15
- 238000011176 pooling Methods 0.000 claims description 12
- 238000004904 shortening Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 7
- 238000013507 mapping Methods 0.000 claims description 5
- 238000012545 processing Methods 0.000 abstract description 39
- 230000008569 process Effects 0.000 abstract description 10
- 230000008901 benefit Effects 0.000 abstract description 8
- 238000013473 artificial intelligence Methods 0.000 abstract description 6
- 238000004422 calculation algorithm Methods 0.000 description 15
- 238000004891 communication Methods 0.000 description 12
- 238000011161 development Methods 0.000 description 10
- 230000000694 effects Effects 0.000 description 6
- 238000013461 design Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000001133 acceleration Effects 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000001514 detection method 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
- 230000003287 optical effect Effects 0.000 description 2
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
Classifications
-
- 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/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请涉及嵌入式人工智能技术领域,提供一种算子处理方法、电子设备及存储介质,其中算子处理方法,包括:获取待处理算子的目标类别信息;确定与目标类别信息匹配的目标算力优化策略,目标算力优化策略包括主核执行算子和从核执行算子中的至少一种;基于目标算力优化策略,执行待处理算子。使用本申请能够实现多核异构***在执行不同类别算子的过程中也能够确保多核算力最优的目的,大幅提高了多核异构***处理算子的执行效率和运算效率,同时也能充分发挥多核算力优势,并且,通过主核执行算子和/或从核执行算子能够确保算子处理的灵活性和可靠性,从而也能大幅降低多核异构***的处理器功耗。
Description
技术领域
本申请涉及嵌入式人工智能技术领域,尤其涉及算子处理方法、电子设备及存储介质。
背景技术
随着人工智能物联网的发展,越来越多的终端通过与云端连接进行语音交互,并且基于成本和性能的考虑,实际的语音类电子产品中通常采用嵌入式多核异构处理器应用于人工智能物联网的语音场景。因此,如何确保嵌入式多核异构处理器高效执行语音场景下的各类算法,也就显得尤为重要。
相关技术中,嵌入式多核异构处理器执行语音场景的算法,通常是直接执行语音处理算法所涉及的各个算子,以此生成常用的指令编码。
然而,由于直接执行语音处理算法所涉及的各个算子,并不能确保每个算子在执行过程中多核算力最优,从而导致多核处理算子的执行效率不高且运算性能也较差。
发明内容
本申请旨在至少解决相关技术中存在的技术问题之一。为此,本申请提出一种算子处理方法,实现基于不同类别算子的算力优化策略执行算子的目的,大幅提高了算子处理算子的执行效率和运算性能,也有效发挥了多核算力优势。
本申请还提出一种电子设备。
本申请还提出一种非暂态计算机可读存储介质。
本申请还提出一种计算机程序产品。
根据本申请第一方面实施例的算子处理方法,包括:
获取待处理算子的目标类别信息;
确定与所述目标类别信息匹配的目标算力优化策略,所述目标算力优化策略包括主核执行算子和从核执行算子中的至少一种;
基于所述目标算力优化策略,执行所述待处理算子。
根据本申请实施例的算子处理方法,通过先获取不同待处理算子的目标类别信息、后基于目标类别信息匹配算力优化策略的方式,实现多核异构***在执行不同类别算子的过程中也能够确保多核算力最优的目的,大幅提高了多核异构***处理算子的执行效率和运算效率,同时也能充分发挥多核算力优势;进一步的,由于目标算力优化策略包括主核执行算子和从核执行算子中的至少一种,因此通过主核执行算子和/或从核执行算子能够确保算子处理的灵活性和可靠性,从而也能大幅降低多核异构***的处理器功耗。
根据本申请的一个实施例,所述确定与所述目标类别信息匹配的目标算力优化策略,包括:
确定所述目标类别信息为第一预设类别,确定与所述第一预设类别匹配的目标算力优化策略为所述主核执行算子;所述第一预设类别包括激活类和逻辑类中的至少一种;
确定所述目标类别信息为第二预设类别,确定与所述第二预设类别匹配的目标算力优化策略为所述从核执行算子或所述主核执行算子;所述第二预设类别包括矩阵向量乘法类、卷积类和池化类中的至少一种。
根据本申请的一个实施例,所述基于所述目标算力优化策略,执行所述待处理算子,包括:
基于所述主核执行算子的所述目标算力优化策略,使用编译工具链接第一算子的第一目标预设函数,并运行所述第一目标预设函数;其中,所述第一算子为所述待处理算子中属于所述第一预设类别的算子。
根据本申请的一个实施例,所述运行所述第一目标预设函数,包括:
获取针对所述第一算子的第一需求信息;
确定所述第一需求信息包括节省存储空间,基于主核汇编指令运行所述第一目标预设函数,从而获取所述第一目标预设函数的运算结果。
根据本申请的一个实施例,在所述获取针对所述第一算子的第一需求信息之后,所述方法还包括:
确定所述第一需求信息包括缩短运行时间,基于预先存储的算子运算与所述算子运算的结果之间的映射关系,获取所述第一目标预设函数的运算结果。
根据本申请的一个实施例,所述确定所述目标类别信息为第二预设类别,确定与所述第二预设类别匹配的目标算力优化策略为从核执行算子,包括:
确定所述目标类别信息为第二预设类别,获取针对第二算子的第二需求信息,所述第二算子为所述待处理算子中属于所述第二预设类别的算子;
确定所述第二需求信息包括节省存储空间,确定与所述第二预设类别匹配的目标算力优化策略为从核执行算子。
根据本申请的一个实施例,在所述获取针对所述待处理算子的第二需求信息之后,所述方法还包括:
确定所述第二需求信息包括缩短运行时间,确定与所述第二预设类别匹配的目标算力优化策略为主核执行算子。
根据本申请的一个实施例,所述基于所述目标算力优化策略,执行所述待处理算子,包括:
基于所述从核执行算子的所述目标算力优化策略,获取所述第二算子的第二目标预设函数;
确定所述第二目标预设函数的基本参数信息;
将所述基本参数信息传输至从核的运行库,以指示所述从核的运行库先确定所述基本参数信息对应的适宜目标预设函数、后运行所述适宜目标预设函数。
本申请实施例中的上述一个或多个技术方案,至少具有如下技术效果之一:通过确定在主核上执行待处理算子中的激活类和逻辑类,以及确定在从核上执行待处理算子中的矩阵向量乘法类、卷积类和池化类的方式,实现了针对不同的待处理算子进行分类处理的目的,从而提高了多核异构***优化算子的灵活性和针对性,进一步确保多核异构***处理算子时能够充分发挥多核算力。
进一步的,通过主核使用编译工具链接待处理算子对应的第一目标预设函数并运行第一目标预设函数的方式,提高了多核异构***中主核的开发效率和运算效率,实现了快速优化第一算子的目的。
更进一步的,通过针对第一预设类别的第一需求信息在主核上运行时以存储空间最小为需求,确定基于主核汇编指令运行第一目标预设函数的方式,获取第一目标预设函数的运算结果,提高了主核运行第一目标预设函数的灵活性和可靠性。
再进一步的,通过针对第一预设类别的第一需求信息在主核上运行时以运行时间最短为需求,获取第一目标预设函数的运算结果,以此实现最大程度效果优化的目的,从而有效提高了主核执行算子的灵活性和可靠性。
本申请的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的算子处理方法的流程示意图;
图2是本申请实施例提供的主核执行算子的流程示意图;
图3是本申请实施例提供的从核执行算子的流程示意图;
图4是本申请实施例提供的算子处理装置的结构示意图;
图5是本申请提供的电子设备的实体结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
随着人工智能物联网的发展,越来越多的终端可与云端连接进行语音交互,考虑到语音技术涉及数字信号处理(Digital Signal Processing,DSP),并且DSP能够实现NN算子的加速,以及需要处理器(Central Processing Unit,CPU)/微控制单元(Microcontroller Unit,MCU)去处理电子产品中一些通用的应用逻辑,因此现有的语音类电子产品中,通常采用CPU/MCU+DSP/嵌入式神经网络处理器(Neural-network ProcessingUnit,NPU)的多核异构处理器应用于人工智能物联网的语音场景。
相关技术中,通常将统一计算设备架构(Compute Unified DeviceArchitecture,CUDA)和开放运算语言(Open Computing Language,OpenCL)作为异构***的通用开发平台,但OpenCL是针对高性能CPU/图形处理器(Graphics Processing Unit,GPU)的,并不适用于类似于语音类电子产品这种小型嵌入式的异构***,并且现有开发嵌入式多核异构***,通用的开发方式是在每个核上单独开发程序,这就要求开发者对每个核的指令集架构(Instruction Set Architecture,ISA)、存储架构及算子优化都足够了解,而且是以核间通信的方式串联多核的运算流程,从而导致开发工作量增大、开发效率低,也不能最优发挥多核的算力。
基于此,本申请提供一种算子处理方法、电子设备及存储介质,其中算子处理方法的执行主体可以为嵌入式多核异构***的Risc-V主核,该嵌入式多核异构***至少包括Risc-V主核、DSP从核以及ARM核,ARM核是协议栈的核,Risc-V主核和DSP从核分别用于执行对应的算子;并且,嵌入式多核异构***可以设置于终端设备中,终端设备可以为个人计算机(Personal Computer,PC)、便携式设备、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备等其它电子设备。本申请对终端设备的具体形式不做限定。下面结合图1-图5描述本申请的算子处理方法、电子设备及存储介质,并且下述方法实施例以执行主体为嵌入式多核异构***的Risc-V主核为例进行说明。
图1为本申请提供的算子处理方法的流程示意图,如图1所示,该算子处理方法,包括以下步骤:
步骤110、获取待处理算子的目标类别信息。
其中,待处理算子可以为处理预设目标场景的预设处理算法实现中包含的运算,预设目标场景可以为语音场景,也可以为非语音场景;预设处理算法实现中包含的运算可以包括但不限定绝对值运算、对数运算、矩阵乘法运算和池化运算等;比如,当预设目标场景为语音场景且预设处理算法为语音端点检测(Voice Activity Detection,VAD)时,预设处理算法实现中包含的运算可以为对数运算、绝对值运算和矩阵乘法运算。并且,待处理算子的数量可以为1个,也可以为多个。此处不作具体限定。
具体的,嵌入式多核异构***中可以预先存储有针对不同运算进行预分类后的分类结果,该分类结果可以是人为将现有处理预设目标场景的预设处理算法涉及的运算进行分类后得到的结果,也即预设处理算法中含有的每个运算都会对应一个目标类别信息,以使得嵌入式多核异构***针对预设处理算法中含有的待处理算子,可以基于存储的分类结果,快速确定每个待处理算子的目标类别信息。
步骤120、确定与目标类别信息匹配的目标算力优化策略,目标算力优化策略包括主核执行算子和从核执行算子中的至少一种。
其中,目标算力优化策略可以用于表征在目标核上执行待处理算子时能够确保多核算力最优,目标核可以为嵌入式多核异构***中用于执行待处理算子的核;并且,目标核可以为Risc-V主核或者DSP从核。
具体的,之所以针对不同类别的算子设置不同的算子优化策略,目的是使得预设处理算法所包含的每个运算都能在最适宜的核上执行且执行过程中还能确保多核算力最优。因此,可以基于不同的目标类别信息确定执行不同待处理算子的目标核,从而实现对不同算子的优化目的。
可以理解的是,针对绝对值运算、对数运算等运算较为简单的待处理算子,可以确定对应的目标核为Risc-V主核;针对涉及并行运算、数组运算、向量运算等运算较为复杂的待处理算子,可以确定对应的目标核为DSP从核。Risc-V主核可以基于不同的待处理算子和Risc-V ISA设计对应的内建函数(intrinsic function)并以内嵌函数单元的形式显示,以此使得后续编译器编译时直接调用与待处理算子对应的内建函数,DSP从核中除了包括NN算子的函数接口之外,还可以包括不同待处理算子对应的内建函数,以使得在DSP从核上执行某一待处理算子时可以选择最适宜的函数进行加速优化。
步骤130、基于目标算力优化策略,执行待处理算子。
具体的,嵌入式多核异构***的Risc-V主核可以基于目标算力优化策略执行待处理算子,比如可以由Risc-V主核自身执行运算较为简单的待处理算子,也可以指示运算较为复杂的待处理算子经由DSP从核执行算子,以此实现多核异构***执行预设处理算法中各个运算的目的。
本申请提供的算子处理方法,通过先获取不同待处理算子的目标类别信息、后基于目标类别信息匹配算力优化策略的方式,实现多核异构***在执行不同类别算子的过程中也能够确保多核算力最优的目的,大幅提高了多核异构***处理算子的执行效率和运算效率,同时也能充分发挥多核算力优势;进一步的,由于目标算力优化策略包括主核执行算子和从核执行算子中的至少一种,因此通过主核执行算子和/或从核执行算子能够确保算子处理的灵活性和可靠性,从而也能大幅降低多核异构***的处理器功耗。
可以理解的是,在嵌入式多核异构***含有Risc-V主核和DSP从核的情况下,可以充分利用Risc-V微架构和指令集设计的优势,以及DSP针对高频算子进行硬件加速的特点,先对不同的待处理算子进行分类、后确定目标算力优化策略。基于此,步骤120的具体实现过程可以包括:
确定目标类别信息为第一预设类别,确定与第一预设类别匹配的目标算力优化策略为主核执行算子;第一预设类别包括激活类和逻辑类中的至少一种;确定目标类别信息为第二预设类别,确定与第二预设类别匹配的目标算力优化策略为从核执行算子或主核执行算子;第二预设类别包括矩阵向量乘法类、卷积类和池化类中的至少一种。
具体的,针对语音场景,其处理过程中用到的算子通常包括5类,分别为激活类、逻辑类、矩阵向量乘法类、卷积类和池化类,并且基于5类算子各自的运算复杂度,可以将运算复杂度较低的激活类和逻辑类归属于第一预设类别,将运算复杂度较高的矩阵向量乘法类、卷积类和池化类归属于第二预设类别,并且确定待处理算子中属于第一预设类别的算子在Risc-V主核上执行;以及确定待处理算子中属于第二预设类别的算子可以在DSP从核上执行,也可以在Risc-V主核上执行,以此确保每个算子在对应核上执行时都能确保多核算力最优。
可以理解的是,待处理算子中属于第一预设类别的算子可以为1个或多个;并且,当待处理算子中属于第一预设类别的算子为多个时,可以均为激活类的算子,可以均为逻辑类的算子,也可以为激活类的算子和逻辑类的算子之和;同样的,待处理算子中属于第二预设类别的算子也可以为1个或多个;当待处理算子中属于第二预设类别的算子为多个时,可以均为矩阵向量乘法类的算子,可以均为卷积类的算子,可以均为池化类的算子,也可以为矩阵向量乘法类的算子、卷积类的算子和池化类的算子中至少两个算子之和。
本申请提供的算子处理方法,通过确定在主核上执行待处理算子中的激活类和逻辑类,以及确定在从核上执行待处理算子中的矩阵向量乘法类、卷积类和池化类的方式,实现了针对不同的待处理算子进行分类处理的目的,从而提高了多核异构***优化算子的灵活性和针对性,进一步确保多核异构***处理算子时能够充分发挥多核算力。
可以理解的是,考虑到Risc-V是一个基于精简指令集原则的开源指令集架构,可以通过在Risc-V ISA中增加针对待处理算子的算子运算指令的方式,设计每个待处理算子对应的内建函数且每个内建函数都能被编译器中的工具链自动链接,并存储每个待处理算子对应的内建函数,以便于执行待处理算子时能够通过调用对应的内建函数实现算力优化。基于此,步骤130的具体实现过程可以包括:
基于主核执行算子的目标算力优化策略,使用编译工具链接第一算子的第一目标预设函数,并运行第一目标预设函数。
其中,第一算子为待处理算子中属于第一预设类别的算子;第一目标预设函数为待处理算子中属于第一预设类别的算子对应的内建函数,并且第一目标预设函数以内嵌函数单元的方式显示于编译器的工具链中;编译器可以包括但不限定GNU编译器套件(GNUCompiler Collection,gcc)和底层虚拟机(Low Level Virtual Machine,llvm)。
具体的,由于现有针对语音场景开发的多核异构***中每个核上均需单独开发程序,并利用核间通信的方式串联多核的运算流程,因此导致多核异构***的开发难度大且不能最优发挥多核算力。因此,为了避免上述问题,可以先利用编译器从预先设计并存储的每个待处理算子对应的内建函数中,自动链接第一算子的第一目标预设函数,再由Risc-V主核运行第一目标预设函数,以此实现Risc-V主核的最佳优化效果。
示例性的,参照图2所示的主核执行算子的流程示意图,针对激活类(也即Activation类)的第一算子为Elu激活运算,以提高开发效率和提升运算效率为基准,在Risc-V ISA定义中增加向量Elu指令,再在gcc/llvm中实现充分利用Risc-V微架构设计Elu激活运算的内建(intrinsic)函数,并且利用Risc-V ISA可以设计第一算子的内建函数;以此实现Risc-V主核优化算法的目的。
本申请提供的算子处理方法,通过主核使用编译工具链接待处理算子对应的第一目标预设函数并运行第一目标预设函数的方式,提高了多核异构***中主核的开发效率和运算效率,实现了快速优化第一算子的目的。
可以理解的是,考虑到第一预设类别的运算复杂度较低,可以基于实际需求选择获取运算结果的方式。基于此,运行第一目标预设函数,其实现过程可以包括:
获取针对第一算子的第一需求信息;确定第一需求信息包括缩短运行时间,基于主核汇编指令运行第一目标预设函数,从而获取第一目标预设函数的运算结果。
具体的,为了确保待处理算子中属于第一预设类别的算子在Risc-V主核上执行时都能够符合实际场景需求,实际场景需求可以包括运行时间最短和存储空间最小中的一个,可以先针对第一算子获取第一需求信息,第一需求信息包括缩短运行时间和节省存储空间中的一个,缩短运行时间也即运行时间最短,节省存储空间也即存储空间最小;基于此,若第一需求信息包括节省存储空间,则认为Risc-V主核执行算子运算要以其存储空间最小为基准,此时可以直接使用Risc-V主核的汇编指令运行第一目标预设函数,从而获取第一目标预设函数的运算结果。
本申请提供的算子处理方法,通过针对第一预设类别的第一需求信息在主核上运行时以存储空间最小为需求,确定基于主核汇编指令运行第一目标预设函数的方式,获取第一目标预设函数的运算结果,提高了主核运行第一目标预设函数的灵活性和可靠性。
可以理解的是,考虑到Risc-V主核执行算子时除了优先考虑存储空间最小之外,还可以优先考虑运行时间最短,以此也能获取第一目标预设函数的运算结果。基于此,在获取针对第一算子的第一需求信息之后,本申请方法还可以包括:
确定第一需求信息包括缩短运行时间,基于预先存储的算子运算与算子运算的结果之间的映射关系,获取第一目标预设函数的运算结果。
具体的,为了提高Risc-V主核执行算子的灵活性,可以预先设置多个不同确定算子运算结果的方法,比如包括节省空间但耗时间的方法1、占用空间多但节约时间的方法2,以及占用空间适中且时间消耗也适中的方法3等,并且每个方法所适用的算子可以为多个。基于此,当确定第一需求包括缩短运行时间时,可以选取方法1执行对应第一算子的运算并得到对应第一算子的运算结果,所确定的第一算子的运算结果即为第一目标预设函数的运算结果。进一步的,当使用方法1进行多个第一算子进行运算时,可以选取其中一个时间最优的第一算子并确定其运算结果。
本申请提供的算子处理方法,通过针对第一预设类别的第一需求信息在主核上运行时以运行时间最短为需求,获取第一目标预设函数的运算结果,以此实现最大程度效果优化的目的,从而有效提高了主核执行算子的灵活性和可靠性。
可以理解的是,虽然第二预设类别的运算复杂度较高,但是也可以基于实际需求确定由DSP从核执行算子第二预设类别。基于此,确定目标类别信息为第二预设类别,确定与第二预设类别匹配的目标算力优化策略为从核执行算子,其实现过程可以包括:
确定目标类别信息为第二预设类别,获取针对第二算子的第二需求信息;确定第二需求信息包括节省存储空间,确定与第二预设类别匹配的目标算力优化策略为从核执行算子。
其中,第二算子为待处理算子中属于第二预设类别的算子。
具体的,Risc-V主核针对第二算子,可以首先获取针对第二算子的第二需求信息,当确定第二需求信息包括节省存储空间时,可以认为待处理算子中属于第二预设类别的算子在执行时要求存储空间最小,此时可以确定与第二预设类别匹配的目标算力优化策略为从核执行算子,也即确定待处理算子中属于第二预设类别的算子在DSP从核上执行。
可以理解的是,由于DSP从核的工具链和相关库文件中预先存储有各个NN算子函数,在不确保其它核上设计的函数的性能和速率均优于对应的NN算子函数时,通常不需要DSP从核中重新设计算子的内建函数,由此相较于Risc-V主核可以节省存储空间;并且通过使用DSP从核中匹配的NN算子函数执行对应算子的方式,可以结合DSP硬件加速实现执行待处理算子中属于第二预设类别的算子的目的。
本申请提供的算子处理方法,针对第二预设类别的第二需求信息以空间优先为基准确定与第二预设类别匹配的目标算力优化策略为从核执行算子,确保从核执行算子的必要性和可行性。
可以理解的是,基于实际需求不止可以确定由从核执行算子第二预设类别,还可以确定由主核执行算子。基于此,在获取针对待处理算子的第二需求信息之后,本申请方法还可以包括:
确定第二需求信息包括缩短运行时间,确定与第二预设类别匹配的目标算力优化策略为主核执行算子。
具体的,由于Risc-V主核上预先设计并存储执行每个待处理算子的内建函数,因此,针对第二算子,也可以选择在Risc-V主核上执行,但是在Risc-V主核执行算子的前提是第二需求信息需以运算时间最短为基准,也即Risc-V主核可以在不要求运行时间最短的情况下直接执行运算复杂度较高的第二算子。这是由于,考虑到Risc-V主核可以将自身执行第二算子的运行时间与DSP从核反馈的时间和进行比对,DSP从核反馈的时间和可以为DSP从核中第二算子的NN算子函数的单独运行时间以及Risc-V主核和DSP从核进行核间通信的时间之和;当Risc-V主核的运行时间小于时间和,并且第二需求信息以运算时间最短为基准时,可以确定与第二预设类别匹配的目标算力优化策略为主核执行算子。比如,针对矩阵乘法运算,可以使用Risc-V主核的向量扩展(Vector extension)汇编指令设计属于第二预设类别的算子对应的内建函数后直接执行运算。
本申请提供的算子处理方法,通过针对第二预设类别的第二需求信息包括缩短运行时间时确定主核执行算子属于第二预设类别的算子的方式,提高了多核异构***处理算子的灵活可靠性和高效稳定性。
可以理解的是,考虑到Risc-V主核针对第二预设类别确定其存储的内建函数的执行效率低于DSP从核中预先存储的NN算子函数的执行效率时,可以经由运行库将待处理算子中属于第二预设类别的算子对应的内建函数的参数信息发送至DSP从核,以指示DSP执行第二预设类别的运算。基于此,基于目标算力优化策略,执行待处理算子,其实现过程还可以包括:
基于从核执行算子的目标算力优化策略,获取第二算子的第二目标预设函数;确定第二目标预设函数的基本参数信息;将基本参数信息传输至从核的运行库,以指示从核的运行库先确定基本参数信息对应的适宜目标预设函数、后运行适宜目标预设函数。
其中,第二算子为待处理算子中属于第二预设类别的算子,第二目标预设函数为第二算子的内建函数(intrinsic function),并且第二目标预设函数也可以以内嵌函数单元的方式显示于编译器的工具链中。
具体的,由于Risc-V主核上预先设计并存储执行每个待处理算子的内建函数,因此Risc-V主核上也存储第二算子的第二目标预设函数,当Risc-V主核确定第二算子需要在DSP从核中执行时,可以以核间通信的方式,将第二算子映射到DSP从核中执行,也即先获取第二算子的第二目标预设函数,确定第二目标预设函数的基本参数信息,然后再将基本参数信息传输至DSP从核的运行库,以指示DSP从核的运行库先确定基本参数信息对应的适宜目标预设函数、后运行该适宜目标预设函数,此处的适宜目标预设函数可以为DSP从核从其运行库的众多NN算子函数中选择的最适合基本参数信息的NN算子函数;进一步的,参照图3所示的从核执行算子的流程示意图,针对第二算子为矩阵乘法运算且矩阵乘法运算需要由DSP从核中的NN算子函数执行的情况,Risc-V主核通过重载第二目标预设函数,通过算子映射的方式,将矩阵乘法运算的具体数据类型参数经由核间通信传输至DSP从核的运行库,当矩阵乘法运算的具体数据类型参数为数据类型为16位且矩阵大小为16*16时,DSP从核的运行库可以调用xa_nn_matXvec_16*16_16算子函数作为适宜目标预设函数并运行,以达到最佳的运算优化效果。
可以理解的是,当DSP从核没有从其运行库中查找出基本参数信息对应的适宜目标预设函数时,可以基于Risc-V主核的汇编指令运算实现。比如,DSP从核可以的运行库中针对矩阵乘法运算含有矩阵大小为16*16的算子函数,如果基本参数信息中矩阵大小不是16*16,可以基于Risc-V主核的汇编指令运算实现。
本申请提供的算子处理方法,通过将第二目标预设函数的基本参数信息传输至DSP从核,并且由DSP从核确定适宜目标预设函数后执行的方式,确保DSP从核执行算子优化的可靠性,以此结合核间通信的运行库和DSP从核的NN算子函数实现多核异构的算力优化目的。
下面对本申请提供的算子处理装置进行描述,下文描述的算子处理装置与上文描述的算子处理方法可相互对应参照。
参照图4,为本申请提供的算子处理装置的结构示意图,如图4所示,该算子处理装置400,包括:
获取模块410,用于获取待处理算子的目标类别信息;
确定模块420,用于确定与所述目标类别信息匹配的目标算力优化策略,目标算力优化策略包括主核执行算子和从核执行算子中的至少一种;
算力优化模块430,用于基于目标算力优化策略,执行待处理算子。
可以理解的是,确定模块420,具体可以用于确定目标类别信息为第一预设类别,确定与第一预设类别匹配的目标算力优化策略为主核执行算子;第一预设类别包括激活类和逻辑类中的至少一种;确定目标类别信息为第二预设类别,确定与第二预设类别匹配的目标算力优化策略为从核执行算子或主核执行算子;第二预设类别包括矩阵向量乘法类、卷积类和池化类中的至少一种。
可以理解的是,算力优化模块430,具体可以用于基于主核执行算子的目标算力优化策略,使用编译工具链接第一算子的第一目标预设函数,并运行第一目标预设函数;其中,第一算子为待处理算子中属于第一预设类别的算子。
可以理解的是,算力优化模块430,具体还可以用于获取针对第一算子的第一需求信息;确定第一需求信息包括节省存储空间,基于主核汇编指令运行第一目标预设函数,从而获取第一目标预设函数的运算结果。
可以理解的是,算力优化模块430,具体还可以用于确定第一需求信息包括缩短运行时间,基于预先存储的算子运算与算子运算的结果之间的映射关系,获取第一目标预设函数的运算结果。
可以理解的是,确定模块420,具体还可以用于确定目标类别信息为第二预设类别,获取针对第二算子的第二需求信息,第二算子为待处理算子中属于第二预设类别的算子;确定第二需求信息包括节省存储空间,确定与第二预设类别匹配的目标算力优化策略为从核执行算子。
可以理解的是,确定模块420,具体还可以用于确定第二需求信息包括缩短运行时间,确定与第二预设类别匹配的目标算力优化策略为主核执行算子。
可以理解的是,算力优化模块430,具体还可以用于基于从核执行算子的目标算力优化策略,获取第二算子的第二目标预设函数;确定第二目标预设函数的基本参数信息;将基本参数信息传输至从核的运行库,以指示从核的运行库先确定基本参数信息对应的适宜目标预设函数、后运行适宜目标预设函数。
本申请提供的算子处理装置,通过先获取不同待处理算子的目标类别信息、后基于目标类别信息匹配算力优化策略的方式,实现多核异构***在执行不同类别算子的过程中也能够确保多核算力最优的目的,大幅提高了多核异构***处理算子的执行效率和运算效率,同时也能充分发挥多核算力优势;进一步的,由于目标算力优化策略包括主核执行算子和从核执行算子中的至少一种,因此通过主核执行算子和/或从核执行算子能够确保算子处理的灵活性和可靠性,从而也能大幅降低多核异构***的处理器功耗。
图5示例了一种电子设备的实体结构示意图,如图5所示,该电子设备500可以包括:处理器(processor)510、通信接口(Communications Interface)520、存储器(memory)530和通信总线540,其中,处理器510,通信接口520,存储器530通过通信总线540完成相互间的通信。处理器510可以调用存储器530中的逻辑指令,以执行如下方法:
获取待处理算子的目标类别信息;
确定与目标类别信息匹配的目标算力优化策略,目标算力优化策略包括主核执行算子和从核执行算子中的至少一种;
基于目标算力优化策略,执行待处理算子。
此外,上述的存储器530中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对相关技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本申请实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:
获取待处理算子的目标类别信息;
确定与目标类别信息匹配的目标算力优化策略,目标算力优化策略包括主核执行算子和从核执行算子中的至少一种;
基于目标算力优化策略,执行待处理算子。
又一方面,本申请实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的方法,例如包括:
获取待处理算子的目标类别信息;
确定与目标类别信息匹配的目标算力优化策略,目标算力优化策略包括主核执行算子和从核执行算子中的至少一种;
基于目标算力优化策略,执行待处理算子。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是,以上实施方式仅用于说明本申请,而非对本申请的限制。尽管参照实施例对本申请进行了详细说明,本领域的普通技术人员应当理解,对本申请的技术方案进行各种组合、修改或者等同替换,都不脱离本申请技术方案的精神和范围,均应涵盖在本申请的权利要求范围中。
Claims (7)
1.一种算子处理方法,其特征在于,包括:
获取待处理算子的目标类别信息,所述目标类别信息为激活类、逻辑类、矩阵向量乘法类、卷积类和池化类中的至少一种;
确定与所述目标类别信息匹配的目标算力优化策略,所述目标算力优化策略包括主核执行算子和从核执行算子中的至少一种;其中,所述确定与所述目标类别信息匹配的目标算力优化策略,包括:
确定所述目标类别信息为第一预设类别,确定与所述第一预设类别匹配的目标算力优化策略为所述主核执行算子;所述第一预设类别包括激活类和逻辑类中的至少一种;
确定所述目标类别信息为第二预设类别,确定与所述第二预设类别匹配的目标算力优化策略为所述从核执行算子或所述主核执行算子;所述第二预设类别包括矩阵向量乘法类、卷积类和池化类中的至少一种;
基于所述目标算力优化策略,执行所述待处理算子;其中,所述基于所述目标算力优化策略,执行所述待处理算子,包括:
基于所述主核执行算子的所述目标算力优化策略,使用编译工具链接第一算子的第一目标预设函数,并运行所述第一目标预设函数;所述第一算子为待处理算子中属于第一预设类别的算子,所述第一目标预设函数为所述待处理算子中属于所述第一预设类别的算子对应的内建函数,所述第一目标预设函数以内嵌函数单元的方式显示于编译器的工具链中;
基于所述从核执行算子的所述目标算力优化策略,获取第二算子的第二目标预设函数;确定第二目标预设函数的基本参数信息;将所述基本参数信息传输至从核的运行库,以指示从核的运行库先确定基本参数信息对应的适宜目标预设函数、后运行适宜目标预设函数;所述第二算子为所述待处理算子中属于所述第二预设类别的算子,所述第二目标预设函数为所述第二算子的内建函数,所述第二目标预设函数以内嵌函数单元的方式显示于所述编译器的工具链中。
2.根据权利要求1所述的算子处理方法,其特征在于,所述运行所述第一目标预设函数,包括:
获取针对所述第一算子的第一需求信息;
确定所述第一需求信息包括节省存储空间,基于主核汇编指令运行所述第一目标预设函数,从而获取所述第一目标预设函数的运算结果。
3.根据权利要求2所述的算子处理方法,其特征在于,在所述获取针对所述第一算子的第一需求信息之后,所述方法还包括:
确定所述第一需求信息包括缩短运行时间,基于预先存储的算子运算与所述算子运算的结果之间的映射关系,获取所述第一目标预设函数的运算结果。
4.根据权利要求1所述的算子处理方法,其特征在于,所述确定所述目标类别信息为第二预设类别,确定与所述第二预设类别匹配的目标算力优化策略为从核执行算子,包括:
确定所述目标类别信息为第二预设类别,获取针对第二算子的第二需求信息,所述第二算子为所述待处理算子中属于所述第二预设类别的算子;
确定所述第二需求信息包括节省存储空间,确定与所述第二预设类别匹配的目标算力优化策略为从核执行算子。
5.根据权利要求4所述的算子处理方法,其特征在于,在所述获取针对所述待处理算子的第二需求信息之后,所述方法还包括:
确定所述第二需求信息包括缩短运行时间,确定与所述第二预设类别匹配的目标算力优化策略为主核执行算子。
6.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至5任一项所述算子处理方法。
7.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至5任一项所述算子处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211194266.5A CN115600664B (zh) | 2022-09-28 | 2022-09-28 | 算子处理方法、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211194266.5A CN115600664B (zh) | 2022-09-28 | 2022-09-28 | 算子处理方法、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115600664A CN115600664A (zh) | 2023-01-13 |
CN115600664B true CN115600664B (zh) | 2024-03-08 |
Family
ID=84845561
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211194266.5A Active CN115600664B (zh) | 2022-09-28 | 2022-09-28 | 算子处理方法、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115600664B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117648091A (zh) * | 2023-12-12 | 2024-03-05 | 上海寒武纪信息科技有限公司 | 计算图的编译方法及相关产品 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109828790A (zh) * | 2019-01-31 | 2019-05-31 | 上海赜睿信息科技有限公司 | 一种基于申威异构众核处理器的数据处理方法和*** |
WO2020062086A1 (zh) * | 2018-09-28 | 2020-04-02 | 华为技术有限公司 | 选择处理器的方法和装置 |
CN111353608A (zh) * | 2020-02-26 | 2020-06-30 | Oppo广东移动通信有限公司 | 模型移植方法及相关设备 |
CN112306678A (zh) * | 2020-10-22 | 2021-02-02 | 中国海洋大学 | 一种基于异构众核处理器的算法并行处理方法及*** |
CN114356836A (zh) * | 2021-11-29 | 2022-04-15 | 山东领能电子科技有限公司 | 基于risc-v的三维互联众核处理器架构及其工作方法 |
-
2022
- 2022-09-28 CN CN202211194266.5A patent/CN115600664B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020062086A1 (zh) * | 2018-09-28 | 2020-04-02 | 华为技术有限公司 | 选择处理器的方法和装置 |
CN109828790A (zh) * | 2019-01-31 | 2019-05-31 | 上海赜睿信息科技有限公司 | 一种基于申威异构众核处理器的数据处理方法和*** |
CN111353608A (zh) * | 2020-02-26 | 2020-06-30 | Oppo广东移动通信有限公司 | 模型移植方法及相关设备 |
CN112306678A (zh) * | 2020-10-22 | 2021-02-02 | 中国海洋大学 | 一种基于异构众核处理器的算法并行处理方法及*** |
CN114356836A (zh) * | 2021-11-29 | 2022-04-15 | 山东领能电子科技有限公司 | 基于risc-v的三维互联众核处理器架构及其工作方法 |
Non-Patent Citations (1)
Title |
---|
A Unified Optimization Approach for CNN Model Inference on Integrated GPUs;Leyuan Wang等;《arXiv》;20190703;第1-10页 * |
Also Published As
Publication number | Publication date |
---|---|
CN115600664A (zh) | 2023-01-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3754496B1 (en) | Data processing method and related products | |
US20200210233A1 (en) | Operation method, device and related products | |
WO2020062086A1 (zh) | 选择处理器的方法和装置 | |
JP7012689B2 (ja) | コマンド実行方法及び装置 | |
CN111078287B (zh) | 一种向量运算协处理方法与装置 | |
CN110865814B (zh) | 一种支持异构计算核架构的编译器实现方法和*** | |
CN115600664B (zh) | 算子处理方法、电子设备及存储介质 | |
US20210073625A1 (en) | Partitioning control dependency edge in computation graph | |
US20090144528A1 (en) | Method for running native code across single or multi-core hybrid processor achitecture | |
EP3866162A2 (en) | Speech chip and electronic device | |
US20200342292A1 (en) | Hardware-software co-design for accelerating deep learning inference | |
WO2022166480A1 (zh) | 任务调度方法、装置及*** | |
US20220172044A1 (en) | Method, electronic device, and computer program product for deploying machine learning model | |
CN112988238A (zh) | 一种基于可扩展指令集cpu内核的扩展运算装置及方法 | |
US20230018149A1 (en) | Systems and methods for code generation for a plurality of architectures | |
CN116434040A (zh) | 一种面向risc-v体系架构的实时目标检测方法及*** | |
CN116710891A (zh) | 子图的编译、执行方法及相关设备 | |
CN112527264B (zh) | 基于异构平台的常量数据访问优化方法 | |
CN113254385A (zh) | 一种网络结构、并行推理模型的编译加载方法及芯片*** | |
CN112445724B (zh) | 针对片上存储器重用的链接时地址分配方法 | |
WO2020192587A1 (zh) | 人工智能计算装置及相关产品 | |
US11640326B2 (en) | Ensemble based cluster tuning and framework fallback for AI accelerators using telemetry, compute, and temperature metrics | |
US20230142339A1 (en) | Recognition of user intents and associated entities using a neural network in an interaction environment | |
WO2020124948A1 (zh) | 网络离线模型的处理方法、人工智能处理装置及相关产品 | |
CN114298292A (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 |