CN107665127A - 一种数据流架构中基于网络负载特征进行指令调度的方法 - Google Patents
一种数据流架构中基于网络负载特征进行指令调度的方法 Download PDFInfo
- Publication number
- CN107665127A CN107665127A CN201710787808.2A CN201710787808A CN107665127A CN 107665127 A CN107665127 A CN 107665127A CN 201710787808 A CN201710787808 A CN 201710787808A CN 107665127 A CN107665127 A CN 107665127A
- Authority
- CN
- China
- Prior art keywords
- route
- instruction
- piece
- congestion
- scheduling
- 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 18
- 238000001514 detection method Methods 0.000 claims abstract description 20
- 238000011897 real-time detection Methods 0.000 claims abstract description 4
- 238000010586 diagram Methods 0.000 description 12
- 238000011161 development Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种数据流架构中基于网络负载特征进行指令调度的方法,其包括以下步骤:在每一片上路由内部均设置一拥堵检测部件,并在每一片上路由的每一出口均设置一输出缓存部件,以及在每一计算节点的内部均设置一指令选择部件;拥堵检测部件实时检测片上路由每一出口的拥堵状况并将其发送至对应的计算节点,拥堵状况包括拥堵状态和非拥堵状态;指令选择部件从指令槽中选择一优先调度指令并将其发送至对应的片上路由,选择的依据为指令处于“ready”状态并且其对应的出口方向处于非拥堵状态;片上路由将接收到的优先调度指令暂存至对应方向的输出缓存部件中;片上路由根据输出缓存部件中暂存的优先调度指令的目的方向将其发送至下一级片上路由。
Description
技术领域
本发明涉及数据流架构中的指令调度方法,具体而言,涉及一种数据流架构中基于网络负载特征进行指令调度的方法。
背景技术
随着计算机体系结构的发展,领域专用的计算机体系结构成为主要发展趋势。在面向特定应用时,专用型结构利用应用特征对结构进行相应的优化,从而更好地发挥出硬件的计算性能。在高性能计算领域,数据流计算是领域专用计算结构的一个重要分支,数据流计算表现出了较好的性能和适用性。数据流架构通常都包括若干个或者十几个计算节点(计算节点称为processing element,简称PE),每个计算节点都是运算能力较强但是控制能力较弱、复杂度较小的核心。每个计算节点内设置N个指令槽,每个指令槽内保存这条指令执行所需的操作数信息,当指令对应的所有源操作数都已经准备好同时该指令的下游也准备好接收结果数据时,这条指令就可以被指令调度逻辑选择进入到该计算节点的执行流水线当中。每个计算节点内的指令调度逻辑在每个时钟周期都会从那些准备好的指令当中进行选择然后发射到执行流水线当中。一般的指令调度逻辑都是选择根据指令标号顺序采用轮询(round-robin)的方式进行选择。如图1所示为轮询方式选择指令的示意图,一计算节点一共设置16个指令槽(编号分别为0~15),Cycle1、Cycle2和Cycle3为时间轴上3个连续的时间点。在时间点Cycle1时,16个指令槽当中一共存在4条指令是“Ready”的,可以被调度逻辑选择发射,此时,在时间点Cycle1选择2号指令槽。之后,在时间点Cycle2的时候,指令槽当中的2号指令槽由于前一个时间点Cycle1被选中发射到流水线当中,所以在当前时间点Cycle2处于发射状态,此时,6号、9号、13号和14号指令槽都处于“Ready”状态,可以被调度逻辑选择。轮询的原则是按照指令标号的顺序从所有处于“Ready”状态的指令当中进行选择,所以在时间点Cycle2时选择的是6号指令槽。在时间点Cycle3时,采用类似的原理,选择的是9号指令槽。总结起来,传统的轮询方式有2个要素:(1)按照指令的顺序进行选择;(2)从所有“Ready”的指令当中选择。
可见,传统的数据流架构当中,一般都是根据指令的源操作数是否完备作为先决条件,然后从这些满足先决条件的指令当中根据指令的顺序进行轮询选择,被选出的指令被调度到计算流水线当中执行。如果在数据流架构下,指令被映射到数据流阵列的映射算法和指令的排序同时都能够较好地考虑到各方面的均衡,这种普通的轮询调度方式也能够较好地保持计算资源和网络负载的均衡;但是如果指令在映射到数据流阵列的时候没有全面考虑到各方面均衡,可能导致连接数据流阵列的网络出现局部性繁忙,此时如果仍然采用普通的轮询策略,执行节点内部的计算流水线会出现停顿等待,计算单元的局部性利用率降低。
一般在数据流架构当中,多个计算节点采用2D mesh结构进行连接,由片上路由(Router)负责在计算单元(PE)之间传递操作数。图2为一片上网络示意图,图3为图2中一个片上路由201的出口和入口示意图,如图2所示,片上网络由多个计算单元、多个片上路由构成2D mesh结构,SPM为片上路由发送的系统参数报文,如图3所示,片上路由201内部有5个入口和5个出口。5个入口分别对应东、南、西、北方向和本地PE202,5个出口分别对应东、南、西、北方向和本地PE202。在片上路由201内部,来自不同入口的数据包先分别被放入到各个方向对应的输入缓存(input buffer)当中,然后对数据包信息进行解析,根据数据包的目的方向从对应的出口发送到下一级节点当中。每个时钟周期,每个出口可以处理1个数据包。
以上分析了传统数据流架构中的指令调度策略即轮询方式的基本过程,以及数据流架构中片上路由的工作原理。可以看出,两者并没有紧密的配合,指令调度逻辑在调度指令执行的时候并没有考虑指令执行结果的发送方向,而是仅仅考虑指令的顺序和指令的操作数是否准备好。如果指令映射的时候,在某个方向局部密集,按照原本片上路由的处理速度,该方向会导致执行速度出现瓶颈。另外,如果仍然按照原来的轮询策略调度指令,则会导致计算节点内部出现流水线的停顿和空闲。
可见,如果计算节点在调度指令的同时考虑网络拥堵状况,那么指令调度逻辑可以选择不拥堵方向上的指令进行调度,从而有助于提高计算节点内部的部件利用率和网络资源的利用率和吞吐率,这也是本领域技术人员的一个重要目标。
发明内容
本发明提供一种数据流架构中基于网络负载特征进行指令调度的方法,该方法在指令调度的同时考虑网络拥堵状况,以提高计算节点内部的部件利用率和网络资源的利用率和吞吐率。
为达到上述目的,本发明提供了一种数据流架构中基于网络负载特征进行指令调度的方法,其包括以下步骤:
在每一片上路由内部均设置一拥堵检测部件,并在每一片上路由的每一出口均设置一输出缓存部件,以及在每一计算节点的内部均设置一指令选择部件;
拥堵检测部件实时检测片上路由每一出口的拥堵状况并将其发送至对应的计算节点,拥堵状况包括拥堵状态和非拥堵状态;
指令选择部件从指令槽中选择一优先调度指令并将其发送至对应的片上路由,选择的依据为指令处于“ready”状态并且其对应的出口方向处于非拥堵状态;
片上路由将接收到的优先调度指令暂存至对应方向的输出缓存部件中;
片上路由根据输出缓存部件中暂存的优先调度指令的目的方向将其发送至下一级片上路由。
在本发明的一实施例中,所述拥堵检测部件在每一时间点均向对应的计算节点发送一专用数据包,所述专用数据包中包含片上路由每一出口的拥堵状况。
在本发明的一实施例中,所述拥堵检测部件在每一时间点将片上路由每一出口的拥堵状况打包为一数据片段并将其附加在由片上路由向对应计算节点发送的数据包的尾部。
在本发明的一实施例中,每一片上路由均具有5个出口,分别对应东、南、西、北方向和本地计算节点。
在本发明的一实施例中,时间点指的是指令流水线中的时间拍。
本发明的数据流架构中基于网络负载特征进行指令调度的方法在指令调度的同时考虑网络拥堵状况,与传统的“轮询”方式相比,提高了计算节点内部的部件利用率和网络资源的利用率和吞吐率,并且提高了计算节点内部执行流水线的利用率以及网络带宽的利用率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为轮询方式选择指令的示意图;
图2为一片上网络示意图;
图3为图2中一个路由201的出口和入口示意图;
图4为片上路由中的输出缓冲部件示意图;
图5为片上路由和计算节点内部示意图;
图6为本发明一具体实施例的基于网络负载特征进行指令调度的示意图。
附图标记说明:201-路由;202-本地PE;1-片上路由;2-计算节点。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供了一种数据流架构中基于网络负载特征进行指令调度的方法,其包括以下步骤:
在每一片上路由内部均设置一拥堵检测部件,并在每一片上路由的每一出口均设置一输出缓存部件,以及在每一计算节点的内部均设置一指令选择部件;
图4为片上路由中的输出缓冲部件示意图,如图4所示,输出缓冲部件(OutputBuffer)设置在片上路由的每一出口处,而片上路由的入口处不再设置输入缓冲。
图5为片上路由1和计算节点2内部示意图,如图5所示,拥堵检测部件与片上路由1的每一出口连接,图5仅示出了其中一个片上路由和一个计算节点的示意图,以每个片上路由1均具有5个出口为例(分别对应东、南、西、北方向和本地计算节点),在其他实施例中,根据片上网络中各节点之间的连接方式不同,每个片上路由的出口个数也不同,因此,输出缓存部件的数目也随之不同,但是,不变的是,拥堵检测部件需要与片上路由的每一个出口连接。
拥堵检测部件实时检测片上路由每一出口的拥堵状况并将其发送至对应的计算节点,拥堵状况包括拥堵状态和非拥堵状态;
指令选择部件从指令槽中选择一优先调度指令并将其发送至对应的片上路由,选择的依据为指令处于“ready”状态并且其对应的出口方向处于非拥堵状态;
片上路由将接收到的优先调度指令暂存至对应方向的输出缓存部件中;
片上路由根据输出缓存部件中暂存的优先调度指令的目的方向将其发送至下一级片上路由。
对于拥堵检测部件如何将片上路由每一出口的拥堵状况发送至计算节点,本发明有以下两种方式:
第一种方式:
拥堵检测部件在每一时间点均向对应的计算节点发送一专用数据包,专用数据包中包含片上路由每一出口的拥堵状况。
第二种方式:
拥堵检测部件在每一时间点将片上路由每一出口的拥堵状况打包为一数据片段并将其附加在由片上路由向对应计算节点发送的数据包的尾部。
在本实施例中,时间点指的是指令流水线中的时间拍。
图6为本发明一具体实施例的基于网络负载特征进行指令调度的示意图,以下分三个阶段介绍该实施例:
Cycle N:
此时,计算节点中共有3条处于“ready”状态的指令,分别为instruction2、instruction 4和instruction 7,其各自对应的发射方向如图所示,此时,拥堵检测部件检测到以下信息:East方向拥堵、North方向拥堵、South方向正常,所以,指令选择部件从指令槽中选择处的优先调度指令为instruction 7并将其发送至对应的片上路由。
Cycle N+1:
此时,计算节点中共有2条处于“ready”状态的指令,分别为instruction2和instruction 4,此时,拥堵检测部件检测到以下信息:East方向正常、North方向拥堵、South方向正常,所以,指令选择部件从指令槽中选择处的优先调度指令为instruction 2并将其发送至对应的片上路由。
Cycle N+2:
此时,计算节点中只剩余一条处于“ready”状态的指令,即instruction 4,同时,拥堵检测部件检测到North方向仍然拥堵,也即,此时没有满足条件的优先调度指令,所以此时没有任何指令被调度发射至执行流水线,该时钟周期执行流水线是空转执行。
本发明的数据流架构中基于网络负载特征进行指令调度的方法在指令调度的同时考虑网络拥堵状况,与传统的“轮询”方式相比,提高了计算节点内部的部件利用率和网络资源的利用率和吞吐率,并且提高了计算节点内部执行流水线的利用率以及网络带宽的利用率。
本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域普通技术人员可以理解:实施例中的装置中的模块可以按照实施例描述分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。
Claims (5)
1.一种数据流架构中基于网络负载特征进行指令调度的方法,其特征在于,包括以下步骤:
在每一片上路由内部均设置一拥堵检测部件,并在每一片上路由的每一出口均设置一输出缓存部件,以及在每一计算节点的内部均设置一指令选择部件;
拥堵检测部件实时检测片上路由每一出口的拥堵状况并将其发送至对应的计算节点,拥堵状况包括拥堵状态和非拥堵状态;
指令选择部件从指令槽中选择一优先调度指令并将其发送至对应的片上路由,选择的依据为指令处于“ready”状态并且其对应的出口方向处于非拥堵状态;
片上路由将接收到的优先调度指令暂存至对应方向的输出缓存部件中;
片上路由根据输出缓存部件中暂存的优先调度指令的目的方向将其发送至下一级片上路由。
2.根据权利要求1所述的数据流架构中基于网络负载特征进行指令调度的方法,其特征在于,所述拥堵检测部件在每一时间点均向对应的计算节点发送一专用数据包,所述专用数据包中包含片上路由每一出口的拥堵状况。
3.根据权利要求1所述的数据流架构中基于网络负载特征进行指令调度的方法,其特征在于,所述拥堵检测部件在每一时间点将片上路由每一出口的拥堵状况打包为一数据片段并将其附加在由片上路由向对应计算节点发送的数据包的尾部。
4.根据权利要求1所述的数据流架构中基于网络负载特征进行指令调度的方法,其特征在于,每一片上路由均具有5个出口,分别对应东、南、西、北方向和本地计算节点。
5.根据权利要求2或3所述的数据流架构中基于网络负载特征进行指令调度的方法,其特征在于,时间点指的是指令流水线中的时间拍。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710787808.2A CN107665127A (zh) | 2017-09-04 | 2017-09-04 | 一种数据流架构中基于网络负载特征进行指令调度的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710787808.2A CN107665127A (zh) | 2017-09-04 | 2017-09-04 | 一种数据流架构中基于网络负载特征进行指令调度的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107665127A true CN107665127A (zh) | 2018-02-06 |
Family
ID=61097331
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710787808.2A Pending CN107665127A (zh) | 2017-09-04 | 2017-09-04 | 一种数据流架构中基于网络负载特征进行指令调度的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107665127A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109120546A (zh) * | 2018-06-27 | 2019-01-01 | 北京中科睿芯智能计算产业研究院有限公司 | 一种数据流架构中网络数据流量不平衡的检测及调整方法 |
CN115208842A (zh) * | 2022-07-29 | 2022-10-18 | 苏州特思恩科技有限公司 | 一种基于10g以太网的低延迟装置使用方法 |
CN116366519A (zh) * | 2021-12-28 | 2023-06-30 | 北京灵汐科技有限公司 | 路由传输方法、路由控制方法、事件处理方法及装置 |
CN116680087A (zh) * | 2023-08-02 | 2023-09-01 | 摩尔线程智能科技(北京)有限责任公司 | 指令调度方法、装置、设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8694704B2 (en) * | 2009-02-17 | 2014-04-08 | Board Of Regents, University Of Texas Systems | Method and apparatus for congestion-aware routing in a computer interconnection network |
-
2017
- 2017-09-04 CN CN201710787808.2A patent/CN107665127A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8694704B2 (en) * | 2009-02-17 | 2014-04-08 | Board Of Regents, University Of Texas Systems | Method and apparatus for congestion-aware routing in a computer interconnection network |
Non-Patent Citations (4)
Title |
---|
CHIFENG WANG, WEN-HSIANG HU, NADER BAGHERZADEH: "Scalable load balancing congestion-aware Network-on-Chip router", 《JOURNAL OF COMPUTER AND SYSTEM SCIENCES》 * |
SHEN XW, YE XC, TAN X ET AL.: "An efficient network-on-chip router for dataflow architecture", 《JOURNAL OF COMPUTER SCIENCE AND TECHNOLOGY》 * |
刘炳涛等: "基于数据流块的空间指令调度方法", 《万方数据库》 * |
路璐: "分片式处理器上指令调度器的设计及优化", 《万方数据库》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109120546A (zh) * | 2018-06-27 | 2019-01-01 | 北京中科睿芯智能计算产业研究院有限公司 | 一种数据流架构中网络数据流量不平衡的检测及调整方法 |
CN109120546B (zh) * | 2018-06-27 | 2022-04-01 | 北京中科睿芯智能计算产业研究院有限公司 | 一种数据流架构中网络数据流量不平衡的检测及调整方法 |
CN116366519A (zh) * | 2021-12-28 | 2023-06-30 | 北京灵汐科技有限公司 | 路由传输方法、路由控制方法、事件处理方法及装置 |
CN115208842A (zh) * | 2022-07-29 | 2022-10-18 | 苏州特思恩科技有限公司 | 一种基于10g以太网的低延迟装置使用方法 |
CN115208842B (zh) * | 2022-07-29 | 2024-05-14 | 苏州特思恩科技有限公司 | 一种基于10g以太网的低延迟装置使用方法 |
CN116680087A (zh) * | 2023-08-02 | 2023-09-01 | 摩尔线程智能科技(北京)有限责任公司 | 指令调度方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zhang et al. | Adaptive interference-aware VNF placement for service-customized 5G network slices | |
CN107665127A (zh) | 一种数据流架构中基于网络负载特征进行指令调度的方法 | |
Sun et al. | Fast and flexible: Parallel packet processing with GPUs and click | |
Tang et al. | Reliability-aware scheduling strategy for heterogeneous distributed computing systems | |
WO2019014237A1 (en) | ACCESS NODE FOR DATA CENTERS | |
Serpanos et al. | Architecture of network systems | |
Li et al. | Priority based real-time communication for large scale wormhole networks | |
CN109379303A (zh) | 基于提升万兆以太网性能的并行化处理框架系统和方法 | |
CN106572500B (zh) | 一种c-ran中硬件加速器的调度方法 | |
US20090248894A1 (en) | Determining A Path For Network Traffic Between Nodes In A Parallel Computer | |
Correa et al. | Ultra-low latency communication channels for FPGA-based HPC cluster | |
US11789733B2 (en) | Instruction processing apparatus, acceleration unit, and server | |
Mahafzah et al. | Performance evaluation of broadcast and global combine operations in all-port wormhole-routed OTIS-Mesh interconnection networks | |
CN105868000A (zh) | 一种针对网络i/o虚拟化的并行化可扩展数据处理方法 | |
CN103166863B (zh) | 集总式8x8低延迟高带宽交叉点缓存队列片上路由器 | |
Beaumont et al. | Broadcast trees for heterogeneous platforms | |
US20230161621A1 (en) | Software-Defined Tensor Streaming Multiprocessor for Large-Scale Machine Learning | |
Fang et al. | GOAT: Gradient scheduling with collaborative in-network aggregation for distributed training | |
Morgan et al. | NoC 2: an efficient interfacing approach for heavily-communicating NoC-based systems | |
CN103955445B (zh) | 一种数据处理方法、处理器及数据处理设备 | |
Zhu et al. | BiLink: A high performance NoC router architecture using bi-directional link with double data rate | |
Ueno et al. | VCSN: Virtual circuit-switching network for flexible and simple-to-operate communication in HPC FPGA cluster | |
Laki et al. | The price for asynchronous execution of extern functions in programmable software data planes | |
CN114997380A (zh) | 采样器以及用于图神经网络模型执行的装置 | |
Huang et al. | Improving the efficiency of HPC data movement on container-based virtual cluster |
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: 20180206 |
|
RJ01 | Rejection of invention patent application after publication |