CN116302512A - 阵列服务器算力集群方法、控制模块、阵列服务器和介质 - Google Patents
阵列服务器算力集群方法、控制模块、阵列服务器和介质 Download PDFInfo
- Publication number
- CN116302512A CN116302512A CN202310185257.8A CN202310185257A CN116302512A CN 116302512 A CN116302512 A CN 116302512A CN 202310185257 A CN202310185257 A CN 202310185257A CN 116302512 A CN116302512 A CN 116302512A
- Authority
- CN
- China
- Prior art keywords
- processing
- computing power
- cluster
- processing module
- sub
- 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
Images
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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/5044—Allocation 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 hardware capabilities
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Sources (AREA)
Abstract
本申请实施例公开了一种阵列服务器算力集群方法、控制模块、阵列服务器和介质。其中,方法包括如下步骤:获取运行信息和包括算力集群需求的数据包,运行信息用于表明阵列服务器中处理模块的运行情况;根据算力集群需求和运行信息确定集群模式;根据集群模式控制将数据包划分为多个子包,并发送至多个处理模块中进行处理;汇总处理模块的处理结果并输出。因此,本申请能够根据数据包的需求和阵列服务器的具体运行情况,将数据包根据集群模式进行分包,并发放至处理模块当中进行处理,从而充分利用处理模块的算力,提高了大型数据并列的处理效率,减轻了单个处理模块上的计算和存储压力。
Description
技术领域
本申请属于数据处理技术领域,特别是涉及一种阵列服务器算力集群方法、控制模块、阵列服务器和介质。
背景技术
阵列服务器中包含多个处理模块以提供算力。每个处理模块都具体包括有CPU算力(Central Processing Unit,中央处理器)、GPU算力(Graphics Processing Unit,图形处理器)、NPU算力(Neural Network Processing Unit,神经网络处理器)、VPU算力(VedioProcessing Unit,视频处理器)等。目前每一个处理模块都是各自运行独立的系统,每一个处理模块都是作为一个个体在使用。可以理解的是,作为个体使用时算力有上限,而AI算力集群需求在过去6年增长30万倍,单节点已无法满足AI算力要求。如何充分利用阵列服务器中处理模块的算力,是本领域技术人员亟待解决的技术问题。
前面的叙述在于提供一般的背景信息,并不一定构成现有技术。
发明内容
基于此,针对上述问题,提出了一种阵列服务器算力集群方法、控制模块、阵列服务器和介质,能够高效利用阵列服务器内的所有处理模块,实现算力集群。
本申请解决其技术问题是采用以下的技术方案来实现的:
本申请提供了一种阵列服务器算力集群方法,应用于阵列服务器中的控制模块,包括如下步骤:获取运行信息和包括算力集群需求的数据包,运行信息用于表明阵列服务器中处理模块的运行情况;根据算力集群需求和运行信息确定集群模式;根据集群模式控制将数据包划分为多个子包,并发送至多个处理模块中进行处理;汇总处理模块的处理结果并输出。
在本申请一可选实施例中,算力集群需求包括算力大小需求,运行信息包括空闲模块数量和处理模块的剩余算力;根据算力集群需求和运行信息确定集群模式,包括:若算力大小需求大于剩余算力,则匹配第一集群模式,第一集群模式用于将数据包划分为多个第一子包,第一子包用于优先填满剩余算力最大的处理模块;若算力大小需求小于或等于剩余算力,且空闲模块数量小于预设数量,则匹配第二集群模式,第二集群模式用于将数据包划分为多个第二子包,第二子包用于平均每个处理模块的剩余算力;若算力大小需求小于或等于剩余算力,且空闲模块数量大于预设数量,则匹配第三集群模式,第三集群模式用于将数据包划分为大小均等的多个第三子包,第三子包用于优先填满剩余算力最大的处理模块。
在本申请一可选实施例中,算力集群需求包括至少一项算力能力需求,算力能力需求表明数据包需要执行的处理任务,算力能力需求包括数据处理需求、图形处理需求、视频处理需求、神经网络处理需求中的一项;处理模块包括多个算力处理器,算力处理器用于完成对应的处理任务,算力处理器包括:中央处理器、图形处理器、视频处理器、神经网络处理器;根据算力集群需求和运行信息确定集群模式,包括:根据算力能力需求确定数据包将要分发的算力处理器,以确定集群模式。
在本申请一可选实施例中,当算力能力需求包括神经网络处理需求时,根据集群模式将数据包划分为多个子包,并发送至多个处理模块中进行处理,包括:控制处理模块根据预设模型和子包进行梯度计算;汇总处理模块的处理结果并输出,包括:获取每个处理模块处理得到的参数梯度;通过梯度聚合操作,汇总参数梯度,以用于更新预设模型的参数,并进行下一轮的训练。
在本申请一可选实施例中,算力集群需求还包括有优先级,运行信息包括处理模块的剩余算力;当获取到多个数据包时,根据算力集群需求和运行信息确定集群模式,包括:若剩余算力高于空闲阈值,则匹配第四集群模式,第四集群模式用于将优先级高的数据包划分至第一处理模块中,将优先级低的数据包划分至第二处理模块中,第一处理模块为阵列服务器中剩余算力最大的处理模块,第二模块为阵列服务器中除第一处理模块外的其余处理模块;若剩余算力小于或等于空闲阈值,则匹配第五集群模式,第五集群模式用于先将优先级高的数据包划分处理后,再对优先级低的数据包进行划分。
本申请还提供了一种控制模块,包括处理器和存储器:处理器用于执行存储器中存储的计算机程序以实现如前述的方法。
本申请还提供了一种阵列服务器,包括一个控制模块和至少一个处理模块;控制模块用于执行如前文所描述的方法;处理模块用于接收控制模块发送的子包,对子包进行处理并反馈回处理结果至控制模块。
在本申请一可选实施例中,阵列服务器还包括有网络模块,网络模块用于建立局域网以连接阵列服务器中的控制模块和所有处理模块;当多个处理模块被选中用于算力集群时,网络模块在被选中的处理模块间建立子网,以使得子网与其他处理模块形成网络隔离。
在本申请一可选实施例中,处理模块包括多个算力处理器,算力处理器用于完成对应的处理任务,算力处理器包括:中央处理器、图形处理器、视频处理器、神经网络处理器。
本申请还提供了一种计算机可读存储介质,存储有计算机程序,当计算机程序被处理器执行时实现如前述的方法。
采用本申请实施例,具有如下有益效果:
本申请能够根据数据包的需求和阵列服务器的具体运行情况,将数据包根据集群模式进行分包,并发放至处理模块当中进行处理,从而充分利用处理模块的算力,提高了大型数据并列的处理效率,减轻了单个处理模块上的计算和存储压力。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
其中:
图1为一实施例提供的一种阵列服务器算力集群方法的流程示意图;
图2为一实施例提供的算力占用图例;
图3为一实施例提供的第一集群模式下的算力占用示意条形图;
图4为一实施例提供的第二集群模式下的算力占用示意条形图;
图5为一实施例提供的第三集群模式下的算力占用示意条形图;
图6为一实施例提供的第四集群模式下的算力占用示意条形图;
图7为一实施例提供的第五集群模式下的算力占用示意条形图;
图8为一实施例提供的控制模块的结构示意框图;
图9为一实施例提供的阵列服务器的结构示意框图;
图10为一实施例提供的处理模块结构示意框图;
图11为一实施例提供的网络模块建立的网络模型示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
阵列服务器中通常设置有一个控制模块和多个处理模块。在服务器应用领域里应用阵列服务器的设计方案,即是因为现有的数据流处理量过于庞大,已经超出了单个处理模块的处理能力上限,尤其是在AI、神经网络学习以及图像视频渲染等实施场景里,对算力的需求是极其庞大的。如何充分利用阵列服务器中处理模块的算力,本申请提出了一种阵列服务器算力集群方法,为了清楚描述本实施例提供的方法,请参考图1~图7,包括有步骤S110~S140。
步骤S110:取运行信息和包括算力集群需求的数据包,运行信息用于表明阵列服务器中处理模块的运行情况。
在一实施方式中,本实施例的方法应用于阵列服务器端的控制模块,控制模块可以对服务器内的所有处理模块极其他单元实现控制,例如包括网络模块或数据传输模块等。当数据包传送至服务器时,往往都会暂存至相应的接收单元中,接收单元可以根据收到的数据包生成算力集群需求,用于表明数据包的各类信息、状态,包括但不限于有数据大小、能力需求、优先级等。则控制模块则可同时获取阵列服务器内所有受控的处理模块的运行信息,运行信息用于表明阵列服务器中处理模块的运行情况,具体而言可以包括但不限于有已占用算力、剩余算力、算力能力等。从而协助后续确定集群模式,以便于数据包的划分与分发。可以理解的是,在本实施例当中,控制模块实际可以并不接收数据包,而仅获取算力集群需求和运行信息以作判断,相当于是说控制模块实际并不参与数据的流通,而只是做数据的传输协调者,从而减轻数据传递的繁复性、控制模块的工作需求,提高传输效率和控制模块的工作效率。同时对于处理模块而言,可以为市面上流通的X86架构或ARM架构的芯片,对此不做具体限制,只要为能设置于阵列服务内提供相应算力的芯片即可。
步骤S120:根据算力集群需求和运行信息确定集群模式。
在一实施方式中,确定集群模式是可以理解为两层意思,第一层也即是说确定需要在多个处理模块间实现集群;第二层则是如何实现集群。对于第一层而言也即是需要确定需要多少块处理模块参与、每一块处理模块需要参与多少算力的处理等,也即是说之于处理模块的角度。对此则可直接根据算力集群需求和运行信息进行确定,例如优先调用占用率低、处理能力强、处理能力适配的处理模块,确定联机被选中的处理模块,使得之后切分或处理得到的数据,能在选中的处理模块间流通。对于此则需根据实际情况确定,在此不做方案的限制。对于如何实现集群,则是在确定第一层后,如何切分数据包的判断,即是本实施方式中所提及的确定集群模式的含义。如何切分数据包,本申请根据算力集群需求和运行信息确定了多个模式,此会将在后文中展开说明,此处暂不赘述。
在一实施方式中,算力集群需求包括算力大小需求,运行信息包括空闲模块数量和处理模块的剩余算力;根据算力集群需求和运行信息确定集群模式,包括:若算力大小需求大于剩余算力,则匹配第一集群模式,第一集群模式用于将数据包划分为多个第一子包,第一子包用于优先填满剩余算力最大的处理模块;若算力大小需求小于或等于剩余算力,且空闲模块数量小于预设数量,则匹配第二集群模式,第二集群模式用于将数据包划分为多个第二子包,第二子包用于平均每个处理模块的剩余算力;若算力大小需求小于或等于剩余算力,且空闲模块数量大于预设数量,则匹配第三集群模式,第三集群模式用于将数据包划分为大小均等的多个第三子包,第三子包用于优先填满剩余算力最大的处理模块。
在一实施方式中,算力集群需求可以包括有算力大小需求,也即预估数据包将大概会占用多少的算力;运行信息包括空闲模块数量和处理模块的剩余算力,表明能够接受处理工作的处理模块的数量多少,以及总共的算力剩余,或是每一块处理模块能够处理剩余算力容量。根据此二者,即可以确定出相应的集群模式。集群模式也即是说,根据数据包的算力集群需求和运行信息,确定要如何在确定好的多个处理模块之间处理数据包,如何划分子包,以实现最佳的处理效果。在本实施方式中,根据算力集群需求和运行信息确定集群模式可以确定有三种集群模式,为具体描述,可参考图2到图5,其中图2为图例,图3~图5为三个模式下算力占用的示例,此外图6、7同样以图2为例,后续不再赘述。图3~图5每张图都示例了四个条形,四个条形图分别代表了四个处理模块,黑条代表了处理模块内已经被占用的算力大小、白条是剩余算力大小,而对于斜条纹则是代表数据包分包为子包后在处理器内的算力占用大小。需要注意的是,图3~图7为便于说明都采用了分配4个处理模块集群实现算力的实施例,实际上确定集群模式时,即可确定所需要调用的处理模块的多少,而此通常都是根据算力集群需求和运行信息确定的。在本实施方式中及后续实施方式中,为便于说明,都采用调用4个处理模块集群实现算力的实施例,并非是对方法的局限。当算力大小需求大于剩余算力,也即是现接收到的数据包算力需求较大时,在确定调用的处理模块内不一定能完全满足的情况下,可以确定为第一集群模式。第一集群模式也即是说将数据包拆分为多个第一子包,第一子包是优先输入算力占用较小,也即剩余算力大的处理模块中。以图3为说明,假设从左到右命名4个处理模块为A1、A2、A3和A4。可以看到的是以已占用算力大小反推剩余算力,可以得到A3>A1>A2>A4的结果。因此可以按照4个处理模块的剩余算力大小,将数据包切分为多个不均等的第一子包。从而在输入处理模块时,多个第一子包中,优先沾满剩余算力最大的处理模块,也即优先将A3的第一子包输入,再依次序属于剩下剩余算力最大的处理模块。值得注意的是,此处及之后所提及的不均等,仅是对以图3的实施例的说明,实际情况中可能会出现均等的情况,均等或不均等都是对具体实施例的说明,而非限制。第一集群模式能够在处理模块较为繁忙时,尽可能调用占用率较低的处理模块,并利用切分的第一子包填满每一个处理模块的算力容量。从而完全发挥处理模块的处理能力,最大限度提升集群效果和处理效率。
在一实施方式中,若算力大小需求小于或等于剩余算力,且空闲模块数量小于预设数量,则匹配第二集群模式,第二集群模式用于将数据包划分为多个第二子包,第二子包用于平均每个处理模块的剩余算力。具体而言,可参考图4,可见在切分子包并输入处理模块前。根据运行信息可以确定的是,被选中用于集群的处理模块间,总体较为空闲,且能够满足算力大小需求。在此种情况下,为平衡处理模块间的处理能力,可以将数据包切分为多个第二子包。第二子包输入对应的处理模块中,能够均衡每一个处理模块的处理能力。也即参考图4而言,将数据包切分为多个不均等的第二子包输入处理模块后,收到第二子包的处理模块之间的剩余算力之间是均等的。对于该群集模式,可以在处理模块集群时,均衡处理模块间的负载,若是处理模块处理能力是相同的情况下,可以保证每个子包最后在同一时间进行输出,从而便于进行结果的汇总处理,使得数据集群的处理过程更加可控。
在一实施方式中,若算力大小需求小于或等于剩余算力,且空闲模块数量大于预设数量,则匹配第三集群模式,第三集群模式用于将数据包划分为大小均等的多个第三子包,第三子包用于优先填满剩余算力最大的处理模块。对于本实施例可以参考图5的示例。若是被选择用于集群的处理模块都属于空闲状态的情况下,可以直接将数据包做均分,均分为多个体量大小一致的第三子包,并输入处理模块中。对于该实施例,可以优选的适用于机器学习的场景。对于机器学习即使将数据集输入预定模型中进行训练,由于是通过处理器集群实现的,所以每一个处理模块中都是有一个子模型,并根据相应的子包进行训练,并在训练后根据训练结果进行汇总。如果每一个处理模块内的训练条件、场景是不一致的,则有可能会导致训练结果的较大差异,引起不必要的麻烦。为消弭此差异,则可控制训练条件的一致性,也即例如使得控制子包大小的一致。故可以在划分数据包时,将数据包划分为多个大小均等的第三子包,以用做训练。因此,基于本实施例所提供的集群模式,能够使得每一个处理模块内处理子包的条件和情况是相同或近似的,从而尽可能消除因条件、运行环境差异所会带来的差异,保证了处理结果输出的一致性或稳定性。
在一实施方式中,算力集群需求还包括有优先级,运行信息包括处理模块的剩余算力;当获取到多个数据包时,根据算力集群需求和运行信息确定集群模式,包括:若剩余算力高于空闲阈值,则匹配第四集群模式,第四集群模式用于将优先级高的数据包划分至第一处理模块中,将优先级低的数据包划分至第二处理模块中,第一处理模块为阵列服务器中剩余算力最大的处理模块,第二模块为阵列服务器中除第一处理模块外的其余处理模块;若剩余算力小于或等于空闲阈值,则匹配第五集群模式,第五集群模式用于先将优先级高的数据包划分处理后,再对优先级低的数据包进行划分。
在一实施方式中,前文所提及的第一到第三集群模式都是针对于单个数据包的集群模式。而实际应用场景中,阵列服务器往往会收到多个要求进行处理模块集群的数据包。对于数据包内如何做划分,则可参照前文第一到第三集群模式的描述。也即是说第一到第三集群模式和第四到第五集群模式之间是并行关系,二者分别就数据包内和数据包间两个角度,分别对数据包进行了划分。故在一实施方式中,可先行在多个数据包之间确定第四或第五集群模式后,再单独对数据包确定第一到第三集群模式中的一项。对于数据包之间如何群集切分,提出了本实施方式。其中算力集群需求还包括有优先级,也即对应数据包之间存在有优先级顺序;同样的运行信息包括处理模块的剩余算力。若剩余算力高于空闲阈值,则匹配第四集群模式,具体实施情况可以参考图6。如图6所示,被选中用于算力集群的处理模块剩余算力较高,满足高于空闲阈值的条件,具体而言也即是支持同时被选中用于集群的处理模块间可以同时实现算力集群。对此则可以先行安排优先级高的数据包做划分,再安排优先级稍次的数据包做后续划分。其中优先划分的优先级高的数据包可以先输入占用率低、剩余算力多的处理模块内,也即图6中的右边两条处理模块;而优先级稍次或优先级低的数据包,则再在后续步骤中划分至占用率高、生育算力少的处理模块内,也即图6中左边的两条处理模块。因此基于本实施方式,可以在处理模块都较为空闲的情况下,优先处理优先级高的数据包,控制划分输入至占用率低、剩余算力多的处理模块内,从而使得高优先级的数据包能够更早实现输出,减少了重要数据的处理等待时间,保护了数据的重要性。
在一实施方式中,若剩余算力小于或等于空闲阈值,则匹配第五集群模式。具体而言可以参照图7所示的情况。值得注意的是不论是第四集群模式还是第五集群模式所采用到的空闲阈值都是预先设定好的,相较于剩余算力而言,除大小的比较外,还可以包括但不先于如剩余算力满足空闲阈值条件的数量、处理模块的处理能力等。从而综合进行判断,实现数据包能够匹配至与其优先级对应的处理模块能处理,优化了调配能力,调高了处理效率。因此当剩余算力小于或等于空闲阈值,说明能够实现的集群的处理模块都较为繁忙,不能同时处理几个数据包的集群任务。对此可以优先将优先级高的数据包进行划分后,再划分优先级低的数据包。如图7所示,一个处理模块内下部的是已占用算力,中部的是高优先级子包,上部的是低优先级子包。当下部的已占用算力处理完毕后,则会先处理高优先级子包再处理低优先级子包,也即分别对应了先处理高优先级数据包,再处理低优先级子包。因此基于本实施方式,可以在处理模块都较为繁忙的情况,依照优先级高低的次序分别处理数据包,使得高优先级数据包能够尽快被处理,减少了重要数据的处理等待时间,保护了数据的重要性。
步骤S130:根据集群模式控制将数据包划分为多个子包,并发送至多个处理模块中进行处理。
在一实施方式中,算力集群需求包括至少一项算力能力需求,算力能力需求表明数据包需要执行的处理任务,算力能力需求包括数据处理需求、图形处理需求、视频处理需求、神经网络处理需求中的一项;处理模块包括多个算力处理器,算力处理器用于完成对应的处理任务,算力处理器包括:中央处理器、图形处理器、视频处理器、神经网络处理器;根据算力集群需求和运行信息确定集群模式,包括:根据算力能力需求确定数据包将要分发的算力处理器,以确定集群模式。
在一实施方式中,数据包都有相应的任务需求,可能是图片渲染,可能是视频解码,可能是数据运算等等中的一项或者多项。同时对应的处理模块也包括有多个算力处理器,具体可以包括但不限于有中央处理器(Central Processing Unit,CPU)、图形处理器(Graphics Processing Unit,GPU)、视频处理器(Vedio Processing Unit,VPU)、神经网络处理器(Neural Network Processing Unit,NPU)。故在确定集群模式时,同时也需要明确数据包的算力能力需求,也即将数据包拆分分发至何种算力处理器中,以使得最后能够对应分发。例如对于神经网络训练的过程,其能力需求可能包括有数据处理需求、图形处理需求和神经网络处理需求,而没有视频处理需求,故确定集群模式时则需明确分发的子包分别对应发送至处理模块的CPU、GPU和NPU处。
步骤S140:汇总处理模块的处理结果并输出。
在一实施方式中,在各个处理模块中处理的数据都是数据包的子包,最后实现数据的需要对子包的处理结果进行汇总。例如对于视频剪辑的,可能是将视频拆分为多个片段交由多个处理模块进行编解码渲染。然而最后需要输出的是完整的视频,而非单独的片段。因此处理模块间同样可以分子母关系,由子处理模块实现子包的数据处理,将处理结果交由母处理模块进行汇总。其中母处理模块的性能、频率、带宽、缓存体积等性能指标,都可以高于子处理模块,从而实现更高效的汇总处理。
在一实施方式中,当算力能力需求包括神经网络处理需求时,根据集群模式将数据包划分为多个子包,并发送至多个处理模块中进行处理,包括:控制处理模块根据预设模型和子包进行梯度计算;汇总处理模块的处理结果并输出,包括:获取每个处理模块处理得到的参数梯度;通过梯度聚合操作,汇总参数梯度,以用于更新预设模型的参数,并进行下一轮的训练。
在一实施方式中,对于神经网络处理需求,也即需要大规模的模型及训练数据,使用单卡的方式完全无法完成训练。在大规模AI训练集群中,通常采用数据并行的方式完成训练。数据并行即每个设备使用相同的模型、不同的训练样本,每个处理模块计算得到的梯度数据需要聚合之后进行参数更新。数据并行的核心在于将数据集以样本为维度拆分并下发到不同的处理模块上,每个处理模块根据分配到的数据,计算自己的梯度。梯度聚合是为了保证计算逻辑的一致性,在梯度计算完成后,需要使用算子实现各处理模块间的梯度聚合操作,汇总所有得到的梯度,通常是所有处理模块的梯度相加。参数更新部分梯度聚合会让各处理模块的模型以相同的梯度值同时进入参数更新阶段,然后针对新的数据进行下一轮训练。从而利用处理模块的集群方式提高了大型数据并列的训练效率,从而减轻了单个处理模块上的计算和存储压力。
因此,本申请能够根据数据包的需求和阵列服务器的具体运行情况,将数据包根据集群模式进行分包,并发放至处理模块当中进行处理,从而充分利用处理模块的算力,提高了大型数据并列的处理效率,减轻了单个处理模块上的计算和存储压力。
在一个实施例中,本申请提出了一种控制模块,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行以下步骤:步骤S110:取运行信息和包括算力集群需求的数据包,运行信息用于表明阵列服务器中处理模块的运行情况。步骤S120:根据算力集群需求和运行信息确定集群模式。步骤S130:根据集群模式控制将数据包划分为多个子包,并发送至多个处理模块中进行处理。步骤S140:汇总处理模块的处理结果并输出。
图8示出了一个实施例中控制模块的内部结构图。该计算机设备具体可以是终端,也可以是服务器。如图8所示,该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现阵列服务器算力集群方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行年龄识别方法。本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
图9示出了一个实施例中的阵列服务器的结构示意框图。阵列服务器90,包括一个控制模块910和至少一个处理模块920;控制模块910用于执行如前文所描述的方法;处理模块920用于接收控制模块910发送的子包,对子包进行处理并反馈回处理结果至控制模块910。
在一个实施例中,处理模块920包括多个算力处理器,算力处理器用于完成对应的处理任务,具体结构可以参考图10,图10为一实施例提供的处理模块920结构示意框图。其中算力处理器可以具体包括但不限于有:中央处理器921、图形处理器922、视频处理器923、神经网络处理器924。
在一个实施例中,阵列服务器90还包括有网络模块,网络模块用于建立局域网以连接阵列服务器90中的控制模块910和所有处理模块920;当多个处理模块920被选中用于算力集群时,网络模块在被选中的处理模块920间建立子网,以使得子网与其他处理模块920形成网络隔离。对于网络模块所建立的网络模型示意图可以参考图11,如图11所示控制模块910和处理模块1~处理模块5整体设置在一局域网内,网络模块具体可以为万兆网络交换机。而在处理模块1~处理模块3和处理模块4~处理模块5之间,分别建立两个子网。两个子网间有网络隔离,相互之间不传递数据。具体而言子网通过网络模块设置虚拟局域网实现,从而让一个原本过于庞大的局域网,划分成若干个小局域网,因此各自子网内部的广播风暴以极其他无用流量信息限制在本子网内。
在一个实施例中,本申请还提出了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行如前述方法的步骤,
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种阵列服务器算力集群方法,应用于阵列服务器中的控制模块,其特征在于,包括如下步骤:
获取运行信息和包括算力集群需求的数据包,所述运行信息用于表明所述阵列服务器中处理模块的运行情况;
根据所述算力集群需求和所述运行信息确定集群模式;
根据所述集群模式控制将所述数据包划分为多个子包,并发送至多个所述处理模块中进行处理;
汇总所述处理模块的处理结果并输出。
2.如权利要求1所述的阵列服务器算力集群方法,其特征在于,所述算力集群需求包括算力大小需求,所述运行信息包括空闲模块数量和所述处理模块的剩余算力;
所述根据所述算力集群需求和所述运行信息确定集群模式,包括:
若所述算力大小需求大于所述剩余算力,则匹配第一集群模式,所述第一集群模式用于将所述数据包划分为多个第一子包,所述第一子包用于优先填满所述剩余算力最大的所述处理模块;
若所述算力大小需求小于或等于所述剩余算力,且所述空闲模块数量小于预设数量,则匹配第二集群模式,所述第二集群模式用于将所述数据包划分为多个第二子包,所述第二子包用于平均每个所述处理模块的所述剩余算力;
若所述算力大小需求小于或等于所述剩余算力,且所述空闲模块数量大于预设数量,则匹配第三集群模式,所述第三集群模式用于将所述数据包划分为大小均等的多个第三子包,所述第三子包用于优先填满剩余算力最大的所述处理模块。
3.如权利要求1所述的阵列服务器算力集群方法,其特征在于,所述算力集群需求包括至少一项算力能力需求,所述算力能力需求表明所述数据包需要执行的处理任务,所述算力能力需求包括数据处理需求、图形处理需求、视频处理需求、神经网络处理需求中的一项;所述处理模块包括多个算力处理器,所述算力处理器用于完成对应的处理任务,所述算力处理器包括:中央处理器、图形处理器、视频处理器、神经网络处理器;
所述根据所述算力集群需求和所述运行信息确定集群模式,包括:
根据所述算力能力需求确定所述数据包将要分发的所述算力处理器,以确定所述集群模式。
4.如权利要求3所述的阵列服务器算力集群方法,其特征在于,当所述算力能力需求包括所述神经网络处理需求时,
所述根据所述集群模式将所述数据包划分为多个子包,并发送至多个所述处理模块中进行处理,包括:
控制所述处理模块根据预设模型和所述子包进行梯度计算;
所述汇总所述处理模块的处理结果并输出,包括:
获取每个所述处理模块处理得到的参数梯度;
通过梯度聚合操作,汇总所述参数梯度,以用于更新所述预设模型的参数,并进行下一轮的训练。
5.如权利要求1所述的阵列服务器算力集群方法,其特征在于,所述算力集群需求还包括有优先级,所述运行信息包括所述处理模块的剩余算力;当获取到多个所述数据包时,
所述根据所述算力集群需求和所述运行信息确定集群模式,包括:
若所述剩余算力高于空闲阈值,则匹配第四集群模式,所述第四集群模式用于将所述优先级高的数据包划分至第一处理模块中,将所述优先级低的数据包划分至第二处理模块中,所述第一处理模块为所述阵列服务器中所述剩余算力最大的处理模块,所述第二模块为所述阵列服务器中除所述第一处理模块外的其余处理模块;
若所述剩余算力小于或等于空闲阈值,则匹配第五集群模式,所述第五集群模式用于先将所述优先级高的数据包划分处理后,再对所述优先级低的数据包进行划分。
6.一种控制模块,其特征在于,包括处理器和存储器;
所述处理器用于执行所述存储器中存储的计算机程序以实现如权利要求1到5中任一项所述方法。
7.一种阵列服务器,其特征在于,包括一个控制模块和至少一个处理模块;
所述控制模块用于执行如权利要求1到5中任一项所述方法;
所述处理模块用于接收所述控制模块发送的子包,对所述子包进行处理并反馈回处理结果至所述控制模块。
8.如权利要求7所述的阵列服务器,其特征在于,所述阵列服务器还包括有网络模块,所述网络模块用于建立局域网以连接所述阵列服务器中的控制模块和所有所述处理模块;当多个所述处理模块被选中用于算力集群时,所述网络模块在被选中的所述处理模块间建立子网,以使得所述子网与其他所述处理模块形成网络隔离。
9.如权利要求7所述的阵列服务器,其特征在于,所述处理模块包括多个算力处理器,所述算力处理器用于完成对应的处理任务,所述算力处理器包括:中央处理器、图形处理器、视频处理器、神经网络处理器。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1到5中任一项所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310185257.8A CN116302512A (zh) | 2023-02-17 | 2023-02-17 | 阵列服务器算力集群方法、控制模块、阵列服务器和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310185257.8A CN116302512A (zh) | 2023-02-17 | 2023-02-17 | 阵列服务器算力集群方法、控制模块、阵列服务器和介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116302512A true CN116302512A (zh) | 2023-06-23 |
Family
ID=86800685
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310185257.8A Pending CN116302512A (zh) | 2023-02-17 | 2023-02-17 | 阵列服务器算力集群方法、控制模块、阵列服务器和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116302512A (zh) |
-
2023
- 2023-02-17 CN CN202310185257.8A patent/CN116302512A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE112020002509T5 (de) | System und verfahren zur erleichterung der effizienten paketinjektion in einen ausgangspuffer in einer netzwerkschnittstellensteuerung (nic) | |
WO2021136137A1 (zh) | 一种资源调度方法、装置及相关设备 | |
US20100183028A1 (en) | System And Method For Establishing Sufficient Virtual Channel Performance In A Parallel Computing Network | |
US20080240110A1 (en) | Memory system with apparatus and method to enable balanced bandwidth utilization | |
CN112214319B (zh) | 一种计算资源感知的任务调度方法 | |
CN111526169B (zh) | 通过网络发送数据的方法、介质、服务器和计算机设备 | |
US20100100703A1 (en) | System For Parallel Computing | |
CN111416858A (zh) | 一种媒体资源的处理平台、方法、装置和服务器 | |
CN114706816A (zh) | 数据迁移方法、装置及存储介质 | |
CN116627659B (zh) | 模型检查点文件保存方法、装置、设备及存储介质 | |
CN116208615A (zh) | 网络数据处理方法、处理模块、阵列服务器和介质 | |
CN117130723A (zh) | 分配信息的确定方法、装置、计算机设备和存储介质 | |
CN116302512A (zh) | 阵列服务器算力集群方法、控制模块、阵列服务器和介质 | |
CN116483547A (zh) | 资源调度方法、装置、计算机设备和存储介质 | |
CN114253698A (zh) | 资源调度方法、系统、电子设备及存储介质 | |
CN111314249A (zh) | 一种5g数据转发平面的避免数据包丢失的方法和服务器 | |
CN115208900B (zh) | 基于区块链与博弈模型的多云架构云服务资源调度方法 | |
US20230205418A1 (en) | Data processing system and operating method thereof | |
CN113438274A (zh) | 数据传输方法、装置、计算机设备及可读存储介质 | |
CN114448909A (zh) | 基于ovs的网卡队列轮询方法、装置、计算机设备及介质 | |
DE112021005833T5 (de) | Disaggregation von steuerungspfad und datenpfad | |
CN114819195A (zh) | 集成学习模型的训练方法、装置、系统和相关设备 | |
CN113157415A (zh) | 农场渲染方法、装置、电子设备和存储介质 | |
CN112988061A (zh) | 用于动态可编程分配方案的带交叉开关的高带宽存储系统 | |
CN110955522A (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 |