CN112926168B - 确定最优计算模板的方法和装置 - Google Patents

确定最优计算模板的方法和装置 Download PDF

Info

Publication number
CN112926168B
CN112926168B CN201911232364.1A CN201911232364A CN112926168B CN 112926168 B CN112926168 B CN 112926168B CN 201911232364 A CN201911232364 A CN 201911232364A CN 112926168 B CN112926168 B CN 112926168B
Authority
CN
China
Prior art keywords
calculation
template
target
determining
tensor
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
Application number
CN201911232364.1A
Other languages
English (en)
Other versions
CN112926168A (zh
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.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital 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 Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN201911232364.1A priority Critical patent/CN112926168B/zh
Publication of CN112926168A publication Critical patent/CN112926168A/zh
Application granted granted Critical
Publication of CN112926168B publication Critical patent/CN112926168B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Image Analysis (AREA)

Abstract

本申请公开了一种确定最优计算模板的方法和装置,属于神经网络技术领域。该方法包括:基于目标计算层的张量算式,确定目标计算层对应的各种计算模板,在各种计算模板中,确定满足预设的本设备的硬件限制条件的目标计算模板,基于每种目标计算模板,对张量算式进行编译和模拟运行,并确定每种目标计算模板的运行时间,将运行时间最小的目标计算模板,确定为最优计算模板。本申请通过预先设置本设备的硬件限制条件,在目标计算层对应的各种计算模板中,确定满足预设的本设备的硬件限制条件的目标计算模板,排除了部分不合理组合,避免了不合理组合编译运行的时间的耗费,缩短了时间。

Description

确定最优计算模板的方法和装置
技术领域
本申请涉及神经网络技术领域,特别涉及一种确定最优计算模板的方法和装置。
背景技术
一个神经网络通常由多个计算层组成,张量算式是指可以用数学计算关系来表示各计算层,如全连接层可以由A(M,K)和B(K,N)矩阵的点乘表示。神经网络利用张量算式编译生成高性能的计算指令时,需要确定最优计算模板,其中,计算模板可以由一段定义模板参数的程序代码实现。
在确定最优计算模板的过程中,需要对不同的计算模板进行进行编译和模拟运行,将运行时间最小的计算模板,确定为最优计算模板,从而编译生成最优计算指令。
然而,发明人发现:
当需要编译和模拟运行的计算模板的很多时,对所有的计算模板进行编译和模拟运行非常耗时,导致确定最优计算模板的效率较低。
发明内容
本申请实施例提供了一种确定最优计算模板的方法和装置,能够解决相关技术中耗费时间较长的问题。所述技术方案如下:
一方面,提供了一种确定最优计算模板的方法,所述方法包括:
基于目标计算层的张量算式,确定所述目标计算层对应的各种计算模板;
在所述各种计算模板中,确定满足与本设备对应的预设硬件限制条件的目标计算模板;
基于每种目标计算模板,对所述张量算式进行编译和模拟运行,并确定每种目标计算模板的运行时间;
将运行时间最小的目标计算模板,确定为最优计算模板。
可选的,所述基于目标计算层的张量算式,确定所述目标计算层对应的各种计算模板,包括:
获取所述目标计算层对应的模板参数,所述模板参数包括线程块尺寸;
基于所述模板参数的不同取值,确定所述目标计算层对应的各种计算模板。
可选的,所述模板参数还包括是否展开循环或循环执行顺序。
可选的,所述硬件限制条件包括:计算模板中线程块尺寸的取值对应的线程数小于或等于预设的线程数上限。
可选的,所述本设备的硬件限制条件还包括:计算模板中线程块尺寸的取值对应的存储空间容量小于或等于预设的存储空间容量上限。
可选的,所述基于每种目标计算模板,对所述张量算式进行编译和模拟运行,并确定每种目标计算模板的运行时间,包括:
对于每种目标计算模板,基于所述目标计算模板,对所述张量算式进行编译,生成所述张量算式的程序代码,获取所述张量算式中各未知参数的模拟运行数据,基于所述各未知参数的模拟运行数据,运行所述程序代码,确定所述目标计算模板对应的运行时间。
可选的,所述将运行时间最小的目标计算模板,确定为最优计算模板之后,还包括:
基于所述最优计算模板,对所述张量算式进行编译,生成最优计算指令;
基于所述最优计算指令,进行图像识别处理。
另一方面,提供了一种确定最优计算模板的装置,所述装置包括:
计算模板确定模块,用于基于目标计算层的张量算式,确定所述目标计算层对应的各种计算模板;
目标计算模板确定模块,用于在所述各种计算模板中,确定满足与本设备对应的预设硬件限制条件的目标计算模板;
运行时间确定模块,用于基于每种目标计算模板,对所述张量算式进行编译和模拟运行,并确定每种目标计算模板的运行时间;
最优计算模板确定模块,用于将运行时间最小的目标计算模板,确定为最优计算模板。
可选的,所述计算模板确定模块,还用于:
获取所述目标计算层对应的模板参数,所述模板参数包括线程块尺寸;
基于所述模板参数的不同取值,确定所述目标计算层对应的各种计算模板。
可选的,所述模板参数还包括是否展开循环或循环执行顺序。
可选的,所述硬件限制条件包括:计算模板中线程块尺寸的取值对应的线程数小于或等于预设的线程数上限。
可选的,所述本设备的硬件限制条件还包括:计算模板中线程块尺寸的取值对应的存储空间容量小于或等于预设的存储空间容量上限。
可选的,所述运行时间确定模块,还用于:
对于每种目标计算模板,基于所述目标计算模板,对所述张量算式进行编译,生成所述张量算式的程序代码,获取所述张量算式中各未知参数的模拟运行数据,基于所述各未知参数的模拟运行数据,运行所述程序代码,确定所述目标计算模板对应的运行时间。
可选的,所述装置还包括:
生成模块,用于基于所述最优计算模板,对所述张量算式进行编译,生成最优计算指令;
处理模块,用于基于所述最优计算指令,进行图像识别处理。
再一方面,提供了一种计算机设备,所述计算机设备包括一个或多个处理器和一个或多个存储器,所述一个或多个存储器中存储有至少一条指令,所述指令由所述一个或多个处理器加载并执行以实现所述确定最优计算模板的方法所执行的操作。
再一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现所述确定最优计算模板的方法所执行的操作。
本申请实施例提供的技术方案带来的有益效果是:
通过预先设置本设备的硬件限制条件,在目标计算层对应的各种计算模板中,确定满足预设的本设备的硬件限制条件的目标计算模板,对每种目标计算模板进行编译和运行,并确定每种目标计算模板的运行时间,将运行时间最小的目标计算模板,确定为最优计算模板。本申请实施例通过添加硬件限制条件,排除了部分不合理计算模板,无需对不合理计算模板进行编译运行,确定最优计算模板的效率较高。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种确定最优计算模板的方法的流程图;
图2是本申请实施例提供的一种全连接层的张量算式的输出矩阵示意图;
图3是本申请实施例提供的一种全连接层的张量算式的线程块示意图;
图4是本申请实施例提供的一种线程块覆盖输出矩阵的示意图;
图5是本申请实施例提供的一种确定最优计算模板的流程图;
图6是本申请实施例提供的一种确定最优计算模板的装置结构示意图;
图7是本申请实施例提供的一种终端的结构框图;
图8是本申请实施例提供的一种服务器的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
本申请实施例提供的确定最优计算模板的方法可以由计算机设备实现,该计算机设备可以是服务器或终端,可以由服务器或终端单独实现,也可以由服务器和终端共同实现。终端可以是卡口设备、手机、平板电脑、智能穿戴设备、台式计算机、笔记本电脑等。该服务器可以是一个单独的服务器也可以是一个服务器组,如果是单独的服务器,该服务器可以负责下述方案中的所有处理,如果是服务器组,服务器组中的不同服务器分别可以负责下述方案中的不同处理,具体的处理分配情况可以由技术人员根据实际需求任意设置,此处不再赘述。
本申请实施例提供的一种确定最优计算模板的方法主要作用在深度学习前向推理的编译时过程中,前向推理是指利用已训练好的神经网络对输入的数据进行结果预测。前向推理可以分为编译时和运行时,编译时是指将训练好的神经网络编译成硬件平台可以使用的计算指令,如一个神经网络由卷积层、池化层和激活层三个层构成,编译时过程会生成卷积操作的计算指令、池化操作的计算指令和激活操作的计算指令。运行时是指在产品端的软件上调用执行编译时生成的计算指令,从而达到前向推理的功能。其中,硬件平台是指软件运行的环境,如寒武纪MUL(Machine Learning Unit,智能处理器)和GPU(GraphicsProcessing Unit,图形处理器)等。
一个神经网络通常由多个计算层组成。张量算式即张量计算是指一个或多个张量间的数学计算,张量是矢量和矩阵的推广,标量是零阶张量,矢量是一阶张量,矩阵是二阶张量,三阶张量可以为立方体矩阵即数据体形式,即可以用数学计算来表示神经网络中的计算层,如全连接层可以由A(M,K)和B(K,N)矩阵的点乘表示。编译时的主要作用是把一个神经网络生成一个指定硬件平台的可执行的计算指令,在这个过程中,用张量算式来表示该神经网络中的计算层,可以通过本申请实施例提供的方法确定最优计算模板从而将张量算式编译成高性能的计算指令。
技术人员可以预先设置硬件平台,本申请实施例中用本设备表示预设的硬件平台。再根据计算模板中线程块尺寸的取值来确定本设备的硬件限制条件,利用本申请实施例提供的方法可以确定最优计算模板,则最优计算模板编译生成的计算指令为最优计算指令。本申请实施例中以神经网络全连接层、GPU为硬件平台为例进行方案的详细说明,其他情况与之类似,不再赘述。
图1是本申请实施例提供的一种确定最优计算模板的方法的流程图。参见图1,该实施例包括:
在步骤101中,基于目标计算层的张量算式,确定目标计算层对应的各种计算模板。
其中,神经网络可以由多个计算层构成,如卷积层、池化层、全连接层等。张量算式是指一个或多个张量间的数学计算。张量是矢量和矩阵的推广,标量是零阶张量,矢量是一阶张量,矩阵是二阶张量,三阶张量可以为立方体矩阵即数据体形式。计算模板可以由一段定义模板参数的程序代码来实现。计算模板中可能会涉及到一些模板参数,模板参数取不同的值即得到不同的计算模板。
在实施中,神经网络中的各个计算层利用张量算式可以描述为张量间的数学计算。技术人员可以利用程序代码创建目标计算层的计算模板,该计算模板可以包括多个模板参数,如线程块尺寸、是否加载到共享内存、是否展开循环、循环执行顺序等参数。根据模板参数的不同取值,可以得到目标计算层对应的各种计算模板。其中,展开循环是指将循环体代码复制多次实现,增加循环体的代码量,减少循环的重复次数,降低了循环转移的开销。循环执行顺序是指循环函数运行时的顺序流程。
可选的,获取到目标计算层的模板参数后,根据目标计算层的张量算式可以确定模板参数的取值范围。根据模板参数的取值范围可以得到模板参数的多种组合,从而可以得到各种计算模板。如模板参数为线程块尺寸,线程块尺寸为m1和m2时,若m1的取值范围为[1,M],n1的取值范围为[1,N],则m1和n1一共有M*N种组合方式,从而得到M*N种计算模板。
例如,当张量算式中A(M,K)和B(K,N)矩阵的M为2,N为3时,则m1的取值范围为[1,2],n1的取值范围为[1,3],模板参数m1和n1一共有2*3即6种组合方式,分别为(1,1)、(1,2)、(1,3)、(2,1)、(2,2)及(2,3)。当目标计算层的模板参数包括线程块尺寸和是否展开循环时,一共有2*3*2即12种组合方式,分别为(1,1,1)、(1,2,1)、(1,3,1)、(2,1,1)、(2,2,1)、(2,3,1)、(1,1,0)、(1,2,0)、(1,3,0)、(2,1,0)、(2,2,0)及(2,3,0)。其中,是否展开循环可以用1和0表示,1表示展开循环,0表示不展开循环。
可选的,当张量算式为A(M,K)和B(K,N)矩阵的数学计算时,根据矩阵的输出矩阵M*N可以确定线程块尺寸的取值范围。其中,M*N表示M行N列的矩阵。线程块尺寸可以设置为m1*n1,其中m1为线程块的长度,n1为线程块的宽度。利用多个线程块全部覆盖输出矩阵,每个线程块内输入m1*K和n1*K的矩阵数据,对应处理m1*n1个矩阵点的计算。需要全部覆盖输出矩阵的线程块的数目可以设为m2和n2,根据m2=ceil(M/m1)和n2=ceil(N/n1),可以确定线程块的数目。其中ceil是指输出大于等于指定表达式的最小整数的函数。
例如,图2是本申请实施例提供的一种全连接层的张量算式的输出矩阵示意图,如图2所示,全连接层得到的输出矩阵为11*8时,可以设置线程块尺寸m1*n1为2*2,即m1=2,n1=2。图3是本申请实施例提供的一种全连接层的张量算式的线程块示意图,如图3所示,每个线程块包含的线程数目为2*2即4个,线程块的长度为2,宽度为2。图4是本申请实施例提供的一种线程块覆盖输出矩阵的示意图,如图4所示,每个线程块处理2*2的小矩阵,若要全部覆盖输出矩阵需要24个线程块,根据上述函数可以得到m2=ceil(11/2)=6,即输出矩阵每行需要6个线程块覆盖,n2=ceil(8/2)=4,即输出矩阵每列需要4个线程块覆盖。
在步骤102中,在各种计算模板中,确定满足与本设备对应的预设硬件限制条件的目标计算模板。
在实施中,技术人员可以预先设置本设备的硬件限制条件,硬件限制条件可以设置为计算模板中线程块尺寸的取值对应的线程数小于或等于预设的线程数上限,计算模板中线程块尺寸的取值对应的存储空间容量小于或等于预设的存储空间容量上限。根据目标计算层对应的各种线程块尺寸和该硬件限制条件,对于每个计算模板,如果计算模板中的模板参数满足硬件限制条件,则将该计算模板作为目标计算模板。
例如,技术人员可以预先设定硬件设备为GPU,GPU的存储空间可以为共享内存,共享内存是指处理器内部的存储器。当GPU的共享内存容量上限为49152时,当线程块尺寸为m1和n1,可以得到GPU的硬件限制条件为(m1+m2)*K*4≤49152。当线程块内部线程数目上限是1024时,可以得到线程块的硬件限制条件为m1*m2≤1024。其中,m1为线程块的长度,n1为线程块的宽度。
可选的,针对不同的硬件设备,可以建立不同的硬件限制条件。
在步骤103中,基于每种目标计算模板,对张量算式进行编译和模拟运行,并确定每种目标计算模板的运行时间。
其中,编译是指利用每个目标计算模板中的模板参数生成计算指令。模拟运行是指输入模拟运行数据调用执行该计算指令,该计算指令可以为程序代码。
在实施中,对于每种目标计算模板,根据该目标计算模板,对张量算式进行编译,生成张量算式的程序代码。获取张量算式中各未知参数的模拟运行数据,基于各未知参数的模拟运行数据,在本设备中运行所述程序代码,确定所述目标计算模板对应的运行时间。其中,各未知参数的模拟运行数据是指张量算式中的数值,如矩阵中每行每列的数值。
可选的,当计算模板的种类较多时,可以先对各种计算模板进行预测,预测得到优选计算模板,再进行后续操作。如计算模板的种类为10000种组合方式时,可以进行预测得到其中1000种组合方式,再进行后续操作。预测方法可以为随机预测、XGBoost(eXtremeGradient Boosting,极端梯度提升)等方法。
例如,图5是本申请实施例提供的一种确定最优计算模板的流程图,如图5所示,首先,预测得到各种计算模板中的优选计算模板。然后,输入优选计算模板,判定该优选计算模板是否满足硬件限制条件,若该优选计算模板不满足硬件限制条件,反馈失败,且迭代次数增加1,则进行下一优选计算模板的判定。若该优选计算模板满足硬件限制条件,则该优选计算模板为目标计算模板,根据该目标计算模板中的模板参数进行编译。然后,若编译不成功,反馈失败,且迭代次数增加1,则进行下一优选计算模板的判定。若编译成功,生成计算指令后,运行计算指令。若运行不成功,反馈失败,且迭代次数增加1,则进行下一优选计算模板的判定。若运行成功,反馈运行时间,迭代次数增加1。最后,当迭代次数达到预先设定的数目后,统计所有计算模板的运行时间。
在步骤104中,将运行时间最小的目标计算模板,确定为最优计算模板。
在实施中,统计得到各种目标计算模板的运行时间后,根据目标计算模板的运行时间,将运行时间最小的目标计算模板确定为最优计算模板,确定最优计算模板后,可以根据最优计算模板,对该张量算式进行编译,生成的计算指令为最优计算指令。
根据上述步骤101至104,可以确定最优计算模板从而将张量算式编译成高性能的计算指令。如一个神经网络通常由卷积层、池化层和激活层三个层构成,可以用张量算式分别表示该神经网络中的卷积层、池化层和激活层,利用上述实施例确定最优计算模板的方法可以确定神经网络中卷积层对应的最优计算模板、池化层对应的最优计算模板和激活层对应的最优计算模板,生成卷积层对应的最优计算指令、池化层对应的最优计算指令和激活层对应的最优计算指令。利用该神经网络可以进行图像识别、语音分析、车辆检测和时序预测等处理。如,进行车辆检测时,将车辆图片输入该神经网络,运行卷积层对应的最优计算指令、池化层对应的最优计算指令和激活层对应的最优计算指令,可以输出车辆的车牌号。
本申请实施例提供的技术方案带来的有益效果是:
本申请实施例通过预先设置本设备的硬件限制条件,在目标计算层对应的各种计算模板中,确定满足预设的本设备的硬件限制条件的目标计算模板,对每种目标计算模板进行编译和运行,并确定每种目标计算模板的运行时间,将运行时间最小的目标计算模板,确定为最优计算模板。本申请实施例通过添加硬件限制条件,排除了部分不合理计算模板,无需对不合理计算模板进行编译运行,确定最优计算模板的效率较高。
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
本申请实施例提供了一种确定最优计算模板的装置,该装置可以是上述实施例中终端或服务器,如图6所示,图6是本申请实施例提供的一种确定最优计算模板的装置结构示意图,该装置包括:
计算模板确定模块601,用于基于目标计算层的张量算式,确定目标计算层对应的各种计算模板;
目标计算模板确定模块602,用于在各种计算模板中,确定满足与本设备对应的预设硬件限制条件的目标计算模板;
运行时间确定模块603,用于基于每种目标计算模板,对张量算式进行编译和模拟运行,并确定每种目标计算模板的运行时间;
最优计算模板确定模块604,用于将运行时间最小的目标计算模板,确定为最优计算模板。
可选的,计算模板确定模块601,还用于:
获取目标计算层对应的模板参数,模板参数包括线程块尺寸;
基于模板参数的不同取值,确定目标计算层对应的各种计算模板。
可选的,模板参数还包括是否展开循环或循环执行顺序。
可选的,硬件限制条件包括:计算模板中线程块尺寸的取值对应的线程数小于或等于预设的线程数上限。
可选的,本设备的硬件限制条件还包括:计算模板中线程块尺寸的取值对应的存储空间容量小于或等于预设的存储空间容量上限。
可选的,运行时间确定模块603,还用于:
对于每种目标计算模板,基于目标计算模板,对张量算式进行编译,生成张量算式的程序代码,获取张量算式中各未知参数的模拟运行数据,基于各未知参数的模拟运行数据,运行程序代码,确定目标计算模板对应的运行时间。
可选的,所述装置还包括:
生成模块,用于基于最优计算模板,对张量算式进行编译,生成最优计算指令;
处理模块,用于基于最优计算指令,进行图像识别处理。
本申请实施例提供的技术方案带来的有益效果是:
本申请实施例通过预先设置本设备的硬件限制条件,在目标计算层对应的各种计算模板中,确定满足预设的本设备的硬件限制条件的目标计算模板,对每种目标计算模板进行编译和运行,并确定每种目标计算模板的运行时间,将运行时间最小的目标计算模板,确定为最优计算模板。本申请实施例通过添加硬件限制条件,排除了部分不合理计算模板,无需对不合理计算模板进行编译运行,确定最优计算模板的效率较高。
需要说明的是:上述实施例提供的确定最优计算模板的装置在确定最优计算模板时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的确定最优计算模板的装置与确定最优计算模板的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图7是本申请提供的一种终端700的结构框图。该终端700可以是:智能手机、平板电脑、MP3播放器(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端700还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,终端700包括有:处理器701和存储器702。
处理器701可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器701可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器701也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器701可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器701还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器702可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器702还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器702中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器701所执行以实现本申请中方法实施例提供的确定最优计算模板的方法。
在一些实施例中,终端700还可选包括有:外围设备接口703和至少一个外围设备。处理器701、存储器702和外围设备接口703之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口703相连。具体地,外围设备包括:射频电路704、触摸显示屏705、摄像头706、音频电路707、定位组件708和电源709中的至少一种。
外围设备接口703可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器701和存储器702。在一些实施例中,处理器701、存储器702和外围设备接口703被集成在同一芯片或电路板上;在一些其他实施例中,处理器701、存储器702和外围设备接口703中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路704用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路704通过电磁信号与通信网络以及其他通信设备进行通信。射频电路704将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路704包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路704可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路704还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏705用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏705是触摸显示屏时,显示屏705还具有采集在显示屏705的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器701进行处理。此时,显示屏705还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏705可以为一个,设置终端700的前面板;在另一些实施例中,显示屏705可以为至少两个,分别设置在终端700的不同表面或呈折叠设计;在再一些实施例中,显示屏705可以是柔性显示屏,设置在终端700的弯曲表面上或折叠面上。甚至,显示屏705还可以设置成非矩形的不规则图形,也即异形屏。显示屏705可以采用LCD(LiquidCrystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件706用于采集图像或视频。可选地,摄像头组件706包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件706还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路707可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器701进行处理,或者输入至射频电路704以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端700的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器701或射频电路704的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路707还可以包括耳机插孔。
定位组件708用于定位终端700的当前地理位置,以实现导航或LBS(LocationBased Service,基于位置的服务)。定位组件708可以是基于美国的GPS(GlobalPositioning System,全球定位系统)、中国的北斗系统、俄罗斯的格雷纳斯系统或欧盟的伽利略系统的定位组件。
电源709用于为终端700中的各个组件进行供电。电源709可以是交流电、直流电、一次性电池或可充电电池。当电源709包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端700还包括有一个或多个传感器710。该一个或多个传感器710包括但不限于:加速度传感器711、陀螺仪传感器712、压力传感器713、指纹传感器714、光学传感器715以及接近传感器716。
加速度传感器711可以检测以终端700建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器711可以用于检测重力加速度在三个坐标轴上的分量。处理器701可以根据加速度传感器711采集的重力加速度信号,控制触摸显示屏705以横向视图或纵向视图进行用户界面的显示。加速度传感器711还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器712可以检测终端700的机体方向及转动角度,陀螺仪传感器712可以与加速度传感器711协同采集用户对终端700的3D动作。处理器701根据陀螺仪传感器712采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器713可以设置在终端700的侧边框和/或触摸显示屏705的下层。当压力传感器713设置在终端700的侧边框时,可以检测用户对终端700的握持信号,由处理器701根据压力传感器713采集的握持信号进行左右手识别或快捷操作。当压力传感器713设置在触摸显示屏705的下层时,由处理器701根据用户对触摸显示屏705的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器714用于采集用户的指纹,由处理器701根据指纹传感器714采集到的指纹识别用户的身份,或者,由指纹传感器714根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器701授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器714可以被设置终端700的正面、背面或侧面。当终端700上设置有物理按键或厂商Logo时,指纹传感器714可以与物理按键或厂商Logo集成在一起。
光学传感器715用于采集环境光强度。在一个实施例中,处理器701可以根据光学传感器715采集的环境光强度,控制触摸显示屏705的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏705的显示亮度;当环境光强度较低时,调低触摸显示屏705的显示亮度。在另一个实施例中,处理器701还可以根据光学传感器715采集的环境光强度,动态调整摄像头组件706的拍摄参数。
接近传感器716,也称距离传感器,通常设置在终端700的前面板。接近传感器716用于采集用户与终端700的正面之间的距离。在一个实施例中,当接近传感器716检测到用户与终端700的正面之间的距离逐渐变小时,由处理器701控制触摸显示屏705从亮屏状态切换为息屏状态;当接近传感器716检测到用户与终端700的正面之间的距离逐渐变大时,由处理器701控制触摸显示屏705从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图7中示出的结构并不构成对终端700的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
图8是本申请实施例提供的一种服务器的结构示意图,该服务器800可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processingunits,CPU)801和一个或一个以上的存储器802,其中,所述存储器802中存储有至少一条指令,所述至少一条指令由所述处理器801加载并执行以实现上述确定最优计算模板的方法。当然,该服务器还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器还可以包括其他用于实现设备功能的部件,在此不做赘述。
在示例性实施例中,还提供了一种计算机可读存储介质,例如包括指令的存储器,上述指令可由终端中的处理器执行以完成上述实施例中确定最优计算模板的方法。例如,所述计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (8)

1.一种图像识别方法,其特征在于,所述方法包括:
获取目标计算层对应的模板参数;其中,所述目标计算层为神经网络中的任一计算层,所述模板参数包括线程块尺寸、是否展开循环、循环执行顺序;
基于所述模板参数的不同取值,确定所述目标计算层对应的各种计算模板;
在所述各种计算模板中,确定满足与本设备对应的预设硬件限制条件的目标计算模板;
基于每种目标计算模板,对所述目标计算层的张量算式进行编译和模拟运行,并确定每种目标计算模板的运行时间;
将运行时间最小的目标计算模板,确定为最优计算模板;
基于所述最优计算模板,对所述张量算式进行编译,生成最优计算指令;
将待识别图像输入所述神经网络,通过运行所述神经网络中每个计算层对应的最优计算指令,对所述待识别图像进行识别。
2.根据权利要求1所述的方法,其特征在于,所述预设硬件限制条件包括:计算模板中线程块尺寸的取值对应的线程数小于或等于预设的线程数上限。
3.根据权利要求1所述的方法,其特征在于,所述预设硬件限制条件还包括:计算模板中线程块尺寸的取值对应的存储空间容量小于或等于预设的存储空间容量上限。
4.根据权利要求1所述的方法,其特征在于,所述基于每种目标计算模板,对所述目标计算层的张量算式进行编译和模拟运行,并确定每种目标计算模板的运行时间,包括:
对于每种目标计算模板,基于所述目标计算模板,对所述张量算式进行编译,生成所述张量算式的程序代码,获取所述张量算式中各未知参数的模拟运行数据,基于所述各未知参数的模拟运行数据,运行所述程序代码,确定所述目标计算模板对应的运行时间。
5.一种图像识别装置,其特征在于,所述装置包括:
计算模板确定模块,用于获取目标计算层对应的模板参数;基于所述模板参数的不同取值,确定所述目标计算层对应的各种计算模板;其中,所述目标计算层为神经网络中的任一计算层,所述模板参数包括线程块尺寸、是否展开循环、循环执行顺序;
目标计算模板确定模块,用于在所述各种计算模板中,确定满足与本设备对应的预设硬件限制条件的目标计算模板;
运行时间确定模块,用于基于每种目标计算模板,对所述目标计算层的张量算式进行编译和模拟运行,并确定每种目标计算模板的运行时间;
最优计算模板确定模块,用于将运行时间最小的目标计算模板,确定为最优计算模板;
生成模块,用于基于所述最优计算模板,对所述张量算式进行编译,生成最优计算指令;
处理模块,用于将待识别图像输入所述神经网络,通过运行所述神经网络中每个计算层对应的最优计算指令,对所述待识别图像进行识别。
6.根据权利要求5所述的装置,其特征在于,所述预设硬件限制条件包括:计算模板中线程块尺寸的取值对应的线程数小于或等于预设的线程数上限。
7.根据权利要求5所述的装置,其特征在于,所述预设硬件限制条件还包括:计算模板中线程块尺寸的取值对应的存储空间容量小于或等于预设的存储空间容量上限。
8.根据权利要求5所述的装置,其特征在于,所述运行时间确定模块,还用于:
对于每种目标计算模板,基于所述目标计算模板,对所述张量算式进行编译,生成所述张量算式的程序代码,获取所述张量算式中各未知参数的模拟运行数据,基于所述各未知参数的模拟运行数据,运行所述程序代码,确定所述目标计算模板对应的运行时间。
CN201911232364.1A 2019-12-05 2019-12-05 确定最优计算模板的方法和装置 Active CN112926168B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911232364.1A CN112926168B (zh) 2019-12-05 2019-12-05 确定最优计算模板的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911232364.1A CN112926168B (zh) 2019-12-05 2019-12-05 确定最优计算模板的方法和装置

Publications (2)

Publication Number Publication Date
CN112926168A CN112926168A (zh) 2021-06-08
CN112926168B true CN112926168B (zh) 2023-05-09

Family

ID=76160773

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911232364.1A Active CN112926168B (zh) 2019-12-05 2019-12-05 确定最优计算模板的方法和装置

Country Status (1)

Country Link
CN (1) CN112926168B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113592063A (zh) * 2021-06-30 2021-11-02 深圳元戎启行科技有限公司 神经网络配置方法、装置、计算机设备和存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019146189A1 (ja) * 2018-01-29 2019-08-01 日本電気株式会社 ニューラルネットワークのランク最適化装置および最適化方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105654110A (zh) * 2015-12-04 2016-06-08 深圳先进技术研究院 一种张量模式下的有监督学习优化方法及系统
CN110321999B (zh) * 2018-03-30 2021-10-01 赛灵思电子科技(北京)有限公司 神经网络计算图优化方法
US20190318227A1 (en) * 2018-04-13 2019-10-17 Fabula Al Limited Recommendation system and method for estimating the elements of a multi-dimensional tensor on geometric domains from partial observations
GB2574372B (en) * 2018-05-21 2021-08-11 Imagination Tech Ltd Implementing Traditional Computer Vision Algorithms As Neural Networks
CN110188879B (zh) * 2019-05-31 2021-01-15 安徽寒武纪信息科技有限公司 运算方法、装置及相关产品

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019146189A1 (ja) * 2018-01-29 2019-08-01 日本電気株式会社 ニューラルネットワークのランク最適化装置および最適化方法

Also Published As

Publication number Publication date
CN112926168A (zh) 2021-06-08

Similar Documents

Publication Publication Date Title
CN110097019B (zh) 字符识别方法、装置、计算机设备以及存储介质
CN108304265B (zh) 内存管理方法、装置及存储介质
CN110222551B (zh) 识别动作类别的方法、装置、电子设备及存储介质
CN110083791B (zh) 目标群组检测方法、装置、计算机设备及存储介质
CN110471858B (zh) 应用程序测试方法、装置及存储介质
CN110841285B (zh) 界面元素的显示方法、装置、计算机设备及存储介质
CN109977775B (zh) 关键点检测方法、装置、设备及可读存储介质
CN111738914B (zh) 图像处理方法、装置、计算机设备及存储介质
CN112907725B (zh) 图像生成、图像处理模型的训练、图像处理方法和装置
CN113553039B (zh) 算子的可执行代码的生成方法及装置
CN112230781B (zh) 字符推荐方法、装置及存储介质
CN109102811B (zh) 音频指纹的生成方法、装置及存储介质
CN113687816B (zh) 算子的可执行代码的生成方法及装置
CN110705614A (zh) 模型训练方法、装置、电子设备及存储介质
CN112926168B (zh) 确定最优计算模板的方法和装置
CN112052153B (zh) 产品版本测试方法及装置
CN113822916B (zh) 图像匹配方法、装置、设备及可读存储介质
CN111859549B (zh) 单一配置整车重量与重心信息的确定方法及相关设备
CN112990421B (zh) 优化深度学习网络的运行过程的方法、装置及存储介质
CN112230828B (zh) 组件布局方法及装置、存储介质
CN114594885A (zh) 应用图标的管理方法、装置、设备及计算机可读存储介质
CN113762054A (zh) 图像识别方法、装置、设备及可读存储介质
CN112560903A (zh) 图像美学信息的确定方法、装置、设备及存储介质
CN111916105A (zh) 语音信号处理方法、装置、电子设备及存储介质
CN113658283B (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