一种基于层数分割的异构计算方法及装置制造方法及图纸

技术编号:35081900 阅读:17 留言:0更新日期:2022-09-28 11:50
本发明专利技术提供一种基于层数分割的异构计算方法及装置,基于多个处理器进行运算,包括:预测卷积神经网络模型在多个处理器中的第一处理器上运算所需的第一时间,当第一时间超过第一阈值时,将卷积神经网络模型分割为至少两个子模型;至少两个子模型中的第一子模型在第一处理器上运算,至少两个子模型中的第二子模型在多个处理器中的第二处理器上运算;动态调配至少两个子模型的层数,至少两个子模型的层数之和为卷积神经网络模型的总层数。本发明专利技术提供的基于层数分割的异构计算方法及装置,通过卷积神经网络按层数分割成子模型后分配到多个处理器的硬件单元,从而在有剩余算力的系统提高了卷积神经网络的加速计算效率。高了卷积神经网络的加速计算效率。高了卷积神经网络的加速计算效率。

【技术实现步骤摘要】
一种基于层数分割的异构计算方法及装置


[0001]本专利技术实施例涉及数据处理
,特别是涉及一种基于层数分割的异构计算方法及装置。

技术介绍

[0002]随着人工智能在端侧计算系统中的广泛应用,卷积神经网络(Convolutional Neural Network,以下简称CNN)被广泛部署于各类异构计算平台。CNN由于计算量大,实时性要求高等特点,逐渐成为人工智能领域的瓶颈。
[0003]现有技术中,常见的解决方案包括:1、使用低复杂度的CNN模型,这使得现有的各种算法模型无法得益。
[0004]2、使用大算力的嵌入式神经网络处理器(Neural

network Process Units,以下简称NPU),或者多个NPU互联,这使得成本大幅度上升。
[0005]3、将CNN模型及数据发送到云平台上进行计算,再将结果返回,由于CNN数据量大导致的网络传输延迟、不同云平台之间的同步,导致该方法并不能满足实时性要求。
[0006]常见的嵌入式系统通常都包含NPU、GPU(Graphic Processing Unit,图形处理器)和CPU(Central Processing Unit,中央处理器)等不同类型的硬件单元,通常只有NPU执行CNN的推理工作,而GPU、CPU等硬件相对比较空闲,因为目前各类深度学习算子都可以在不同的硬件上实现,因此利用系统中GPU、CPU的性能余量以辅助NPU的CNN推理工作成为了可能。

技术实现思路

[0007]本专利技术提供一种基于层数分割的异构计算方法及装置,通过将卷积神经网络按层数分割成子模型后分配到多个处理器的硬件单元,从而在有剩余算力的系统提高了卷积神经网络的加速计算效率。
[0008]本专利技术实施例提供一种基于层数分割的异构计算方法,基于多个处理器进行运算,包括:预测卷积神经网络模型在所述多个处理器中的第一处理器上运算所需的第一时间,当所述第一时间超过第一阈值时,将所述卷积神经网络模型分割为至少两个子模型;所述至少两个子模型中的第一子模型在所述第一处理器上运算,所述至少两个子模型中的第二子模型在所述多个处理器中的第二处理器上运算;动态调配所述至少两个子模型的层数,所述至少两个子模型的层数之和为所述卷积神经网络模型的总层数。
[0009]优选地,预测所述卷积神经网络模型在所述多个处理器中的所述第一处理器和所述第二处理器上运算所需的第二时间,当所述第二时间超过第二阈值时,将所述卷积神经网络模型分割为三个子模型;所述三个子模型中的所述第一子模型在所述第一处理器上运算,所述三个子模型
中的所述第二子模型在所述第二处理器上运算,所述三个子模型中的第三子模型在所述多个处理器中的第三处理器上运算。
[0010]优选地,所述当所述第一时间超过第一阈值时,将所述卷积神经网络模型分割为至少两个子模型,包括所述至少两个子模型中的所述第一子模型在所述第一处理器上运算,所述至少两个子模型中的所述第二子模型在所述第二处理器上运算,所述至少两个子模型中的第三子模型在所述多个处理器中的第三处理器上运算。
[0011]优选地,所述动态调配所述至少两个子模型的层数包括根据所述多个处理器的历史性能余量进行动态调配。
[0012]优选地,所述根据所述多个处理器的历史性能余量进行动态调配包括获取所述多个处理器在预设时间内的单位时间内空闲忙碌时间比值,所述多个处理器的单位时间内空闲忙碌时间比值通过以下公式计算:其中,为所述多个处理器的单位时间内空闲忙碌时间比值,为所述多个处理器单位时间内的空闲时间,为所述多个处理器单位时间内的忙碌时间。
[0013]优选地,所述动态调配所述至少两个子模型的层数包括根据所述多个处理器的实时忙碌状态进行动态调配,当监测到所述第一处理器当前负载过重且所述第二处理器有较大性能余量时,下一帧将所述第一子模型在所述第一处理器上进行运算,将所述第二子模型在所述第二处理器上进行运算;当监测到所述第二处理器当前负载过重且所述多个处理器中的第三处理器有较大性能余量时,下一帧将所述第二子模型在所述第二处理器上进行运算,将所述至少两个子模型中的第三子模型在所述第三处理器上进行计算。
[0014]优选地,根据所述至少两个子模型的数量,为子模型间共享的输入输出层分配多块共享物理内存;当所述至少两个子模型包括所述第一子模型和所述第二子模型时,所述多块共享物理内存包括第一共享物理内存和第二共享物理内存;当所述至少两个子模型包括所述第一子模型、所述第二子模型和第三子模型时,所述多块共享物理内存包括所述第一共享物理内存、所述第二共享物理内存和第三共享物理内存。
[0015]优选地,所述多块共享物理内存用于支持所述第一子模型、所述第二子模型的输出以及所述第二子模型、所述第三子模型的读取;当所述多块共享物理内存包括所述第一共享物理内存和所述第二共享物理内存时,所述第一共享物理内存用于存放第i帧第一子模型或第二子模型的输出,所述第一共享物理内存还用于第i帧第二子模型或第三子模型的读取;所述第二共享物理内存用于存放第i+1帧第一子模型或第二子模型的输出,所述第二共享物理内存还用于第i+1帧第二子模型或第三子模型的读取;当所述多块共享物理内存包括所述第一共享物理内存、所述第二共享物理内存、
所述第三共享物理内存时,所述第三共享物理内存用于存放第i+2帧第一子模型或第二子模型的输出,所述第三共享物理内存还用于第i+2帧第二子模型或第三子模型的读取;其中,i为自然数,i≥1。
[0016]优选地,所述多个处理器包括嵌入式神经网络处理器、图形处理器和中央处理器中的至少两个。
[0017]本专利技术实施例还提供一种基于层数分割的异构计算装置,基于多个处理器进行运算,包括:预测模块,其用于预测卷积神经网络模型在所述多个处理器中的第一处理器上运算所需的第一时间,当所述第一时间超过第一阈值时,将所述卷积神经网络模型分割为至少两个子模型;运算模块,其用于将所述至少两个子模型中的第一子模型在所述第一处理器上运算,所述至少两个子模型中的第二子模型在所述多个处理器中的第二处理器上运算;动态调配模块,其用于动态调配所述至少两个子模型的层数,所述至少两个子模型的层数之和为所述卷积神经网络模型的总层数。
[0018]与现有技术相比,本专利技术实施例的技术方案具有以下有益效果:本专利技术实施例的基于层数分割的异构计算方法及装置,预测卷积神经网络模型在所述多个处理器中的第一处理器上运算所需的第一时间,当所述第一时间超过第一阈值时,将所述卷积神经网络模型分割为至少两个子模型;所述至少两个子模型中的第一子模型在所述第一处理器上运算,所述至少两个子模型中的第二子模型在所述多个处理器中的第二处理器上运算;动态调配所述至少两个子模型的层数,所述至少两个子模型的层数之和为所述卷积神经网络模型的总层数,通过卷积神经网络按层数分割成子模型后分配到多个处理器的硬件单元,从而在有剩余算力的系统提高了卷积神经网络的加速计算效率;进一步地,根据所述至少两个子模型的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于层数分割的异构计算方法,基于多个处理器进行运算,其特征在于,包括:预测卷积神经网络模型在所述多个处理器中的第一处理器上运算所需的第一时间,当所述第一时间超过第一阈值时,将所述卷积神经网络模型分割为至少两个子模型;所述至少两个子模型中的第一子模型在所述第一处理器上运算,所述至少两个子模型中的第二子模型在所述多个处理器中的第二处理器上运算;动态调配所述至少两个子模型的层数,所述至少两个子模型的层数之和为所述卷积神经网络模型的总层数。2.根据权利要求1所述的基于层数分割的异构计算方法,其特征在于,预测所述卷积神经网络模型在所述多个处理器中的所述第一处理器和所述第二处理器上运算所需的第二时间,当所述第二时间超过第二阈值时,将所述卷积神经网络模型分割为三个子模型;所述三个子模型中的所述第一子模型在所述第一处理器上运算,所述三个子模型中的所述第二子模型在所述第二处理器上运算,所述三个子模型中的第三子模型在所述多个处理器中的第三处理器上运算。3.根据权利要求1所述的基于层数分割的异构计算方法,其特征在于,所述当所述第一时间超过第一阈值时,将所述卷积神经网络模型分割为至少两个子模型,包括所述至少两个子模型中的所述第一子模型在所述第一处理器上运算,所述至少两个子模型中的所述第二子模型在所述第二处理器上运算,所述至少两个子模型中的第三子模型在所述多个处理器中的第三处理器上运算。4.根据权利要求1所述的基于层数分割的异构计算方法,其特征在于,所述动态调配所述至少两个子模型的层数包括根据所述多个处理器的历史性能余量进行动态调配。5.根据权利要求4所述的基于层数分割的异构计算方法,其特征在于,所述根据所述多个处理器的历史性能余量进行动态调配包括获取所述多个处理器在预设时间内的单位时间内空闲忙碌时间比值,所述多个处理器的单位时间内空闲忙碌时间比值通过以下公式计算:其中,为所述多个处理器的单位时间内空闲忙碌时间比值,为所述多个处理器单位时间内的空闲时间,为所述多个处理器单位时间内的忙碌时间。6.根据权利要求1所述的基于层数分割的异构计算方法,其特征在于,所述动态调配所述至少两个子模型的层数包括根据所述多个处理器的实时忙碌状态进行动态调配,当监测到所述第一处理器当前负载过重且所述第二处理器有较大性能余量时,下一帧将所述第一子模型在所述第一处理器上进行运算,将所述第二子模型在所述第二处理器上进行运算;当监测到所...

【专利技术属性】
技术研发人员:孙坚伟胡力乔安成
申请(专利权)人:上海芯算极科技有限公司
类型:发明
国别省市:

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

1