CN107402745A - 数据流图的映射方法及装置 - Google Patents
数据流图的映射方法及装置 Download PDFInfo
- Publication number
- CN107402745A CN107402745A CN201710537051.1A CN201710537051A CN107402745A CN 107402745 A CN107402745 A CN 107402745A CN 201710537051 A CN201710537051 A CN 201710537051A CN 107402745 A CN107402745 A CN 107402745A
- Authority
- CN
- China
- Prior art keywords
- mapping
- data flow
- flow graph
- operator
- processing unit
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提出一种数据流图的映射方法及装置,其中,该方法包括:获取待映射的数据流图;获取包含多个处理单元的计算阵列;根据预先训练的映射质量模型、映射优先级、数据流图矩阵和计算阵列,按序确定出每个算子节点映射到至少一个处理单元上数据流图的映射状态的质量信息;根据每个算子节点的映射状态的质量信息分别确定出每个算计节点映射到计算阵列上的目标映射处理单元。该方法通过预先训练的映射质量模型快速预测出每个算子节点映射到对应的处理单元所对应的映射中间状态的质量,并根据该质量可快速确定出每个算子节点的目标映射处理单元,极大减少了搜索分支,从而降低了数据流图的映射时间,提高了数据流图的映射效率。
Description
技术领域
本发明涉及嵌入式系统技术领域,特别涉及一种数据流图的映射方法及装置。
背景技术
由于可重构处理器兼具高灵活性和高能效的特点,已成为嵌入式系统青睐的平台。可重构处理器主要含主控制器和可重构计算阵列两部分,其中,主控制器部分负责控制整个系统,计算阵列部分负责执行应用的计算密集型部分。计算密集型部分的应用先转换成数据流图,然后把数据流图映射到计算阵列上面去。
计算阵列上的数据流图映射主要包括算子调度和资源分配两个步骤。其中,算子调度为数据流图中的每一个算子指定一个时间控制步,算子调度也基本决定了整个数据流图的执行时间。资源映射为数据流图中的每个算子(OP,operators)分配一个阵列中的处理单元((Processing Element,PE),并且为每一条依赖分配一条路由资源。
在数据流图资源分配中,整数线性编程(Integer Linear Programming,ILP)和最大公共子图(MCS)是常用的两类方法。在整数线性编程方法中,数据流图映射被建模成一个整数线性模型。在最大公共子图方法中,用二元组(算子,处理单元)来把映射问题描述成一个兼容图,映射问题就转换成在数据流图和计算阵列中寻找一个最大公共子图的问题。
然而,上述整数线性编程方法和最大公共子图方法都存在NP(Non-deterministicPolynomial,多项式复杂程度)-完全问题,因此,这两种方法的映射时间一般都比较长。最终,在有限的编译时间内,这两种方法在某些情况下就很难计算出映射结果。
发明内容
本发明旨在至少在一定程度上解决上述技术问题。
为此,本发明的第一个目的在于提出一种数据流图的映射方法,通过预先训练的映射质量模型快速预测出每个算子节点映射到对应的处理单元所对应的映射中间状态的质量,并根据该质量可快速确定出每个算子节点的目标映射处理单元,极大减少了搜索分支,从而降低了数据流图的映射时间,提高了数据流图的映射效率。
本发明的第二个目的在于提出一种数据流图的映射装置。
为达上述目的,根据本发明第一方面实施例提出了一种数据流图的映射方法,包括:获取待映射的数据流图,其中,所述数据流图中包括M个算子节点,如果所述M个算子节点两个算子节点之间存在依赖关系则所述两个算子节点之间具有相连接的边;确定所述数据流图中算子节点的映射优先级;获取包含多个处理单元的计算阵列,其中,所述处理单元的数量大于M;根据预先训练的映射质量模型、所述映射优先级、所述数据流图矩阵和所述计算阵列,按序确定出每个算子节点映射到至少一个处理单元上所述数据流图的映射状态的质量信息;根据每个算子节点的映射状态的质量信息分别确定出每个算计节点映射到所述计算阵列上的目标映射处理单元。
本发明实施例的数据流图的映射方法,获取待映射的数据流图,并确定数据流图中算子节点的映射优先级,然后获取包含多个处理单元的计算阵列,并根据预先训练的映射质量模型、映射优先级、数据流图矩阵和计算阵列,按序确定出每个算子节点映射到至少一个处理单元上数据流图的映射状态的质量信息,以及根据每个算子节点的映射状态的质量信息分别确定出每个算计节点映射到计算阵列上的目标映射处理单元。由此,通过预先训练的映射质量模型快速预测出每个算子节点映射到对应的处理单元所对应的映射中间状态的质量,并根据该质量可快速确定出每个算子节点的目标映射处理单元,极大减少了搜索分支,从而降低了数据流图的映射时间,提高了数据流图的映射效率。
本发明第二方面实施例提出了一种数据流图的映射装置,包括:第一获取模块,用于获取待映射的数据流图,其中,所述数据流图中包括M个算子节点,如果所述M个算子节点两个算子节点之间存在依赖关系则所述两个算子节点之间具有相连接的边;第一确定模块,用于确定所述数据流图中算子节点的映射优先级;第二获取模块,用于获取包含多个处理单元的计算阵列,其中,所述处理单元的数量大于M;处理模块,用于根据预先训练的映射质量模型、所述映射优先级、所述数据流图矩阵和所述计算阵列,按序确定出每个算子节点映射到至少一个处理单元上所述数据流图的映射状态的质量信息;第二确定模块,用于根据每个算子节点的映射状态的质量信息分别确定出每个算计节点映射到所述计算阵列上的目标映射处理单元。
本发明实施例的数据流图的映射装置,获取待映射的数据流图,并确定数据流图中算子节点的映射优先级,然后获取包含多个处理单元的计算阵列,并根据预先训练的映射质量模型、映射优先级、数据流图矩阵和计算阵列,按序确定出每个算子节点映射到至少一个处理单元上数据流图的映射状态的质量信息,以及根据每个算子节点的映射状态的质量信息分别确定出每个算计节点映射到计算阵列上的目标映射处理单元。由此,通过预先训练的映射质量模型快速预测出每个算子节点映射到对应的处理单元所对应的映射中间状态的质量,并根据该质量可快速确定出每个算子节点的目标映射处理单元,极大减少了搜索分支,从而降低了数据流图的映射时间,提高了数据流图的映射效率。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1为根据本发明一个实施例的数据流图的映射方法的流程图;
图2为步骤S4的细化流程图;
图3为包含数据流图、数据流图矩阵、计算阵列、二维计算阵列矩阵的示例图;
图4为训练映射质量模型的流程图;
图5为通过卷积神经网络对数据流图矩阵和计算阵列矩阵进行处理的过程示意图;
图6为基于深度学习的数据流图映射框架的示意图;
图7为算子节点7映射到不同处理单元的分支情况的示意图;
图8为算子节点7映射到处理单元1、4和9所对应的数据流图矩阵以及二维计算阵列矩阵的示例图;
图9为根据本发明一个实施例的数据流图的映射装置的结构示意图;
图10为根据本发明另一个实施例的数据流图的映射装置的结构示意图;
图11为根据本发明又一个实施例的数据流图的映射装置的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
在本发明的描述中,需要理解的是,术语“多个”指两个或两个以上;术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。
下面参考附图描述根据本发明实施例的数据流图的映射方法及装置。
图1为根据本发明一个实施例的数据流图的映射方法的流程图。
如图1所示,根据本发明实施例的数据流图的映射方法,包括以下步骤。
S1,获取待映射的数据流图。
其中,数据流图中包括M个算子节点。
其中,如果M个算子节点两个算子节点之间存在依赖关系则两个算子节点之间具有相连接的边。
S2,确定数据流图中算子节点的映射优先级。
其中,需要说明的是,在获取待映射的数据流图后,可通过现有技术确定出数据流图中算子节点的映射优先级。
作为一种示例性的实施方式,可通过广度优先搜索算法确定出数据流图中算子节点的映射优先级。
S3,获取包含多个处理单元的计算阵列。
其中,处理单元的数量大于M,也就是说,计算阵列中的处理单元的数量大于数据流图中算子节点的数量。
其中,需要说明的是,算子节点与处理单元之间是一一映射关系,也就是说,一个算子节点映射到一个处理单元后,其他算子节点将不能再映射到该处理单元上。
S4,根据预先训练的映射质量模型、映射优先级、数据流图矩阵和计算阵列,按序确定出每个算子节点映射到至少一个处理单元上数据流图的映射状态的质量信息。
在本发明的一个实施例中,步骤S4的细化过程,如图2所示,可以包括:
S21,生成与数据流图对应的数据流图矩阵。
其中,数据流图矩阵为M×M矩阵,如果算子节点i与算子节点j之间存在依赖关系,则数据流图矩阵的元素Aij的取值为1,如果算子节点i与算子节点j之间无依赖关系,则数据流图矩阵的元素Aij的取值为0。
S22,从最高优先级开始,根据算子节点之间的依赖关系,按序获取每个算子节点映射到计算阵列中对应的处理单元后所对应的至少一个二维计算阵列矩阵。
在本发明的一个实施例中,在获取N×L计算阵列后,可将计算阵列转换为一个N×L二维计算阵列矩阵。
其中,需要说的是,在数据流图没有映射前,二维计算阵列矩阵中每个元素均为0,若算子节点j映射到了处理单元Bnl上,则Bnl=j+1。这里“+1”表示处理单元已被映射,没有被映射的处理单元所对应的元素均为0。
举例而言,假设数据流图如图3(a)所示,图3(a)中每个算子节点后的数字表示算子节点的映射优先级的先后顺序,图3(a)所示的数据流图所对应的数据流图矩阵如图3(b)所示。其中,对于算子节点9来说,在根据算子节点之间的依赖关系将算子节点9映射到处理单元2上后,所对应的计算阵列的示例图,如图3(c)所示,其中,图3(c)所对应的二维计算阵列矩阵的示例图,如图3(d)所示。
S23,根据预先训练的映射质量模型、映射优先级、数据流图矩阵和每个算子节点的至少一个二维计算阵列矩阵分别确定出每个算子节点映射到对应的处理单元上数据流图的映射状态的质量信息。
在本发明的一个实施例中,可将映射优先级、数据流图矩阵和每个算子节点的至少一个二维计算阵列矩阵输入值预先训练的映射质量模型中,以通过映射质量模型确定出每个算子节点映射到对应的处理单元上数据流图的映射状态的质量信息。
其中,需要说明的是,映射状态的质量信息可以为映射状态的质量分类,也可以为映射状态的质量分数。
举例而言,可将映射状态的质量分为三种类型,分别为好、中、差。
其中,需要说明的是,该实施例中的上述映射质量模型是预先训练出来的。
其中,训练映射质量模型的过程,如图4所示,可以包括:
S41,获取样本数据流图数据,并获取样本数据流图数据中样本算子节点的样本映射优先级。
S42,获取与样本数据流图数据和样本映射优先级对应的映射质量标注数据集合。
S43,根据样本数据流图数据和映射质量标注数据集合进行训练,以生成映射质量模型。
其中,需要理解的是,数据流图的映射实际上就是一个为每个算子挑选最优的硬件资源的搜索问题,类似于围棋中为每颗棋子寻找到一个最优的落子点。因此,在获取样本数据流图数据和映射质量标注数据集合后,可基于深度学习算法对样本数据流图数据和映射质量标注数据集合进行训练,以生成映射质量模型。
在本发明的一个实施例中,可基于卷积神经网络,根据样本数据流图数据和映射质量标注数据集合进行训练,以生成映射质量模型。
作为一种示例性的实施方式,在获取样本数据流图数据和映射质量标注数据集合后,可通过双通道的神经网络对样本数据流图数据和映射质量标注数据集合进行特征提取阶段和特征学习阶段。
其中,特征提取阶段包含两个通路:数据流图特征提取通路和计算阵列特征提取通路。其中,每个通路都是典型的2层卷积神经网络。数据流图通路包含了一个带20输出的4×4卷积层,一个2×2的池化层,一个带50输出的3×3卷积层,一个2×2的池化层和一个带修正线性单元ReLU(Rectified linear unit)的500输出的全连接层;计算阵列通路包含了一个带20输出的3×3卷积层,一个2×2的池化层,一个带50输出的2×2卷积层,一个2×2的池化层和一个带修正线性单元ReLU的500输出的全连接层;在特征学习阶段,上述的两个全连接层通过一个组合操作被组合在一起,然后一个带3输出的全连接层用来直接指示三种分类质量。在输出层,可用softmax函数来计算各个分类的概率。
其中,图5示例性的示意出了通过卷积神经网络对数据流图矩阵和计算阵列矩阵进行处理的过程示意图,其中,需要说明的是,图5中以映射质量分为好、中和坏三种映射质量为例进行描述。
S5,根据每个算子节点的映射状态的质量信息分别确定出每个算计节点映射到计算阵列上的目标映射处理单元。
在本发明的一个实施例中,针对每个算子节点,在当前算子节点映射到计算阵列上的处理单元的数量为多个时,从当前算子节点所对应的多个质量信息中确定出映射质量最高所对应的处理单元,并将映射质量最高所对应的处理单元作为当前算子节点映射到计算阵列上的目标映射处理单元。
其中,需要说明的是,如果当前算子节点映射到计算阵列上的处理单元的数量为一个,该处理单元即为当前算子节点映射到计算阵列上的目标映射处理单元。
在本发明的一个实施例中,针对每个算子节点,如果确定出映射质量最高的处理单元为多个,则随机从多个映射质量最高的处理单元中随机选择一个处理单元作为对应算子节点的目标映射处理单元。
例如,对于某个算子节点来说,如果确定出该算子节点可以映射到多个处理单元,且确定出映射质量最高的处理单元为处理单元3和处理单元4,此时,可将处理单元3作为该算子节点映射的目标映射处理单元,或者,也可以将处理单元4作为该算子节点映射的目标映射处理单元。
作为一种示例性的实施方式,基于深度学习的数据流图映射框架的示意图,如图6所示,如图6所示,基于深度学习的数据流图映射框架包括数据集建立、模型训练和预测映射的过程中,下面结合图6进行详细介绍。
在数据产生阶段,可对数据流图(DFG)形状初始化,并生成样本数据流图数据,在获取样本数据流图数据和样本映射优先级后,可将数据流图中的算子节点映射到样本计算阵列中的相应处理单元上,以获取每个算子节点的映射中间状态,并将映射中间状态存在数据库中。
然后,在数据标定阶段,可从数据库中读取每个算子节点的映射中间状态,然后做随机映射搜索到制定次数,最后根据搜索情况计算该中间状态质量,最终把标定质量写回数据库,以形成与样本数据流图数据和样本映射优先级对应的映射质量标注数据集合。
在数据集准备好之后,可以通过开源工具caffe对数据集进行训练。在训练完之后就得到带权重参数的模型。
其中,需要说明的是,制定次数是预先设置的次数。
在预测映射阶段,通过数据流图对模型的映射质量预测,并输出映射后的数据流图。
也就是说,在获取带权重参数的模型后,再面对新的数据流图中间状态的时候,模型就可以用来预测该中间状态的质量,从而知道数据流图算子的映射。
下面结合图7和图8对该实施例的数据流图的映射方法进行详细说明。
图7(a)中展示了一个数据流图的中间映射状态,其中,图7(a)中的算子节点0,1,2,4,5,6,9已经映射到了计算阵列上的相应处理单元,还剩下算子节点7,11,3,8,10未映射。假设目标映射硬件平台为一个4×4的计算阵列,其内部处理单元的编号为0-15。另外在该计算阵列中,只有相邻的处理单元才能够存在路由通道(如图7(a)计算阵列内部黑色线条所示)。假设映射优先级为:2->0->1->5->6->4->9->7->11->3->8->10,接下来算子节点7将要映射到计算列上面去。由于算子节点7和算子节点4之间存在依赖关系,而算子节点4已经映射到处理单元5上了,因此算子节点7只能被映射到处理单元1、4或者9上,才能保证依赖可以路由成功。
假设算7映射到三个候选处理单元1、4或者9,所对应的二维计算阵列矩阵的形式分别为图8(a)、图8(b)和图8(c)所示。其中,需要说明的是,图8(a)、图8(b)和图8(c)中还示意出了数据流图矩阵。在将图8(a)、图8(b)和图8(c)中的数据流图矩阵以及二维计算阵列矩阵输入至由大量数据集训练之后的映射质量模型进行预测,便可以很快判断出把算子节点7映射到9号处理单元上时的质量为“好”,把算子节点7映射到4号处理单元上的质量为“中”,把算子节点7映射到1号处理单元上的质量为“坏”。因此,在获取算子节点映射到对应的处理单元的映射状态的质量信息后,通过比较,可以确定算子节点7映射到9号处理单元所对应的映射状态的质量最高,此时,可将直接选取9号处理单元未算子节点7的目标映射硬件,直接排除另外两路分支。
其中,图7(b)详细地画出了算子节点7映射到不同处理单元的分支情况。若是将算子节点7映射到1号处理单元,由于依赖关系,算子11只能映射到3号处理单元,算子3只能映射到0号处理单元,最后算子8将找不到合法的映射处理单元,最终整个映射失败;按照依赖合法的原则一次类推,若将算子节点7映射到4号处理单元,最终6个叶节点中有5个可以映射成功,有一个映射失败。因此,算子节点7映射到4号处理单元是一个“中”类质量的映射;同样的道理,如果将算子节点7映射9号处理单元形成4个叶节点,则所有的叶节点都是“好”类质量的映射,因此,该映射质量最高。
本发明实施例的数据流图的映射方法,获取待映射的数据流图,并确定数据流图中算子节点的映射优先级,然后获取包含多个处理单元的计算阵列,并根据预先训练的映射质量模型、映射优先级、数据流图矩阵和计算阵列,按序确定出每个算子节点映射到至少一个处理单元上数据流图的映射状态的质量信息,以及根据每个算子节点的映射状态的质量信息分别确定出每个算计节点映射到计算阵列上的目标映射处理单元。由此,通过预先训练的映射质量模型快速预测出每个算子节点映射到对应的处理单元所对应的映射中间状态的质量,并根据该质量可快速确定出每个算子节点的目标映射处理单元,极大减少了搜索分支,从而降低了数据流图的映射时间,提高了数据流图的映射效率。
为了实现上述实施例,本发明还提出一种数据流图的映射装置。
图9为根据本发明一个实施例的数据流图的映射装置的结构示意图。
如图9所示,根据本发明实施例的数据流图的映射装置包括第一获取模块110、第一确定模块120、第二获取模块130、处理模块140和第二确定模块150,其中:
第一获取模块110用于获取待映射的数据流图。
其中,数据流图中包括M个算子节点,如果M个算子节点两个算子节点之间存在依赖关系则两个算子节点之间具有相连接的边。
第一确定模块120用于确定数据流图中算子节点的映射优先级。
其中,需要说明的是,在获取待映射的数据流图后,可通过现有技术确定出数据流图中算子节点的映射优先级。
作为一种示例性的实施方式,第一确定模块120可通过广度优先搜索算法确定出数据流图中算子节点的映射优先级。
第二获取模块130用于获取包含多个处理单元的计算阵列。
其中,处理单元的数量大于M,也就是说,计算阵列中的处理单元的数量大于数据流图中算子节点的数量。
其中,需要说明的是,算子节点与处理单元之间是一一映射关系,也就是说,一个算子节点映射到一个处理单元后,其他算子节点将不能再映射到该处理单元上。
处理模块140用于根据预先训练的映射质量模型、映射优先级、数据流图矩阵和计算阵列,按序确定出每个算子节点映射到至少一个处理单元上数据流图的映射状态的质量信息。
第二确定模块150用于根据每个算子节点的映射状态的质量信息分别确定出每个算计节点映射到计算阵列上的目标映射处理单元。
在本发明的一个实施例中,在图9所示的基础上,如图10所示,处理模块140可以包括生成单元141、获取单元142和处理单元143,其中:
生成单元141用于生成与数据流图对应的数据流图矩阵.
其中,数据流图矩阵为M×M矩阵,如果算子节点i与算子节点j之间存在依赖关系,则数据流图矩阵的元素Aij的取值为1,如果算子节点i与算子节点j之间无依赖关系,则数据流图矩阵的元素Aij的取值为0。
获取单元142用于从最高优先级开始,根据算子节点之间的依赖关系,按序获取每个算子节点映射到计算阵列中对应的处理单元后所对应的至少一个二维计算阵列矩阵。
处理单元143用于根据预先训练的映射质量模型、映射优先级、数据流图矩阵和每个算子节点的至少一个二维计算阵列矩阵分别确定出每个算子节点映射到对应的处理单元上数据流图的映射状态的质量信息。
在本发明的一个实施例中,在图10所示的基础上,如图11所示,该装置还包括训练模块160,其中:
训练模块160用于获取样本数据流图数据,并获取样本数据流图数据中样本算子节点的样本映射优先级,并获取与样本数据流图数据和样本映射优先级对应的映射质量标注数据集合,以及根据样本数据流图数据和映射质量标注数据集合进行训练,以生成映射质量模型。
在本发明的一个实施例中,训练模块160具体用于:基于卷积神经网络,根据样本数据流图数据和映射质量标注数据集合进行训练,以生成映射质量模型。
在本发明的一个实施例中,确定模块140具体用于:针对每个算子节点,在当前算子节点映射到计算阵列上的处理单元的数量为多个时,从当前算子节点所对应的多个质量信息中确定出映射质量最高所对应的处理单元,将映射质量最高所对应的处理单元作为当前算子节点映射到计算阵列上的目标映射处理单元。
其中,需要说明的是,前述对数据流图的映射方法的解释说明也适用于该实施例的数据流图的映射装置,此处不再赘述。
本发明实施例的数据流图的映射装置,获取待映射的数据流图,并确定数据流图中算子节点的映射优先级,然后获取包含多个处理单元的计算阵列,并根据预先训练的映射质量模型、映射优先级、数据流图矩阵和计算阵列,按序确定出每个算子节点映射到至少一个处理单元上数据流图的映射状态的质量信息,以及根据每个算子节点的映射状态的质量信息分别确定出每个算计节点映射到计算阵列上的目标映射处理单元。由此,通过预先训练的映射质量模型快速预测出每个算子节点映射到对应的处理单元所对应的映射中间状态的质量,并根据该质量可快速确定出每个算子节点的目标映射处理单元,极大减少了搜索分支,从而降低了数据流图的映射时间,提高了数据流图的映射效率。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (10)
1.一种数据流图的映射方法,其特征在于,包括以下步骤:
获取待映射的数据流图,其中,所述数据流图中包括M个算子节点,如果所述M个算子节点两个算子节点之间存在依赖关系则所述两个算子节点之间具有相连接的边;
确定所述数据流图中算子节点的映射优先级;
获取包含多个处理单元的计算阵列,其中,所述处理单元的数量大于M;
根据预先训练的映射质量模型、所述映射优先级、所述数据流图矩阵和所述计算阵列,按序确定出每个算子节点映射到至少一个处理单元上所述数据流图的映射状态的质量信息;
根据每个算子节点的映射状态的质量信息分别确定出每个算计节点映射到所述计算阵列上的目标映射处理单元。
2.如权利要求1所述的方法,其特征在于,所述根据预先训练的映射质量模型、所述映射优先级、所述数据流图矩阵和所述计算阵列,按序确定出每个算子节点映射到对应的处理单元上所述数据流图的映射状态的质量信息,包括:
生成与所述数据流图对应的数据流图矩阵,其中,所述数据流图矩阵为M×M矩阵,如果算子节点i与算子节点j之间存在依赖关系,则所述数据流图矩阵的元素Aij的取值为1,如果算子节点i与算子节点j之间无依赖关系,则所述数据流图矩阵的元素Aij的取值为0;
从最高优先级开始,根据算子节点之间的依赖关系,按序获取每个算子节点映射到计算阵列中对应的处理单元后所对应的至少一个二维计算阵列矩阵;
根据预先训练的映射质量模型、所述映射优先级、所述数据流图矩阵和每个算子节点的至少一个二维计算阵列矩阵分别确定出每个算子节点映射到对应的处理单元上所述数据流图的映射状态的质量信息。
3.如权利要求1或2所述的方法,其特征在于,所述训练映射质量模型,包括:
获取样本数据流图数据,并获取所述样本数据流图数据中样本算子节点的样本映射优先级;
获取与所述样本数据流图数据和所述样本映射优先级对应的映射质量标注数据集合;
根据所述样本数据流图数据和所述映射质量标注数据集合进行训练,以生成所述映射质量模型。
4.如权利要求3所述的方法,其特征在于,所述根据所述样本数据流图数据和所述映射质量标注数据集合进行训练,以生成所述映射质量模型包括:
基于卷积神经网络,根据所述样本数据流图数据和所述映射质量标注数据集合进行训练,以生成所述映射质量模型。
5.如权利要求1-4任一项所述的方法,其特征在于,所述根据每个算子节点的映射状态的质量信息分别确定出每个算计节点映射到所述计算阵列上的目标映射处理单元,包括:
针对每个算子节点,在当前算子节点映射到所述计算阵列上的处理单元的数量为多个时,从所述当前算子节点所对应的多个质量信息中确定出映射质量最高所对应的处理单元;
将映射质量最高所对应的处理单元作为所述当前算子节点映射到所述计算阵列上的目标映射处理单元。
6.一种数据流图的映射装置,其特征在于,包括:
第一获取模块,用于获取待映射的数据流图,其中,所述数据流图中包括M个算子节点,如果所述M个算子节点两个算子节点之间存在依赖关系则所述两个算子节点之间具有相连接的边;
第一确定模块,用于确定所述数据流图中算子节点的映射优先级;
第二获取模块,用于获取包含多个处理单元的计算阵列,其中,所述处理单元的数量大于M;
处理模块,用于根据预先训练的映射质量模型、所述映射优先级、所述数据流图矩阵和所述计算阵列,按序确定出每个算子节点映射到至少一个处理单元上所述数据流图的映射状态的质量信息;
第二确定模块,用于根据每个算子节点的映射状态的质量信息分别确定出每个算计节点映射到所述计算阵列上的目标映射处理单元。
7.如权利要求6所述的装置,其特征在于,所述处理模块,包括:
生成单元,用于生成与所述数据流图对应的数据流图矩阵,其中,所述数据流图矩阵为M×M矩阵,如果算子节点i与算子节点j之间存在依赖关系,则所述数据流图矩阵的元素Aij的取值为1,如果算子节点i与算子节点j之间无依赖关系,则所述数据流图矩阵的元素Aij的取值为0;
获取单元,用于从最高优先级开始,根据算子节点之间的依赖关系,按序获取每个算子节点映射到计算阵列中对应的处理单元后所对应的至少一个二维计算阵列矩阵;
处理单元,用于根据预先训练的映射质量模型、所述映射优先级、所述数据流图矩阵和每个算子节点的至少一个二维计算阵列矩阵分别确定出每个算子节点映射到对应的处理单元上所述数据流图的映射状态的质量信息。
8.如权利要求6或7所述的装置,其特征在于,所述装置还包括:
训练模块,用于获取样本数据流图数据,并获取所述样本数据流图数据中样本算子节点的样本映射优先级,并获取与所述样本数据流图数据和所述样本映射优先级对应的映射质量标注数据集合,以及根据所述样本数据流图数据和所述映射质量标注数据集合进行训练,以生成所述映射质量模型。
9.如权利要求8所述的装置,其特征在于,所述训练模块,具体用于:
基于卷积神经网络,根据所述样本数据流图数据和所述映射质量标注数据集合进行训练,以生成所述映射质量模型。
10.如权利要求6-9任一项所述的装置,其特征在于,所述确定模块,具体用于:
针对每个算子节点,在当前算子节点映射到所述计算阵列上的处理单元的数量为多个时,从所述当前算子节点所对应的多个质量信息中确定出映射质量最高所对应的处理单元;
将映射质量最高所对应的处理单元作为所述当前算子节点映射到所述计算阵列上的目标映射处理单元。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201710537051.1A CN107402745B (zh) | 2017-07-04 | 2017-07-04 | 数据流图的映射方法及装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201710537051.1A CN107402745B (zh) | 2017-07-04 | 2017-07-04 | 数据流图的映射方法及装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN107402745A true CN107402745A (zh) | 2017-11-28 |
| CN107402745B CN107402745B (zh) | 2020-05-22 |
Family
ID=60405418
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201710537051.1A Active CN107402745B (zh) | 2017-07-04 | 2017-07-04 | 数据流图的映射方法及装置 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN107402745B (zh) |
Cited By (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN108052347A (zh) * | 2017-12-06 | 2018-05-18 | 北京中科睿芯智能计算产业研究院有限公司 | 一种执行指令选择的装置、方法及指令映射方法 |
| CN109496319A (zh) * | 2018-01-15 | 2019-03-19 | 深圳鲲云信息科技有限公司 | 人工智能处理装置硬件优化方法、系统、存储介质、终端 |
| CN110334436A (zh) * | 2019-07-03 | 2019-10-15 | 腾讯科技(深圳)有限公司 | 一种数据处理方法以及设备 |
| CN111209309A (zh) * | 2020-01-13 | 2020-05-29 | 腾讯科技(深圳)有限公司 | 数据流图处理结果确定方法、装置、设备及存储介质 |
| CN111814006A (zh) * | 2020-07-27 | 2020-10-23 | 深圳壹账通智能科技有限公司 | 图网络结构的分析方法、装置和计算机设备 |
| WO2021111332A1 (en) * | 2019-12-05 | 2021-06-10 | International Business Machines Corporation | Neural network training using data flow graph and dynamic memory management |
| CN113297131A (zh) * | 2021-06-15 | 2021-08-24 | 中国科学院计算技术研究所 | 基于路由信息的数据流指令映射方法及系统 |
| CN114860443A (zh) * | 2022-05-06 | 2022-08-05 | 北京灵汐科技有限公司 | 映射的方法、电子设备、计算机可读存储介质 |
| CN116501504A (zh) * | 2023-06-27 | 2023-07-28 | 上海燧原科技有限公司 | 数据流的时空映射方法、装置、电子设备及存储介质 |
| WO2023173912A1 (zh) * | 2022-03-17 | 2023-09-21 | 华为技术有限公司 | 一种处理单元pe阵列的配置方法和相关设备 |
| CN117291237A (zh) * | 2023-09-11 | 2023-12-26 | 鹏城实验室 | 数据流映射搜索方法、系统、电子设备及存储介质 |
| CN117573607A (zh) * | 2023-11-28 | 2024-02-20 | 北京智芯微电子科技有限公司 | 可重构协处理器、芯片、多核信号处理系统和计算方法 |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20100199069A1 (en) * | 2009-02-03 | 2010-08-05 | Won-Sub Kim | Scheduler of reconfigurable array, method of scheduling commands, and computing apparatus |
| CN102508816A (zh) * | 2011-11-15 | 2012-06-20 | 东南大学 | 一种应用于粗粒度可重构阵列的配置方法 |
| CN103116493A (zh) * | 2013-01-21 | 2013-05-22 | 东南大学 | 一种应用于粗粒度可重构阵列的自动映射方法 |
| CN104615474A (zh) * | 2014-09-02 | 2015-05-13 | 清华大学 | 用于粗粒度可重构处理器的编译优化方法 |
-
2017
- 2017-07-04 CN CN201710537051.1A patent/CN107402745B/zh active Active
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20100199069A1 (en) * | 2009-02-03 | 2010-08-05 | Won-Sub Kim | Scheduler of reconfigurable array, method of scheduling commands, and computing apparatus |
| CN102508816A (zh) * | 2011-11-15 | 2012-06-20 | 东南大学 | 一种应用于粗粒度可重构阵列的配置方法 |
| CN103116493A (zh) * | 2013-01-21 | 2013-05-22 | 东南大学 | 一种应用于粗粒度可重构阵列的自动映射方法 |
| CN104615474A (zh) * | 2014-09-02 | 2015-05-13 | 清华大学 | 用于粗粒度可重构处理器的编译优化方法 |
Cited By (21)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN108052347B (zh) * | 2017-12-06 | 2021-07-20 | 北京中科睿芯智能计算产业研究院有限公司 | 一种执行指令选择的装置、方法及指令映射方法 |
| CN108052347A (zh) * | 2017-12-06 | 2018-05-18 | 北京中科睿芯智能计算产业研究院有限公司 | 一种执行指令选择的装置、方法及指令映射方法 |
| CN109496319A (zh) * | 2018-01-15 | 2019-03-19 | 深圳鲲云信息科技有限公司 | 人工智能处理装置硬件优化方法、系统、存储介质、终端 |
| WO2019136758A1 (zh) * | 2018-01-15 | 2019-07-18 | 深圳鲲云信息科技有限公司 | 人工智能处理装置硬件优化方法、系统、存储介质、终端 |
| CN110334436A (zh) * | 2019-07-03 | 2019-10-15 | 腾讯科技(深圳)有限公司 | 一种数据处理方法以及设备 |
| CN110334436B (zh) * | 2019-07-03 | 2023-11-07 | 腾讯科技(深圳)有限公司 | 一种数据处理方法以及设备 |
| WO2021111332A1 (en) * | 2019-12-05 | 2021-06-10 | International Business Machines Corporation | Neural network training using data flow graph and dynamic memory management |
| CN114746871A (zh) * | 2019-12-05 | 2022-07-12 | 国际商业机器公司 | 使用数据流图和动态存储器管理的神经网络训练 |
| GB2605100A (en) * | 2019-12-05 | 2022-09-21 | Ibm | Neural network training using data flow graph and dynamic memory management |
| US11521062B2 (en) | 2019-12-05 | 2022-12-06 | International Business Machines Corporation | Neural network training using a data flow graph and dynamic memory management |
| CN111209309B (zh) * | 2020-01-13 | 2023-03-10 | 腾讯科技(深圳)有限公司 | 数据流图处理结果确定方法、装置、设备及存储介质 |
| CN111209309A (zh) * | 2020-01-13 | 2020-05-29 | 腾讯科技(深圳)有限公司 | 数据流图处理结果确定方法、装置、设备及存储介质 |
| CN111814006A (zh) * | 2020-07-27 | 2020-10-23 | 深圳壹账通智能科技有限公司 | 图网络结构的分析方法、装置和计算机设备 |
| CN113297131A (zh) * | 2021-06-15 | 2021-08-24 | 中国科学院计算技术研究所 | 基于路由信息的数据流指令映射方法及系统 |
| WO2023173912A1 (zh) * | 2022-03-17 | 2023-09-21 | 华为技术有限公司 | 一种处理单元pe阵列的配置方法和相关设备 |
| CN114860443A (zh) * | 2022-05-06 | 2022-08-05 | 北京灵汐科技有限公司 | 映射的方法、电子设备、计算机可读存储介质 |
| CN116501504B (zh) * | 2023-06-27 | 2023-09-12 | 上海燧原科技有限公司 | 数据流的时空映射方法、装置、电子设备及存储介质 |
| CN116501504A (zh) * | 2023-06-27 | 2023-07-28 | 上海燧原科技有限公司 | 数据流的时空映射方法、装置、电子设备及存储介质 |
| CN117291237A (zh) * | 2023-09-11 | 2023-12-26 | 鹏城实验室 | 数据流映射搜索方法、系统、电子设备及存储介质 |
| CN117291237B (zh) * | 2023-09-11 | 2025-09-09 | 鹏城实验室 | 数据流映射搜索方法、系统、电子设备及存储介质 |
| CN117573607A (zh) * | 2023-11-28 | 2024-02-20 | 北京智芯微电子科技有限公司 | 可重构协处理器、芯片、多核信号处理系统和计算方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN107402745B (zh) | 2020-05-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN107402745A (zh) | 数据流图的映射方法及装置 | |
| US20220237460A1 (en) | Electronic device and operation method thereof | |
| US20200097333A1 (en) | Scalable task scheduling systems and methods for cyclic interdependent tasks using semantic analysis | |
| US9292420B2 (en) | Collaborative computer aided test plan generation | |
| US20070038987A1 (en) | Preprocessor to improve the performance of message-passing-based parallel programs on virtualized multi-core processors | |
| WO2020029592A1 (zh) | 转换方法、装置、计算机设备及存储介质 | |
| US20100131314A1 (en) | System for effectively estimating project size | |
| US20200202210A1 (en) | Systems and methods for training a neural network | |
| CN113177159B (zh) | 基于多通道超图神经网络的捆绑推荐方法 | |
| EP3525119B1 (en) | Fpga converter for deep learning models | |
| JP7737208B2 (ja) | 対話システムにおいて新しいインテントを作成し例を自動的に割り当てるための概念予測 | |
| US11288047B2 (en) | Heterogenous computer system optimization | |
| US20100318736A1 (en) | Method and system of an adaptive input/output scheduler for storage arrays | |
| US20170123855A1 (en) | Stage-aware performance modeling for computer cluster sizing | |
| JP2016515735A (ja) | ランタイムにおけるソフトウェアパイプライン | |
| WO2016000548A1 (zh) | 一种基于本地的流式计算方法及流式计算系统 | |
| CN115757264A (zh) | 基于图卷积和强化学习的可重构计算架构映射方法和装置 | |
| CN118301059B (zh) | 一种实体网络测试床的测试拓扑与物理拓扑映射方法 | |
| CN114116503A (zh) | 一种测试方法、装置、电子设备及存储介质 | |
| JP2014021847A (ja) | リソース管理装置及びリソース管理方法及びプログラム | |
| US8930870B2 (en) | Optimized buffer placement based on timing and capacitance assertions | |
| US11886725B2 (en) | Accelerating decision tree inferences | |
| US20170213181A1 (en) | Automatic solution to a scheduling problem | |
| US20180136916A1 (en) | Selecting cobol perform statements for inlining | |
| CN1976353B (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 |