CN112348173A - 一种移动平台上cnn流水线优化方法 - Google Patents
一种移动平台上cnn流水线优化方法 Download PDFInfo
- Publication number
- CN112348173A CN112348173A CN202011269859.4A CN202011269859A CN112348173A CN 112348173 A CN112348173 A CN 112348173A CN 202011269859 A CN202011269859 A CN 202011269859A CN 112348173 A CN112348173 A CN 112348173A
- Authority
- CN
- China
- Prior art keywords
- stage
- pipeline
- layer
- cnn
- model
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 41
- 238000005457 optimization Methods 0.000 title claims abstract description 17
- 238000013507 mapping Methods 0.000 claims abstract description 14
- 238000010276 construction Methods 0.000 claims abstract description 11
- 238000003066 decision tree Methods 0.000 claims abstract description 10
- 239000010410 layer Substances 0.000 claims description 105
- 238000013527 convolutional neural network Methods 0.000 claims description 58
- 239000011159 matrix material Substances 0.000 claims description 11
- 238000004458 analytical method Methods 0.000 claims description 5
- 239000002356 single layer Substances 0.000 claims description 5
- 238000009826 distribution Methods 0.000 claims description 4
- 238000004519 manufacturing process Methods 0.000 claims description 4
- 238000011773 genetically engineered mouse model Methods 0.000 claims 2
- 230000006870 function Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Images
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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
- G06N5/045—Explanation of inference; Explainable artificial intelligence [XAI]; Interpretable artificial intelligence
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Software Systems (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Neurology (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Medical Informatics (AREA)
- Multi Processors (AREA)
Abstract
本发明公开了一种移动平台上CNN流水线优化方法,包括:确认卷积层和完全连接层为任何CNN模型的推理过程中的性能的主要构建层;为卷积层和全连接层建立基于决策树的性能预测模型,性能预测模型能够预测运行在不同类型的移动处理器上的层执行时间;提出层到处理器的映射算法,根据性能预测模型的结果,动态地为一个层分配处理器资源,将一个或多个层映射到一个或一组处理器上,以构建一个优化的流水线来运行推理模型;混合使用移动GPU和异构移动CPU为推理模型构建层的流水线阶段。本发明解决了移动平台上CNN流水线推理时,系统吞吐量并没有优化的问题,为CNN模型推理层优化分配处理器资源,实现高吞吐量。
Description
技术领域
本发明属于CNN推理加速技术领域,更具体的说是涉及一种移动平台上CNN流水线优化方法。
背景技术
由于硬件资源有限,在移动SoC上运行CNN推理模型存在两个问题。
第一个问题是软件框架:一些流行的深度学习框架,如TensorFlow和Caffe不能直接在移动SoC上运行。它们需要针对移动SoC进行大量修改甚至重写。例如,TensorFlowLite、Caffe2分别针对TensorFlow和Caffe进行了修改。
第二个问题来自于硬件异构性:目前的移动SoC通常由异构处理器组成,包括CPU大核、CPU小核和GPU。但是将CNN模型推理的计算调度到异构CPU核和GPU上是非常困难的。因为这是一个典型的多对多映射问题。一方面,CNN推理模型通常包含多个层,并且层的种类和数量因CNN模型而异。此外,一个层可以包含多个内核,例如GEMM(通用矩阵乘法)。另一方面,移动SoC通常由多个异构CPU核和一个GPU组成,它们共享相同的内存。在不同类型的处理器上,层的性能可能会有很大的不同。如何将CNN层映射到底层处理器对于高性能是非常重要的,也是很困难。如何将CNN层合适地映射到底层处理器,从而使系统具有一个最佳的吞吐量是非常重要的,也是很困难。
为了解决这个问题,现在已经出现了一些关于CNN推理层流水线的技术。但是它们并没有使用移动SoC的GPU,也没有解决GPU相关的问题。此外,现有的技术为CNN推理过程中的内核构造了一个线性的性能模型,这不足以构造CNN流水线阶段以获得最佳吞吐量。
因此,如何提供一种移动平台上CNN流水线优化方法是本领域技术人员亟需解决的问题。
发明内容
有鉴于此,本发明提供了一种移动平台上CNN流水线优化方法,解决了移动平台上CNN流水线推理时,系统吞吐量并没有优化的问题,为CNN模型推理层优化分配处理器资源,实现高吞吐量。
为了实现上述目的,本发明采用如下技术方案:
一种移动平台上CNN流水线优化方法,包括如下步骤:
(1)确认卷积层和完全连接层为任何CNN模型的推理过程中的性能的主要构建层;
(2)为卷积层和全连接层建立基于决策树的性能预测模型,性能预测模型能够预测运行在不同类型的移动处理器上的执行时间;
(3)提出层到处理器的映射算法,根据性能预测模型的结果,动态地为一个层分配处理器资源,将一个或多个层映射到一个或一组处理器上,以构建一个优化的流水线来运行推理模型;
(4)混合使用移动GPU和异构移动CPU为推理模型构建层的流水线阶段。
优选的,推理模型的层性能分析方法为:
1)将多线程映射到CPU核上:不同数量的CPU核上运行一个推理模型,并用不同的线程数组合来观察推理的执行时间;
2)CPU和GPU执行时间比较:首先在移动GPU上并行运行每个CNN推理模型;然后,在CPU核心上运行每个推理模型,根据步骤1)的结果,选择设置达到最高的性能的线程数;最后比较在GPU和CPU核上运行的每个推理模型的执行时间;
3)单个层的性能分析:为了给每个模型推理建立一个优化的流水线,测量运行在不同类型处理器或它们的组合上运行单个层所需的执行时间。
优选的,测量运行在不同类型处理器或它们的组合上运行单个层所需的执行时间,通过在推理模型的一个层的源代码之前插入一个定时器函数来实现。
优选的,性能预测模型通过决策树来预测GEMM的执行时间,输入的参数包括Iw、Id、Fw、Ow、N、K和M;其中Iw和Id分别为一个层的输入张量的宽度和深度;Fw为滤波器矩阵的宽度;Ow为输出特征图像的宽度;N、K、M为与GEMM相关的参数,N为输入特征图像中的立方体数;K为每个内核立方体中的值的数目;M为卷积核的数目。
优选的,构建层的流水线阶段的方法包括流水线阶段初始化和阶段合并两个步骤;
流水线阶段初始化:构建一个包含三个阶段的流水线,每个阶段都有相同的硬件资源:第一阶段是GPU;第二阶段由四个大CPU核心组成,第三阶段由四个小CPU核心组成;推理模型的所有层按照层的数量平均分为三个组,并按顺序分别分割流水线的GPU阶段、CPU大核的阶段、CPU小核的阶段;
阶段合并:对于从初始化阶段得到的每两个相邻的流水线阶段Stagei和Stagei+1,将这两个阶段所拥有的计算资源、执行的CNN的层合并;当合并完CPU的一个集群后,平衡所有阶段的时间,使流水线的各个阶段执行时间接近,且尽可能短。
优选的,通过层性能预测模型计算流水线阶段Stagei和Stagei+1的执行时间:Ti、Ti+1;通过性能预测模型计算合并阶段的执行时间:Ti’;当Ti’小于Ti和Ti+1的最大值时,将这两个阶段Stagei和Stagei+1合并。
优选的,平衡所有阶段的时间的方法为:当某两个阶段的执行时间之差大于某个阈值时,将执行时间较大的阶段所在集群拥有的层数减少1,将执行时间较小的阶段所在集群拥有的层数增加1;再重新进行流水线阶段初始化和阶段合并这两个过程,直到流水线各个阶段分配稳定。
本发明的有益效果在于:
本发明通过混合使用移动GPU和异构移动CPU核心构建了CNN推理过程中流水线的各个阶段;提出了一个基于决策树的性能模型来预测CNN推理模型的主要构建层在不同类型的移动处理器上的性能,包括大小CPU核、gpu及其组合,其精度足以帮助构建优化的CNN的流水线;并提出了一种映射算法,为CNN模型推理层优化分配处理器资源,实现高吞吐量。从而解决了移动平台上CNN流水线推理时,系统吞吐量并没有优化的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1附图为本发明的方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅附图1,本发明提供了一种移动平台上CNN流水线优化方法,包括如下步骤:
S1:确认卷积层和完全连接层为任何CNN模型(如AlexNet和MobileNet等)的推理过程中的性能的主要构建层;确认卷积层和完全连接层这两种层的推理最消耗计算资源和运行时间。研究结果有助于建立层性能模型,指导构建流水线。
S2:为卷积层和全连接层建立基于决策树的性能预测模型,性能预测模型能够预测运行在不同类型的移动处理器(包括GPU、大小CPU核及其组合)上的执行时间;
S3:提出层到处理器的映射算法,根据性能预测模型的结果,动态地为一个层分配处理器资源,将一个或多个层映射到一个或一组处理器上,以构建一个优化的流水线来运行推理模型;
S4:混合使用移动GPU和异构移动CPU为推理模型构建层的流水线阶段。
本实施例中,为了优化移动SoC上的CNN层流水线推理性能,项目需要对CNN层在不同类型的移动处理器及其组合上的推理性能进行描述。由于移动SoC上有多个处理器,在ACL等边缘AI框架的帮助下,通常使用多线程来执行推理模型。接下来从三个方面描述模型推理的层性能:
1)将多线程映射到CPU核上:为了提高移动SoC上CNN模型推理的性能,推理任务通常由多个并行线程执行。多线程如何在多个异构CPU内核上执行实际上是一个多对多的问题。因此,本发明设计以下方案来描述它。在不同数量的CPU核上运行一个推理模型,并用不同的线程数组合来观察推理的执行时间。
2)CPU和GPU执行时间比较:首先在移动GPU上并行运行每个CNN推理模型。然后,在CPU核心上运行每个推理模型,根据步骤1)的结果,选择设置可以达到最高的性能的线程数。最后比较在GPU和CPU核上运行的每个推理模型的执行时间。在GPU上,推理任务由AI框架ARM Compute Library(ACL)并行,而在CPU核心上,用户可以通过ACL的API设置线程数。
3)单个层的性能分析:为了给每个模型推理建立一个优化的流水线,测量运行在不同类型处理器或它们的组合上运行单个层所需的执行时间,例如两个大CPU核(2B)和四个小CPU核心(4s)。这可以通过在推理模型的一个层的源代码之前插入一个定时器函数来实现,当利用ACL框架来实现推理模型时,在这些代码之后插入一个额外的计时器函数来统计时间。
本实施例中,层性能预测方法为:
在实际应用中,用户希望能够在给定的移动SoC上尽快优化一个新的CNN推理模型。这就需要我们能够尽可能准确地预测各个层的性能。我们观察到CNN推理模型最耗时的部分是卷积层,而卷积层最耗时的部分是通用矩阵乘法(GEMM)的计算核。因此,为GEMM建立了一个性能模型来表示CNN推理模型的主导层的性能。GEMM实际上加快了卷积运算。它将输入的特征图像或卷积核(三维矩阵)转换为二维矩阵,将多维数据集的值排列成矩阵的行或列。这里,N是输入特征图像中的立方体数;K是每个内核立方体中的值的数目;M是卷积核的数目。因此,卷积运算被转换成大小为N×K的图像矩阵和大小为K×M的核矩阵的GEMM,结果是大小为N×M的矩阵。
使用体系结构常用的算法-决策树来预测GEMM的执行时间。输入的参数包括Iw、Id、Fw、Ow、N、K和M;其中Iw和Id分别为一个层的输入张量的宽度和深度;Fw为滤波器矩阵的宽度;Ow为输出特征图像的宽度;N、K、M为与GEMM相关的参数,N为输入特征图像中的立方体数;K为每个内核立方体中的值的数目;M为卷积核的数目。为了简单起见,我们只考虑图像的高度与其权重相等的情况。因此,我们在性能模型中不包括与高度相关的参数,如Ih和Fh。
性能预测模型通过决策树来预测GEMM的执行时间。
本实施例中,层流水线构建方法为:
构建层的流水线阶段的方法包括流水线阶段初始化和阶段合并两个步骤;
流水线阶段初始化:构建一个包含三个阶段的流水线,每个阶段都有相同的硬件资源:第一阶段是GPU;第二阶段由四个大CPU核心组成,第三阶段由四个小CPU核心组成;推理模型的所有层按照层的数量平均分为三个组,并按顺序分别分割流水线的GPU阶段、CPU大核的阶段、CPU小核的阶段;在每个阶段中,GPU不可拆分,但CPU大核和CPU小核是可以拆分的。因为CPU大/小核集群都各包含4个cores,每个由CPU核组成的流水线的阶段还可以进一步划分为更细粒度的阶段。将CPU大/小核集群分配的层分给各个核心,组成新的阶段,并尽可能使每个阶段运行相同数量的层。
阶段合并:对于从初始化阶段得到的每两个相邻的流水线阶段Stagei和Stagei+1,通过层性能预测模型计算流水线阶段Stagei和Stagei+1的执行时间:Ti、Ti+1;将这两个阶段所拥有的计算资源、执行的CNN的层合并,通过性能预测模型计算合并阶段的执行时间:Ti’;当Ti’小于Ti和Ti+1的最大值时,将这两个阶段Stagei和Stagei+1合并。当合并完CPU的一个集群后,平衡所有阶段的时间,使流水线的各个阶段执行时间接近,且尽可能短。
平衡所有阶段的时间的方法为:当某两个阶段的执行时间之差大于某个阈值时,将执行时间较大的阶段所在集群拥有的层数减少1,将执行时间较小的阶段所在集群拥有的层数增加1;再重新进行流水线阶段初始化和阶段合并这两个过程,直到流水线各个阶段分配稳定。
本实施例中,以AlexNet为例,层流水线构建方法为:
假设现在使用我们的粗粒度流水线阶段初始化策略来尝试性地在GPU上调度AlexNet的前三个卷积层,因为在GPU上的卷积层比在CPU上运行的快得多,并在四个大的CPU核上映射剩余的两个卷积层和一个全连接的层,以及在四个小CPU核心上映射最后两层全连接的层。此时,初始流水线有三个阶段,第一阶段的计算资源是GPU,第二阶段的计算资源是CPU核心组,第三阶段的计算资源小CPU核心组。这种初始流水线的划分是由层性能描述的结果决定的,因为GPU运行卷积层速度快,运行全连接层的速度慢,因此将全连接层分给CPU计算,将CNN开始的卷积层分给GPU计算,即使是初始化划分流水线的方法也能达到高性能。然而,现在推理模型中的层执行是按顺序的。因此,当层在GPU上执行时,CPU核心处于空闲状态,反之亦然。
本发明主要针对移动SoC的CNN进行层流水线的优化,其核心思想是将一个CNN模型的推理过程分为两个以上的阶段,每个阶段推理一组连续的层,两个相邻阶段的部分并行。对于一条流水线,其吞吐量由流水线中最慢的阶段决定。因此,我们需要平衡每个阶段的工作负载的执行时间,以尽可能地提高流水线的吞吐量。因此,优化的关键是如何划分工作负载和构造多少个阶段。本发明提出了一种动态平衡的方法来动态地划分工作负载和调整阶段分配。本发明的目标是使流水线的各个阶段执行时间几乎相同,且尽可能短。本发明设计了一个平衡流水线阶段执行时间的策略,包括两个步骤:流水线阶段初始化和阶段合并。
流水线阶段初始化:
首先构建了一个包含三个阶段的流水线,每个阶段都有相同的硬件资源:第一阶段是GPU;第二阶段由四个大CPU核心组成,第三阶段由四个小CPU核心组成。CNN推理模型的所有层按照层的数量平均分为三个组,并按顺序分别分割流水线的GPU阶段、CPU大核的阶段、CPU小核的阶段。
在每个阶段中,GPU不可拆分,但CPU大核和CPU小核是可以拆分的。每个由CPU核组成的流水线的阶段还可以进一步划分为更细粒度的阶段。将CPU大/小核集群分配的层分给各个核心,组成新的阶段,并尽可能使每个阶段运行相同数量的层。
阶段的合并:
对于从初始化阶段得到的每两个相邻的流水线阶段Stagei和Stagei+1,本发明通过层性能预测模型计算每个阶段的执行时间Ti、Ti+1。。此时得到了这两个阶段各自所拥有的计算资源、计算的CNN的层、以及对应的执行时间。将这两个阶段所拥有的计算资源、执行的CNN的层合并,通过层性能预测模型计算合并阶段的执行时间Ti’;当Ti’小于Ti和Ti+1的最大值的时候,就可以将这两个阶段Stagei和Stagei+1合并,因为这样做会减少流水线中最慢的阶段的执行时间。
当合并完CPU的一个集群后,我们还需要平衡所有阶段的时间,使流水线的各个阶段执行时间几乎相同,且尽可能短。当某两个阶段的执行时间之差大于某个阈值的时候,将执行时间较大的阶段所在集群拥有的层数减少1,将执行时间较小的阶段所在集群拥有的层数增加1。再重新进行流水线阶段初始化和合并这两个过程,直到流水线各个阶段分配稳定。
本发明通过混合使用移动GPU和异构移动CPU核心构建了CNN推理过程中流水线的各个阶段;提出了一个基于决策树的性能模型来预测CNN推理模型的主要构建层在不同类型的移动处理器上的性能,包括大小CPU核、GPU及其组合,其精度足以帮助构建优化的CNN的流水线;并提出了一种映射算法,为CNN模型推理层优化分配处理器资源,实现高吞吐量。从而解决了移动平台上CNN流水线推理时,系统吞吐量并没有优化的问题。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (7)
1.一种移动平台上CNN流水线优化方法,其特征在于,包括如下步骤:
(1)确认卷积层和完全连接层为任何CNN模型的推理过程中的性能的主要构建层;
(2)为卷积层和全连接层建立基于决策树的性能预测模型,性能预测模型能够预测运行在不同类型的移动处理器上的执行时间;
(3)提出层到处理器的映射算法,根据性能预测模型的结果,动态地为一个层分配处理器资源,将一个或多个层映射到一个或一组处理器上,以构建一个优化的流水线来运行推理模型;
(4)混合使用移动GPU和异构移动CPU为推理模型构建层的流水线阶段。
2.根据权利要求1所述的一种移动平台上CNN流水线优化方法,其特征在于,推理模型的层性能分析方法为:
1)将多线程映射到CPU核上:不同数量的CPU核上运行一个推理模型,并用不同的线程数组合来观察推理的执行时间;
2)CPU和GPU执行时间比较:首先在移动GPU上并行运行每个CNN推理模型;然后,在CPU核心上运行每个推理模型,根据步骤1)的结果,选择设置达到最高的性能的线程数;最后比较在GPU和CPU核上运行的每个推理模型的执行时间;
3)单个层的性能分析:为了给每个模型推理建立一个优化的流水线,测量运行在不同类型处理器或它们的组合上运行单个层所需的执行时间。
3.根据权利要求2所述的一种移动平台上CNN流水线优化方法,其特征在于,测量运行在不同类型处理器或它们的组合上运行单个层所需的执行时间,通过在推理模型的一个层的源代码之前插入一个定时器函数来实现。
4.根据权利要求1所述的一种移动平台上CNN流水线优化方法,其特征在于,性能预测模型通过决策树来预测GEMM的执行时间,输入的参数包括Iw、Id、Fw、Ow、N、K和M;其中Iw和Id分别为一个层的输入张量的宽度和深度;Fw为滤波器矩阵的宽度;Ow为输出特征图像的宽度;N、K、M为与GEMM相关的参数,N为输入特征图像中的立方体数;K为每个内核立方体中的值的数目;M为卷积核的数目。
5.根据权利要求1所述的一种移动平台上CNN流水线优化方法,其特征在于,构建层的流水线阶段的方法包括流水线阶段初始化和阶段合并两个步骤;
流水线阶段初始化:构建一个包含三个阶段的流水线,每个阶段都有相同的硬件资源:第一阶段是GPU;第二阶段由四个大CPU核心组成,第三阶段由四个小CPU核心组成;推理模型的所有层按照层的数量平均分为三个组,并按顺序分别分割流水线的GPU阶段、CPU大核的阶段、CPU小核的阶段;
阶段合并:对于从初始化阶段得到的每两个相邻的流水线阶段Stagei和Stagei+1,将这两个阶段所拥有的计算资源、执行的CNN的层合并;当合并完CPU的一个集群后,平衡所有阶段的时间,使流水线的各个阶段执行时间接近,且尽可能短。
6.根据权利要求5所述的一种移动平台上CNN流水线优化方法,其特征在于,通过层性能预测模型计算流水线阶段Stagei和Stagei+1的执行时间:Ti、Ti+1;通过性能预测模型计算合并阶段的执行时间:Ti’;当Ti’小于Ti和Ti+1的最大值时,将这两个阶段Stagei和Stagei+1合并。
7.根据权利要求6所述的一种移动平台上CNN流水线优化方法,其特征在于,平衡所有阶段的时间的方法为:当某两个阶段的执行时间之差大于某个阈值时,将执行时间较大的阶段所在集群拥有的层数减少1,将执行时间较小的阶段所在集群拥有的层数增加1;再重新进行流水线阶段初始化和阶段合并这两个过程,直到流水线各个阶段分配稳定。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011269859.4A CN112348173A (zh) | 2020-11-13 | 2020-11-13 | 一种移动平台上cnn流水线优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011269859.4A CN112348173A (zh) | 2020-11-13 | 2020-11-13 | 一种移动平台上cnn流水线优化方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112348173A true CN112348173A (zh) | 2021-02-09 |
Family
ID=74363655
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011269859.4A Pending CN112348173A (zh) | 2020-11-13 | 2020-11-13 | 一种移动平台上cnn流水线优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112348173A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107908536A (zh) * | 2017-11-17 | 2018-04-13 | 华中科技大学 | Cpu‑gpu异构环境中对gpu应用的性能评估方法及系统 |
CN108665059A (zh) * | 2018-05-22 | 2018-10-16 | 中国科学技术大学苏州研究院 | 基于现场可编程门阵列的卷积神经网络加速系统 |
CN110321222A (zh) * | 2019-07-01 | 2019-10-11 | 中国人民解放军国防科技大学 | 基于决策树预测的数据并行作业资源分配方法 |
CN110619229A (zh) * | 2019-09-25 | 2019-12-27 | 南开大学 | 基于神经网络拆分的数据加密传输方法及系统 |
CN111309577A (zh) * | 2020-02-19 | 2020-06-19 | 北京工业大学 | 一种面向Spark的批处理应用执行时间预测模型构建方法 |
CN111461311A (zh) * | 2020-03-26 | 2020-07-28 | 中国科学技术大学 | 基于众核处理器的卷积神经网络运算加速方法及装置 |
-
2020
- 2020-11-13 CN CN202011269859.4A patent/CN112348173A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107908536A (zh) * | 2017-11-17 | 2018-04-13 | 华中科技大学 | Cpu‑gpu异构环境中对gpu应用的性能评估方法及系统 |
CN108665059A (zh) * | 2018-05-22 | 2018-10-16 | 中国科学技术大学苏州研究院 | 基于现场可编程门阵列的卷积神经网络加速系统 |
CN110321222A (zh) * | 2019-07-01 | 2019-10-11 | 中国人民解放军国防科技大学 | 基于决策树预测的数据并行作业资源分配方法 |
CN110619229A (zh) * | 2019-09-25 | 2019-12-27 | 南开大学 | 基于神经网络拆分的数据加密传输方法及系统 |
CN111309577A (zh) * | 2020-02-19 | 2020-06-19 | 北京工业大学 | 一种面向Spark的批处理应用执行时间预测模型构建方法 |
CN111461311A (zh) * | 2020-03-26 | 2020-07-28 | 中国科学技术大学 | 基于众核处理器的卷积神经网络运算加速方法及装置 |
Non-Patent Citations (1)
Title |
---|
SIQI WANG ET AL.: "High-Throughput CNN Inference on Embedded ARM Big.LITTLE Multicore Processors", 《IEEE TRANSACTIONS ON COMPUTER-AIDED DESIGN OF INTEGRATED CIRCUITS AND SYSTEMS》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021057713A1 (zh) | 用多核处理器实现神经网络模型拆分方法及相关产品 | |
KR102525080B1 (ko) | 신경 네트워크 명령어 세트 아키텍처 | |
Klamt et al. | Algorithmic approaches for computing elementary modes in large biochemical reaction networks | |
CN110826708B (zh) | 一种用多核处理器实现神经网络模型拆分方法及相关产品 | |
Lastovetsky et al. | Model-based optimization of EULAG kernel on Intel Xeon Phi through load imbalancing | |
CN110689121A (zh) | 一种用多核处理器实现神经网络模型拆分方法及相关产品 | |
US20210304066A1 (en) | Partitioning for an execution pipeline | |
CN109657794B (zh) | 一种基于指令队列的分布式深度神经网络性能建模方法 | |
CN114730275A (zh) | 使用张量在分布式计算系统中进行矢量化资源调度的方法和装置 | |
KR20210148586A (ko) | 스케줄러, 스케줄러의 동작 방법 및 이를 포함한 가속기 시스템 | |
KR20230170757A (ko) | 애플리케이션-특정 기계 학습 가속기 생성 및 글로벌 튜닝 | |
Wu et al. | Using hybrid MPI and OpenMP programming to optimize communications in parallel loop self-scheduling schemes for multicore PC clusters | |
Khorasani et al. | Eliminating intra-warp load imbalance in irregular nested patterns via collaborative task engagement | |
US20210390405A1 (en) | Microservice-based training systems in heterogeneous graphic processor unit (gpu) cluster and operating method thereof | |
CN108108242B (zh) | 基于大数据的存储层智能分发控制方法 | |
CN110175172B (zh) | 基于稀疏二分图的极大二分团并行枚举方法 | |
CN112348173A (zh) | 一种移动平台上cnn流水线优化方法 | |
CN110415162B (zh) | 大数据中面向异构融合处理器的自适应图划分方法 | |
Aghapour et al. | Integrated ARM big. Little-Mali pipeline for high-throughput CNN inference | |
US11556384B2 (en) | Dynamic allocation and re-allocation of learning model computing resources | |
CN113010316A (zh) | 一种基于云计算的多目标群智能算法并行优化方法 | |
Zhang et al. | Task scheduling greedy heuristics for GPU heterogeneous cluster Involving the weights of the processor | |
US11966783B1 (en) | Real time scheduling using expected application resource usage | |
Alam | HPC-based parallel algorithms for generating random networks and some other network analysis problems | |
Gao et al. | Revisiting thread configuration of SpMV kernels on GPU: A machine learning based approach |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210209 |