本文作者:kaifamei

算力卸载方法、装置、电子设备和存储介质

更新时间:2025-01-11 17:39:42 0条评论

算力卸载方法、装置、电子设备和存储介质



1.本发明涉及计算机技术领域,尤其涉及一种算力卸载方法、装置、电子设备和存储介质。


背景技术:



2.随着神经网络、深度学习、云计算的飞速发展,算网进一步融合,算力资源需要在网络中尽可能实现互联互通,以中央处理器(全称central processing unit,简称cpu)为代表的传统算力资源已经远远不够满足如此庞大的算力需求。因此,亟需一种能够节省中央处理器算力开销的算力卸载方法。


技术实现要素:



3.本发明提供一种算力卸载方法、装置、电子设备和存储介质,实现节省中央处理器算力开销。
4.本发明提供一种算力卸载方法,应用于控制主服务器,所述方法包括:控制驱动模块向智能网卡发送连接信息;控制所述智能网卡基于所述连接信息与所述驱动模块进行数据交互,以绕过中央处理器的控制实现所述智能网卡与所述驱动模块进行数据交互;控制容器管理器确定容器创建脚本;控制所述容器管理器基于所述容器创建脚本,将容器创建在异构硬件上,以实现所述中央处理器的算力资源分配;其中,所述容器创建脚本包括所述容器的参数配置和所述容器在所述异构硬件上的创建位置信息;所述异构硬件表征与所述中央处理器结构相异的硬件。
5.根据本发明提供的一种算力卸载方法,所述控制所述智能网卡基于所述连接信息与所述驱动模块进行数据交互,包括:控制所述智能网卡基于所述连接信息完成与所述驱动模块的通信连接,并控制所述驱动模块通过轮询模式基于数据包与所述智能网卡进行数据交互。
6.根据本发明提供的一种算力卸载方法,所述方法还包括:控制所述容器管理器确定所述容器创建脚本不包括所述创建位置信息时,控制主调度器根据当前各个异构硬件的算力资源,查所述算力资源小于设定阈值的目标异构硬件,并将所述容器创建在所述目标异构硬件上。
7.本发明还提供一种算力卸载方法,应用于控制可编程交换机,所述方法包括:接收智能网卡发送的数据包;所述数据包是所述智能网卡与驱动模块进行数据交互得到的;所述智能网卡和所述驱动模块分别设于主服务器上;发送所述数据包至多个工作服务器进行分布式训练;在所述多个工作服务器的分布式训练中进行参数处理。
8.根据本发明提供的一种算力卸载方法,所述在所述多个工作服务器的分布式训练
中进行参数处理,包括:存储所述多个工作服务器在分布式训练中的返回参数;和/或,基于所述多个工作服务器在分布式训练中的返回参数进行聚合计算。
9.根据本发明提供的一种算力卸载方法,所述方法还包括:向多个工作服务器发送数据包过程中,获取所述数据包中的带内网络遥测信息,并将所述带内网络遥测信息发送至第三服务器,以便所述第三服务器基于所述带内网络遥测信息确定最优路径;其中,所述带内网络遥测信息包括时延和/或带宽。
10.根据本发明提供的一种算力卸载方法,所述向多个工作服务器发送数据包过程中,获取所述数据包中的带内网络遥测信息,并将所述带内网络遥测信息发送至第三服务器之后,还包括:删除所述数据包中的所述带内网络遥测信息。
11.本发明还提供一种算力卸载装置,包括:第一控制模块,用于控制驱动模块向智能网卡发送连接信息;第二控制模块,用于控制所述智能网卡基于所述连接信息与所述驱动模块进行数据交互,以绕过中央处理器的控制实现所述智能网卡与所述驱动模块进行数据交互;第三控制模块,用于控制容器管理器确定容器创建脚本;第四控制模块,用于控制所述容器管理器基于所述容器创建脚本,将容器创建在异构硬件上,以实现所述中央处理器的算力资源分配;其中,所述容器创建脚本包括所述容器的参数配置和所述容器在所述异构硬件上的创建位置信息;所述异构硬件表征与所述中央处理器结构相异的硬件。
12.本发明还提供一种算力卸载装置,包括:接收模块,用于接收智能网卡发送的数据包;所述数据包是所述智能网卡与驱动模块进行数据交互得到的;所述智能网卡和所述驱动模块分别设于主服务器上;分布式训练模块,用于发送所述数据包至多个工作服务器进行分布式训练;参数处理模块,用于在所述多个工作服务器的分布式训练中进行参数处理。
13.本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述算力卸载方法。
14.本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种算力卸载方法。
15.本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述算力卸载方法。
16.本发明提供的算力卸载方法、装置、电子设备和存储介质,通过控制所述智能网卡基于所述连接信息与所述驱动模块进行数据交互,从而绕过所述主服务器的中央处理器的控制,实现所述智能网卡与所述驱动模块进行数据交互,减少智能网卡与驱动模块进行数据交互时中央处理器的算力开销;同时通过控制所述容器管理器基于所述容器创建脚本,将容器创建在异构硬件上,从而通过与所述中央处理器结构相异的异构硬件执行算力任务,分担中央处理器的算力负担,以实现所述中央处理器的算力资源分配;从而本发明实施
例通过异构硬件与智能网卡协同工作完成中央处理器的算力卸载,节省中央处理器开销。
附图说明
17.为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
18.图1是本发明提供的算力卸载方法的流程示意图之一;图2是应用本发明提供的算力卸载方法的主服务器的结构示意图之一;图3是应用本发明提供的算力卸载方法的主服务器的结构示意图之二;图4是应用本发明提供的算力卸载方法的主服务器的结构示意图之三;图5是本发明提供的算力卸载方法的流程示意图之二;图6是本发明提供的算力卸载方法的流程示意图之三;图7是本发明提供的算力卸载方法的流程示意图之四;图8是本发明提供的算力卸载方法的流程示意图之五;图9是本发明提供的算力卸载方法的流程示意图之六;图10是本发明提供的算力卸载方法的流程示意图之七;图11是本发明提供的算力卸载装置的结构示意图之一;图12是本发明提供的算力卸载装置的结构示意图之二;图13是本发明提供的电子设备的结构示意图。
具体实施方式
19.为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
20.下面结合图1-图10描述本发明的一种算力卸载方法,应用于控制主服务器,请参照图1,算力卸载方法包括:步骤100、控制驱动模块向智能网卡发送连接信息。
21.传统主服务器的数据包接收方式为一个数据包一个中断的模式,需要调用主服务器的中央处理器产生数据中断,接收数据包。这会加大对主服务器的中央处理器的算力开销。因此需要完成对中央处理器的算力卸载。
22.通过控制主服务器的驱动模块向所述主服务器的智能网卡发送连接信息,便于实现通过智能网卡与主服务器的驱动模块直接通信相连,主服务器的驱动模块与智能网卡进行数据交互不通过中央处理器触发中断。其中,主服务器的驱动模块指的是主服务器的供用户使用的软件系统中的驱动模块。智能网卡(smart nic),也称智能网络适配器,除了能完成标准网卡所具有的网络传输功能之外,还提供内置的可编程、可配置的硬件加速引擎,提升应用的性能和大幅降低中央处理器在通信中的消耗,为应用提供更多的中央处理器资源。
23.步骤200、控制所述智能网卡基于所述连接信息与所述驱动模块进行数据交互,以绕过中央处理器的控制实现所述智能网卡与所述驱动模块进行数据交互。
24.请参照图2和图3,智能网卡接收主服务器的驱动模块发送的连接信息,从而主服务器的驱动模块绑定并且直接驱动智能网卡,同时将智能网卡的内存空间信息暴露给主服务器的驱动模块,这样当一个数据包到达时,主服务器的驱动模块直接从智能网卡中收发数据包而不需要经过中央处理器。
25.从而本发明实施例绕过所述主服务器的中央处理器的控制,不使用传统中央处理的中断模式等待数据包到达再进行触发,实现所述智能网卡与所述驱动模块进行数据交互,减少智能网卡与驱动模块进行数据交互时中央处理器的算力开销。
26.步骤300、控制容器管理器确定容器创建脚本。
27.步骤400、控制所述容器管理器基于所述容器创建脚本,将容器创建在异构硬件上,以实现所述中央处理器的算力资源分配。
28.在数据中心里通常有大量算力资源可以分配,用户可以通过书写容器创建脚本,主服务器的容器管理器则会根据书写好的容器创建脚本进行容器的创建,根据容器创建脚本将容器创建在指定的异构硬件中。通过异构硬件上的容器实现算力任务,分担中央处理器的算力负担。
29.其中,容器是轻量的、可执行的独立软件包,是镜像运行的实体。容器组是一组可以被调度到同一台宿主机上的容器集合。所述容器创建脚本包括所述容器的参数配置和所述容器在所述异构硬件上的创建位置信息;所述异构硬件表征与所述中央处理器结构相异的硬件。具体的,异构硬件可以包括图形处理器(全称graphics processing unit,缩写:gpu)、张量处理器(全称tensor processing unit,缩写:tpu)、神经网络处理器(neural network processing unit ,缩写:npu)、数据处理器(data network processing unit ,缩写:dpu)中的一种或多种。
30.需要说明的是,图形处理器使用并行计算的方式提升处理效率,结构较为简单,适合将绘图运算的相关操作卸载到图形处理器上运行。图形处理器和中央处理器一样也属于通用芯片。数据处理器适合将电信和存储等应用卸载到数据处理器上运行。张量处理器,是一种专用芯片,适合专门用来完成深度学习任务,加速深层次神经网络。神经网络处理器,也是一种专用芯片,适合用于加速神经网络。因此,用户可根据需要将容器创建在对应的异构硬件上,以执行对应的算力任务,实现对中央处理器的算力卸载。
31.具体的,请参照图4,本发明实施例将一定规模的算力节点组成为一个集,将集分为控制平面和工作平面,控制平面主要负责维护集工作状态,保存集工作信息,进行资源调度的工作,而工作平面则会监控控制平面上的资源变动,若此变动和自己有关系就去执行对应的算力任务,同时工作平面还会向控制平面定期进行汇报工作状态,同时需要直接负责容器的创建和管理工作。控制平面主要有服务访问入口、主调度器、主控制器和存储模块。服务访问入口是该架构的交通枢纽,用户访问架构以及对下层的控制都通过服务访问接口完成,存储模块负责存储集的参数信息,主控制器负责维护集的状态,负责进行故障检测,主调度器则负责对容器管理器发送信息创建、管理、销毁容器。工作平面则是实际进行操作的平面,容器管理器检测控制平面的信息变动,若从服务访问入口发来的信息与自己有关,则执行创建、管理、销毁容器的操作,同时容器管理器定期通过服务访问
入口向控制平面汇报当前的工作状态和容器的资源使用情况。容器管理器规定容器组的大小并且在容器组中创建容器。
32.在一个实施例中,具体的容器创建流程如下:用户书写容器创建脚本,其中规定了容器的参数配置,以及创建位置信息(用户也可以选择不书写创建位置信息),用户通过服务访问入口将容器创建脚本写入控制平面,服务访问入口对容器创建脚本进行响应,把容器创建脚本中的容器相关信息(容器的参数配置以及创建位置信)保存在存储模块中,主控制器通过服务访问入口读取存储模块中的容器参数配置信息,然后主控制器会按照容器参数配置信息创建容器。之后主控制器通过服务访问入口通知主调度器为容器创建选择合适的位置:若用户书写了创建位置信息,主调度器通过服务访问入口读取存储模块的容器创建脚本中的创建位置信息,根据创建位置信息将容器创建在指定的异构硬件上面。
33.需要说明的是,容器管理器定期访问服务访问入口获取容器创建信息,及时根据服务访问入口的容器创建信息增加新的容器。创建好容器之后需要对容器进行维护和管理,即容器管理器定期查看容器工作的状态信息,异构硬件上的剩余内存空间,当前容器和容器组的工作负载。容器管理器定期向服务访问入口上报容器信息,通过服务访问入口将信息保存在存储模块中,方便下一次的容器创建。容器管理器还负责容器的清理工作,当检测到有容器长期空闲没有被使用,则对容器进行清理工作以保证容器不要将异构硬件资源占满。在清理容器时,也需要将清楚的容器信息通过服务访问入口通知存储模块删除相应的容器信息。
34.通过控制所述智能网卡基于所述连接信息与所述驱动模块进行数据交互,从而绕过所述主服务器的中央处理器的控制,实现所述智能网卡与所述驱动模块进行数据交互,减少智能网卡与驱动模块进行数据交互时中央处理器的算力开销;同时通过控制所述容器管理器基于所述容器创建脚本,将容器创建在异构硬件上,从而通过与所述中央处理器结构相异的异构硬件执行算力任务,分担中央处理器的算力负担,以实现所述中央处理器的算力资源分配;从而本发明实施例通过异构硬件与智能网卡协同工作完成中央处理器的算力卸载,节省中央处理器开销。
35.在本发明实施例的其他方面,步骤200、所述控制所述智能网卡基于所述连接信息与所述驱动模块进行数据交互,具体包括:控制所述智能网卡基于所述连接信息完成与所述驱动模块的通信连接,并控制所述驱动模块通过轮询模式基于数据包与所述智能网卡进行数据交互。
36.智能网卡基于所述连接信息完成与所述驱动模块的通信连接,主服务器的驱动模块提供驱动,绑定到智能网卡上面,通过轮询的方式,直接主动询问智能网卡是否有数据包到来,从而绕过所述主服务器的中央处理器的控制,实现所述智能网卡与所述驱动模块进行数据交互,减少智能网卡与驱动模块进行数据交互时中央处理器的算力开销。
37.具体的,请参照图3,本发明实施例的主服务器具体包括核心控制模块、数据包管理器、报文转发分类器和驱动模块。核心控制模块是算力卸载架构的大脑,负责对智能网卡的访问,负责分配任意大小的缓存,以及负责先进先出的软件队列的管理。当多个中央处理器需要访问同一张网卡的时候,核心控制模块为每一个中央处理器预留出一定的内存,避免竞争。数据包管理器负责数据包的管理工作,提供数据包处理的标准,能够完成接收数据包并且完成数据包的分配和负载均衡的工作。报文转发分类器负责数据包的查表操作,查
表操作通过匹配算法完成。驱动模块提供驱动绑定到智能网卡上面,通过轮询的方式得到极高的网络吞吐。通过驱动模块绑定并且直接驱动智能网卡,同时将智能网卡的内存空间信息暴露给主服务器,这样当一个数据包到达时,主服务器的驱动模块直接从智能网卡中收发数据包而不需要经过中央处理器。
38.本发明实施例在进行数据包的接收时,数据包触发硬中断,主服务器进行数据包接收和数据包处理工作,具体流程如下:数据包到达智能网卡后会触发硬件中断,并且将数据包接收成功标志复位,通知上面的主服务器进行数据包的接收,主服务器的数据包管理器分配一个缓存出来用于存储信息,启动驱动模块处理硬件产生的中断,启动轮询模式,定时进行主动查询数据包接收成功标志,当发现数据包接收成功标志被复位了,则意味着有数据包到来,访问智能网卡查询是否有数据包到来,核心控制模块从智能网卡中将数据包映射到主服务器中,并且标记上数据包接收成功标志。从本发明实施例不使用传统的一个数据包一个中断的模式,不调用中央处理器控制,不产生数据中断,接收到的数据包存储在数据包管理器中,进一步由报文转发分类器完成包处理。
39.本发明实施例在进行数据包的发送时,数据包写入主服务器的核心控制模块,同时需要写入地址信息,在数据包的末尾写入数据包发动成功标志,主服务器的驱动模块读取核心控制模块,从核心控制模块中获取数据包,并且从智能网卡发送出去,具体过程如下:将主服务器的数据包写入核心控制模块的软件队列中,在队列末尾写入数据包发送成功标志,当主服务器发送数据包时,根据队列最后一次发送的位置信息,核心控制模块会将报文写入软件队列相应位置。对发送的数据包分片处理,每个分片的数据包的最后一个id指向同一个软件队列元素。驱动模块通过读取核心控制模块的软件队列地址,不断轮询查看是否有数据包发送成功标志,当看到数据包发送成功标志后,则意味着数据包已经发送结束,最后通过智能网卡将数据包发送出去。
40.从而本发明实施例控制所述智能网卡基于所述连接信息完成与所述驱动模块的通信连接,并控制所述驱动模块通过轮询模式基于数据包与所述智能网卡进行数据交互。本发明实施例实现绕过所述主服务器的中央处理器的控制,实现所述智能网卡与所述驱动模块进行数据交互,减少智能网卡与驱动模块进行数据交互时中央处理器的算力开销。
41.在本发明实施例的其他方面,请参照图5,所述方法还包括:步骤500、控制所述容器管理器确定所述容器创建脚本不包括所述创建位置信息时,控制主调度器根据当前各个异构硬件的算力资源,查所述算力资源小于设定阈值的目标异构硬件,并将所述容器创建在所述目标异构硬件上。
42.若用户没有书写容器创建脚本中的创建位置信息,无法通过容器创建脚本将容器创建在指定的异构硬件。由于异构硬件上还剩余多少算力资源以及负载信息都通过汇报给容器管理器并且上传到服务访问入口保存在存储模块中,从而通过主服务器的主调度器通过对服务访问入口的检测,查到有新的容器产生,则通过服务访问入口访问存储模块的异构硬件算力资源及负载信息,查相对空闲的异构硬件,即算力资源小于设定阈值的目标异构硬件。并且将容器创建在算力资源充足的异构硬件设备(即目标异构硬件)上。容器管理器定期访问服务访问入口获取容器创建信息,及时根据服务访问入口的容器创建信息增加新的容器。
43.需要说明的是,设定阈值可根据实际情况设置,在此不说明具体参数。
44.通过控制所述主服务器的容器管理器确定所述容器创建脚本不包括所述创建位置信息时,控制所述主服务器的主调度器根据当前各个异构硬件的算力资源,查所述算力资源小于设定阈值的目标异构硬件,并将所述容器创建在所述目标异构硬件上。从而通过与所述中央处理器结构相异的异构硬件执行算力任务,分担主服务器的中央处理器的算力负担,以实现主服务器的中央处理器的算力资源分配。
45.请参照图6,本发明实施例还提供一种算力卸载方法,应用于控制可编程交换机,所述方法包括:步骤600、接收智能网卡发送的数据包;所述数据包是所述智能网卡与驱动模块进行数据交互得到的;所述智能网卡和所述驱动模块分别设于主服务器上;步骤700、发送所述数据包至多个工作服务器进行分布式训练;步骤800、在所述多个工作服务器的分布式训练中进行参数处理。
46.请参照图7,在进行神经网络训练的过程中,由于神经网络模型往往非常庞大,一台服务器难以满足训练过程中的算力需求,于是目前通常采用分布式训练的方式,由一台主服务器将神经网络训练任务分发到工作服务器中。因此本发明实施例主服务器的智能网卡将数据包发送至可编程交换机;可编程交换机将所述数据包发送至多个工作服务器进行分布式训练。所述数据包是所述智能网卡与驱动模块进行数据交互得到的;所述智能网卡和所述驱动模块分别设于主服务器上。
47.在分布式训练中,每一台工作服务器训练不同的数据集,在进行完一轮的训练之后,将参数回传到可编程交换机中。基于可编程交换机具有的有限内存和简单的计算功能,本发明实施例控制所述可编程交换机在所述多个工作服务器的分布式训练中进行参数处理。
48.通过可编程交换机在所述多个工作服务器的分布式训练中进行参数处理,本发明实施例可分担主服务器的中央处理器在多个工作服务器的分布式训练中的算力负担,进一步地节省主服务器的中央处理器的算力开销。
49.具体的,在一个实施例中,步骤800、在所述多个工作服务器的分布式训练中进行参数处理,包括:可编程交换机存储所述多个工作服务器在分布式训练中的返回参数;和/或基于所述多个工作服务器在分布式训练中的所述返回参数进行聚合计算。
50.具体的,本发明实施例可编程交换机可作为缓存节点,将所述多个工作服务器在分布式训练中的返回参数进行保存。
51.或者,本发明实施例可通过可编程交换机进行聚合操作,将梯度值等返回参数进行聚合计算,并且可编程交换机将计算出来的梯度值再次回传到各个工作服务器中去开启新一轮的训练。
52.当然,在一个实施例中,可编程交换机可同时存储所述多个工作服务器在分布式训练中的返回参数;以及基于所述多个工作服务器在分布式训练中的所述返回参数进行聚合计算。
53.需要说明的是,当梯度值收敛到满足要求的值时,完成训练,可编程交换机完成返回参数的聚合并且将最终的计算结果回传到主服务器中得到最终的训练完成的模型,为避免此传递过程中产生的数据包丢失,使用重传机制。
54.另外,通过在网络中对数据进行命名并且以此方式取代对物理主机的命名,构建可编程交换机的网络存储功能(可编程交换机为缓存节点),缓存数据包,减少网络中的流量,同时降低用户访问数据包的时延。
55.在本发明实施例的其他方面,请参照图8,所述方法还包括:步骤910、向多个工作服务器发送数据包过程中,获取所述数据包中的带内网络遥测信息,并将所述带内网络遥测信息发送至第三服务器,以便所述第三服务器基于所述带内网络遥测信息确定最优路径;其中,所述带内网络遥测信息包括时延和/或带宽。
56.当主服务器与工作服务器距离较远时,需要选择一条合适的路径将算力任务分配至工作服务器中。通常情况下通过查询路由表可获取跳数最短的路径。但是当路径长度相等时,需要选择延迟低的路径。
57.需要说明的是,当主服务器与工作服务器距离较远时,主服务器与工作服务器之间往往包括多个可编程交换机进行通信。本发明实施例以主服务器与工作服务器之间包括多个可编程交换机进行说明。本发明实施例可编程交换机向多个工作服务器发送数据包过程中,获取每一跳可编程交换机的数据包中的带内网络遥测信息,并将每一跳的所述带内网络遥测信息发送至第三服务器。以便第三服务器基于每一跳的所述带内网络遥测信息确定最优路径。其中,所述带内网络遥测信息包括时延和/或带宽。例如当需要时延最低的路径时,所述带内网络遥测信息包括时延。当需要带宽最大的路径时,所述带内网络遥测信息包括带宽。当然带内网络遥测信息可同时包括时延和带宽。
58.具体的,数据包从主服务器发出并到达可编程交换机时,可编程交换机匹配解析该数据包,根据需要进行的遥测任务在数据包头的后面插入封装着指定遥测的带内网络遥测信息的遥测包头,对数据包路径上网络设备遵循的遥测指令进行编码,将遥测包头指定的带内网络遥测信息封装成定长遥测数据插入到遥测包头之后。当数据包抵达路径末尾的服务器时,可编程交换机向第三服务器发送数据包发送结束信息,第三服务器将收集到的带内网络遥测信息统一发送到记录模块去,生成记录表,并且将记录表发送给第三服务器的分析模块,由第三服务器的分析模块生成路径决策,决定走哪一条网络状态较好的路径。例如分析模块生成时延最少的路径和/或带宽最大的路径。
59.从而本发明实施例通过获取可编程交换机的数据包中的带内网络遥测信息,以便第三服务器基于所述带内网络遥测信息确定最优路径。从而通过第三服务器确定最优路径也为主服务器的中央处理器分担算力负担,从而进一步地节省主服务器的中央处理器的算力开销。
60.在本发明实施例的其他方面,请参照图9,步骤910、所述向多个工作服务器发送数据包过程中,获取所述数据包中的带内网络遥测信息,并将所述带内网络遥测信息发送至第三服务器之后,还包括:步骤920、删除所述数据包中的所述带内网络遥测信息。
61.本发明实施例中,为了避免随着跳数增加导致带内网络遥测信息增多占用可编程交换机的内存过多,请参照图10,本发明实施例可将每一跳结束后的可编程交换机的数据包中的带内网络遥测信息发送给第三服务器,并且将每一跳的可编程交换机的数据包中的所述带内网络遥测信息删除,继续进行下一跳的记录。从而实现节约可编程交换机的内存,提高可编程交换机的使用效率,增强可编程交换机节省主服务器的中央处理器的算力开销
的效果。
62.下面对本发明提供的算力卸载装置进行描述,下文描述的算力卸载装置与上文描述的算力卸载方法可相互对应参照。
63.请参照图11,本发明还提供一种算力卸载装置,包括:第一控制模块201,用于控制驱动模块向智能网卡发送连接信息;第二控制模块202,用于控制所述智能网卡基于所述连接信息与所述驱动模块进行数据交互,以绕过中央处理器的控制实现所述智能网卡与所述驱动模块进行数据交互;第三控制模块203,用于控制容器管理器确定容器创建脚本;第四控制模块204,用于控制所述容器管理器基于所述容器创建脚本,将容器创建在异构硬件上,以实现所述中央处理器的算力资源分配;其中,所述容器创建脚本包括所述容器的参数配置和所述容器在所述异构硬件上的创建位置信息;所述异构硬件表征与所述中央处理器结构相异的硬件。
64.本发明实施例的算力卸载装置,通过控制所述智能网卡基于所述连接信息与所述驱动模块进行数据交互,从而绕过所述主服务器的中央处理器的控制,实现所述智能网卡与所述驱动模块进行数据交互,减少智能网卡与驱动模块进行数据交互时中央处理器的算力开销;同时通过控制所述容器管理器基于所述容器创建脚本,将容器创建在异构硬件上,从而通过与所述中央处理器结构相异的异构硬件执行算力任务,分担中央处理器的算力负担,以实现所述中央处理器的算力资源分配;从而本发明实施例通过异构硬件与智能网卡协同工作完成中央处理器的算力卸载,节省中央处理器开销。
65.在一个实施例中,所述第二控制模块202,具体包括:控制所述智能网卡基于所述连接信息完成与所述驱动模块的通信连接,并控制所述驱动模块通过轮询模式基于数据包与所述智能网卡进行数据交互。
66.在一个实施例中,所述算力卸载装置还包括:第五控制模块,用于控制所述容器管理器确定所述容器创建脚本不包括所述创建位置信息时,控制主调度器根据当前各个异构硬件的算力资源,查所述算力资源小于设定阈值的目标异构硬件,并将所述容器创建在所述目标异构硬件上。
67.请参照图12,本发明还提供一种算力卸载装置,包括:数据包接收模块205,用于接收智能网卡发送的数据包;所述数据包是所述智能网卡与驱动模块进行数据交互得到的;所述智能网卡和所述驱动模块分别设于主服务器上;分布式训练模块206,用于发送所述数据包至多个工作服务器进行分布式训练;参数处理模块207,用于在所述多个工作服务器的分布式训练中进行参数处理。
68.在一个实施例中,所述参数处理模块207包括:存储所述多个工作服务器在分布式训练中的返回参数;和/或,基于所述多个工作服务器在分布式训练中的返回参数进行聚合计算。
69.在一个实施例中,所述算力卸载装置还包括:第六控制模块,用于向多个工作服务器发送数据包过程中,获取所述数据包中的带内网络遥测信息,并将所述带内网络遥测信息发送至第三服务器,以便所述第三服务器基于所述带内网络遥测信息确定最优路径;其中,所述带内网络遥测信息包括时延和/或带宽。
70.在一个实施例中,所述算力卸载装置还包括:删除模块,用于删除所述数据包中的所述带内网络遥测信息。
71.图13示例了一种电子设备的实体结构示意图,如图13所示,该电子设备可以包括:处理器(processor)1310、通信接口(communications interface)1320、存储器(memory)1330和通信总线1340,其中,处理器1310,通信接口1320,存储器1330通过通信总线1340完成相互间的通信。处理器1310可以调用存储器1330中的逻辑指令,以执行算力卸载方法,该方法包括:控制驱动模块向智能网卡发送连接信息;控制所述智能网卡基于所述连接信息与所述驱动模块进行数据交互,以绕过中央处理器的控制实现所述智能网卡与所述驱动模块进行数据交互;控制容器管理器确定容器创建脚本;控制所述容器管理器基于所述容器创建脚本,将容器创建在异构硬件上,以实现所述中央处理器的算力资源分配;其中,所述容器创建脚本包括所述容器的参数配置和所述容器在所述异构硬件上的创建位置信息;所述异构硬件表征与所述中央处理器结构相异的硬件。或者;接收智能网卡发送的数据包;所述数据包是所述智能网卡与驱动模块进行数据交互得到的;所述智能网卡和所述驱动模块分别设于主服务器上;发送所述数据包至多个工作服务器进行分布式训练;在所述多个工作服务器的分布式训练中进行参数处理。
72.此外,上述的存储器1330中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
73.另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的算力卸载方法,该方法包括:控制驱动模块向智能网卡发送连接信息;控制所述智能网卡基于所述连接信息与所述驱动模块进行数据交互,以绕过中央处理器的控制实现所述智能网卡与所述驱动模块进行数据交互;控制容器管理器确定容器创建脚本;控制所述容器管理器基于所述容器创建脚本,将容器创建在异构硬件上,以实现所述中央处理器的算力资源分配;其中,所述容器创建脚本包括所述容器的参数配置和所述容器在所述异构硬件上的创建位置信息;所述异构硬件表征与所述中央处理器结构相异的硬件。或者;接收智能网卡发送的数据包;所述数据包是所述智能网卡与驱动模块进行数据交互得到的;所述智能网卡和所述驱动模块分别设于主服务器上;发送所述数据包至多个工作服务器进行分布式训练;在所述多个工作服务器的分布式训练中进行参数处理。
74.又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的算力卸载方法,该方法包括:控制驱动模块向智能网卡发送连接信息;控制所述智能网卡基于所述连接信息与所述驱动模块进行数据交互,以绕过中央处理器的控制实现所述智能网卡与所述驱动模块进行
数据交互;控制容器管理器确定容器创建脚本;控制所述容器管理器基于所述容器创建脚本,将容器创建在异构硬件上,以实现所述中央处理器的算力资源分配;其中,所述容器创建脚本包括所述容器的参数配置和所述容器在所述异构硬件上的创建位置信息;所述异构硬件表征与所述中央处理器结构相异的硬件。或者;接收智能网卡发送的数据包;所述数据包是所述智能网卡与驱动模块进行数据交互得到的;所述智能网卡和所述驱动模块分别设于主服务器上;发送所述数据包至多个工作服务器进行分布式训练;在所述多个工作服务器的分布式训练中进行参数处理。
75.以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
76.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
77.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

技术特征:


1.一种算力卸载方法,应用于控制主服务器,其特征在于,所述方法包括:控制驱动模块向智能网卡发送连接信息;控制所述智能网卡基于所述连接信息与所述驱动模块进行数据交互,以绕过中央处理器的控制实现所述智能网卡与所述驱动模块进行数据交互;控制容器管理器确定容器创建脚本;控制所述容器管理器基于所述容器创建脚本,将容器创建在异构硬件上,以实现所述中央处理器的算力资源分配;其中,所述容器创建脚本包括所述容器的参数配置和所述容器在所述异构硬件上的创建位置信息;所述异构硬件表征与所述中央处理器结构相异的硬件。2.根据权利要求1所述的算力卸载方法,其特征在于,所述控制所述智能网卡基于所述连接信息与所述驱动模块进行数据交互,包括:控制所述智能网卡基于所述连接信息完成与所述驱动模块的通信连接,并控制所述驱动模块通过轮询模式基于数据包与所述智能网卡进行数据交互。3.根据权利要求1所述的算力卸载方法,其特征在于,所述方法还包括:控制所述容器管理器确定所述容器创建脚本不包括所述创建位置信息时,控制主调度器根据当前各个异构硬件的算力资源,查所述算力资源小于设定阈值的目标异构硬件,并将所述容器创建在所述目标异构硬件上。4.一种算力卸载方法,应用于控制可编程交换机,其特征在于,所述方法包括:接收智能网卡发送的数据包;所述数据包是所述智能网卡与驱动模块进行数据交互得到的;所述智能网卡和所述驱动模块分别设于主服务器上;发送所述数据包至多个工作服务器进行分布式训练;在所述多个工作服务器的分布式训练中进行参数处理。5.根据权利要求4所述的算力卸载方法,其特征在于,所述在所述多个工作服务器的分布式训练中进行参数处理,包括:存储所述多个工作服务器在分布式训练中的返回参数;和/或,基于所述多个工作服务器在分布式训练中的返回参数进行聚合计算。6.根据权利要求4所述的算力卸载方法,其特征在于,所述方法还包括:向多个工作服务器发送数据包过程中,获取所述数据包中的带内网络遥测信息,并将所述带内网络遥测信息发送至第三服务器,以便所述第三服务器基于所述带内网络遥测信息确定最优路径;其中,所述带内网络遥测信息包括时延和/或带宽。7.根据权利要求6所述的算力卸载方法,其特征在于,所述向多个工作服务器发送数据包过程中,获取所述数据包中的带内网络遥测信息,并将所述带内网络遥测信息发送至第三服务器之后,还包括:删除所述数据包中的所述带内网络遥测信息。8.一种算力卸载装置,其特征在于,包括:第一控制模块,用于控制驱动模块向智能网卡发送连接信息;第二控制模块,用于控制所述智能网卡基于所述连接信息与所述驱动模块进行数据交互,以绕过中央处理器的控制实现所述智能网卡与所述驱动模块进行数据交互;
第三控制模块,用于控制容器管理器确定容器创建脚本;第四控制模块,用于控制所述容器管理器基于所述容器创建脚本,将容器创建在异构硬件上,以实现所述中央处理器的算力资源分配;其中,所述容器创建脚本包括所述容器的参数配置和所述容器在所述异构硬件上的创建位置信息;所述异构硬件表征与所述中央处理器结构相异的硬件。9.一种算力卸载装置,其特征在于,包括:接收模块,用于接收智能网卡发送的数据包;所述数据包是所述智能网卡与驱动模块进行数据交互得到的;所述智能网卡和所述驱动模块分别设于主服务器上;分布式训练模块,用于发送所述数据包至多个工作服务器进行分布式训练;参数处理模块,用于在所述多个工作服务器的分布式训练中进行参数处理。10.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至3,或权利要求4至7中任一项所述的算力卸载方法。11.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至3,或权利要求4至7中任一项所述的算力卸载方法。

技术总结


本发明涉及计算机技术领域,尤其涉及一种算力卸载方法、装置、电子设备和存储介质,包括:控制驱动模块向智能网卡发送连接信息;控制智能网卡基于连接信息与驱动模块进行数据交互,以绕过中央处理器的控制实现智能网卡与驱动模块进行数据交互;控制容器管理器确定容器创建脚本;控制容器管理器基于容器创建脚本,将容器创建在异构硬件上,以实现中央处理器的算力资源分配;其中,容器创建脚本包括容器的参数配置和容器在异构硬件上的创建位置信息;异构硬件表征与中央处理器结构相异的硬件。本发明实施例通过异构硬件与智能网卡协同工作完成中央处理器的算力卸载,节省中央处理器开销。器开销。器开销。


技术研发人员:

刘杨 薛曼春 彭木根

受保护的技术使用者:

北京邮电大学

技术研发日:

2022.11.21

技术公布日:

2022/12/23


文章投稿或转载声明

本文链接:http://www.wtabcd.cn/zhuanli/patent-1-63535-0.html

来源:专利查询检索下载-实用文体写作网版权所有,转载请保留出处。本站文章发布于 2022-12-26 11:49:30

发表评论

验证码:
用户名: 密码: 匿名发表
评论列表 (有 条评论
2人围观
参与讨论