CN116501504B - 数据流的时空映射方法、装置、电子设备及存储介质 - Google Patents

数据流的时空映射方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN116501504B
CN116501504B CN202310761534.5A CN202310761534A CN116501504B CN 116501504 B CN116501504 B CN 116501504B CN 202310761534 A CN202310761534 A CN 202310761534A CN 116501504 B CN116501504 B CN 116501504B
Authority
CN
China
Prior art keywords
data
target
sub
data stream
time
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.)
Active
Application number
CN202310761534.5A
Other languages
English (en)
Other versions
CN116501504A (zh
Inventor
汪洪博
潘佳诚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Suiyuan Technology Co ltd
Original Assignee
Shanghai Enflame Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Enflame Technology Co ltd filed Critical Shanghai Enflame Technology Co ltd
Priority to CN202310761534.5A priority Critical patent/CN116501504B/zh
Publication of CN116501504A publication Critical patent/CN116501504A/zh
Application granted granted Critical
Publication of CN116501504B publication Critical patent/CN116501504B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/505Allocation 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 load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/28Error detection; Error correction; Monitoring by checking the correct order of processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5017Task decomposition
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种数据流的时空映射方法、装置、设备及介质。该方法包括:获取待时空映射的目标数据流;根据目标数据流中定义的与该目标子任务匹配的各数据维度的执行顺序,并行维度和各数据维度的切片大小,对目标数据流进行时域映射,得到多个具有时域执行顺序的子数据流;根据目标子任务在目标架构中所映射的目标子系统和目标架构中定义的各子系统的连接关系,对各子数据流再进行空域映射,将在设定时间片下执行的每个子数据流分别映射至目标架构各层级的子系统中,作为该基准测试中的一项建模参考信息。本发明实施例的技术方案可以准确、高效的将数据流任务在时间和空间维度进行双重映射,为后续进行基准测试建模提供数据准备。

Description

数据流的时空映射方法、装置、电子设备及存储介质
技术领域
本发明实施例涉及人工智能芯片架构的建模测试技术,尤其涉及一种数据流的时空映射方法、装置、电子设备及存储介质。
背景技术
在进行AI(Artificial Intelligence,人工智能)芯片的架构探索时,对于给定的多个数据流任务以及特定的某种架构,我们需要通过基准测试评估这些数据流任务在该架构上的执行情况。在进行基准测试建模时,通常需要对特定架构和数据流任务进行比较复杂的建模,然后进行仿真,整体的开发代价和周期都较大。
因此,如何能在进行基准测试之前构建得到有效的建模参考信息,为后续进行灵活性、可扩展性的基准测试建模提供高效可用的数据准备,是目前有待解决的重要问题。
发明内容
本发明实施例提供一种数据流的时空映射方法、装置、电子设备及存储介质,以准确、高效的将数据流任务在时间维度和空间维度进行双重映射,为后续进行基准测试建模提供高效可用的数据准备。
第一方面,本发明实施例提供了一种数据流的时空映射方法,该方法包括:
获取待时空映射的目标数据流,其中,目标数据流由负载任务拆分出的一个目标子任务生成,负载任务为待加载至目标架构执行基准测试的任务;
根据目标数据流中定义的与该目标子任务匹配的各数据维度的执行顺序,并行维度和各数据维度的切片大小,对目标数据流进行时域映射,得到多个具有时域执行顺序的子数据流;
根据目标子任务在目标架构中所映射的目标子系统和目标架构中定义的各子系统的连接关系,对各子数据流再进行空域映射,将在设定时间片下执行的每个子数据流分别映射至目标架构各层级的子系统中,作为该基准测试中的一项建模参考信息。
第二方面,本发明实施例还提供了一种数据流的时空映射装置,该装置包括:
目标数据流获取模块,用于获取待时空映射的目标数据流,其中,目标数据流由负载任务拆分出的一个目标子任务生成,负载任务为待加载至目标架构执行基准测试的任务;
时域映射模块,用于根据目标数据流中定义的与该目标子任务匹配的各数据维度的执行顺序,并行维度和各数据维度的切片大小,对目标数据流进行时域映射,得到多个具有时域执行顺序的子数据流;
空域映射模块,用于根据目标子任务在目标架构中所映射的目标子系统和目标架构中定义的各子系统的连接关系,对各子数据流再进行空域映射,将在设定时间片下执行的每个子数据流分别映射至目标架构各层级的子系统中,作为该基准测试中的一项建模参考信息。
第三方面,本发明实施例还提供了一种电子设备,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行如本发明任一实施例所述的数据流的时空映射方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现如本发明任一实施例所述的数据流的时空映射方法。
本发明实施例的技术方案通过获取待时空映射的目标数据流;根据目标数据流中定义的与该目标子任务匹配的各数据维度的执行顺序,并行维度和各数据维度的切片大小,对目标数据流进行时域映射,得到多个具有时域执行顺序的子数据流;根据目标子任务在目标架构中所映射的目标子系统和目标架构中定义的各子系统的连接关系,对各子数据流再进行空域映射,将在设定时间片下执行的每个子数据流分别映射至目标架构各层级的子系统中的技术手段,实现了在架构和时间两个维度下,对数据流任务进行了简化和抽象,能够清晰的规划出数据流任务在一段时间内,在架构的不同子系统中的执行情况,为后续进行灵活性、可扩展性的基准测试建模提供高效可用的数据准备,从一定程度上可以减低基准测试建模的开发代价和周期。
附图说明
图1是根据本发明实施例一提供的一种数据流的时空映射方法的流程图;
图2是根据本发明实施例二提供的一种数据流的时空映射方法的流程图;
图3是本发明实施例二的方法所适用的一种子数据流在目标架构中每个层级下的时间映射结果的示意图;
图4是根据本发明实施例三提供的一种数据流的时空映射方法的流程图;
图5是本发明实施例三的方法所适用的一种子数据流的数据流路径的时间偏移处理结果的示意图;
图6是根据本发明实施例四提供的一种数据流的时空映射方法的流程图;
图7是本发明实施例四的方法所适用的一种多个子数据流的时空映射结果示意图;
图8是本发明实施例四的方法所适用的一种对多个子数据流的数据流路径进行重排布后的时空映射结果示意图;
图9是本发明实施例四的方法所适用的一种通过执行顺序检查规则的多个子数据流的时空映射结果示意图;
图10是本发明实施例四的方法所适用的另一种通过执行顺序检查规则的多个子数据流的时空映射结果示意图;
图11是根据本发明实施例五提供的一种数据流的时空映射方法的流程图;
图12是本发明实施例五的方法所适用的一种将与各子数据流分别对应的数据流路径在统一时间线上进行排布后的时空映射结果示意图;
图13是本发明实施例五的方法所适用的另一种将与各子数据流分别对应的数据流路径在统一时间线上进行排布后的时空映射结果示意图;
图14是本发明实施例五的方法所适用的再一种将与各子数据流分别对应的数据流路径在统一时间线上进行排布后的时空映射结果示意图;
图15是根据本发明实施例六提供的一种数据流的时空映射装置的结构示意图;
图16是实现本发明实施例的数据流的时空映射方法的电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种数据流的时空映射方法的流程图,本实施例可适用于将数据流任务在时间维度和空间维度进行双重映射的情况,该方法可以由数据流的时空映射装置来执行,该装置可以通过软件和/或硬件的方式实现,并一般可以集成在具有数据处理功能的计算机设备中,
相应的,如图1所示,该方法具体包括如下步骤:
S110、获取待时空映射的目标数据流,其中,目标数据流由负载任务拆分出的一个目标子任务生成,负载任务为待加载至目标架构执行基准测试的任务。
其中,目标架构是指待进行架构探索的AI架构,可以理解为一个用于处理负载任务的硬件资源集合。目标架构可以为一个已有的硬件实体架构,也可以为一个处于开发阶段的自定义软件实现架构等,目标架构中包括的硬件资源集合中可以全部为同构硬件资源,也可以为异构硬件资源等,本实施例对此并不进行限制。
具体的,该目标架构中可以包括有一个或者多个硬件子系统,不同子系统在该目标架构中具有设定的拓扑连接关系,以构成设定的层级架构。其中,每个子系统用于实现设定的子系统功能。例如,计算功能、编解码功能或者存储功能等。
在本实施例中,该目标架构可以通过子系统定义和子系统规格进行描述,上述两种信息可以统称为目标架构的架构定义信息。在该子系统定义中可以包含有下述信息:目标架构中包含的子系统层级、子系统例化数目、各子系统的标识信息,每个子系统与其他子系统之间的拓扑连接关系、子系统功能以及每个子系统内功能模块的例化数目,例如计算子系统中包括有多个计算单元作为功能模块。同时,针对每个子系统,分别通过子系统规格进行描述。不同功能类型的子系统,其子系统规格一般不同。
在一个具体的例子中,针对实现计算核计算的子系统,其子系统规格中一般包含:微架构类型,最高频率,向量计算算力,张量计算算力,张量计算形状,读、写带宽以及读、写端口数目;针对实现片内存储功能的子系统,其子系统规格中一般包含:微架构类型,存储容量,与其相连的子系统的读、写带宽,以及与其相连的子系统的读、写端口数目;针对实现片外存储功能的子系统,其子系统规格中一般包含:微架构类型,存储容量,与其相连的子系统的读、写带宽以及与其相连的子系统的读、写端口数目;针对实现子系统间互联功能的子系统,其子系统规格中一般包含:微架构类型,连接的子系统层级,读、写带宽以及读、写端口数目;针对实现子系统内互联功能的子系统,其子系统规格中一般包含:微架构类型,子系统类型,读、写带宽以及读、写端口数目等。
需要说明的是,针对硬件实体架构,该例化数目可以理解为该硬件实体架构中实际包含的数目,针对自定义软件实现架构,该例化数目可以理解为软件仿真得到的数目。
在本实施例中,负载任务可以理解为需要加载至目标架构中执行基准测试的任务,也即,该负载任务可以由目标架构执行,以实现一项或者多项负载功能。具体的,该负载任务可以为计算任务、存储任务或者编解码任务等实现单一功能类型的任务,还可以为多个单一功能类型的任务组合构成的多功能类型复合任务等,本实施例对此并不进行限制。
在本实施例中,测试人员可以根据实际的架构探索需求,自定义设置该负载任务,以满足实际的建模评估需求。具体的,该负载任务可以按照预设的拆分规则拆分为一个或者多个子任务。例如,如果该负载任务为基于设定计算图的计算任务,则可以按照计算图中包括的各个计算算子,将负载任务拆分为多个子任务,或者,还可以首先分析该负载任务中包含的功能类型数量,并以功能类型为单位,将负载任务拆分为多个子任务,或者,还可以首先评估该负载任务所需的硬件资源总数量,并基于该硬件资源总数量以及预设的子任务划分数量,预估每个子任务所需的平均硬件资源数量,并基于该平均硬件资源数量,将负载任务拆分为多个子任务等,本实施例对此并不进行限制。
在本实施例的一个可选的实施方式中,可以初始化构建得到负载任务中各子任务的原始负载描述信息,进而,可以通过解析各子任务的原始负载描述信息的方式,简单、便捷的将该负载任务拆分为多个子任务。
可选的,各子任务的原始负载描述信息中可以包括:每个子任务的所属任务名称、域描述信息、操作数描述信息以及操作数访问类型,以及各子任务之间的依赖关系描述信息等。
其中,域描述信息中包含子任务本身所包含的数据维度以及操作数的形状描述信息;操作数描述信息中包含操作数名称、操作数域描述信息以及操作数的数据精度;操作数访问类型中包含读或者写等计算类型,依赖关系描述信息中包含子任务与其他子任务的显示依赖关系。
进一步的,原始负载描述信息中需要指定每个子任务的需求资源类型,也即,该需求资源类型定义一个子任务需要配置在何种功能类型的硬件资源(子系统)中执行。
其中,可以使用预先构建的一个或者多个映射策略,将某一个具体的子任务映射至目标架构中的某一个具体的子系统中。上述映射策略可以规定某些子任务可以被分配到多个运算资源上,某些子任务只由单个运算资源执行,多个子任务可以分配到同样的运算资源上,依序执行,以及异构任务需要根据其指定的架构资源,依序分配到特定的异构架构上等。
当然,可以理解的是,除了可以使用上述预先构建的一个或者多个映射策略,还可以通过预留人工干预接口的方式,由测试人员手动加入自定义的映射策略,例如,数据并行映射策略、模型并行映射策略或者流水并行映射策略等,以满足测试人员对某一特定方向的映射效果的意图探究。
相应的,在生成负载任务中各子任务与目标架构中各子系统之间的任务架构映射关系之后,还可以根据每个子任务的数据维度描述信息和该任务架构映射关系,确定与各子任务分别对应的至少一个数据流。
其中,数据流中包括:子任务中各数据维度的执行顺序、并行维度、子任务中各数据维度的切片大小,以及子任务中各数据维度在目标架构的每级缓冲区或每级缓存中的存储策略。
可选的,在获取负载任务中各子任务与目标架构中各子系统之间的任务架构映射关系之后,通过结合每个子任务的数据维度描述信息,可以生成与每个子任务分别对应的一个或者多个数据流。
其中,该数据维度描述信息可以包括子任务本身所包含的数据维度以及操作数的形状描述信息,例如,针对一个矩阵乘的子任务,与其对应的数据维度描述信息可以为[m,n,k]。可选的,可以在子任务的原始负载描述信息中提取域描述信息,并将该域描述信息作为数据维度描述信息。
其中,子任务中各数据维度的执行顺序可以理解为子任务在单个硬件计算单元(在一个具体的例子中,该硬件计算单元可以为通用可扩展神经元处理器,简称为SIP)上的数据移动顺序。该数据移动顺序可以理解为取操作数的顺序或者操作数的搬运顺序。可以理解的是,如果子任务中包括多个数据维度,上述各数据维度的搬运过程对应一个多层级的循环搬运过程,上述各数据维度的执行顺序决定了哪个数据维度为上述循环过程中的外层循环变量,哪个数据维度为上述循环过程中的内层循环变量。
不同的数据维度执行顺序一般对应不同的数据搬运效率。可选地,可以根据每个数据维度的数据量,例如,m、n以及k的具体取值,以及每个数据维度在实际计算过程中的数据属性,例如,是否为规约(reduce)维度等,确定出子任务中各数据维度的执行顺序。
并行维度可以理解为子任务本身所包含的各数据维度中,能够分配到不同硬件计算单元上进行并行计算的维度。可选地,可以根据每个数据维度的数据量以及子系统中包括的可用硬件计算单元的数目,计算得到每个数据维度在硬件计算单元上的执行次数,并基于上述执行次数计算结果,确定出最适宜的并行维度。
子任务中各数据维度的切片大小,可以理解为每个硬件计算单元中所能计算的最小数据量,该切片大小可以由目标架构中架构定义信息确定。
子任务中各数据维度在目标架构的每级缓冲区中的存储策略,可以理解为子任务的每个数据维度在目标架构中的各个缓冲区存储层级上的存储状态。子任务中各数据维度在目标架构的每级缓存中的存储策略,可以理解为子任务的每个数据维度在目标架构的每级缓存中的复用信息。可选的,可以通过每个子任务的数据维度描述信息以及目标架构的架构定义信息,构建一个或者多个约束条件,并通过求解线性方程组的方式,确定出子任务中各数据维度在目标架构的每级缓冲区或每级缓存中的存储策略。
可以理解的是,目标架构一般会择一选择缓冲区(buffer)存储策略或者缓存(cache)存储策略,进而,数据流中一般仅包括有子任务中各数据维度在目标架构的每级缓冲区中的存储策略,或者,仅包括有子任务中各数据维度在目标架构的每级缓存中的存储策略。
在本实施例中,以与负载任务中的一个具体的目标子任务匹配的目标数据流为例,描述如何对该目标数据流进行时空映射。
S120、根据目标数据流中定义的与该目标子任务匹配的各数据维度的执行顺序,并行维度和各数据维度的切片大小,对目标数据流进行时域映射,得到多个具有时域执行顺序的子数据流。
一般来说,目标子任务无法通过单次数据搬运完成任务的实施,具体的,可能涉及多次将不同存储位置的数据搬运至一个或者多个硬件计算单元中分别实施计算,或者将一个或者多个硬件计算单元的计算结果搬运至设定存储空间的情况。通过解析目标数据流中定义的与该目标子任务匹配的各数据维度的执行顺序,并行维度和各数据维度的切片大小,可以确定出与该目标子任务匹配的多个具有时序关系的数据搬运操作,并确定出与每个数据搬运操作对应的数据搬运对象(例如,存储单元L1中存储的,操作数形状为[m,n]的操作数A的一个切片大小a*b的一个数据切片,或者,硬件计算单元中当前计算得到的形状为[k,g]的计算结果数据),以及数据搬运方向(例如,从存储单元搬运至硬件计算单元,或者从硬件计算单元搬运至设定存储单元)。
进而,可以将目标数据流拆分得到多个子数据流,每个子数据流对应一个数据搬运操作,也即,在何种数据搬运方向下,对何种数据搬运对象实施数据搬运。
可以理解的是,与目标数据流对应的多个数据搬运操作在时间维度上是具有先后顺序的,例如,操作数A共对应两个数据切片a1和a2,则数据切片a1的数据搬运操作1的执行时间需要先于数据切片a2的数据搬运操作2。相应的,如果数据搬运操作1对应子数据流1,数据搬运操作2对应子数据流2,则上述两个子数据流的时域执行先后顺序为:子数据流1,子数据流2。可以理解的是,一个子数据流对应一个时间片,时间片可以理解为一个子数据流的执行时间段。一般来说,不同子数据流对应的时间片之间,具有时域先后顺序。
S130、根据目标子任务在目标架构中所映射的目标子系统和目标架构中定义的各子系统的连接关系,对各子数据流再进行空域映射,将在设定时间片下执行的每个子数据流分别映射至目标架构各层级的子系统中,作为该基准测试中的一项建模参考信息。
在本实施例中,需要预先建立负载任务中各子任务与目标架构中各子系统之间的任务架构映射关系。其中,负载任务中各子任务与目标架构中各子系统之间的任务架构映射关系用于描述负载任务中的哪个子任务需要映射至目标架构中的哪个子系统中执行基准测试仿真。
其中,可以使用预先构建的一个或者多个映射策略,将某一个具体的子任务映射至目标架构中的某一个具体的子系统中。上述映射策略可以规定某些子任务可以被分配到多个运算资源上,某些子任务只由单个运算资源执行,多个子任务可以分配到同样的运算资源上,依序执行,以及异构任务需要根据其指定的架构资源,依序分配到特定的异构架构上等。
当然,可以理解的是,除了可以使用上述预先构建的一个或者多个映射策略,还可以通过预留人工干预接口的方式,由测试人员手动加入自定义的映射策略,例如,数据并行映射策略、模型并行映射策略或者流水并行映射策略等,以满足测试人员对某一特定方向的映射效果的意图探究。
在一个具体的示例中,如果子任务S通过架构映射,被映射至计算单元SIP[2]中,则可以构建形如:S->SIP[2]的表达式,其表明子任务S中包括的各项操作数需要最终搬运至计算单元SIP[2]中实施计算。
在本实施例中,目标架构中定义的各子系统的连接关系可以理解为目标架构中各子系统之间的层级架构关系。例如,在目标架构中,包括有L2存储单元、L1存储单元以及多个计算单元(SIP或者computer)作为子系统,L2存储单元与L1存储单元直接相连,L1存储单元与各计算单元直接相连,则上述各子系统按照从上层到下层的层级架构关系可以为:L2->L1->SIP(或者computer)。
相应的,在获取了目标子任务在目标架构中所映射的目标子系统和目标架构中定义的各子系统的连接关系后,可以确定出每个子数据流对应的搬运数据在目标架构中的流转方式。例如,如果目标子任务映射至计算单元SIP[n]中,且确定目标架构中定义的各子系统的连接关系为L2->L1->SIP,则可以确定目标子任务的子数据流X对应的搬运数据需要从L2存储空间的设定存储地址中搬运至L1存储空间的设定存储地址后,再由L1存储空间的设定存储地址处,搬运至标识为n的SIP中实施计算。进而,可以将在不同时间片下执行的不同子数据流分别映射至目标架构各层级的子系统中。
在本实施例中,在将在设定时间片下执行的每个子数据流分别映射至目标架构各层级的子系统中之后,可以将最终得到的时空映射结果作为该基准测试中的一项建模参考信息,为将负载任务配置在目标架构上执行基准测试时的系统建模和架构评估提供高效、可用的数据准备。
本发明实施例的技术方案通过获取待时空映射的目标数据流;根据目标数据流中定义的与该目标子任务匹配的各数据维度的执行顺序,并行维度和各数据维度的切片大小,对目标数据流进行时域映射,得到多个具有时域执行顺序的子数据流;根据目标子任务在目标架构中所映射的目标子系统和目标架构中定义的各子系统的连接关系,对各子数据流再进行空域映射,将在设定时间片下执行的每个子数据流分别映射至目标架构各层级的子系统中的技术手段,实现了在架构和时间两个维度下,对数据流任务进行了简化和抽象,能够清晰的规划出数据流任务在一段时间内,在架构不同子系统中的执行情况,为后续进行灵活性、可扩展性的基准测试建模提供高效可用的数据准备,从一定程度上可以减低基准测试建模的开发代价和周期。
实施例二
图2是本发明实施例二提供的一种数据流的时空映射方法的流程图,本实施例以上述各实施例为基础进行优化,在本实施例中,将针对数据流的时空映射方式进行具体化。
相应的,如图2所示,所述方法具体可以包括:
S210、获取待时空映射的目标数据流,其中,目标数据流由负载任务拆分出的一个目标子任务生成,负载任务为待加载至目标架构执行基准测试的任务。
S220、根据目标数据流中包括的目标子任务中各数据维度的执行顺序,并行维度和和目标子任务中各数据维度的切片大小,将目标数据流拆分为多个子数据流,并确定每个子数据流的执行顺序。
如前所述,在获取目标数据流中包括的目标子任务中各数据维度的执行顺序,并行维度和和目标子任务中各数据维度的切片大小之后,可以将目标子任务拆分为基于多个数据搬运操作的计算过程,进而,可以生成与每个数据搬运操作分别对应的子数据流。
相应的,不同数据搬运操作之间的时域关系,决定了每个子数据流的执行顺序。
S230、按照各子数据流的执行顺序,并将各子数据流在多个连续时间片上进行顺序排布。
其中,一个时间片对应一个时间区间。相应的,可以建立时间轴,并在该时间轴上,创建多个连续时间片。在初始化阶段,各时间片的起止时间点可以不在该时间轴上被赋值,仅指定每个时间片的所占用的时间间隔即可。当基准测试的启动时间点被确定后,上述各时间片的起止时间点将被唯一相应确定。
在一个具体的例子中,如果将目标数据流拆分为子数据流1和子数据流2,且子数据流1的时域执行时间先于子数据流2的时域执行区间。进而,可以在上述时间轴中,沿时间延伸顺序建立两个相邻的时间片1和时间片2后,将子数据流1排布在时间片1上,并将子数据流2排布在时间片2上。
S240、获取与目标子任务具有架构映射关系的目标子系统,并根据目标子系统和目标架构中定义的各子系统的连接关系,确定出与设定时间片下执行的每个子数据流分别对应的数据流路径。
其中,数据流路径由多个相邻层级的子系统串联构成,且该数据流路径的起始路径点或终止路径点为目标子系统。
在本实施例中,通过查询预先建立的子任务和子系统之间的架构映射关系,可以获取与目标子任务匹配的目标子系统。可以理解的是,与一个子数据流匹配的数据搬运操作可以为将设定层级的存储空间中存储的操作数搬运至目标子系统中实施计算,也可以为将目标子系统计算得到的计算结果搬运至设定层级的存储空间中进行存储。相应的,可以确定该目标子系统为每个子数据流的数据流转起点或者数据流转终点。其中,在获取目标子系统后,结合与目标子任务对应的各操作数在目标架构中的存储位置,以及目标架构中定义的各子系统的连接关系,可以确定出与每个数据流分别对应的数据流路径。同时,每个数据流对应一个时间片,一个时间片可以理解为一个数据流的执行时间区间。
其中,在图3中示出了本发明实施例所适用的一种子数据流在目标架构中每个层级下的时间映射结果的示意图。如图3所示,子数据流1实现了在时间维度(Time)和空间架构维度(Arch)下的双重映射。具体的,在时间维度下,子数据流被映射至时间片T[a]下执行,在空间架构维度,假设Arch[a]为L2存储单元,Arch[b]为L1存储单元,Arch[c]为计算单元,则子数据流可以映射为从L2中的一个存储区域data[id]->L1中的一个存储区域data[id] ->计算单元中的一个具体的计算单元computer[id]的数据流路径。其中,与目标子任务具有架构映射关系的目标子系统为computer[id]。
本发明实施例的技术方案通过根据目标数据流中包括的目标子任务中各数据维度的执行顺序,并行维度和和目标子任务中各数据维度的切片大小,将目标数据流拆分为多个子数据流,并确定每个子数据流的执行顺序;按照各子数据流的执行顺序,并将各子数据流在多个连续时间片上进行顺序排布;获取与目标子任务具有架构映射关系的目标子系统,并根据目标子系统和目标架构中定义的各子系统的连接关系,确定出与设定时间片下执行的每个子数据流分别对应的数据流路径的具体实现方式,可以简单、高效且准确的实现数据流的时空映射,以辅助提高架构评估的效率。
实施例三
图4是本发明实施例三提供的一种数据流的时空映射方法的流程图,本实施例以上述各实施例为基础进行优化,在本实施例中,在确定出与设定时间片下执行的每个子数据流分别对应的数据流路径的操作之后,还具体包括:在全部子数据流中,获取与目标时间片对应的目标子数据流;获取与目标子数据流匹配的目标数据流路径,并计算目标数据流路径中包括的路径点数量;以目标时间片为起点,获取与路径点数量匹配的连续时间片集合;将目标数据流路径中包括的各路径点顺序映射至连续时间片集合中的各时间片中;返回执行在全部子数据流中,获取与目标时间片对应的目标子数据流的操作,直至完成对全部子数据流的数据流路径的时间偏移处理。
相应的,如图4所示,所述方法具体包括:
S410、获取待时空映射的目标数据流,其中,目标数据流由负载任务拆分出的一个目标子任务生成,负载任务为待加载至目标架构执行基准测试的任务。
S420、根据目标数据流中定义的与该目标子任务匹配的各数据维度的执行顺序,并行维度和各数据维度的切片大小,对目标数据流进行时域映射,得到多个具有时域执行顺序的子数据流。
S430、根据目标子任务在目标架构中所映射的目标子系统和目标架构中定义的各子系统的连接关系,对各子数据流再进行空域映射,将在设定时间片下执行的每个子数据流分别映射至目标架构各层级的子系统中。
S440、在全部子数据流中,获取与目标时间片对应的目标子数据流。
如前所述,在对目标数据流进行拆分的过程中,一般可以拆分得到多个子数据流。每个子数据流被映射至一个特定的时间片上,在本实施例中,以与目标时间片对应的目标子数据流为例,描述针对目标子数据流的时间偏移处理。
可以理解的是,一般需要按照各时间片的时间延伸顺序,依次选取各目标子数据流进行时间偏移处理。
S450、获取与目标子数据流匹配的目标数据流路径,并计算目标数据流路径中包括的路径点数量。
如前所述,数据流路径中包括由多个相邻层级的子系统串联构成,该数据流路径表明了目标子数据流在目标架构中的流转过程。目标数据流路径中以子系统为路径点,通过统计该目标数据流路径中包括的子系统的数量值,可以确定出目标数据流路径中包括的路径点数量。
在一个具体的例子中,如果目标数据流路径中包括3个子系统,则目标数据流路径中包括的路径点数量为3。
S460、以目标时间片为起点,获取与路径点数量匹配的连续时间片集合。
在本实施例中,考虑到目标子数据流在目标架构中的流转过程需要耗费一定的传输时间,因此,考虑加入时间线上的偏移,以体现不同的架构层级间,对于同一个子数据流(包含计算)的时域偏移关系。从而可以更合理地反应负载任务的执行顺序,并反映到之后的时域-空域统计结果中。
相应的,可以根据路径点数量,以目标时间片为起点选取多个连续时间片,并将目标数据流路径中的每个路径点,映射至不同的时间片中,以体现上述时域偏移关系。
S470、将目标数据流路径中包括的各路径点顺序映射至连续时间片集合中的各时间片中。
为了便于说明,在图5示出了一种子数据流的数据流路径的时间偏移处理结果的示意图,该示意图是对图3示例的时空映射后的子数据流1进行的时间偏移处理。同图3示例,子数据流1的目标数据流路径为:从L2中的一个存储区域data[id]->L1中的一个存储区域data[id] ->计算单元中的一个具体的计算单元computer[id]的目标数据流路径,路径点数量为3,由于子数据流1初始化映射至时间片T[a]中,则需要以T[a]为起点,共获取T[a]、T[b]以及T[c]三个连续时间片,并按照子数据流1的操作数流转顺序,将上述三个路径点分别映射在上述三个时间片上,以实现对目标数据流路径的时间偏移处理。
S480、检测是否完成对全部子数据流的数据流路径的时间偏移处理:若是,结束流程;否则,返回执行S440。
本实施例的技术方案通过对完成时空映射的各子数据流分别进行时间偏移处理,可以使得最终的时空映射结果更合理地反应负载任务的执行顺序,以进一步提高架构评估的效率。
实施例四
图6是本发明实施例四提供的一种数据流的时空映射方法的流程图,本实施例以上述各实施例为基础进行优化,在本实施例中,在完成对全部子数据流的时间偏移处理操作后,还可以包括:获取与全部子数据流匹配的时间片起终点范围,并在时间片起终点范围内依次获取当前处理时间片;在每个子数据流的数据流路径中,分别识别与当前时间片匹配的映射路径点;根据至少一个执行顺序检查规则,对各映射路径点进行数据流执行顺序的检查,并在检测到执行顺序异常时,对各子数据流的数据流路径进行重排布,以确保任务执行顺序不被打乱;返回执行在时间片起终点范围内依次获取当前处理时间片的操作,直至完成对时间片起终点范围内全部时间片的数据流执行顺序的检查。
S610、获取待时空映射的目标数据流,其中,目标数据流由负载任务拆分出的一个目标子任务生成,负载任务为待加载至目标架构执行基准测试的任务。
S620、根据目标数据流中定义的与该目标子任务匹配的各数据维度的执行顺序,并行维度和各数据维度的切片大小,对目标数据流进行时域映射,得到多个具有时域执行顺序的子数据流。
S630、根据目标子任务在目标架构中所映射的目标子系统和目标架构中定义的各子系统的连接关系,对各子数据流再进行空域映射,将在设定时间片下执行的每个子数据流分别映射至目标架构各层级的子系统中。
S640、对全部子数据流的数据流路径的时间偏移处理后,获取与全部子数据流匹配的时间片起终点范围。
其中,在图7中示出了一种在同一时间坐标系下映射多个完成时间偏移处理后的多个子数据流的示意图。具体的,在图7中示出了针对子任务S的多个子数据流,一个S[.]可以理解从一个或者多个操作数从外层存储单元流转至计算单元中实施计算后,重新流转至该外层存储单元中进行数据存储的全流转过程,一般对应两个连续的子数据流。相应的,图7中共包含S[id]、S[id+1]以及S[id+2]三个全流转过程,对应6个子数据流。
针对图7的实例,在对全部6个子数据流的数据流路径进行时间偏移处理后,获取与全部子数据流匹配的时间片起终点范围为从T[local a]至T[local f]的6个时间片。
S650、在时间片起终点范围内依次获取当前处理时间片。
续前例,在确定从T[local a]至T[local f]的时间片起终点范围后,可以依次获取T[local a]、T[local b]、T[local c]、T[local d]、T[local e]以及T[local f]作为当前处理时间片,以进行数据流执行顺序的检查。
S660、在每个子数据流的数据流路径中,分别识别与当前时间片匹配的映射路径点。
续前例,如果当前时间片为T[local d]时,则相应的映射路径点为映射至Arch[b]的与S[id]对应的data[id]以及与S[id+2]对应的data[id+2],以及,映射至Arch[c]的与S[id+1]对应的computer[id+1]。
S670、根据至少一个执行顺序检查规则,对各映射路径点进行数据流执行顺序的检查,并在检测到执行顺序异常时,对各子数据流的数据流路径进行重排布,以确保任务执行顺序不被打乱。
可选地,该执行顺序检查规则可以包括:缓存空间的限制规则,以及缓存使用策略限制规则,其中,缓存使用策略限制规则包括:替换策略或预取策略。
续前例,如果目标架构采用buffer模式进行数据的缓存处理,则在buffer模式下,通常有两种限制规则,第一种是不考虑缓存空间的大小,我们假定缓存的空间无限大,任何数据都能够被存储在其中,那么我们可以将若干个子数据流叠加在一起,按照流水线模式排列。最终所有的子数据流都会被排列在Time[id]上。具体的,在如图7所示的目标架构中,Arch[b]使用缓存空间无限大的buffer,则在T[local d]的时刻,从Arch[a]处获取的存储区域data[id]处的数据1以及存储区域data[id+2]处获取的数据2均可以缓存在该Arch[b]的buffer中。
第二种限制规则是考虑缓存空间大小,在这种情况下,buffer不能无限存储数据,而是要遵循先进先出的原则,只有头部的数据从buffer中被删掉,新的数据才能够进入到buffer的尾部,此限制规则可以用来精准模拟内存分配(是一种任务创建和管理的常用手段)。所以,需要根据目标架构的架构定义获取buffer的大小。并且我们可以针对不同的操作数(输入,输出),分别定义各自的buffer大小(buffer大小也可以根据不同的存储层级独立定义),以提供更为灵活和全面的buffer分配方式。
例如,假设Arch[b]的输入、输出都共享一个buffer,且buffer大小是1,那么T[local d]的时刻就不能出现数据1和数据2都进入到Arch[b]的buffer中的情况。所以S[id+2]需要进行偏移。这样才能够满足一个时间点上只有一个数据进入到Arch[b]的buffer的要求。也即,此时需要对各子数据流的数据流路径进行重排布,以确保任务执行顺序不被打乱。
相应的,在图8中示出了本发明实施例的方案所适用的一种对多个子数据流的数据流路径进行重排布后的时空映射结果示意图。如图8所示,通过重排布T[local d]的映射路径点,可以满足Arch[b]上的buffer要求。
在另一个具体示例中,如果目标架构采用cache模式进行数据的缓存处理。在cache模式下,访问过的数据会被存储在cache中,所以在一定的时间窗口内或者是访问的空间内,数据如果很快再次被访问到,那么就能够从cache中直接获取到数据,而不需要从外层的内存中获取,从而提升了获取数据的速率。而如果原始数据过了很久才被访问,cache中存储的数据已经被替换成别的数据,则无法命中,依然需要从外层的内存中获取。所以,我们需要根据目标架构的架构定义获取复用距离(cache size),当两次访问同一项数据的时间片间隔内其他的数据量总和小于该复用距离时,就可以认为这个数据第二次访问时能够命中到cache中。
在一个具体的例子中,如图9所示,复用距离为4,那么data[id]对应的操作数和data[id+1]对应的操作数以及他们的运算结果都能够被存储在cache中,如果data[id]对应的操作数和data[id]对应的操作数很快再次被用到,那么就可以直接从Arch[b]获取到。相应的,图9中示出的时空映射结果通过了复用距离为4时的执行顺序检查规则,满足任务执行顺序要求。
在另一个具体的例子中,如图10所示,如果data[id]对应的操作数过了很久才被用到,以至于在这个过程中,cache中的数据被替换成了其他新的数据,那么原始数据再次被读的时候,则无法在cache中被获取到,依然需要从外部内存中获取。此时,如图10所示,需要在新的时间片中重新搬运data[id]对应的操作数到计算单元中进行计算。
需要说明的是,对于cache模式,我们还能够计算cache的命中率,同样作为一项基准测试中的一项建模参考信息,以便以后续进行建模分析。
其中,cache的命中率=命中在cache的数据量/访问的总数据量*100%。
S680、检测是否完成对时间片起终点范围内全部时间片的数据流执行顺序的检查:若是,结束流程;否则,返回执行S650。
通过上述设置,可以完全对目标数据流中的全部子数据流的时空映射。
本发明实施例的技术方案通过根据至少一个执行顺序检查规则,对各映射路径点进行数据流执行顺序的检查,并在检测到执行顺序异常时,对各子数据流的数据流路径进行重排布的实现方式,可以确保负载任务执行顺序不被打乱,进而使得最终的时空映射结果更合理地反应负载任务的执行顺序,以进一步提高架构评估的效率。
实施例五
图11是根据本发明实施例五提供的一种数据流的时空映射方法的流程图。本实施例以上述各实施例为基础进行优化,在本实施例中,增加了获取与多个数据流中的各子数据流分别对应的数据流路径;根据不同数据流之间的依赖关系,将与各子数据流分别对应的数据流路径在统一时间线上进行排布的操作,以及对排布结果进行修正的操作。
相应的,如图11所示,所述方法具体可以包括:
S1110、获取待时空映射的目标数据流,其中,目标数据流由负载任务拆分出的一个目标子任务生成,负载任务为待加载至目标架构执行基准测试的任务。
S1120、根据目标数据流中定义的与该目标子任务匹配的各数据维度的执行顺序,并行维度和各数据维度的切片大小,对目标数据流进行时域映射,得到多个具有时域执行顺序的子数据流。
S1130、根据目标子任务在目标架构中所映射的目标子系统和目标架构中定义的各子系统的连接关系,对各子数据流再进行空域映射,将在设定时间片下执行的每个子数据流分别映射至目标架构各层级的子系统中。
S1140、对目标数据流的全部子数据流的数据流路径的时间偏移处理后,进行基于执行顺序检查规则的重排布处理。
S1150、获取与多个数据流中的各子数据流分别对应的数据流路径。
S1160、根据不同数据流之间的依赖关系,将与各子数据流分别对应的数据流路径在统一时间线上进行排布。
在本实施例中,可以预先建立不同数据流之间的依赖关系,可以理解的是,数据流与子任务之间具有一一对应关系,因此,可以通过获取不同子任务之间的依赖关系,作为不同数据流之间的依赖关系。
具体的,该依赖关系可以为不同子任务之间的先后执行顺序或者并行处理顺序。其中,该依赖关系可以通过各子任务的输入和输出直接被检测出来,例如,子任务1的输出为Y,子任务2的输入为Y,输出为Z,子任务3的输入为Z输出为D,则可以确定子任务3的执行需要依赖子任务2执行完成,子任务2的执行需要依赖子任务1的执行完成,因此,假设子任务1对应数据流1,子任务2对应数据流2,以及子任务3对应数据流3,则数据流1要先于数据流2执行,数据流2要先于数据流3执行。
或者,用户还可以根据实际需求显示构建不同子任务之间的关系,例如,强制规定子任务4需要依赖子任务5执行完成等,本实施例对此并不进行限制。
在获取不同数据流之间的依赖关系之后,可以确定不同数据流在时域上的先后排布顺序,进而可以将与各子数据流分别对应的数据流路径在统一时间线上进行排布。
其中,在图12中示出了一种将两个数据流中的子数据流的数据流路径在统一时间线上进行排布后的时空映射结果示意图。其中,S[id]隶属于与子任务S对应的数据流,S’[id’]隶属于与子任务S’中对应的数据流。
S1170、如果多个数据流中存在数据接力节点,则根据数据接力节点所在位置,对排布结果进行修正。
其中,在将全部数据流在统一时间线上进行排布后,可以进一步考虑基于数据接力节点对该排布结果进行修正,以进一步提高时空映射结果的精准性。
其中,数据接力节点包括数据接力空间节点和/或数据接力时间节点。其中,数据接力空间节点,可以理解为具有依赖关系的两个子任务在目标架构中进行数据交换操作时,该数据交换操作所位于的子系统。该数据接力时间节点可以理解为两个具有逻辑依赖关系的子任务在某一个子系统中实现数据接力操作的时间点。
续前例,如果Arch[b]是子任务S和子任务S’的数据接力空间节点,则可以在Arch[b]对应的时间片T[local d]处,对排布结果进行修正。具体的修正结果如图13所示。
S1180、如果多个数据流中存在数据同步关系,则根据数据同步关系所在位置,对排布结果进行修正。
在本实施例中,进一步考虑了数据同步关系对排布结果对数据流执行过程的影响。例如,某两个数据流被安排并行执行,测试人员如果要求这两个数据流结束时进行“同步”。那么当其中一个数据流被先执行完时,遇到了“同步”信号就需要进行等待,直到另一个数据流完成,他们才能够同时进行到下一个数据流的处理。
其中,在图14中示出了一种引入了数据同步关系后,具体的修正结果示意图。
本发明实施例的技术方案通过增加了获取与多个数据流中的各子数据流分别对应的数据流路径;根据不同数据流之间的依赖关系,将与各子数据流分别对应的数据流路径在统一时间线上进行排布的操作,以及对排布结果进行修正的操作,可以使得最终的时空映射结果更合理地反应负载任务的执行顺序,以进一步提高架构评估的效率。
实施例六
图15是本发明实施例六提供的一种数据流的时空映射装置的结构示意图。如图15所示,所述装置包括:目标数据流获取模块1510、时域映射模块1520以及空域映射模块1530。
目标数据流获取模块1510,用于获取待时空映射的目标数据流,其中,目标数据流由负载任务拆分出的一个目标子任务生成,负载任务为待加载至目标架构执行基准测试的任务;
时域映射模块1520,用于根据目标数据流中定义的与该目标子任务匹配的各数据维度的执行顺序,并行维度和各数据维度的切片大小,对目标数据流进行时域映射,得到多个具有时域执行顺序的子数据流;
空域映射模块1530,用于根据目标子任务在目标架构中所映射的目标子系统和目标架构中定义的各子系统的连接关系,对各子数据流再进行空域映射,将在设定时间片下执行的每个子数据流分别映射至目标架构各层级的子系统中,作为该基准测试中的一项建模参考信息。
本发明实施例的技术方案通过获取待时空映射的目标数据流;根据目标数据流中定义的与该目标子任务匹配的各数据维度的执行顺序,并行维度和各数据维度的切片大小,对目标数据流进行时域映射,得到多个具有时域执行顺序的子数据流;根据目标子任务在目标架构中所映射的目标子系统和目标架构中定义的各子系统的连接关系,对各子数据流再进行空域映射,将在设定时间片下执行的每个子数据流分别映射至目标架构各层级的子系统中的技术手段,实现了在架构和时间两个维度下,对数据流任务进行了简化和抽象,能够清晰的规划出数据流任务在一段时间内,在架构不同子系统中的执行情况,为后续进行灵活性、可扩展性的基准测试建模提供高效可用的数据准备,从一定程度上可以减低基准测试建模的开发代价和周期。
在上述各实施例的基础上,时域映射模块1520,可以用于:
根据目标数据流中包括的目标子任务中各数据维度的执行顺序,并行维度和和目标子任务中各数据维度的切片大小,将目标数据流拆分为多个子数据流,并确定每个子数据流的执行顺序;
按照各子数据流的执行顺序,并将各子数据流在多个连续时间片上进行顺序排布。
在上述各实施例的基础上,空域映射模块1530,可以用于:
获取与目标子任务具有架构映射关系的目标子系统,并根据目标子系统和目标架构中定义的各子系统的连接关系,确定出与设定时间片下执行的每个子数据流分别对应的数据流路径;
其中,数据流路径由多个相邻层级的子系统串联构成,且该数据流路径的起始路径点或终止路径点为目标子系统。
在上述各实施例的基础上,还可以包括,时间偏移处理模块,用于:
在确定出与设定时间片下执行的每个子数据流分别对应的数据流路径之后,在全部子数据流中,获取与目标时间片对应的目标子数据流;
获取与目标子数据流匹配的目标数据流路径,并计算目标数据流路径中包括的路径点数量;
以目标时间片为起点,获取与路径点数量匹配的连续时间片集合;
将目标数据流路径中包括的各路径点顺序映射至连续时间片集合中的各时间片中;
返回执行在全部子数据流中,获取与目标时间片对应的目标子数据流的操作,直至完成对全部子数据流的数据流路径的时间偏移处理。
在上述各实施例的基础上,还可以包括,执行顺序检查模块,用于:
在完成对全部子数据流的时间偏移处理后,获取与全部子数据流匹配的时间片起终点范围,并在时间片起终点范围内依次获取当前处理时间片;
在每个子数据流的数据流路径中,分别识别与当前时间片匹配的映射路径点;
根据至少一个执行顺序检查规则,对各映射路径点进行数据流执行顺序的检查,并在检测到执行顺序异常时,对各子数据流的数据流路径进行重排布,以确保任务执行顺序不被打乱;
返回执行在时间片起终点范围内依次获取当前处理时间片的操作,直至完成对时间片起终点范围内全部时间片的数据流执行顺序的检查。
在上述各实施例的基础上,所述执行顺序检查规则可以包括:
缓存空间的限制规则,以及缓存使用策略限制规则,其中,缓存使用策略限制规则包括:替换策略或预取策略。
在上述各实施例的基础上,还可以包括,多数据流处理模块,用于:
获取与多个数据流中的各子数据流分别对应的数据流路径;
根据不同数据流之间的依赖关系,将与各子数据流分别对应的数据流路径在统一时间线上进行排布。
在上述各实施例的基础上,还可以包括,排布结果修正模块,用于:
在根据不同数据流之间的依赖关系,将与各子数据流分别对应的数据流路径在统一时间线上进行排布之后,如果多个数据流中存在数据接力节点,则根据数据接力节点所在位置,对排布结果进行修正;其中,数据接力节点包括数据接力空间节点和/或数据接力时间节点;
和/或
如果多个数据流中存在数据同步关系,则根据数据同步关系所在位置,对排布结果进行修正。
本发明实施例所提供的数据流的时空映射装置可执行本发明任意实施例所提供的数据流的时空映射方法,具备执行方法相应的功能模块和有益效果。
实施例七
图16为本发明实施例七提供的一种计算机设备的结构示意图,如图16所示,该计算机设备包括处理器1610、存储器1620、输入装置1630和输出装置1640;计算机设备中处理器1610的数量可以是一个或多个,图16中以一个处理器1610为例;计算机设备中的处理器1610、存储器1620、输入装置1630和输出装置1640可以通过总线或其他方式连接,图16中以通过总线连接为例。
存储器1620作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的数据流的时空映射方法对应的程序指令/模块(例如,目标数据流获取模块1510、时域映射模块1520以及空域映射模块1530)。处理器1610通过运行存储在存储器1620中的软件程序、指令以及模块,从而执行设备/终端/服务器的各种功能应用以及数据处理,即实现上述的数据流的时空映射方法。
也即:获取待时空映射的目标数据流,其中,目标数据流由负载任务拆分出的一个目标子任务生成,负载任务为待加载至目标架构执行基准测试的任务;
根据目标数据流中定义的与该目标子任务匹配的各数据维度的执行顺序,并行维度和各数据维度的切片大小,对目标数据流进行时域映射,得到多个具有时域执行顺序的子数据流;
根据目标子任务在目标架构中所映射的目标子系统和目标架构中定义的各子系统的连接关系,对各子数据流再进行空域映射,将在设定时间片下执行的每个子数据流分别映射至目标架构各层级的子系统中,作为该基准测试中的一项建模参考信息。
存储器1620可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器1620可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器1620可进一步包括相对于处理器1610远程设置的存储器,这些远程存储器可以通过网络连接至设备/终端/服务器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置1630可用于接收输入的数字或字符信息,以及产生与计算机设备的用户设置以及功能控制有关的键信号输入。输出装置1640可包括显示屏等显示设备。
实施例八
本发明实施例八还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种数据流的时空映射方法,该方法包括:
获取待时空映射的目标数据流,其中,目标数据流由负载任务拆分出的一个目标子任务生成,负载任务为待加载至目标架构执行基准测试的任务;
根据目标数据流中定义的与该目标子任务匹配的各数据维度的执行顺序,并行维度和各数据维度的切片大小,对目标数据流进行时域映射,得到多个具有时域执行顺序的子数据流;
根据目标子任务在目标架构中所映射的目标子系统和目标架构中定义的各子系统的连接关系,对各子数据流再进行空域映射,将在设定时间片下执行的每个子数据流分别映射至目标架构各层级的子系统中,作为该基准测试中的一项建模参考信息。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的数据流的时空映射方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory, ROM)、随机存取存储器(RandomAccess Memory, RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述搜索装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (10)

1.一种数据流的时空映射方法,其特征在于,包括:
获取待时空映射的目标数据流,其中,目标数据流由负载任务拆分出的一个目标子任务生成,负载任务为待加载至目标架构执行基准测试的任务;
根据目标数据流中包括的目标子任务中各数据维度的执行顺序,并行维度和目标子任务中各数据维度的切片大小,将目标数据流拆分为多个子数据流,并确定每个子数据流的执行顺序;
按照各子数据流的执行顺序,并将各子数据流在多个连续时间片上进行顺序排布;
获取与目标子任务具有架构映射关系的目标子系统,并根据目标子系统和目标架构中定义的各子系统的连接关系,确定出与设定时间片下执行的每个子数据流分别对应的数据流路径,作为该基准测试中的一项建模参考信息。
2.根据权利要求1所述的方法,其特征在于,所述数据流路径由多个相邻层级的子系统串联构成,且该数据流路径的起始路径点或终止路径点为目标子系统。
3.根据权利要求1所述的方法,其特征在于,在确定出与设定时间片下执行的每个子数据流分别对应的数据流路径之后,还包括:
在全部子数据流中,获取与目标时间片对应的目标子数据流;
获取与目标子数据流匹配的目标数据流路径,并计算目标数据流路径中包括的路径点数量;
以目标时间片为起点,获取与路径点数量匹配的连续时间片集合;
将目标数据流路径中包括的各路径点顺序映射至连续时间片集合中的各时间片中;
返回执行在全部子数据流中,获取与目标时间片对应的目标子数据流的操作,直至完成对全部子数据流的数据流路径的时间偏移处理。
4.根据权利要求3所述的方法,其特征在于,在完成对全部子数据流的时间偏移处理后,还包括:
获取与全部子数据流匹配的时间片起终点范围,并在时间片起终点范围内依次获取当前处理时间片;
在每个子数据流的数据流路径中,分别识别与当前时间片匹配的映射路径点;
根据至少一个执行顺序检查规则,对各映射路径点进行数据流执行顺序的检查,并在检测到执行顺序异常时,对各子数据流的数据流路径进行重排布,以确保任务执行顺序不被打乱;
返回执行在时间片起终点范围内依次获取当前处理时间片的操作,直至完成对时间片起终点范围内全部时间片的数据流执行顺序的检查。
5.根据权利要求4所述的方法,其特征在于,所述执行顺序检查规则包括:
缓存空间的限制规则,以及缓存使用策略限制规则,其中,缓存使用策略限制规则包括:替换策略或预取策略。
6.根据权利要求2-5任一项所述的方法,其特征在于,所述方法还包括:
获取与多个数据流中的各子数据流分别对应的数据流路径;
根据不同数据流之间的依赖关系,将与各子数据流分别对应的数据流路径在统一时间线上进行排布。
7.根据权利要求6所述的方法,其特征在于,在根据不同数据流之间的依赖关系,将与各子数据流分别对应的数据流路径在统一时间线上进行排布之后,还包括:
如果多个数据流中存在数据接力节点,则根据数据接力节点所在位置,对排布结果进行修正;其中,数据接力节点包括数据接力空间节点和/或数据接力时间节点;
和/或
如果多个数据流中存在数据同步关系,则根据数据同步关系所在位置,对排布结果进行修正。
8.一种数据流的时空映射装置,其特征在于,包括:
目标数据流获取模块,用于获取待时空映射的目标数据流,其中,目标数据流由负载任务拆分出的一个目标子任务生成,负载任务为待加载至目标架构执行基准测试的任务;
时域映射模块,用于根据目标数据流中包括的目标子任务中各数据维度的执行顺序,并行维度和和目标子任务中各数据维度的切片大小,将目标数据流拆分为多个子数据流,并确定每个子数据流的执行顺序;按照各子数据流的执行顺序,并将各子数据流在多个连续时间片上进行顺序排布;
空域映射模块,用于获取与目标子任务具有架构映射关系的目标子系统,并根据目标子系统和目标架构中定义的各子系统的连接关系,确定出与设定时间片下执行的每个子数据流分别对应的数据流路径,作为该基准测试中的一项建模参考信息。
9. 一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的数据流的时空映射方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-7中任一项所述的数据流的时空映射方法。
CN202310761534.5A 2023-06-27 2023-06-27 数据流的时空映射方法、装置、电子设备及存储介质 Active CN116501504B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310761534.5A CN116501504B (zh) 2023-06-27 2023-06-27 数据流的时空映射方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310761534.5A CN116501504B (zh) 2023-06-27 2023-06-27 数据流的时空映射方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN116501504A CN116501504A (zh) 2023-07-28
CN116501504B true CN116501504B (zh) 2023-09-12

Family

ID=87328724

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310761534.5A Active CN116501504B (zh) 2023-06-27 2023-06-27 数据流的时空映射方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN116501504B (zh)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008043564A1 (en) * 2006-10-11 2008-04-17 Rhf Gbr - Robelly, Herhold, Fettweis Synchronization and concurrent execution of control flow and data flow at task level
CN104750708A (zh) * 2013-12-27 2015-07-01 华为技术有限公司 一种时空数据的索引建立方法、查询方法、装置及设备
CN107402745A (zh) * 2017-07-04 2017-11-28 清华大学 数据流图的映射方法及装置
CN113128143A (zh) * 2021-06-17 2021-07-16 北京燧原智能科技有限公司 Ai处理器的仿真方法、装置、计算机设备及存储介质
CN113468274A (zh) * 2021-07-28 2021-10-01 浙江大华技术股份有限公司 数据存储方法和装置、存储介质及电子设备
CN114968594A (zh) * 2022-06-13 2022-08-30 清华大学 任务处理方法、装置、电子设备和存储介质
CN114996199A (zh) * 2021-03-01 2022-09-02 北京灵汐科技有限公司 众核的路由映射方法、装置、设备及介质
WO2022235251A1 (en) * 2021-05-03 2022-11-10 Google Llc Generating and globally tuning application-specific machine learning accelerators
CN115358914A (zh) * 2022-10-20 2022-11-18 深圳市壹倍科技有限公司 用于视觉检测的数据处理方法、装置、计算机设备及介质
CN115840738A (zh) * 2022-12-01 2023-03-24 建信信托有限责任公司 一种数据迁移方法、装置、电子设备及存储介质
CN115904539A (zh) * 2022-11-29 2023-04-04 上海燧原科技有限公司 一种切分策略的在线生成方法、装置、设备及存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7840949B2 (en) * 2003-11-03 2010-11-23 Ramal Acquisition Corp. System and method for data transformation using dataflow graphs
US8806160B2 (en) * 2011-08-16 2014-08-12 Pure Storage, Inc. Mapping in a storage system
US11853244B2 (en) * 2017-01-26 2023-12-26 Wisconsin Alumni Research Foundation Reconfigurable computer accelerator providing stream processor and dataflow processor

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008043564A1 (en) * 2006-10-11 2008-04-17 Rhf Gbr - Robelly, Herhold, Fettweis Synchronization and concurrent execution of control flow and data flow at task level
CN104750708A (zh) * 2013-12-27 2015-07-01 华为技术有限公司 一种时空数据的索引建立方法、查询方法、装置及设备
WO2015096582A1 (zh) * 2013-12-27 2015-07-02 华为技术有限公司 一种时空数据的索引建立方法、查询方法、装置及设备
CN107402745A (zh) * 2017-07-04 2017-11-28 清华大学 数据流图的映射方法及装置
CN114996199A (zh) * 2021-03-01 2022-09-02 北京灵汐科技有限公司 众核的路由映射方法、装置、设备及介质
WO2022235251A1 (en) * 2021-05-03 2022-11-10 Google Llc Generating and globally tuning application-specific machine learning accelerators
CN113128143A (zh) * 2021-06-17 2021-07-16 北京燧原智能科技有限公司 Ai处理器的仿真方法、装置、计算机设备及存储介质
CN113468274A (zh) * 2021-07-28 2021-10-01 浙江大华技术股份有限公司 数据存储方法和装置、存储介质及电子设备
CN114968594A (zh) * 2022-06-13 2022-08-30 清华大学 任务处理方法、装置、电子设备和存储介质
CN115358914A (zh) * 2022-10-20 2022-11-18 深圳市壹倍科技有限公司 用于视觉检测的数据处理方法、装置、计算机设备及介质
CN115904539A (zh) * 2022-11-29 2023-04-04 上海燧原科技有限公司 一种切分策略的在线生成方法、装置、设备及存储介质
CN115840738A (zh) * 2022-12-01 2023-03-24 建信信托有限责任公司 一种数据迁移方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN116501504A (zh) 2023-07-28

Similar Documents

Publication Publication Date Title
Le et al. Allox: compute allocation in hybrid clusters
US11620286B2 (en) Continuous cloud-scale query optimization and processing
Kourtellis et al. Scalable online betweenness centrality in evolving graphs
Dai et al. Cloud service reliability: Modeling and analysis
US8364908B2 (en) Migrating program objects in a multi-node computer system
CN116501503B (zh) 负载任务的架构映射方法、装置、计算机设备及介质
US8745637B2 (en) Middleware for extracting aggregation statistics to enable light-weight management planners
US8869148B2 (en) Concurrency identification for processing of multistage workflows
US7444350B1 (en) Method and apparatus for processing management information
US7899906B2 (en) Multi-layered measurement model for data collection and method for data collection using same
Li et al. Service reliability modeling and evaluation of active-active cloud data center based on the IT infrastructure
CN115238899A (zh) 面向超导量子计算机的量子程序并行处理方法及操作系统
CN112433853A (zh) 一种面向超级计算机数据并行应用的异构感知数据划分方法
US8443073B2 (en) Automated performance prediction for service-oriented architectures
US9749219B2 (en) Method of optimizing routing in a cluster comprising static communication links and computer program implementing that method
CN116501504B (zh) 数据流的时空映射方法、装置、电子设备及存储介质
CN116501594A (zh) 系统建模评估方法、装置、电子设备及存储介质
CN116048759A (zh) 数据流的数据处理方法、装置、计算机和存储介质
US20150186429A1 (en) Method and system for data dispatch processing in a big data system
Werle et al. Data stream operations as first-class entities in component-based performance models
Roberts et al. Probabilistic verification for reliability of a two-by-two network-on-chip system
Hamadi et al. Boosting distributed constraint satisfaction
JP4097274B2 (ja) リソース探索方法、クラスタシステム、計算機、及び、クラスタ
CN115705497A (zh) 一种量子计算机操作系统和量子计算机
Harbin et al. Comparative performance evaluation of latency and link dynamic power consumption modelling algorithms in wormhole switching networks on chip

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
CP03 Change of name, title or address

Address after: Room a-522, 188 Yesheng Road, Lingang New District, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai, 201306

Patentee after: Shanghai Suiyuan Technology Co.,Ltd.

Country or region after: China

Address before: Room a-522, 188 Yesheng Road, Lingang New District, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai, 201306

Patentee before: SHANGHAI ENFLAME TECHNOLOGY Co.,Ltd.

Country or region before: China

CP03 Change of name, title or address