CN116664377A - 数据传输方法及相关装置 - Google Patents
数据传输方法及相关装置 Download PDFInfo
- Publication number
- CN116664377A CN116664377A CN202310429178.7A CN202310429178A CN116664377A CN 116664377 A CN116664377 A CN 116664377A CN 202310429178 A CN202310429178 A CN 202310429178A CN 116664377 A CN116664377 A CN 116664377A
- Authority
- CN
- China
- Prior art keywords
- data packet
- target data
- target
- packet
- priority
- 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
- 230000005540 biological transmission Effects 0.000 title claims abstract description 184
- 238000000034 method Methods 0.000 title claims abstract description 65
- 230000000903 blocking effect Effects 0.000 claims abstract description 24
- 230000004044 response Effects 0.000 claims description 33
- 238000013507 mapping Methods 0.000 claims description 17
- 238000012545 processing Methods 0.000 claims description 16
- 238000004364 calculation method Methods 0.000 claims description 12
- 230000006870 function Effects 0.000 claims description 8
- 235000003642 hunger Nutrition 0.000 abstract description 6
- 230000037351 starvation Effects 0.000 abstract description 6
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 238000012546 transfer Methods 0.000 description 44
- 238000010586 diagram Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 8
- 238000004590 computer program Methods 0.000 description 8
- 241001522296 Erithacus rubecula Species 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供了一种数据传输方法及相关装置,该方法包括:从控制单元接收目标数据包;确定所述目标数据包的优先级;基于所述目标数据包的优先级以及第一信息,将所述目标数据包传输至一个或多个计算单元;其中,所述第一信息包括所述目标数据包的阻塞时间和/或所述目标数据包对应的服务质量要求。本申请实施例中,在数据包优先级的基础上,结合数据传输延迟信息(如第一信息)进行数据包的传输,有助于提高数据传输性能。例如,在数据包优先级的基础上考虑了数据包的阻塞时间信息,有助于避免某些类型数据包的饥饿。又如,在数据包优先级的基础上考虑了数据传输请求的服务质量要求,有助于兼顾计算单元的执行吞吐量以及服务质量要求。
Description
技术领域
本申请涉及数据传输技术领域,更为具体的,涉及一种数据传输方法及相关装置。
背景技术
在控制单元(如,中央处理单元(central processing unit,CPU))与一个或多个计算单元(如,图形处理器(graphics processing unit,GPU))进行通信的过程中,通常采用轮询策略实现待传输数据的调度。为了提高该调度策略下计算单元的执行吞吐量,可以基于数据包优先级,实现待传输数据的调度。但是仅采用基于优先级的调度策略,在一些情况下,可能会影响数据的传输性能。
发明内容
本申请提供一种数据传输方法及相关装置。下面对本申请实施例涉及的各个方面进行介绍。
第一方面,提供一种数据传输方法,该方法包括:从控制单元接收目标数据包;确定所述目标数据包的优先级;基于所述目标数据包的优先级以及第一信息,将所述目标数据包传输至一个或多个计算单元;其中,所述第一信息包括所述目标数据包的阻塞时间和/或所述目标数据包对应的服务质量要求。
作为一种可能的实现方式,第一任务包括多个所述目标数据包,所述基于所述目标数据包的优先级以及第一信息,将所述目标数据包传输至所述一个或多个计算单元,包括:基于所述目标数据包的优先级,确定所述第一任务的剩余传输时间的预测值;响应于所述预测值无法满足所述第一任务的服务质量要求,将所述目标数据包传输至所述一个或多个计算单元。
作为一种可能的实现方式,所述基于所述目标数据包的优先级以及第一信息,将所述目标数据包传输至所述一个或多个计算单元,包括:基于所述预测值以及所述目标数据包对应的服务质量要求,确定所述目标数据包对应的传输带宽;根据所述传输带宽,将所述目标数据包传输至所述一个或多个计算单元。
作为一种可能的实现方式,所述基于所述目标数据包的优先级以及第一信息,将所述目标数据包传输至所述一个或多个计算单元,包括:将所述目标数据包分配至目标虚拟通道;基于所述目标数据包对应的服务质量要求,确定所述目标虚拟通道对应的传输带宽;根据所述传输带宽,将所述目标数据包传输至所述一个或多个计算单元。
作为一种可能的实现方式,基于所述目标数据包的优先级以及第一信息,将所述目标数据包传输至所述一个或多个计算单元,包括:响应于所述目标数据包的阻塞时间大于或等于第一阈值,将所述目标数据包传输至所述一个或多个计算单元。
作为一种可能的实现方式,所述目标数据包的优先级与数据包的类型关联,所述数据包的类型包括以下中的一种或多种:请求数据包,响应数据包,消息数据包以及中断数据包。
作为一种可能的实现方式,所述目标数据包的类型与所述目标数据包对应的用户的ID信息关联。
作为一种可能的实现方式,在所述将所述目标数据包传输至所述一个或多个计算单元之前,所述方法还包括:基于所述目标数据包的流量类别TC确定所述目标数据包与所述目标虚拟通道VC的映射关系:VC=TC mod NVC,其中TC=NT×IDD+IDT,NT为所述目标数据包的数量,IDD为所述目标数据包对应的计算单元的标识,IDT为所述目标数据包的类型,mod为求余数函数,NVC为所述目标虚拟通道的数量。
第二方面,提供一种数据传输装置,该装置包括:接收单元,用于从控制单元接收目标数据包;第一确定单元,用于确定所述目标数据包的优先级;传输单元,用于基于所述目标数据包的优先级以及第一信息,将所述目标数据包传输至一个或多个计算单元;其中,所述第一信息包括所述目标数据包的阻塞时间和/或所述目标数据包对应的服务质量要求。
作为一种可能的实现方式,第一任务包括多个所述目标数据包,所述传输单元用于:基于所述目标数据包的优先级,确定所述第一任务的剩余传输时间的预测值;响应于所述预测值无法满足所述第一任务的服务质量要求,将所述目标数据包传输至所述一个或多个计算单元。
作为一种可能的实现方式,所述传输单元用于:基于所述预测值以及所述目标数据包对应的服务质量要求,确定所述目标数据包对应的传输带宽;根据所述传输带宽,将所述目标数据包传输至所述一个或多个计算单元。
作为一种可能的实现方式,所述传输单元用于:将所述目标数据包分配至目标虚拟通道;基于所述目标数据包对应的服务质量要求,确定所述目标虚拟通道对应的传输带宽;根据所述传输带宽,将所述目标数据包传输至所述一个或多个计算单元。
作为一种可能的实现方式,所述传输单元用于:响应于所述目标数据包的阻塞时间大于或等于第一阈值,将所述目标数据包传输至所述一个或多个计算单元。
作为一种可能的实现方式,所述目标数据包的优先级与数据包的类型关联,所述数据包的类型包括以下中的一种或多种:请求数据包,响应数据包,消息数据包以及中断数据包。
作为一种可能的实现方式,所述目标数据包的类型与所述目标数据包对应的用户的ID信息关联。
作为一种可能的实现方式,所述将所述目标数据包传输至所述一个或多个计算单元之前,所述装置还包括:第二确定单元,用于基于所述目标数据包的流量类别TC确定所述目标数据包与所述目标虚拟通道VC的映射关系:VC=TC mod NVC,其中TC=NT×IDD+IDT,NT为所述目标数据包的数量,IDD为所述目标数据包对应的计算单元的标识,IDT为所述目标数据包的类型,mod为求余数函数,NVC为所述目标虚拟通道的数量。
第三方面,提供一种数据处理系统,该系统包括:控制单元;一个或多个计算单元;以及如第二方面任意一种可能的实现方式所述的数据传输装置。
第四方面,提供一种计算设备,包括:存储器,用于存储代码;处理器,用于执行所述存储器中存储的代码,以执行如第一方面或第一方面中的任意一种可能的实现方式所述的方法。
第五方面,提供一种计算机可读存储介质,其上存储有用于执行如第一方面或第一方面中的任意一种可能的实现方式所述的方法的代码。
第六方面,提供一种计算机程序代码,包括用于执行如第一方面或第一方面中的任意一种可能的实现方式所述的方法的指令。
本申请实施例中,在数据包优先级的基础上,结合数据传输延迟信息(如第一信息)进行数据包的传输,有助于提高数据传输性能。例如,在数据包优先级的基础上考虑了数据包的阻塞时间信息,有助于避免某些类型数据包的饥饿。又如,在数据包优先级的基础上考虑了数据传输请求的服务质量要求,有助于兼顾计算单元的执行吞吐量以及服务质量要求。
附图说明
图1给出了单GPU系统迁移到多GPU系统的示例图。
图2为一种数据中心系统的结构示意图。
图3为本申请实施例提供的一种数据传输方法的流程示意图。
图4为本申请实施例提供的另一种数据传输方法的流程示意图。
图5为本申请实施例提供的又一种数据传输方法的流程示意图。
图6为本申请实施例提供的一种数据传输装置的示意图。
图7为本申请实施例提供的另一种数据传输装置的示意图。
图8为本申请实施例提供的又一种数据传输装置的示意图。
图9为本申请实施例提供的一种数据处理系统的示意图。
图10为本申请实施例提供的一种计算设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。
为了便于理解,下文先对相关技术的演进过程进行介绍。
随着云计算、人工智能等技术的快速发展,图形处理器迅速成为数据中心系统中的标准计算设备,云计算供应商开始逐步在云上部署多GPU系统。基于CPU和GPU的异构系统广泛用于数据中心,可以为深度神经网络训练等计算密集型工作负载提供显着加速。
在基于云的多GPU系统中,一种典型的配置是为每个用户(租户)分配一定数量的专用GPU,同时虚拟化CPU、CPU与GPU之间的连接,以便多用户共享这些资源。其中,CPU和GPU之间的连接可以为总线连接,如高速串行计算机扩展总线(peripheral componentinterconnect express,PCI-Express,简称为PCIe)连接。后文以CPU与GPU之间的连接为PCIe连接为例进行介绍。
图1给出了单GPU系统迁移到多GPU系统的示例图。其中CPU可以将存储在内存中的数据传输至GPU,GPU可以将高带宽内存(high bandwidth memory,HBM)中存储的数据传输至CPU。
参见图1,CPU和GPU之间的PCIe带宽保持不变,将单个GPU系统迁移到多GPU架构,可能导致多个GPU在与CPU通信时的带宽竞争严重。在多GPU系统中,这种带宽竞争会导致严重的性能下降,尤其是对于内存绑定的工作负载。
例如,多租户异构系统可以由若干与PCIe或NVLink结构互连的GPU组成。通常,多个GPU共享一个主机CPU和一个PCIe总线。每两个GPU子系统可以连接到一个PCIe开关,该开关也连接到PCIe总线的根复合体。受上述CPU-GPU间或GPU间通信带宽的限制,多GPU系统无法随着GPU数量的增加,性能呈线性增长。
下文对CPU-GPU系统中带宽竞争导致性能下降的原因进行详细介绍。
通常情况下,从CPU传输至GPU的数据以轮询(round robin,RR)的方式进行调度。下文结合图2,对一种基于轮询调度策略的数据传输方法进行介绍。
参见图2,CPU202和GPU204可以通过PCIe交换机200实现数据通信,其中GPU204可以包括一个或多个GPU。交换机200可以包括调度单元210、映射单元220、虚拟通道(virtualchannel,VC)230、仲裁单元240以及路由单元250。在一些实施例中,虚拟通道230可以包括多个通道(图2中以4个虚拟通道为例),虚拟通道230和仲裁单元240之间可以通过多路复用器260连接。
在实际使用中,对于每个数据传输请求,直接内存访问(direct memory access,DMA)引擎(或由其他单元)可以将待传输数据分解为多个数据包,并将多个数据包缓存在网络接口中。其中,数据传输请求可以由不同的应用程序发起。
调度单元210可以将多个待传输的数据包进行排序,映射单元220可以按照调度单元210的排序结果将待传输的数据包映射到对应虚拟通道。仲裁单元240可以用于对多个虚拟通道中待传输的数据包进行仲裁,以确定数据包的传输顺序。路由单元250可以用于按照传输顺序将数据包传输到对应的GPU。
作为一种实现方式,虚拟通道230中每个通道具有相同的优先级。如果虚拟通道230中存在排队的数据包,则仲裁单元240可以在每个周期中按照轮询仲裁策略获取数据包。例如,仲裁单元240可以在一个周期获取一个虚拟通道中的一定数量的数据包,下一个周期获取另一个虚拟通道中的相同数据量的数据包。然后,仲裁单元240可以将获取到的数据包转发到路由单元250。最后,路由单元250可以将数据包定向到它们的目标GPU。
通常,发送到不同GPU的数据包可以映射到不同的虚拟通道,因此,基于轮询调度策略对每个虚拟通道进行调度,可以实现跨多个GPU流量流的公平性。也就是说,上述轮询调度方式有助于提高与GPU关联的数据传输请求之间的公平性。
由于典型的GPU工作负载遵循“复制执行”的模式,也就是说,在数据完全从CPU复制到GPU之前,GPU端的无法开始执行数据处理。因此,轮询调度方式会引入待传输数据中的关键数据(如关键内存包)的延迟,从而影响相应GPU执行的吞吐量。
例如,假设两个应用程序有相似数量的数据要传输到不同的GPU,基于轮询调度策略的PCIe连接将在一段时间内完成数据传输。该时间大约是其中一个应用程序的数据包单独传输的时间的两倍而不发生争用。因此,如果基于轮询调度策略,两个应用程序对应的GPU的数据传输几乎同时完成,也就是说,数据传输期间,GPU的计算管道均处于空闲状态,而GPU几乎同时开始执行数据处理。因此,依赖传统的基于轮询的调度策略会导致严重的带宽竞争,甚至可能停止多个GPU的执行。
由于多租户系统用户无法管理自己的数据移动,因此,需要调度不同GPU之间的PCIe流量,以提高整体系统吞吐量。相关技术提出了一种基于优先级的调度策略,该策略旨在重叠不同应用程序的数据传输和GPU的执行过程,以缓解上述带宽争用。
在上述示例中,两个应用程序有相似数量的数据要传输到不同的GPU,如果先完成其中一个应用程序的数据传输,GPU可以更早地开始执行该应用程序的内核。当该GPU正在执行应用程序时,PCIe连接可以为另一个应用程序传输数据,将该GPU的执行过程和另一个应用程序的数据传输过程重叠。理想情况下,这种方法可以有效地隐藏多个GPU之间的数据传输延迟,并在执行多次迭代时,有助于提高资源利用率。
基于上述分析,作为一种实现方式,不同的应用程序的数据可以对应不同的优先级,通过该调度策略,内存传输可以在不中断的情况下完成,从而使相关的GPU内核可以在传输完成后立即开始执行。低优先级的数据传输可以在高优先级的任务已经在执行时执行。由于数据中心工作负载经常表现出重复的“复制执行”模式,该调度策略还可以有效减少不同租户之间的数据传输干扰。
受网络中“小流量优先”思想的启发,作为另一种实现方式,待传输数据的优先级可以取决于与每个内存传输请求相关联的剩余待传输数据的大小。其中内存传输请求可以由不同的任务发起。例如,待传输数据较少的任务对应的数据被授予更高的优先级,这将减少GPU的停顿时间并实现更高的执行吞吐量。
但是,在一些情况下,基于优先级的调度策略可能会影响数据传输的性能。如果采用上述基于内存传输请求的剩余待传输数据的大小的数据包优先级策略,那么剩余待传输数据较大的数据包,如读写请求的数据包,可能被阻塞较长的时间,从而增加数据传输延时。
另外,在许多领域,一些应用程序可能有服务质量(quality of service,QoS)要求(例如,应用程序需要在截止日期内完成)。当这样的工作负载托管在多GPU架构中时,该应用程序的任务可能需要比其他任务更多的资源。仅基于优先级的调度策略,可能会增加该应用程序或任务的数据传输延时,从而导致该任务无法实现服务质量目标。
为了解决上述问题,本申请提供了一种数据传输方法,该方法通过在待传输数据的优先级的基础上考虑了数据的传输延时信息(如第一信息),有助于提高数据传输的性能。例如,在数据包优先级的基础上考虑了数据包的阻塞时间信息,有助于避免某些类型数据包的饥饿。又如,在数据包优先级的基础上考虑了数据传输请求的服务质量要求,有助于兼顾计算单元的执行吞吐量以及服务质量要求。
图3为本申请实施例提供的一种数据传输方法的流程示意图。方法300可以包括步骤S310至步骤S330。方法300可以用于控制单元与计算单元之间的数据传输,例如,方法300可以用于前文所述的数据中心系统中的控制单元(如CPU)和计算单元(如GPU)之间的数据传输。
在步骤S310中,从控制单元接收目标数据包。
控制单元可以为前文提到的CPU,也可以为其他类型的控制器。控制单元可以发出数据传输请求,以将数据传输至一个或多个计算单元。
数据传输请求可以由应用程序发起,例如,数据传输请求可以为应用程序响应于用户的操作或指令发起。作为一个示例,在前文所述的数据中心系统中,响应于数据中心系统的用户(或称为租户)的操作或者指令,该用户的应用程序可以发起数据传输请求。在一些情况下,应用程序可以生成多个任务,每个任务也可以发起数据传输请求。
如前文所述,可以将待传输数据分成多个数据包进行传输,该多个数据包可以为目标数据包。作为一种实现方式,从控制单元接收到目标数据包可以缓存在网络接口中。
在步骤S320中,确定目标数据包的优先级。
目标数据包的优先级的确定方式包括多种。
作为一种实现方式,目标数据包的优先级可以基于前文提到的剩余待传输数据的大小确定。也就是说,目标数据包的优先级可以取决于与每个数据传输请求相关联的剩余待传输数据的大小。例如,与数据传输请求相关联的剩余待传输数据越小,该数据传输请求包括的目标数据包的优先级越高。反之,与数据传输请求相关联的剩余待传输数据越大,该数据传输请求包括的目标数据包的优先级越低。
作为另一种实现方式,目标数据包的优先级可以与数据包的类型相关联。例如,可以将数据包的类型分为请求数据包、响应数据包、消息数据包以及中断数据包等类型。其中,请求数据包可以包括读请求数据包和写请求数据包。
由于当控制单元发起请求(如数据传输请求)时,只有接收到计算单元的针对该请求的响应时,才能开始执行相应的操作(如进行数据传输)。因此,授予响应数据包更高的优先级,有助于提高请求的完成速度。作为一个示例,可以将消息数据包和中断数据包授予较高的优先级,有助于提高控制单元的响应速度。
作为又一种实现方式,目标数据包的类型还可以与目标数据包对应的用户关联。例如,前文提到的数据中心系统包括多个用户,每个用户可能具有不同的优先级。优先级更高的用户对应的目标数据包可以具有更高的优先级,也就是说,优先级更高的用户发起的数据传输请求中包括的目标数据包可以具有更高的优先级。在实际使用中,可以根据目标数据包对应的用户ID信息对目标数据包进行分类,从而确定目标数据包的优先级。
在步骤S330中,基于目标数据包的优先级以及第一信息,将目标数据包传输至一个或多个计算单元。
第一信息可以包括目标数据包的阻塞时间和/或目标数据包对应的服务质量要求,也可以包括其他可以反映数据包传输延迟的信息。
前文提到,基于目标数据包的优先级进行数据传输,可以提高计算单元的执行吞吐量,降低计算单元的执行时延,因此,通常可以先按照目标数据包的优先级进行数据传输。在上述数据传输过程中,可以根据第一信息对数据传输延时进行判断。如果数据传输延迟超过预设条件,可以基于第一信息对目标数据包的传输策略进行调整,以提高数据传输性能。
如果第一信息包括目标数据包的阻塞时间,该阻塞时间即为数据传输延时,则当阻塞时间超过预设值(如第一阈值)时,可以对目标数据包的传输策略进行调整。如果第一信息包括目标数据包对应的服务质量要求,当数据传输延迟超过预设条件时,可以对目标数据包的传输策略进行调整。也就是说,发起数据传输请求的任务具有服务质量要求(如任务完成时限),该数据传输请求用于请求目标数据包的传输,当目标数据包的传输时延可能会导致该任务无法满足其服务质量要求(如导致该任务无法在规定时间内完成)时,可以对目标数据包的传输策略进行调整。
目标数据包的传输策略的调整方式包括多种。例如,调整后的传输策略可以包括立即传输目标数据包,也就是说,当目标数据包的阻塞时间超过预设值时,可以立即传输目标数据包,以减少目标数据包的传输延时;或者,当按照优先级策略传输目标数据包无法满足服务质量要求时,可以立即传输目标数据包,以促使该任务的服务质量要求的达成。又如,目标数据包的传输策略的调整可以包括将目标数据包的优先级从第一优先级调整为第二优先级,其中,第二优先级高于第一优先级。
在实际使用中,控制单元与多个计算单元之间可以包括多个数据传输通道,多个数据传输通道可以同时进行数据传输。其中,多个数据传输通道可以共用控制单元与多个计算单元之间的带宽,每个数据传输通道可以具有相同的带宽,也可以具有不同的带宽。因此,目标数据包的传输策略的调整还可以包括调整目标数据包的传输带宽,或者说调整用于传输目标数据包的数据传输通道的带宽,如为目标数据包分配更多的带宽额度。
在一些其他实施例中,在数据传输之前,可以基于数据包的优先级以及第一信息确定数据包的传输策略。例如,可以基于数据包的优先级以及第一信息对目标数据包进行排序,然后按照该顺序传输目标数据包。又如,可以基于目标数据包对应的服务质量要求,确定目标数据包的传输带宽。又如,可以基于目标数据包的优先级以及目标数据包对应的服务质量要求,确定目标数据包的传输带宽。
需要说明的是,上述数据传输策略可以单独使用,也可以相互结合使用,本申请对此不做限定。另外,上述第一阈值可以根据实际使用需求确定。
在本申请实施例中,在基于待传输数据优先级的基础上,考虑了数据的传输延时,可以将目标数据包从控制单元传输到一个或多个计算单元。该方法能够兼顾计算单元的执行吞吐量以及数据包的传输延时,从而提高数据的传输性能。
服务质量要求可以包括任务的完成时限,即完成该任务的时间要求(如,要求应用程序在截止日期内完成)。其中,完成该任务的时间虑端到端延迟,也就是说该时间可以包括该任务的目标数据包的传输时间以及计算单元对目标数据包的处理时间。作为一种实现方式,可以基于任务的服务质量要求确定该任务的数据传输的时间要求(也可以称为部分服务质量要求目标)。如果第一任务包括的目标数据包的剩余传输时间无法达到部分服务质量要求目标,则可能无法满足该任务的服务质量要求。因此,根据第一任务的部分服务质量要求目标是否满足,可以调整目标数据包的传输策略。
作为一种实现方式,可以基于当前的数据传输策略,对第一任务的剩余传输时间进行预测,获取其剩余传输时间的预测值。例如,根据前文所述的目标数据包的优先级,可以确定第一任务的剩余传输时间的预测值。又如,可以确定第一任务的最少剩余传输时间的预测值。最少剩余传输时间的预测值可以为将所有带宽全部用来传输目标数据包所需要的最少时间。最少剩余传输时间的预测值可以通过如下公式获得:T=BR/BW。其中,T为最少还剩余传输时间的预测值,BR为目标数据包的字节数,也就是剩余要传输的数据的字节数,BW是控制单元与一个或多个计算单元之间的传输总带宽。
根据第一任务的剩余传输时间的预测值或最少剩余传输时间的预测值,可以判断第一任务的部分服务质量要求目标是否能满足。响应于预测值不能满足部分服务质量要求目标或者预测值与部分服务质量要求目标接近,则将目标数据包传输至一个或多个计算单元。也就是说,如果预测值不能满足部分服务质量要求目标或者预测值与部分服务质量要求目标接近,立即将目标数据包传输至一个或多个计算单元。例如,可以将第一任务的目标数据包的优先级调到最高级别,以尝试满足服务质量要求。
如前文所述,完成第一任务的时间通常可以包括该任务的目标数据包的传输时间以及计算单元对目标数据包的处理时间。作为一种实现方式,可以通过估计计算单元对目标数据包的处理时间,以确定前文提到的部分服务质量要求目标。其中,计算单元对目标数据包的处理时间可以通过测试方式运行同一工作负载的多次迭代,或者通过计算的方式预先得到。
为了进一步地提高数据的传输性能,可以基于预测值以及目标数据包对应的服务质量要求,确定目标数据包对应的传输带宽。例如,如果目标数据包对应的服务质量要求目标与目标数据包对应的预测值差值较大,也就是说,第一任务大概率能够满足其服务质量要求,则可以将目标数据包的带宽额度调低;如果目标数据包对应的服务质量要求目标与目标数据包对应的预测值差值较小,则可以将目标数据包的带宽额度调高。
基于上述传输带宽,有助于将目标数据包在部分服务质量要求的时间内传输至一个或多个计算单元,从而有助于实现第一任务的服务质量要求。
重新参见图2,目标数据包通常会被分配至虚拟通道中(目标数据包所在的虚拟通道可以称为目标虚拟通道)。在实际使用中,不同的虚拟通道可以对应相同的、或不同的传输带宽。
作为一种实现方式,可以基于目标数据包对应的服务质量要求,或者说部分服务质量要求目标,确定目标虚拟通道对应的传输带宽。例如,如果目标数据包对应的服务质量要求截止时间更早,则可以为其对应的目标虚拟通道分配更高的传输带宽额度;如果目标数据包对应的服务质量要求截止时间更晚,则可以为其对应的目标虚拟通道分配更低的传输带宽额度。
作为另一种实现方式,基于预测值以及目标数据包对应的服务质量要求,可以确定所述目虚拟通道对应的传输带宽。例如,如果目标数据包对应的服务质量要求目标与目标数据包对应的预测值差值较大,也就是说,第一任务大概率能够满足其服务质量要求,则可以将目标虚拟通道的带宽额度调低;如果目标数据包对应的服务质量要求目标与目标数据包对应的预测值差值较小,则可以将目标虚拟通道的带宽额度调高。
作为又一种实现方式,基于服务质量要求调整带宽的过程中,可以先基于服务质量要求计算目标数据包对应的权重和/或得分,再基于目标数据包的权重和/或得分确定目标数据包的传输带宽。其中,目标数据包对应的权重和/或得分可以仅与目标数据包对应的服务质量要求关联,也可以与目标数据包对应的服务质量要求以及目标数据包的优先级关联。
通过对目标虚拟通道的传输带宽进行调整,有助于实现目标数据包对应的服务质量要求。
在某些极端情况下,基于优先级进行数据包的传输,可能会使读写请求数据包发生饥饿。例如,基于数据包的类别确定目标数据包的优先级时,由于读写请求数据包的优先级较低,在一些情况下,读写请求包可能会发生阻塞。因此,可以为目标数据包设置第一阈值(例如阻塞周期数X),以提高数据传输性能。也就是说,当目标数据包阻塞周期大于或等于X时,调整目标数据包的传输策略,如立即传输该目标数据包。作为一个示例,可以为每个虚拟通道设置第一阈值,如果目标数据包所在的虚拟通道被阻塞的时间超过第一阈值,则可以立即处理该数据包以免发生饥饿。
在上述方法中,将目标数据包分配至虚拟通道的方法包括多种。例如,基于数据包的优先级,可以实现目标数据包和虚拟通道的映射。其中,可以采用前文所述的方法中的一种或多种确定数据包的优先级,为了简洁,此处不再赘述。下文对目标数据包和虚拟通道的映射方式进行介绍。
通常,数据传输通道,或者说数据传输链路中的数据包可以包括目标计算单元的标识(如IDD)和数据包类型(IDT)。目标数据包的流量类别(TC)可以基于目标计算单元的标识和数据包类型确定,如可以通过以下公式确定。
TC=NT×IDD+IDT,其中,NT为所述目标数据包的数量。
作为一种实现方式,可以根据数据包的流量类别实现数据包和虚拟通道VC的映射,例如,目标数据包与虚拟通道的映射关系满足如下公式。
VC=TC mod NVC,其中,NVC为虚拟通道的数量。
当调整数据传输策略时,可以更新数据包与虚拟通道的映射关系。
需要说明的是,虽然TC可以由用户定义,但为了支持透明的多租户管理,在本申请实施例中,可以为每个内存传输命令分配TC,也就是说,数据传输请求对应的TC是全局TC。
在一些实现方式中,为了基于优先级进行数据传输,可以为不同的虚拟通道设置不同的优先级。相应地,可以基于数据包的优先级与虚拟通道的优先级实现数据包与虚拟通道的映射。
下文将结合图4至图7,对本申请提供的数据传输方法的示例进行介绍。
参见图4,方法400可以包括步骤S410至S430。作为一种实现方式,方法400中的步骤S410至S430可以由图2中所示的调度单元执行。
在步骤S410中,收集待传输的数据。
响应于控制单元发起的数据传输请求,需要将待传输的数据发送给一个或多个计算单元。通常,待传输的数据包括多个目标数据包。
在步骤S420中,对待传输的数据进行分类。
作为一种实现方式,数据包类型可以包括:1)请求数据包(IDT=0,可以包括读取数据包和写入数据包);2)响应数据包(IDT=1,读取响应数据包);3)消息数据包(IDT=2);4)中断类型数据包(IDT=3)。按照上述类型对待传输的数据包进行分类。
在步骤S430中,对待传输的数据进行排序。
首先,可以按照数据包的类型确定目标数据包的优先级,从而确定目标数据包的排序。作为一个示例,中断类型数据包、消息数据包和响应数据包可以具有更高的优先级;请求数据包可以具有较低的优先级。
其次,在上述数据包优先级的基础上,可以结合数据的剩余传输大小确定数据包的排序。受网络中“小流量优先”思想的启发,传输数据较少的任务被授予更高的优先级,这将减少计算单元的停顿时间并实现更高的执行吞吐量。例如,可以在调度单元中管理剩余数据传输大小列表,以跟踪每个任务的剩余数据。当接收到新的内存传输命令时,调度单元通过对每个任务的剩余数据大小进行更新,进而更新数据包的排序。
当接收到新的内存传输命令时,调度单元可以基于每个任务的剩余数据大小更新数据包的排序。
在步骤S410至S430的执行过程中,当读写请求数据包发生饥饿,也就是说,如果读写请求包(目标数据包)被阻塞的周期超过第一阈值,则立即处理该目标数据包以避免饥饿。
通过方法400,可以重叠不同应用程序的数据传输过程和计算单元的执行过程,以缓解带宽的竞争,与此同时,通过对阻塞数据包的处理,能够降低数据包延迟,有效改善网络拥塞。
参见图5,方法500可以包括步骤S510至S560。作为一种实现方式,方法500中的步骤S510至S550可以由图2中所示的调度单元执行,步骤S560可以由图2中所述的映射单元执行。
在步骤S510中,收集待传输的数据。
响应于控制单元发起的数据传输请求,需要将待传输的数据发送给一个或多个计算单元。通常,待传输的数据包括多个目标数据包。
在步骤S520中,对待传输的数据进行分类。
作为一种实现方式,数据包类型可以包括:1)请求数据包(IDT=0,可以包括读取数据包和写入数据包);2)响应数据包(IDT=1,读取响应数据包);3)消息数据包(IDT=2);4)中断类型数据包(IDT=3);5)租户ID信息(IDR)。按照上述类型对待传输的数据包进行分类。
在步骤S530中,对待传输的数据进行排序。
作为一种实现方式,可以基于数据包的优先级对待传输的数据进行排序。例如,可以按照数据包的类型确定目标数据包的优先级,从而确定目标数据包的排序。作为一个示例,中断类型数据包、消息数据包和响应数据包可以具有更高的优先级;请求数据包可以具有较低的优先级。作为另一个示例,服务质量要求高的租户对应的数据包具有更高的优先级,反之,服务质量要求低的租户对应的数据包具有较低的优先级。
作为另一种实现方式,数据包的优先级可以基于数据的剩余传输大小确定,进而确定数据包的排序。受网络中“小流量优先”思想的启发,传输数据较少的任务被授予更高的优先级,这将减少计算单元的停顿时间并实现更高的执行吞吐量。例如,可以在调度单元中管理剩余数据传输大小列表,以跟踪每个任务的剩余数据。当接收到新的内存传输命令时,调度单元通过对每个任务的剩余数据大小进行更新,进而更新数据包的排序。数据包的优先级也可以基于数据的剩余传输大小以及数据包对应的服务质量要求确定,也就是说,目标数据包的优先级取决于租户优先级与第一任务发出的内存传输请求相关联的剩余数据传输的大小。
基于优先级的调度策略可以提高数据传输总线以及计算单元的利用率,从而提高系统的吞吐量。
在步骤S540中,获取目标数据包对应的预测值。
为了兼顾计算单元的吞吐量以及服务质量要求,对于具有服务质量要求的任务,可以优先实现服务质量目标。在可以实现服务质量目标的基础上,尝试最大化全局吞吐量。首先,可以为每个工作负载的延迟定义服务质量目标。由于服务质量要求考虑端到端延迟,也就是说,服务质量要求中的截止时间包括计算单元的执行时间。因此,基于服务质量要求可以为每个任务确定部分服务质量目标(即目标数据包的数据传输时间的目标)。
为了预测每个任务的数据传输请求是否能够及时完成,首先可以跟踪每个任务的每个命令的传输时间;其次,可以根据收集的该任务的剩余数据的大小,获取目标数据包的预测值。例如,可以基于前文提到的最少剩余传输时间的计算公式获取目标数据包的预测值。
基于目标数据包的预测值,可以判断目标数据包对应的服务质量要求目标是否能够实现,也就是说,可以判断目标数据包对应的数据传输请求是否可以在服务质量要求的时间内完成。
如果目标数据包对应的数据传输请求不能或者有可能不能在服务质量要求的时间内完成,则跳转至步骤S550;如果目标数据包对应的数据传输请求可以在服务质量要求的时间内完成,则按照数据包的优先级进行数据传输。
在步骤S550中,调整目标数据包的优先级。
例如,可以将目标数据包的优先级调到最高,即立即执行目标数据包的传输,也可以将目标数据包的优先级调高。
在步骤S560中,数据包与虚拟通道的重映射。
基于目标数据包更新后的优先级,将目标数据包重映射到目标虚拟通道。例如,如果虚拟通道具有不同的优先级,可以基于目标数据包的优先级和虚拟通道的优先级进行映射。
方法500可以实现混合优先级的数据包调度策略,通过该方法,可以在扩展网络带宽,改善网络拥塞的基础上,提升的服务质量。
参见图6,数据传输装置600可以用于实现前文所述的方法400。装置600可以包括队列分配单元610、虚拟通道620以及队列调度单元630。另外,虚拟通道620可以通过多路选择器640与队列调度单元630连接。在一些实施例中,装置600可以为由缓冲区写入、虚拟通道分配、交叉仲裁和交叉传送阶段组成的数据传输装置。
队列分配单元610可以根据数据包的目标计算单元将待传输数据分成4个数据传输队列(以4个计算单元为例,分别为队列0至队列3),每个队列中的数据包可以按照上述步骤S430中的方法进行排序。
虚拟通道620与数据传输队列相连,用于实现数据传输队列中的数据包与虚拟通道之间的映射。作为一种实现方式,每个数据传输队列可以对应3个虚拟通道,每个虚拟通道还可以具有不同的优先级。例如,队列0对应的虚拟通道0、队列1对应的虚拟通道1、队列2对应的虚拟通道2、队列3对应的虚拟通道0分别具有较高的优先级,也就是说,每个队列对应的虚拟通道中,图6中实线箭头所示的虚拟通道具有较高的优先级,虚线箭头所示的虚拟通道优先级较低,也就是说实现箭头所示的虚拟通道的优先级高于虚线箭头所示的虚拟通道的优先级。
队列调度单元630可以基于数据包的顺序以及虚拟通道的优先级实现目标数据包的调度。队列调度单元630可以输出数据传输队列,例如,可以将该数据传输队列发送给路由单元,从而转发至目标计算单元。
在上述虚拟通道分配阶段,可以采用请求响应的方式来防止未经授权的高优先级数据包阻碍低优先级数据包的通信。通常,存储在虚拟通道中的高优先级数据包会被优先通过虚拟通道分配单元,并将请求(如图6中的req0~req3,该请求对应的响应分别为ack0~ack3)发送到交叉仲裁。当高优先级数据包无法通过交叉仲裁时,虚拟通道分配单元很快可以得到交叉仲裁发送的仲裁拦截信号,基于此,可以使低优先级数据包通过虚拟通道分配单元。
参见图7,数据传输装置700可以用于实现前文所述的方法500。装置700可以包括队列分配单元710、虚拟通道720、权重计算单元730以及队列调度单元740。另外,虚拟通道720可以通过多路选择器750与权重计算单元730连接。在一些实施例中,装置700可以为由缓冲区写入、虚拟通道分配、交叉仲裁和交叉传送阶段组成的数据传输装置。
队列分配单元710可以根据数据包的目标计算单元将待传输数据分成4个数据传输队列(以4个计算单元为例,分别为队列0至队列3),每个队列中的数据包可以按照上述步骤S530中的方法进行排序。
虚拟通道720与数据传输队列相连,用于实现数据传输队列中的数据包与虚拟通道之间的映射。作为一种实现方式,每个数据传输队列可以对应3个虚拟通道,每个虚拟通道还可以具有不同的优先级。例如,队列0对应的虚拟通道0、队列1对应的虚拟通道1、队列2对应的虚拟通道2、队列3对应的虚拟通道0分别具有较高的优先级,也就是说,每个队列对应的虚拟通道中,图7中实线箭头所示的虚拟通道具有较高的优先级,虚线箭头所示的虚拟通道优先级较低,也就是说实现箭头所示的虚拟通道的优先级高于虚线箭头所示的虚拟通道的优先级。
权重计算单元730可以结合数据包的排序、虚拟通道的优先级与任务的服务质量要求,计算目标数据包的权重,从而目标数据包所在的虚拟通道的得分。
队列调度单元740虚拟通道的得分,可以对虚拟通道对应的传输带宽进行分配,如得分越高的虚拟通道,分配的带宽越大。同时,队列调度单元可以基于分配的带宽将目标数据包转发给路由单元,从而转发至目标计算单元。
与装置600类似,在上述虚拟通道分配阶段,可以采用请求响应的方式来防止未经授权的高优先级数据包阻碍低优先级数据包的通信。为了简洁,此处不再赘述。
目标数据包从不同的输入端口通过虚拟通道分配单元后,将生成交叉仲裁请求。与传统的交叉仲裁相比,通过评分交叉仲裁可以并行处理优先级仲裁与循环仲裁,实现多级仲裁的优化。
每个方向的输入端口都分配了一个特定的编号,分别对应第n个请求包的得分、包的优先级、输入端口总数、上次的循环仲裁结果和当前请求的第n个输入端口。根据数据包的相关信息可以确定数据包的传输顺序,例如,拥有最高分数的数据包将被允许传输到下一级逻辑单元。
图8为本申请实施例提供的又一种数据传输装置的示意图。装置800可以包括接收单元810,第一确定单元820以及传输单元830。
接收单元810,用于从控制单元接收目标数据包。
第一确定单元820,用于确定所述目标数据包的优先级。
传输单元830,用于基于所述目标数据包的优先级以及第一信息,将所述目标数据包传输至一个或多个计算单元,其中,所述第一信息包括所述目标数据包的阻塞时间和/或所述目标数据包对应的服务质量要求。
作为一种可能的实现方式,第一任务包括多个所述目标数据包,所述传输单元用于:基于所述目标数据包的优先级,确定所述第一任务的剩余传输时间的预测值;响应于所述预测值无法满足所述第一任务的服务质量要求,将所述目标数据包传输至所述一个或多个计算单元。
作为一种可能的实现方式,所述传输单元用于:基于所述预测值以及所述目标数据包对应的服务质量要求,确定所述目标数据包对应的传输带宽;根据所述传输带宽,将所述目标数据包传输至所述一个或多个计算单元。
作为一种可能的实现方式,所述传输单元用于:将所述目标数据包分配至目标虚拟通道;基于所述目标数据包对应的服务质量要求,确定所述目标虚拟通道对应的传输带宽;根据所述传输带宽,将所述目标数据包传输至所述一个或多个计算单元。
作为一种可能的实现方式,所述传输单元用于:响应于所述目标数据包的阻塞时间大于或等于第一阈值,将所述目标数据包传输至所述一个或多个计算单元。
作为一种可能的实现方式,所述目标数据包的优先级与数据包的类型关联,所述数据包的类型包括以下中的一种或多种:请求数据包,响应数据包,消息数据包以及中断数据包。
作为一种可能的实现方式,所述目标数据包的类型与所述目标数据包对应的用户的ID信息关联。
作为一种可能的实现方式,所述将所述目标数据包传输至所述一个或多个计算单元之前,所述装置还包括:第二确定单元,用于基于所述目标数据包的流量类别TC确定所述目标数据包与所述目标虚拟通道VC的映射关系:VC=TC mod NVC,其中TC=NT×IDD+IDT,NT为所述目标数据包的数量,IDD为所述目标数据包对应的计算单元的标识,IDT为所述目标数据包的类型,mod为求余数函数,NVC为所述目标虚拟通道的数量。
图9为本申请实施例提供的一种数据处理系统的示意图。系统900可以包括控制单元910,一个或多个计算单元920以及数据传输装置800。例如,系统900可以为前文提到的数据中心系统,控制单元可以为CPU,计算单元可以为GPU。
图10为本申请实施例提供的一种计算设备的结构示意图。图10所示的计算设备1000可以包括存储器1010和处理器1020。在一些实施例中,图10所示的计算设备1000还可以包括输入/输出接口1030。存储器1010、处理器1020和输入/输出接口1030通过内部连接通路相连,该存储器1010用于存储指令,该处理器1020用于执行该存储器1010存储的指令,以执行前文任一实施例描述的方法。
应理解,在本申请实施例中,该处理器1020可以采用通用的CPU,微处理器,应用专用集成电路(application specific integrated circuit,ASIC),或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例所提供的技术方案。
该存储器1010可以包括只读存储器和随机存取存储器,并向处理器1020提供指令和数据。处理器1020的一部分还可以包括非易失性随机存取存储器。例如,处理器1020还可以存储设备类型的信息。
在实现过程中,上述方法的各步骤可以通过处理器1020中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1010,处理器1020读取存储器1010中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
应理解,装置实施例的描述与方法实施例的描述相互对应,因此,未详细描述的部分可以参见前面方法实施例。
应理解,本申请实施例中,该处理器可以为中央处理单元,该处理器还可以是其他通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(fieldprogrammable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本申请实施例还提供一种计算机可读存储介质,用于存储程序。该程序了可以使得计算机执行本申请各个实施例中的方法。
本申请实施例还提供一种计算机程序产品。该计算机程序产品包括程序。该计算机程序可以使得计算机执行本申请各个实施例中的方法。
本申请实施例还提供一种计算机程序。该计算机程序可以使得计算机执行本申请各个实施例中的方法。
应理解,在本申请实施例中,“与A相应的B”表示B与A相关联,根据A可以确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber Line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够读取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,数字通用光盘(digital video disc,DVD))或者半导体介质(例如,固态硬盘(solid state disk,SSD))等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (19)
1.一种数据传输方法,其特征在于,包括:
从控制单元接收目标数据包;
确定所述目标数据包的优先级;
基于所述目标数据包的优先级以及第一信息,将所述目标数据包传输至一个或多个计算单元;
其中,所述第一信息包括所述目标数据包的阻塞时间和/或所述目标数据包对应的服务质量要求。
2.根据权利要求1所述的方法,其特征在于,第一任务包括多个所述目标数据包,所述基于所述目标数据包的优先级以及第一信息,将所述目标数据包传输至所述一个或多个计算单元,包括:
基于所述目标数据包的优先级,确定所述第一任务的剩余传输时间的预测值;
响应于所述预测值无法满足所述第一任务的服务质量要求,将所述目标数据包传输至所述一个或多个计算单元。
3.根据权利要求2所述的方法,其特征在于,所述基于所述目标数据包的优先级以及第一信息,将所述目标数据包传输至所述一个或多个计算单元,包括:
基于所述预测值以及所述目标数据包对应的服务质量要求,确定所述目标数据包对应的传输带宽;
根据所述传输带宽,将所述目标数据包传输至所述一个或多个计算单元。
4.根据权利要求1所述的方法,其特征在于,所述基于所述目标数据包的优先级以及第一信息,将所述目标数据包传输至所述一个或多个计算单元,包括:
将所述目标数据包分配至目标虚拟通道;
基于所述目标数据包对应的服务质量要求,确定所述目标虚拟通道对应的传输带宽;
根据所述传输带宽,将所述目标数据包传输至所述一个或多个计算单元。
5.根据权利要求1所述的方法,其特征在于,基于所述目标数据包的优先级以及第一信息,将所述目标数据包传输至所述一个或多个计算单元,包括:
响应于所述目标数据包的阻塞时间大于或等于第一阈值,将所述目标数据包传输至所述一个或多个计算单元。
6.根据权利要求4或5所述的方法,其特征在于,所述目标数据包的优先级与数据包的类型关联,所述数据包的类型包括以下中的一种或多种:请求数据包,响应数据包,消息数据包以及中断数据包。
7.根据权利要求6所述的方法,其特征在于,所述目标数据包的类型与所述目标数据包对应的用户关联。
8.根据权利要求7所述的方法,其特征在于,在所述将所述目标数据包传输至所述一个或多个计算单元之前,所述方法还包括:
基于所述目标数据包的流量类别TC确定所述目标数据包与所述目标虚拟通道VC的映射关系:VC=TC mod NVC,其中TC=NT×IDD+IDT,NT为所述目标数据包的数量,IDD为所述目标数据包对应的计算单元的标识,IDT为所述目标数据包的类型,mod为求余数函数,NVC为所述虚拟通道的数量。
9.一种数据传输装置,其特征在于,包括:
接收单元,用于从控制单元接收目标数据包;
第一确定单元,用于确定所述目标数据包的优先级;
传输单元,用于基于所述目标数据包的优先级以及第一信息,将所述目标数据包传输至一个或多个计算单元;
其中,所述第一信息包括所述目标数据包的阻塞时间和/或所述目标数据包对应的服务质量要求。
10.根据权利要求9所述的装置,其特征在于,第一任务包括多个所述目标数据包,所述传输单元用于:
基于所述目标数据包的优先级,确定所述第一任务的剩余传输时间的预测值;
响应于所述预测值无法满足所述第一任务的服务质量要求,将所述目标数据包传输至所述一个或多个计算单元。
11.根据权利要求10所述的装置,其特征在于,所述传输单元用于:
基于所述预测值以及所述目标数据包对应的服务质量要求,确定所述目标数据包对应的传输带宽;
根据所述传输带宽,将所述目标数据包传输至所述一个或多个计算单元。
12.根据权利要求9所述的装置,其特征在于,所述传输单元用于:
将所述目标数据包分配至目标虚拟通道;
基于所述目标数据包对应的服务质量要求,确定所述目标虚拟通道对应的传输带宽;
根据所述传输带宽,将所述目标数据包传输至所述一个或多个计算单元。
13.根据权利要求9所述的装置,其特征在于,所述传输单元用于:
响应于所述目标数据包的阻塞时间大于或等于第一阈值,将所述目标数据包传输至所述一个或多个计算单元。
14.根据权利要求12或13所述的装置,其特征在于,所述目标数据包的优先级与数据包的类型关联,所述数据包的类型包括以下中的一种或多种:请求数据包,响应数据包,消息数据包以及中断数据包。
15.根据权利要求14所述的装置,其特征在于,所述目标数据包的类型与所述目标数据包对应的用户关联。
16.根据权利要求15所述的装置,其特征在于,在所述将所述目标数据包传输至所述一个或多个计算单元之前,所述装置还包括:
第二确定单元,用于基于所述目标数据包的流量类别TC确定所述目标数据包与所述目标虚拟通道VC的映射关系:VC=TC mod NVC,其中TC=NT×IDD+IDT,NT为所述目标数据包的数量,IDD为所述目标数据包对应的计算单元的标识,IDT为所述目标数据包的类型,mod为求余数函数,NVC为所述虚拟通道的数量。
17.一种数据处理系统,其特征在于,包括:
控制单元;
一个或多个计算单元;以及
如权利要求9-16中任一项所述的数据传输装置。
18.一种计算设备,其特征在于,包括存储器及处理器,所述存储器中存储有可执行代码,所述处理器用于执行所述可执行代码,以实现如权利要求1-8中任一项中所述的方法。
19.一种计算机可读存储介质,其特征在于,其上存储有用于执行如权利要求1-8中任一项所述的方法的代码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310429178.7A CN116664377A (zh) | 2023-04-20 | 2023-04-20 | 数据传输方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310429178.7A CN116664377A (zh) | 2023-04-20 | 2023-04-20 | 数据传输方法及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116664377A true CN116664377A (zh) | 2023-08-29 |
Family
ID=87725055
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310429178.7A Pending CN116664377A (zh) | 2023-04-20 | 2023-04-20 | 数据传输方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116664377A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117896776A (zh) * | 2024-03-11 | 2024-04-16 | 深圳市兴恺科技有限公司 | 无线自组网的数据自动重传方法及相关装置 |
CN117914775A (zh) * | 2024-03-20 | 2024-04-19 | 苏州元脑智能科技有限公司 | 面向异构计算的高带宽数据传输方法、cpu及系统 |
-
2023
- 2023-04-20 CN CN202310429178.7A patent/CN116664377A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117896776A (zh) * | 2024-03-11 | 2024-04-16 | 深圳市兴恺科技有限公司 | 无线自组网的数据自动重传方法及相关装置 |
CN117896776B (zh) * | 2024-03-11 | 2024-05-28 | 深圳市兴恺科技有限公司 | 无线自组网的数据自动重传方法及相关装置 |
CN117914775A (zh) * | 2024-03-20 | 2024-04-19 | 苏州元脑智能科技有限公司 | 面向异构计算的高带宽数据传输方法、cpu及系统 |
CN117914775B (zh) * | 2024-03-20 | 2024-06-25 | 苏州元脑智能科技有限公司 | 面向异构计算的高带宽数据传输方法、cpu及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3311288B1 (en) | Shared memory controller and method of using same | |
CN107852413B (zh) | 用于将网络分组处理卸载到gpu的网络设备、方法与存储介质 | |
CN116664377A (zh) | 数据传输方法及相关装置 | |
CN109697122B (zh) | 任务处理方法、设备及计算机存储介质 | |
US9019826B2 (en) | Hierarchical allocation of network bandwidth for quality of service | |
US20220261367A1 (en) | Persistent kernel for graphics processing unit direct memory access network packet processing | |
JP4696024B2 (ja) | データ処理装置用相互接続論理 | |
US11093352B2 (en) | Fault management in NVMe systems | |
JP5498505B2 (ja) | データバースト間の競合の解決 | |
US20120311597A1 (en) | Method and system for infiniband host channel adaptor quality of service | |
CN103810133A (zh) | 动态共享读缓冲器管理 | |
JP2014509427A (ja) | Pciエクスプレス・マルチプル・ルートi/o仮想化環境における低待ち時間の優先順位付け | |
CN112311702B (zh) | Fc交换机调度方法、装置、电子设备及存储介质 | |
US10579416B2 (en) | Thread interrupt offload re-prioritization | |
CN107003962B (zh) | 保持计算系统中高速缓存一致性的方法、装置和计算系统 | |
US20180183733A1 (en) | Receive buffer architecture method and apparatus | |
US20180108109A1 (en) | Gpu resource allocation method and system | |
CN109729113B (zh) | 管理专用处理资源的方法、服务器系统和计算机程序产品 | |
US7007138B2 (en) | Apparatus, method, and computer program for resource request arbitration | |
US11343176B2 (en) | Interconnect address based QoS regulation | |
CN110519180B (zh) | 网卡虚拟化队列调度方法及系统 | |
US10705985B1 (en) | Integrated circuit with rate limiting | |
US10169260B2 (en) | Multiprocessor cache buffer management | |
US11113101B2 (en) | Method and apparatus for scheduling arbitration among a plurality of service requestors | |
CN113835611A (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 |