移动端CNN的CPU、GPU、NPU统一调度方法技术

技术编号:35498420 阅读:24 留言:0更新日期:2022-11-05 17:01
本发明专利技术公开了一种移动端CNN的CPU、GPU、NPU统一调度方法,本发明专利技术移动端CNN的CPU、GPU、NPU统一调度方法可实现在移动设备的SoC芯片中,在命令解析调度器的控制下,利用统一的指令来调度CPU、GPU、NPU。本发明专利技术通过对CPU的命令解析和调度任务进行卸载,实现CNN到命令转换过程与CPU上运行程序的解耦,提高命令响应速度。度。度。

【技术实现步骤摘要】
移动端CNN的CPU、GPU、NPU统一调度方法


[0001]本专利技术涉及数据处理
,特别涉及一种移动端CNN(Convolutional Neural Networks,卷积神经网络)的CPU(CentralProcessing Unit,中央处理器)、GPU(Graphics ProcessingUnit,图形处理器)、NPU(Neural Processing Unit,神经处理器)统一调度方法。

技术介绍

[0002]中央处理器(Central Processing Unit,CPU)是计算机中负责运算和控制的部件。在移动设备中,考虑到功耗、面积及性能需求的原因,通常会对CPU的规模和频率等进行缩减,因此CPU也经常被称作微控制单元(Microcontroller Unit,MCU)。
[0003]图形处理器(Graphics Processing Unit,GPU)是计算机中专门用于处理图形相关计算任务的部件,相比于CPU,GPU将计算资源更多的分配在计算部分而非控制部分上,并且尽可能的利用了图形计算处理任务中的并行性,因此,在图形处理任务上能具有比CPU快很多的计算能力。
[0004]神经处理器(Neural Processing Unit,NPU)通常指能够对神经网络计算提供加速处理能力的计算部件。由于目前卷积神经网络是神经网络的主流,而神经网络又是近年来人工智能发展的主要领域,同时,神经网络又以具有多层网络结构的深度神经网络为主,因此,还同时存在着人工智能加速器(Artificial Intelligence Accelerator)、卷积神经网络加速器(Convolutional Neural Network Accelerator)、深度学习加速器(Deep Learning Accelerator,DLA)等诸多相似但涵盖范围略有不同的概念。在移动端,由于面积、功耗等限制因素,NPU通常不能做到完整支持神经网络所需的所有算子,而是仅对计算负载高的卷积等算子进行支持,而把计算量小、有灵活性要求的算子交由CPU来计算。尽管桌面端和服务端采用GPU来进行神经网络的计算很普遍,但是在移动端,GPU通常是专用于图形相关的处理的部件,而非通用图形处理器(General

purpose Graphics Processing Unit,GPGPU),并不适合于直接用于神经网络相关的计算,因此,通常需要在计算精度、并行度、内部互联等多方面进行领域专门优化的NPU。
[0005]在移动设备中,由于设备空间、成本、功耗等多方面的限制,通常难以像桌面端、云端采用独立芯片PCB(Printed Circuit Board,印制电路板)互联、独立板卡组装乃至分布式计算系统的方式,而是将CPU、GPU或者CPU、NPU集成在单一的芯片中,成为片上系统(System on a Chip,SoC),也因此,移动设备中任务分配和调度的要求与桌面端和云端有很大的不同,需要进行专门的优化。在GPU和/或NPU与CPU集成在同一SoC的情况下,通常由CPU作为控制单元,通过其上运行的程序,对GPU和NPU进行配置、调度与任务分配,协同完成所有的计算过程。但CPU需要同时完成系统调度、命令解析、部分算子计算等任务,负载很重。
[0006]因此,目前亟需一种能够实现CPU、GPU、NPU统一调度的方法来解决上述问题。

技术实现思路

[0007]本专利技术要解决的技术问题是提供一种对CPU的命令解析和调度任务进行卸载、提高命令响应速度的移动端CNN的CPU、GPU、NPU统一调度方法。
[0008]为了解决上述问题,本专利技术提供了一种移动端CNN的CPU、GPU、NPU统一调度方法,其包括以下步骤:S1、将CPU、GPU、内存分别连接到总线,将命令解析调度器和NPU本地连接并共享总线,通过命令接口将所述命令解析调度器与GPU连接;S2、CPU解析神经网络镜像,并根据软件算子注册段的配置为每个软件算子槽注册软件算子函数;S3、CPU为命令解析调度器配置命令队列起始地址并启动命令解析调度器;S4、所述命令解析调度器将命令队列的一部分读取到自身的命令缓存中;S5、所述命令解析调度器对命令缓存中的命令队列进行解析,得到命令的类型;如果类型为NPU命令,则通过本地连接将解析得到的命令参数发送给NPU;如果类型为软件算子,则向CPU发送中断信号,并将解析得到的命令参数发送到寄存器接口等待CPU获取;如果类型为GPU命令,则通过命令接口向GPU发送解析得到的命令类型和命令参数;S6、NPU接收到NPU命令后,从命令中获取权重,并从命令参数指定的内存或片上缓存地址读取计算数据,完成相应硬件算子计算,并将计算结果发送到命令参数指定的内存或片上缓存地址;CPU接收到软件算子中断信号后,首先通过总线从所述命令解析调度器的寄存器接口获取命令类型和命令参数,从命令参数指定的内存或片上缓存地址获取权重、目标参数以及计算数据,完成相应软件算子计算,并将计算结果发送到命令参数指定的内存或片上缓存;GPU接收到GPU命令后,从命令参数指定的内存或片上缓存地址获取目标参数和计算数据,完成相应GPU算子计算,并将计算结果发送到命令参数指定的内存或片上缓存地址;S7、NPU完成当前硬件算子计算后,通过本地连接向所述命令解析调度器发送完成信号;CPU完成当前软件算子计算后,通过寄存器接口向命令解析调度器发送完成信号;GPU完成当前GPU算子计算后,通过命令接口向命令解析调度器发送完成信号;S8、重复步骤S4

S7,直到所述命令解析调度器解析到结束命令,命令解析调度器返回空闲状态。
[0009]作为本专利技术的进一步改进,步骤S1之前还包括以下步骤:将卷积神经网络各项计算任务转换为神经算子,并将神经算子分为三类,可由NPU进行加速运算的为硬件算子;可由GPU运算的为GPU算子;不适合NPU和GPU计算的,由CPU进行计算,为软件算子。
[0010]作为本专利技术的进一步改进,所述神经网络镜像包括镜像头、软件算子注册段、软件算子参数段、命令队列。
[0011]作为本专利技术的进一步改进,所述镜像头中包含软件算子注册段、软件算子参数段、命令队列三个部分的长度和起始偏移地址信息;所述软件算子注册段包含需要注册的软件算子函数及其要被注册于哪一个软件算子槽的信息;软件算子参数段包含软件算子计算所需要的参数;所述命令队列包含了软件算子命令、GPU命令和硬件算子命令。
[0012]作为本专利技术的进一步改进,所述片上缓存包括命令缓存和数据缓存,所述数据缓
存连接到总线或内嵌到CPU、GPU、NPU中。
[0013]本专利技术还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任意一项所述方法的步骤。
[0014]本专利技术还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任意一项所述方法的步骤。
[本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.移动端CNN的CPU、GPU、NPU统一调度方法,其特征在于,包括以下步骤:S1、将CPU、GPU、内存分别连接到总线,将命令解析调度器和NPU本地连接并共享总线,通过命令接口将所述命令解析调度器与GPU连接;S2、CPU解析神经网络镜像,并根据软件算子注册段的配置为每个软件算子槽注册软件算子函数;S3、CPU为命令解析调度器配置命令队列起始地址并启动命令解析调度器;S4、所述命令解析调度器将命令队列的一部分读取到自身的命令缓存中;S5、所述命令解析调度器对命令缓存中的命令队列进行解析,得到命令的类型;如果类型为NPU命令,则通过本地连接将解析得到的命令参数发送给NPU;如果类型为软件算子,则向CPU发送中断信号,并将解析得到的命令参数发送到寄存器接口等待CPU获取;如果类型为GPU命令,则通过命令接口向GPU发送解析得到的命令类型和命令参数;S6、NPU接收到NPU命令后,从命令中获取权重,并从命令参数指定的内存或片上缓存地址读取计算数据,完成相应硬件算子计算,并将计算结果发送到命令参数指定的内存或片上缓存地址;CPU接收到软件算子中断信号后,首先通过总线从所述命令解析调度器的寄存器接口获取命令类型和命令参数,从命令参数指定的内存或片上缓存地址获取权重、目标参数以及计算数据,完成相应软件算子计算,并将计算结果发送到命令参数指定的内存或片上缓存;GPU接收到GPU命令后,从命令参数指定的内存或片上缓存地址获取目标参数和计算数据,完成相应GPU算子计算,并将计算结果发送到命令参数指定的内存或片上缓存地址;S7、NPU完成当前硬件算子计算后,通过本地连接向所述命令解析调度器发送完成信号;CPU完成当前软件算子计算后,通过寄存器接口向命令解析调度器发送完成信号;GPU完成当前GPU算子计算后,通...

【专利技术属性】
技术研发人员:徐瑞项天
申请(专利权)人:苏州速显微电子科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1