CN112748998A - 一种移动端的卷积神经网络任务调度方法及系统 - Google Patents
一种移动端的卷积神经网络任务调度方法及系统 Download PDFInfo
- Publication number
- CN112748998A CN112748998A CN202110081461.6A CN202110081461A CN112748998A CN 112748998 A CN112748998 A CN 112748998A CN 202110081461 A CN202110081461 A CN 202110081461A CN 112748998 A CN112748998 A CN 112748998A
- Authority
- CN
- China
- Prior art keywords
- cpu
- tensor
- gpu
- input tensor
- neural network
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- 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/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- 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)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (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
本发明公开了一种移动端的卷积神经网络任务调度方法及系统,方法包括:S1.针对计算任务,从预设的配置方案集合中选择满足预设条件的配置方案,配置方案包括CPU核心频率、GPU核心频率、最低网络延迟切分比率、和当前配置参数下的最低网络延迟;S2.将计算任务的卷积层输入张量按照最低网络延迟切分比率进行切分,切分得到CPU输入张量和GPU输入张量;S3.以CPU输入张量作为CPU卷积神经网络的输入,计算得到CPU输出张量;以GPU输入张量作为GPU卷积神经网络的输入,计算得到GPU输出张量,根据CPU输出张量和GPU输出张量得到卷积神经网络的输出张量。具有有效降低移动端卷积神经网络延迟等优点。
Description
技术领域
本发明涉及移动计算领域,尤其涉及一种移动端的卷积神经网络任务调度方法及系统。
背景技术
近年来深度学习卷积神经网络(CNN)技术在视觉应用领域取得了突破性的进展,针对比如图像分类、动作识别等应用取得了相比传统方法更高的精确度。深度学习通过大量的数据训练出高准确度的神经网络模型,然后将神经网络模型部署在服务器设备或移动端设备上实现推理或推断的过程。而深度学习模型在移动端上的部署和实现也变得至关重要,因为基于服务器端的深度学习推理方案需要将用户的个人数据,比如照片、视频上传到开放的互联网上,这在一定程度上产生了用户的个人数据被泄露的风险,造成对用户自身的信息安全隐患。而基于移动端的深度学习推理方案能够将用户的个人数据在移动设备上直接进行处理,不需要上传至开放的互联网,因此更有利于保护用户的个人数据,特别是具有隐私性的数据。
在移动端上执行深度学习推理的挑战在于三个方面——推理的高延迟、发热严重和能耗大的问题。由于深度学习模型中包含了一些计算量大的计算层,比如卷积层,这些计算层在移动端上执行会产生比较大的延迟,严重影响用户的使用体验。而另一方面,计算密集的深度学习模型运行在移动端上会造成移动端设备的升温发热,对用户来说也具有一定的安全隐患,比如可能会烫伤用户,或引起电池发热爆炸等伤害。最后,过高的温度带给移动设备的是能耗的增大,因为有一部分能量将用于发热,降低了能量的利用效率。因此,在移动端上的深度学习推理应该克服这三点挑战,要在尽可能地降低推理延迟的同时,还要控制好设备的发热量和能量的消耗。
目前已经出现了一些技术来解决深度学习神经网络在移动端上的推理延迟高的问题。如文献1(Youngsok Kim,Joonsung Kim,Dongju Chae,Daehyun Kim,and JangwooKim.2019.μLayer:Low Latency On-Device Inference Using Cooperative Single-Layer Acceleration and Processor-Friendly Quantization.In Proceedings of theFourteenth EuroSys Conference 2019(EuroSys’19).Association for ComputingMachinery,New York,NY,USA,Article 45,1–15.)提出了一种将计算复杂的卷积层切分到移动端的中央处理单元(CPU)和图形处理单元(GPU)上并行计算加速的方案,并通过选择合适的量化技术进一步加速了卷积层在CPU/GPU计算单元上的执行效率。文献2(Wang S,Ananthanarayanan G,Zeng Y,et al.High-Throughput CNN Inference on Embedded ARMbig.LITTLE Multi-Core Processors[J].IEEE Transactions on Computer AidedDesign of Integrated Circuits&Systems,2019.)采用了流水线执行技术,利用移动设备上的CPU大小核处理能力不同的特点,让CPU的大小核分别执行卷积神经网络中不同的层,使得卷积神经网络相比在CPU上非流水线的执行方案取得了更高的吞吐量。
但现有的技术大多是将深度学习卷积神经网络放置于移动端上单一种类的计算单元上运行,这种方案没有充分利用好异构计算单元充足的计算能力。当然也存在利用CPU和GPU并行加速深度学习卷积神经网络的方案,但他们没有考虑到利用CPU和GPU并行计算时移动端设备的发热升温问题,因而缺乏对移动端设备表面温度的有效控制方案。
发明内容
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种有效降低移动端卷积神经网络延迟的移动端的卷积神经网络任务调度方法及系统。
为解决上述技术问题,本发明提出的技术方案为:一种移动端的卷积神经网络任务调度方法,包括如下步骤:
S1.针对计算任务,从预设的配置方案集合中选择满足预设条件的配置方案,所述配置方案包括CPU核心频率、GPU核心频率、最低网络延迟切分比率、和当前配置参数下的最低网络延迟;所述预设条件包括所述当前配置参数下的最低网络延迟低于预设延迟;
S2.将所述计算任务的卷积层输入张量按照所述最低网络延迟切分比率进行切分,切分得到CPU输入张量和GPU输入张量;
S3.以所述CPU输入张量作为CPU卷积神经网络的输入,计算得到CPU输出张量;以所述GPU输入张量作为GPU卷积神经网络的输入,计算得到GPU输出张量,根据所述CPU输出张量和所述GPU输出张量得到卷积神经网络的输出张量。
进一步地,在所述步骤S2的具体步骤包括:
S2.1.根据所述最低网络延迟切分比率和所述卷积层输入张量的高度,确定所述CPU输入张量的高度和所述GPU输入张量的高度;
S2.2.根据所述卷积层输入张量和所述CPU输入张量的高度计算得到CPU输入张量,根据所述卷积层输入张量和所述GPU输入张量的高度计算得到GPU输入张量。
进一步地,所述卷积层输入张量以图像格式存储;
在所述步骤S2.2中还包括:将计算得到的图像格式的CPU输入张量转换成缓存格式的CPU输入张量。
进一步地,所述步骤S3包括:
将缓存格式的CPU输出张量转换成图像格式的CPU输出张量,将图像格式的CPU输出张量与图像格式的GPU输出张量合并,得到卷积神经网络的输出张量。
进一步地,所述配置方案还包括当前配置参数下设备的最高表面温度;所述预设条件包括所述当前配置参数下设备的最高表面温度小于预设的目标温度;
还包括最低网络延迟切分比率确定步骤S0:
所述步骤S0包括:将预设的基准卷积层任务以预设的初始切分比率进行切分,得到基准CPU任务和基准GPU任务,获取CPU执行所述基准CPU任务所需要的第一时长,获取GPU执行所述基准GPU任务所需要的第二时长,当所述第一时长小于所述第二时长,且两者之差小于预设的阈值,则以所述初始切分比率作为最低网络延迟切分比率,否则调整所述初始切分比率,并重复最低网络延迟切分比率确定步骤S0。
一种移动端的卷积神经网络任务调度系统,包括参数配置模块、切分模块和计算输出模块;
所述参数配置模块用于:针对计算任务,从预设的配置方案集合中选择满足预设条件的配置方案,所述配置方案包括CPU核心频率、GPU核心频率、最低网络延迟切分比率、和当前配置参数下的最低网络延迟;所述预设条件包括所述当前配置参数下的最低网络延迟低于预设延迟;
所述切分模块用于:将所述计算任务的卷积层输入张量按照所述最低网络延迟切分比率进行切分,切分得到CPU输入张量和GPU输入张量;
所述计算输出模块用于:以所述CPU输入张量作为CPU卷积神经网络的输入,计算得到CPU输出张量;以所述GPU输入张量作为GPU卷积神经网络的输入,计算得到GPU输出张量,根据所述CPU输出张量和所述GPU输出张量得到卷积神经网络的输出张量。
进一步地,所述切分模块具体用于:
根据所述最低网络延迟切分比率和所述卷积层输入张量的高度,确定所述CPU输入张量的高度和所述GPU输入张量的高度;
根据所述卷积层输入张量和所述CPU输入张量的高度计算得到CPU输入张量,根据所述卷积层输入张量和所述GPU输入张量的高度计算得到GPU输入张量。
进一步地,所述卷积层输入张量以图像格式存储;
所述切分模块具体用于还用于:将计算得到的图像格式的CPU输入张量转换成缓存格式的CPU输入张量。
进一步地,所述计算输出模块具体用于:将缓存格式的CPU输出张量转换成图像格式的CPU输出张量,将图像格式的CPU输出张量与图像格式的GPU输出张量合并,得到卷积神经网络的输出张量。
进一步地,所述配置方案还包括当前配置参数下设备的最高表面温度;所述预设条件包括所述当前配置参数下设备的最高表面温度小于预设的目标温度;
还包括最低网络延迟切分比率确定模块:
所述最低网络延迟切分比率确定模块用于:将预设的基准卷积层任务以预设的初始切分比率进行切分,得到基准CPU任务和基准GPU任务,获取CPU执行所述基准CPU任务所需要的第一时长,获取GPU执行所述基准GPU任务所需要的第二时长,当所述第一时长小于所述第二时长,且两者之差小于预设的阈值,则以所述初始切分比率作为最低网络延迟切分比率,否则调整所述初始切分比率,并重复直到得到最低网络延迟切分比率。
与现有技术相比,本发明的优点在于:
1、本发明通过将卷积神经网络的计算任务进行切分,分别由CPU和GPU进行并行计算处理,再将处理结果合并作为卷积神经网络的输出,由于计算任务通过分理的切分比率进行切分,可以有效的降低移动设备通过卷积神经网络对任务进行处理所产生的网络延迟。
2、本发明在确定任务切分及CPU、GPU运行频率时,考虑了在不同运行频率下所产生的网络延迟与设备表面温度的影响,从而可以保证在任务处理过程中,移动端的表面温度不会超出设定的目标温度,保证了设备的安全运行。
附图说明
图1为本发明具体实施例的流程图。
图2为本发明具体实施例的
图3为本发明具体实施例中任务切分,并由CPU和GPU并行计算处理示意图。
图4为本发明具体实施例中缓存格式和图像格式相互转换示意图。
图5为本发明具体实施例中切分输入张量的优化流程示意图。
图6为本发明具体实施例中,在Redmi K30 Pro移动设备上四个不同高度的输入张量从图像格式转换成缓存格式的迟结果。
图7为本发明具体实施例中,在Redmi K30 Pro移动设备上四个不同高度的输入张量从缓存格式转换成图像格式的迟结果。
图8为本发明具体实施例中,最低网络延迟切分比率确定流程示意图。
图9为本发明具体实施例中,在Redmi K30 Pro移动设备上单独使用不同频率的CPU计算单元运行Vgg-16深度学习神经网络的设备表面温度结果,图例中的两个频率值分别表示CPU普通大核和CPU超频大核的频率。
图10为本发明具体实施例中,在Redmi K30 Pro移动设备上单独使用不同频率的GPU计算单元运行Vgg-16深度学习神经网络的设备表面温度结果。
图11为本发明具体实施例中,在Redmi K30 Pro移动设备上使用不同频率的CPU、GPU和CPU/GPU联合计算单元运行Vgg-16深度学习神经网络的延迟结果。
图12为本发明具体实施例中,在Redmi K30 Pro移动设备上并行使用CPU和GPU计算单元运行Vgg-16深度学习神经网络的设备表面温度结果。
图13为本发明具体实例中,对本申请技术方案与传统处理方案进行对比实验的移动端应用程序的模式设置界面图。
图14为本发明具体实例中,在Redmi K30 Pro移动设备上,分别使用本发明技术方案的安全温度模式的CPU、GPU、CPU/GPU以及高性能模式运行Vgg-16深度学习神经网络的延迟和温度结果图。
具体实施方式
以下结合说明书附图和具体优选的实施例对本发明作进一步描述,但并不因此而限制本发明的保护范围。
本实施例的移动端的卷积神经网络任务调度方法,包括如下步骤:S1.针对计算任务,从预设的配置方案集合中选择满足预设条件的配置方案,配置方案包括CPU核心频率、GPU核心频率、最低网络延迟切分比率、和当前配置参数下的最低网络延迟;预设条件包括当前配置参数下的最低网络延迟低于预设延迟;S2.将计算任务的卷积层输入张量按照最低网络延迟切分比率进行切分,切分得到CPU输入张量和GPU输入张量;S3.以CPU输入张量作为CPU卷积神经网络的输入,计算得到CPU输出张量;以GPU输入张量作为GPU卷积神经网络的输入,计算得到GPU输出张量,根据CPU输出张量和GPU输出张量得到卷积神经网络的输出张量。
在本实施例中,步骤S2的具体步骤包括:S2.1.根据最低网络延迟切分比率和卷积层输入张量的高度,确定CPU输入张量的高度和GPU输入张量的高度;S2.2.根据卷积层输入张量和CPU输入张量的高度计算得到CPU输入张量,根据卷积层输入张量和GPU输入张量的高度计算得到GPU输入张量。
在本实施例中,卷积层输入张量以图像格式存储;在步骤S2.2中还包括:将计算得到的图像格式的CPU输入张量转换成缓存格式的CPU输入张量。
在本实施例中,步骤S3包括:将缓存格式的CPU输出张量转换成图像格式的CPU输出张量,将图像格式的CPU输出张量与图像格式的GPU输出张量合并,得到卷积神经网络的输出张量。
在本实施例中,配置方案还包括当前配置参数下设备的最高表面温度;预设条件包括当前配置参数下设备的最高表面温度小于预设的目标温度;还包括最低网络延迟切分比率确定步骤S0:步骤S0包括:将预设的基准卷积层任务以预设的初始切分比率进行切分,得到基准CPU任务和基准GPU任务,获取CPU执行基准CPU任务所需要的第一时长,获取GPU执行基准GPU任务所需要的第二时长,当第一时长小于第二时长,且两者之差小于预设的阈值,则以初始切分比率作为最低网络延迟切分比率,否则调整初始切分比率,并重复最低网络延迟切分比率确定步骤S0。
本实施例的移动端的卷积神经网络任务调度系统,包括参数配置模块、切分模块和计算输出模块;参数配置模块用于:针对计算任务,从预设的配置方案集合中选择满足预设条件的配置方案,配置方案包括CPU核心频率、GPU核心频率、最低网络延迟切分比率、和当前配置参数下的最低网络延迟;预设条件包括当前配置参数下的最低网络延迟低于预设延迟;切分模块用于:将计算任务的卷积层输入张量按照最低网络延迟切分比率进行切分,切分得到CPU输入张量和GPU输入张量;计算输出模块用于:以CPU输入张量作为CPU卷积神经网络的输入,计算得到CPU输出张量;以GPU输入张量作为GPU卷积神经网络的输入,计算得到GPU输出张量,根据CPU输出张量和GPU输出张量得到卷积神经网络的输出张量。
在本实施例中,切分模块具体用于:根据最低网络延迟切分比率和卷积层输入张量的高度,确定CPU输入张量的高度和GPU输入张量的高度;根据卷积层输入张量和CPU输入张量的高度计算得到CPU输入张量,根据卷积层输入张量和GPU输入张量的高度计算得到GPU输入张量。
在本实施例中,卷积层输入张量以图像格式存储;切分模块具体用于还用于:将计算得到的图像格式的CPU输入张量转换成缓存格式的CPU输入张量。计算输出模块具体用于:将缓存格式的CPU输出张量转换成图像格式的CPU输出张量,将图像格式的CPU输出张量与图像格式的GPU输出张量合并,得到卷积神经网络的输出张量。
在本实施例中,配置方案还包括当前配置参数下设备的最高表面温度;预设条件包括当前配置参数下设备的最高表面温度小于预设的目标温度;还包括最低网络延迟切分比率确定模块:最低网络延迟切分比率确定模块用于:将预设的基准卷积层任务以预设的初始切分比率进行切分,得到基准CPU任务和基准GPU任务,获取CPU执行基准CPU任务所需要的第一时长,获取GPU执行基准GPU任务所需要的第二时长,当第一时长小于第二时长,且两者之差小于预设的阈值,则以初始切分比率作为最低网络延迟切分比率,否则调整初始切分比率,并重复直到得到最低网络延迟切分比率。
针对本发明的任务调度方法及系统,本发明基于CPU和GPU并行计算架构理论、CPU和GPU计算单元升温受核心频率控制的理论和深度学习卷积神经网络的延迟特点进行设计。针对市场上主流的移动设备都集成了异构的计算单元,比如CPU、GPU、数字信号处理单元(DSP)和神经处理单元(NPU)等等,其中CPU和GPU是大多数移动设备上都集成的计算单元,而且CPU还会分成高核心频率的大核和低核心频率的小核结构。CPU大核能够提供给应用程序更高的运行性能,CPU小核由于频率的限制,能够提供给应用程序的性能有限。CPU和GPU两种计算单元在硬件设计上都拥有各自的高速缓存结构,在执行程序指令时,会优先利用自己的高速缓存读取程序指令和访问数据。对于高速缓存的访问,CPU和GPU相互之间不影响,存在可并行计算的条件。在主存方面,移动设备上的CPU和GPU共用相同的物理内存,这大大减少了CPU和GPU相互访问数据的数据传输延迟。
而对于移动设备上不同的计算单元,其运行在不同频率的发热特性是不同的。CPU大核支持的频率很高,例如在最新的骁龙865移动设备芯片平台上,CPU大核的频率可高达2.84GHz。当CPU大核运行在高频率时发热十分严重,带来的是很高的设备表面温度。而GPU计算单元支持的频率相较于CPU而言更低,运行在高频状态时的发热量较少。
对于深度学习卷积神经网络,其中延迟占比最大的是卷积层。卷积层中包含了大量的乘法和加法计算。因此对卷积层进行优化相比于对其他层的优化而言更有利于减少卷积神经网络的执行延迟。
在本实施例中,基于以小米公司发布的开源移动端深度学习模架MACE(Mobile AICompute Engine)进行扩展。MACE模架是使用C++编程语言进行编写和实现,经过编译器编译之后可以部署到安装了Android操作系统的移动端设备上,MACE模架采用了单指令多数据指令集(SIMD)的NEON技术、多线程技术和Winograd算法技术加速了卷积神经网络中的卷积层在CPU计算单元上的执行效率。MACE框架还利用了OpenCL技术支持卷积层在GPU计算单元上的高效执行,取得了较好的GPU计算单元利用率。
在本实施例中,通过小米公司采用MACE框架,基于安卓10的MIUI12操作系统的Redmi K30 Pro手机进行实验验证,其框架基本结构如图1所示,框架整体的最下层是硬件层,指的是移动设备上的CPU和GPU硬件计算单元。硬件层之上是移动设备上安装的操作系统环境,包含了能够调度任务到CPU上的线程池和调度到GPU上的OpenCL。运行在操作系统之上的是MACE框架实现的各种深度学习神经网络的计算层,包括了卷积层、池化层等等。
在本实施例中,参数配置模块所存储的配置文件的内容如图2所示,记载了神经网络的名称、CPU和GPU核心频率值、频率值对应的最低网络延迟切分比率、最低网络延迟和设备的最高表面温度,通过这些参数,就可以确定在对应神经网络、CPU和GPU核心频率下,所能够达到的最低网络延迟和设备的最高表面温度。图2中,由于同一个神经网络包含有多个卷积层,因此,图中的最低网络延迟切分比率包含了多个值,每个值对应一个卷积层。对于特定的设备,采用特定的神经网络来处理任务时,在确定任务运行所允许的目标条件后,目标条件为最低网络延迟和/或设备的最高表面温度后,通过查询该参数配置文件,就可以确定满足条件CPU频率、GPU频率以及最低网络延迟切分比率,当有多项配置参数都满足目标条件时,可以从中选择最优的参数,如最低网络延迟最小的配置参数,或者设备的最高表面温度最低的配置参数。在确定了配置参数后,就可以控制设备的CPU、GPU在对应核心频率下运行,同时,如图3所示,将需要处理的任务按照最低网络延迟切分比率进行切分后,分别由CPU和GPU进行运算处理,最后将CPU和GPU运算处理得到的结果合并后作为最后结果输出。
在神经网络的运算处理中,卷积层是计算延迟占比最高的处理层,卷积层由输入张量、卷积核张量、偏置张量、输出张量组成以及卷积计算函数组成。卷积层的卷积计算函数可以用公式(1)来描述:
Conv(i,f,b)=∑(i×f)+b=o (1)
其中Conv表示卷积计算函数,i表示输入张量,f表示卷积核张量,b表示偏置张量,o表示输出张量。输入张量i与卷积核张量f进行乘法和加法的运算,得到的结果再加上偏置张量b,最后得到输出张量o。
在MACE框架中,由于卷积层在CPU和GPU上分别采用了不同的数据格式,在CPU上是缓存(Buffer)格式,而在GPU上为图像(Image)格式,要实现利用CPU和GPU并行处理卷积层的方法,需要能够实现张量的切分和张量在缓存和图像两种数据格式之间的转换。而进行数据的格式转换会产生一定的延迟开销,为了减少由于数据格式转换带来的开销,本实施例采用基于输入张量高度的卷积层计算任务切分方法。具体的切分公式如式(2)和式(3)所示:
式(2)和式(3)中,hc为CPU输入张量的高度,hg为GPU输入张量的高度,p为切分比例,h表示输入张量的高度,s表示卷积核计算时的移动步长,fh表示卷积核的高度。在本实施例中,切分比例按照参数配置中的最低网络延迟切分比率进行确定。在确定了CPU输入张量的高度和GPU输入张量的高度后,就可以确定CPU输入张量和GPU输入张量。
在本实施例中,为便于说明,以i=(h,w,c)表示卷积层输入张量,以图像格式存储,其中,h分别输入张量的高度、宽度和通道数量,那么,CPU输入张量就可以表示为ic=(hc,w,c),GPU输入张量表示为ig=(hg,w,c),其中各参数的定义与上文相同。在完成切分得到图像格式的CPU输入张量和GPU输入张量后,再通过MACE框架中的OpenCLBufferTransformer::Transform调用方法将图像格式的CPU输入张量转换成缓存格式。缓存格式和图像格式如图4所示,再调用MACE框架的arm::fp32::Conv2dBase::Compute和opencl::image::Conv2dKernel::Compute调用方法让CPU和GPU分别使用缓存和图像格式的张量同时开始计算卷积任务。在CPU和GPU完成计算后,CPU输出缓存格式的CPU输出张量,GPU输出图像格式的GPU输出张量。再调用OpenCLBufferTransformer::Transform方法将缓存格式的CPU输出张量转换成图像格式,与图像格式GPU输出张量合并起来得到完整的输出张量。
在本实施例中,如图5所示,通过将缓存格式的卷积核张量和偏置张量保存在CPU管理的内存当中,当下一次计算这个卷积层时,则不需要对卷积核张量和偏置张量再次进行格式的转换,只需要转换切分之后的输入张量。切分之后的输入张量相比完整的输入张量的数据量更小,数据量小也就意味着转换的延迟开销会更小,因此基于输入张量高度的切分方案有利于减少数据格式转换的延迟开销。如图6和图7所示,图中输入张量的大小是h×224×3,h表示输入张量的高度,通过实验测试,证明了基于输入张量高度的切分方法取得了更低的数据转换延迟开销,随着输入张量高度的减少,数据格式转换的延迟会有所下降。但值得注意的是,从图像格式转换成缓存格式的延迟相比与从缓存格式转换成图像格式的延迟较低。
在本实施例中,如图8所示,最低网络延迟切分比率确定方式优选为:首先,每个卷积层任务会以预设的初始切分比率为0.1进行切分,得到基准CPU任务和基准GPU任务,并分别在CPU和GPU上同时执行卷积层的计算,得到CPU和GPU的各自的处理完成时间,即第一时长和第二时长。当所述第一时长小于所述第二时长,以该切分比率为最低网络延迟切分比率,否则,按照预设的步长调整初始切分比率;如按照0.1的步长增加切分比率,重复上述过程,即再次对卷积层任务进行切分,并将切分后得到的基准CPU任务和基准GPU任务分别在CPU和GPU上同时执行卷积层的计算,再次得到CPU和GPU的各自的处理完成时间,即第一时长和第二时长,并判断第一时长小于第二时长,是则以该切分比率为最低网络延迟切分比率。
在本实施例中,针对深度学习神经网络Vgg-16在移动设备上的推理过程,进行了设备表面温度和神经网络推理延迟的测试,测试结果如图9至图12所示。通过图9和图10,可以发现,过高的CPU和GPU核心频率会导致移动设备表面温度很快升高至超过试验所设定的最高表面温度42℃。当移动设备的表面温度超过42℃,人的皮肤接触到移动设备表面会产生痛觉,对用户使用移动设备带来不利的影响。而且,在高核心频率的情况下,比如CPU大核的2419MHz和2457MHz频率,会使得设备的表面温度最终达到49.5℃的高温,这样的高温很容易对用户的皮肤造成伤害,而且也会缩短移动设备内部芯片的使用寿命。因此在移动设备上运行深度学习神经网络时,应当控制好CPU和GPU的核心频率,使设备的表面温度不超过对用户安全的温度。
图11表示了使用CPU/GPU联合加速神经网络时,可以降低神经网络的运行延迟,但图12显示的结果是造成设备表面温度比CPU和GPU单独运行时要高。表明在使用CPU/GPU联合加速时,更应该要考虑设备表面的温度,要以更低的核心频率来控制设备表面的温度。同时,在试验过程中,通过设定较低的最高表面温度(安全模式,允许的最高表面温度为低于42度)和较高的最高表面温度(高性能模式,允许的最高表面温度高于42度),可以看出,本发明的技术方案不但能够较好的控制网络延迟,也可以很好的控制设备的表面温度。
上述只是本发明的较佳实施例,并非对本发明作任何形式上的限制。虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明。因此,凡是未脱离本发明技术方案的内容,依据本发明技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均应落在本发明技术方案保护的范围内。
Claims (10)
1.一种移动端的卷积神经网络任务调度方法,其特征在于,包括如下步骤:
S1.针对计算任务,从预设的配置方案集合中选择满足预设条件的配置方案,所述配置方案包括CPU核心频率、GPU核心频率、最低网络延迟切分比率、和当前配置参数下的最低网络延迟;所述预设条件包括所述当前配置参数下的最低网络延迟低于预设延迟;
S2.将所述计算任务的卷积层输入张量按照所述最低网络延迟切分比率进行切分,切分得到CPU输入张量和GPU输入张量;
S3.以所述CPU输入张量作为CPU卷积神经网络的输入,计算得到CPU输出张量;以所述GPU输入张量作为GPU卷积神经网络的输入,计算得到GPU输出张量,根据所述CPU输出张量和所述GPU输出张量得到卷积神经网络的输出张量。
2.根据权利要求1所述的移动端的卷积神经网络任务调度方法,其特征在于:在所述步骤S2的具体步骤包括:
S2.1.根据所述最低网络延迟切分比率和所述卷积层输入张量的高度,确定所述CPU输入张量的高度和所述GPU输入张量的高度;
S2.2.根据所述卷积层输入张量和所述CPU输入张量的高度计算得到CPU输入张量,根据所述卷积层输入张量和所述GPU输入张量的高度计算得到GPU输入张量。
3.根据权利要求2所述的移动端的卷积神经网络任务调度方法,其特征在于:所述卷积层输入张量以图像格式存储;
在所述步骤S2.2中还包括:将计算得到的图像格式的CPU输入张量转换成缓存格式的CPU输入张量。
4.根据权利要求3所述的移动端的卷积神经网络任务调度方法,其特征在于:所述步骤S3包括:
将缓存格式的CPU输出张量转换成图像格式的CPU输出张量,将图像格式的CPU输出张量与图像格式的GPU输出张量合并,得到卷积神经网络的输出张量。
5.根据权利要求1至4任一项所述的移动端的卷积神经网络任务调度方法,其特征在于:所述配置方案还包括当前配置参数下设备的最高表面温度;所述预设条件包括所述当前配置参数下设备的最高表面温度小于预设的目标温度;
还包括最低网络延迟切分比率确定步骤S0:
所述步骤S0包括:将预设的基准卷积层任务以预设的初始切分比率进行切分,得到基准CPU任务和基准GPU任务,获取CPU执行所述基准CPU任务所需要的第一时长,获取GPU执行所述基准GPU任务所需要的第二时长,当所述第一时长小于所述第二时长,且两者之差小于预设的阈值,则以所述初始切分比率作为最低网络延迟切分比率,否则调整所述初始切分比率,并重复最低网络延迟切分比率确定步骤S0。
6.一种移动端的卷积神经网络任务调度系统,其特征在于:包括参数配置模块、切分模块和计算输出模块;
所述参数配置模块用于:针对计算任务,从预设的配置方案集合中选择满足预设条件的配置方案,所述配置方案包括CPU核心频率、GPU核心频率、最低网络延迟切分比率、和当前配置参数下的最低网络延迟;所述预设条件包括所述当前配置参数下的最低网络延迟低于预设延迟;
所述切分模块用于:将所述计算任务的卷积层输入张量按照所述最低网络延迟切分比率进行切分,切分得到CPU输入张量和GPU输入张量;
所述计算输出模块用于:以所述CPU输入张量作为CPU卷积神经网络的输入,计算得到CPU输出张量;以所述GPU输入张量作为GPU卷积神经网络的输入,计算得到GPU输出张量,根据所述CPU输出张量和所述GPU输出张量得到卷积神经网络的输出张量。
7.根据权利要求6所述的移动端的卷积神经网络任务调度系统,其特征在于:所述切分模块具体用于:
根据所述最低网络延迟切分比率和所述卷积层输入张量的高度,确定所述CPU输入张量的高度和所述GPU输入张量的高度;
根据所述卷积层输入张量和所述CPU输入张量的高度计算得到CPU输入张量,根据所述卷积层输入张量和所述GPU输入张量的高度计算得到GPU输入张量。
8.根据权利要求7所述的移动端的卷积神经网络任务调度系统,其特征在于:所述卷积层输入张量以图像格式存储;
所述切分模块具体用于还用于:将计算得到的图像格式的CPU输入张量转换成缓存格式的CPU输入张量。
9.根据权利要求8所述的移动端的卷积神经网络任务调度系统,其特征在于:所述计算输出模块具体用于:将缓存格式的CPU输出张量转换成图像格式的CPU输出张量,将图像格式的CPU输出张量与图像格式的GPU输出张量合并,得到卷积神经网络的输出张量。
10.根据权利要求6至9任一项所述的移动端的卷积神经网络任务调度系统,其特征在于:
所述配置方案还包括当前配置参数下设备的最高表面温度;所述预设条件包括所述当前配置参数下设备的最高表面温度小于预设的目标温度;
还包括最低网络延迟切分比率确定模块:
所述最低网络延迟切分比率确定模块用于:将预设的基准卷积层任务以预设的初始切分比率进行切分,得到基准CPU任务和基准GPU任务,获取CPU执行所述基准CPU任务所需要的第一时长,获取GPU执行所述基准GPU任务所需要的第二时长,当所述第一时长小于所述第二时长,且两者之差小于预设的阈值,则以所述初始切分比率作为最低网络延迟切分比率,否则调整所述初始切分比率,并重复直到得到最低网络延迟切分比率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110081461.6A CN112748998B (zh) | 2021-01-21 | 2021-01-21 | 一种移动端的卷积神经网络任务调度方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110081461.6A CN112748998B (zh) | 2021-01-21 | 2021-01-21 | 一种移动端的卷积神经网络任务调度方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112748998A true CN112748998A (zh) | 2021-05-04 |
CN112748998B CN112748998B (zh) | 2023-10-03 |
Family
ID=75652765
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110081461.6A Active CN112748998B (zh) | 2021-01-21 | 2021-01-21 | 一种移动端的卷积神经网络任务调度方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112748998B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024059633A1 (en) * | 2022-09-16 | 2024-03-21 | Apple Inc. | Compiling of tasks for streaming operations at neural processor |
CN117892769A (zh) * | 2024-03-15 | 2024-04-16 | 之江实验室 | 神经网络训练方法、显存调度方法、系统、设备和产品 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017084330A1 (zh) * | 2015-11-17 | 2017-05-26 | 中国科学院计算技术研究所 | 加速深度神经网络算法的加速芯片的运算装置及方法 |
CN106940815A (zh) * | 2017-02-13 | 2017-07-11 | 西安交通大学 | 一种可编程卷积神经网络协处理器ip核 |
CN107341127A (zh) * | 2017-07-05 | 2017-11-10 | 西安电子科技大学 | 基于OpenCL标准的卷积神经网络加速方法 |
CN107977662A (zh) * | 2017-11-06 | 2018-05-01 | 清华大学深圳研究生院 | 一种实现高速处理计算机视觉图像的分层计算方法 |
CN108334849A (zh) * | 2018-01-31 | 2018-07-27 | 中山大学 | 一种基于黎曼流形的行人重识别方法 |
US20180293490A1 (en) * | 2017-04-09 | 2018-10-11 | Intel Corporation | Neural network scheduling mechanism |
CN108734272A (zh) * | 2017-04-17 | 2018-11-02 | 英特尔公司 | 卷积神经网络优化机构 |
CN109993278A (zh) * | 2017-12-30 | 2019-07-09 | 英特尔公司 | 机器学习环境中的有效卷积 |
CN110135575A (zh) * | 2017-12-29 | 2019-08-16 | 英特尔公司 | 用于分布式机器学习的通信优化 |
CN110942138A (zh) * | 2019-11-13 | 2020-03-31 | 华中科技大学 | 一种混合内存环境下深度神经网络的训练方法和系统 |
CN111738084A (zh) * | 2020-05-21 | 2020-10-02 | 山东大学 | 基于cpu-gpu异构多处理器片上系统的实时目标检测方法及系统 |
EP3745318A1 (en) * | 2019-05-31 | 2020-12-02 | NVIDIA Corporation | Training a neural network using selective weight updates |
EP3764315A1 (en) * | 2017-04-09 | 2021-01-13 | INTEL Corporation | Machine learning sparse computation mechanism |
-
2021
- 2021-01-21 CN CN202110081461.6A patent/CN112748998B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017084330A1 (zh) * | 2015-11-17 | 2017-05-26 | 中国科学院计算技术研究所 | 加速深度神经网络算法的加速芯片的运算装置及方法 |
CN106940815A (zh) * | 2017-02-13 | 2017-07-11 | 西安交通大学 | 一种可编程卷积神经网络协处理器ip核 |
EP3764315A1 (en) * | 2017-04-09 | 2021-01-13 | INTEL Corporation | Machine learning sparse computation mechanism |
US20180293490A1 (en) * | 2017-04-09 | 2018-10-11 | Intel Corporation | Neural network scheduling mechanism |
CN108734272A (zh) * | 2017-04-17 | 2018-11-02 | 英特尔公司 | 卷积神经网络优化机构 |
CN107341127A (zh) * | 2017-07-05 | 2017-11-10 | 西安电子科技大学 | 基于OpenCL标准的卷积神经网络加速方法 |
CN107977662A (zh) * | 2017-11-06 | 2018-05-01 | 清华大学深圳研究生院 | 一种实现高速处理计算机视觉图像的分层计算方法 |
CN110135575A (zh) * | 2017-12-29 | 2019-08-16 | 英特尔公司 | 用于分布式机器学习的通信优化 |
CN109993278A (zh) * | 2017-12-30 | 2019-07-09 | 英特尔公司 | 机器学习环境中的有效卷积 |
CN108334849A (zh) * | 2018-01-31 | 2018-07-27 | 中山大学 | 一种基于黎曼流形的行人重识别方法 |
EP3745318A1 (en) * | 2019-05-31 | 2020-12-02 | NVIDIA Corporation | Training a neural network using selective weight updates |
CN110942138A (zh) * | 2019-11-13 | 2020-03-31 | 华中科技大学 | 一种混合内存环境下深度神经网络的训练方法和系统 |
CN111738084A (zh) * | 2020-05-21 | 2020-10-02 | 山东大学 | 基于cpu-gpu异构多处理器片上系统的实时目标检测方法及系统 |
Non-Patent Citations (3)
Title |
---|
YOUNGSOK KIM等: "μLayer: Low Latency On-Device Inference Using Cooperative Single-Layer Acceleration and Processor-Friendly Quantization", 《IN PROCEEDINGS OF THE FOURTEENTH EUROSYS CONFERENCE 2019(EUROSYS’19).ASSOCIATION FOR COMPUTING MACHINERY》 * |
YUSEOK BAE等: "Architecture for fast object detection supporting CPU-GPU hybrid and distributed computing", 《2017 IEEE INTERNATIONAL CONFERENCE ON CONSUMER ELECTRONICS (ICCE)》 * |
李昕卓: "基于CNN的SAR目标识别FPGA加速器设计", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024059633A1 (en) * | 2022-09-16 | 2024-03-21 | Apple Inc. | Compiling of tasks for streaming operations at neural processor |
CN117892769A (zh) * | 2024-03-15 | 2024-04-16 | 之江实验室 | 神经网络训练方法、显存调度方法、系统、设备和产品 |
CN117892769B (zh) * | 2024-03-15 | 2024-06-11 | 之江实验室 | 神经网络训练方法、显存调度方法、系统、设备和产品 |
Also Published As
Publication number | Publication date |
---|---|
CN112748998B (zh) | 2023-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Cai et al. | Yolobile: Real-time object detection on mobile devices via compression-compilation co-design | |
Eshratifar et al. | Energy and performance efficient computation offloading for deep neural networks in a mobile cloud computing environment | |
Xu et al. | Deepcache: Principled cache for mobile deep vision | |
Heo et al. | Real-time object detection system with multi-path neural networks | |
US20180260710A1 (en) | Calculating device and method for a sparsely connected artificial neural network | |
KR20180073118A (ko) | 컨볼루션 신경망 처리 방법 및 장치 | |
CN112748998A (zh) | 一种移动端的卷积神经网络任务调度方法及系统 | |
US20230078991A1 (en) | Processing data stream modification to reduce power effects during parallel processing | |
US20160378791A1 (en) | Method and apparatus for performing a search operation on heterogeneous computing systems | |
JP2022050622A (ja) | 分野フレーズマイニング方法、装置及び電子機器 | |
CN112817730A (zh) | 深度神经网络服务批处理调度方法、系统及gpu | |
CN115115032A (zh) | 一种同态卷积加速方法和系统 | |
Li et al. | Design and implementation of neural network computing framework on Zynq SoC embedded platform | |
Li et al. | Predictive exit: Prediction of fine-grained early exits for computation-and energy-efficient inference | |
CN112771546A (zh) | 运算加速器和压缩方法 | |
Valdez et al. | Bio-inspired optimization methods on graphic processing unit for minimization of complex mathematical functions | |
WO2021151056A1 (en) | Computer-implemented methods and systems for compressing recurrent neural network (rnn) models and accelerating rnn execution in mobile devices to achieve real-time inference | |
Zhang et al. | A locally distributed mobile computing framework for DNN based android applications | |
Kataoka et al. | Simple energy-efficient server selection algorithm in a scalable cluster | |
CN115130672B (zh) | 一种软硬件协同优化卷积神经网络计算的方法及装置 | |
Oh et al. | Towards real-time cnn inference from a video stream on a mobile gpu (wip paper) | |
Yang et al. | On-demand inference acceleration for directed acyclic graph neural networks over edge-cloud collaboration | |
CN112215349A (zh) | 基于数据流架构的稀疏卷积神经网络加速方法及装置 | |
Wei et al. | Nn-stretch: Automatic neural network branching for parallel inference on heterogeneous multi-processors | |
Naganuma et al. | Accelerating convolutional neural networks using low precision arithmetic |
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 |