CN116795769A - 一种SoC集群及分布式计算方法 - Google Patents

一种SoC集群及分布式计算方法 Download PDF

Info

Publication number
CN116795769A
CN116795769A CN202310770466.9A CN202310770466A CN116795769A CN 116795769 A CN116795769 A CN 116795769A CN 202310770466 A CN202310770466 A CN 202310770466A CN 116795769 A CN116795769 A CN 116795769A
Authority
CN
China
Prior art keywords
soc
ethernet
socs
calculation
communication
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.)
Granted
Application number
CN202310770466.9A
Other languages
English (en)
Other versions
CN116795769B (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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to CN202310770466.9A priority Critical patent/CN116795769B/zh
Priority claimed from CN202310770466.9A external-priority patent/CN116795769B/zh
Publication of CN116795769A publication Critical patent/CN116795769A/zh
Application granted granted Critical
Publication of CN116795769B publication Critical patent/CN116795769B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17318Parallel communications techniques, e.g. gather, scatter, reduce, roadcast, multicast, all to all
    • 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/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请公开了一种SoC集群及分布式计算方法,解决了如何将神经网络模型分拆到多个SoC上并高效运行的问题。一种SoC集群,包含多个SoC及连接其的以太网和控制器。所述SoC包含计算单元和网络通信单元,用于分布式计算及端到端通信。所述以太网,用于承载SoC间的点到点和集体通信,SoC通过内置的网络通信单元直接连接以太网。所述控制器,用于感知SoC剩余算力和内存,以及以太网剩余带宽。根据每个SoC能提供的算力和内存,以太网连接的带宽,计算任务对算力、内存和带宽的需求,对计算任务进行分解。在分布式计算过程中对SoC和以太网进行流量控制。本申请简化了分布式计算系统的体系结构,仅由SoC、以太网和控制器组成,提高分布式计算系统的效率。

Description

一种SoC集群及分布式计算方法
技术领域
本申请涉及分布式计算技术领域,尤其涉及一种SoC集群及分布式计算方法。
背景技术
近年来,神经网络,尤其是LLM(大语言模型)飞速发展,模型的参数已经超过1000亿,并将继续增长,随之而来是对算力的巨大需求。目前神经网络的训练和推理主要依靠GPU(Graphics Processing Unit,图形处理器)或NPU(Neural network Processing Unit,神经网络处理器)。单个GPU目前最大的算力约100TFLOPS,内存约100G。而LLM在训练时往往需要EFLOPS级别的算力,以及1T级别的内存空间。单个GPU无法单独完成这样庞大的计算任务,就必须采用并行计算的方法,使用多个GPU进行计算,但这又需要GPU之间的海量数据通信。例如神经网络训练时,在正向传播过程中,需要在GPU之间同步中间计算结果,而在反向传播过程中,更需要在GPU之间同步所有模型参数。在神经网络推理时,也需要在GPU之间同步计算结果。由于需要传送的数据量非常大,通信带宽成为瓶颈,影响了并行计算的效率。这就需要解决两个问题:如何提高GPU之间的数据通信效率以及如何将神经网络模型分拆,以便分布到多个GPU上运行,使得它们之间的数据通信需求最小化,并使得计算速度最大化。
现有AI服务器通常基于传统的PC体系结构,CPU通过PCIE(Peripheral componentInterconnect Express,外围设备快速互连)总线与GPU,NIC(Network Interface Card,网卡)等设备通信。CPU和GPU各有自己的内存。当单个GPU无法承载大型计算任务时,服务器安装多个GPU,这时候需要在GPU之间大量传送数据。为了加速GPU-GPU之间的通信,英伟达采用了NVLINK和NVSWITCH技术,在GPU之间建立直接通道。
这种方式的缺点是:GPU之间Collective通信(集体通信)效率低。例如,一个GPU更新其权重参数后,需要同步给所有其它GPU,由于NVSWITCH是一种点对点连接技术,它要分别向其他所有GPU发送这些参数,重复若干次。如果通过环网技术优化,即GPU仅将一份数据发送给环网上下一个GPU,这个GPU再接力发送给下一个GPU,则通信时延将增加若干倍。此外,CPU和GPU之间的数据通信效率低。当CPU给GPU发送数据时,CPU需要从内存中读取数据,通过PCIE总线发送给GPU,GPU将数据写入GPU内存,这期间需要2次内存读写、一次PCIE通信。反之亦然。
现有的超算中心则多采用异构计算架构,即计算单元分为CPU和GPU,CPU负责常规数值计算,GPU则负责图形和AI计算等。它们之间通过高速网络互连起来,如InfiniBand或融合以太网,NIC一般附着在CPU上。
这种方式的缺点是:CPU和GPU之间的数据通信效率低。当CPU向GPU发送数据时,CPU从内存中读取数据,通过PCIE总线发送给GPU,GPU将数据写入GPU内存,需要2次内存读写、一次PCIE通信。反之亦然。相似地,GPU和GPU之间的数据通信效率也低。当GPU向GPU发送数据时,需要在CPU的协助下,将数据通过PCIE总线发送给NIC,NIC通过高速网络发送到接收端NIC,接收端NIC接收数据后,再通过PCIE总线发送给接收端GPU。期间需要2次PCIE通信、1次网络通信。
为了让神经网络模型在多个GPU上分布运行,需要对神经网络模型进行拆分。目前主要的神经网络模型拆分技术有张量并行和流水线并行。
张量并行是利用矩阵乘法的可分解性质,将参数矩阵分解为若干个切片(如将矩阵的每个行向量作为一个切片),在不同的GPU上分别进行不同切片的矩阵乘法,然后将计算结果通过发送给所有其它GPU,接收端GPU将所有发送端的计算结果合并起来,供下一步计算使用。这种方式将计算任务分解到多个GPU上同时执行,可以成倍提高单批输入数据的计算速度。但缺点是每当遇到非矩阵运算,如非线性的激活函数时,就需要将计算结果合并一次,才能执行非矩阵运算,因此GPU间同步数据量大。另外一个缺点是它只能在一些特定的神经网络模型上使用,如Transformer,但在CNN模型上就不能使用。
流水线并行则利用大多数神经网络的顺序(Sequential)结构,将神经网络拆分成若干层,由不同的GPU承担,分层串行执行,上一个GPU计算完成后,将中间结果发送给下一个GPU,直到最后一个GPU输出结果。显然,这种方式并不能提高单次训练或推理的速度,但当进行批量数据的处理时,某个GPU完成其工作步骤后,无需等待整个任务完成,就可以处理下一批数据,多个GPU形成流水线,宏观上将计算任务分解到多个GPU上执行,也可以成倍提高整个系统的计算速度。其缺点是依赖神经网络的顺序结构,并且无法提高单批数据的计算速度。
发明内容
本申请实施例提供一种SoC集群及分布式计算方法,本申请通过SoC集群,解决了单个SoC无法运行大型计算任务的问题,进一步地,解决了如何将神经网络模型分拆到多个SoC上并高效运行的问题。
第一方面,本申请实施例提供一种SoC集群,包含多个SoC及连接其的以太网和控制器。所述SoC,用于分布式计算及端到端通信。所述以太网,用于承载SoC间的点到点和/或集体通信,SoC通过内置的网络通信单元直接连接以太网。所述控制器,用于以下至少一项功能:感知SoC剩余算力和内存,以及以太网剩余带宽。根据每个SoC能提供的算力和内存,以太网连接的带宽,计算任务对算力、内存和带宽的需求,对计算任务进行分解。在分布式计算过程中对SoC和以太网进行流量控制。
进一步地,SoC包含计算单元、网络通信单元和共享内存。所述计算单元和所述网络通信单元通过所述共享内存共享所分布式计算过程产生的数据。进一步地,每个SoC连接专属于此SoC的可读写存储器,所述可读写存储器用于接收和存储分布式计算步骤相关的程序和数据。
进一步地,所述以太网,有如下特征:包含一个或多个以太网交换芯片,或一个或多个以太网交换机。多个以太网交换芯片或以太网交换机采用CLOS架构。采用动态路由机制,在SoC间选择一到多条有足够带宽的路径,使得SoC间的通信无阻塞。这种动态路由机制支持SoC间的点到点通信(即单播)和/或SoC间的集体通信(即组播)。
进一步地,响应于N个SoC之间集体通信,发送端SoC仅发送一个拷贝到以太网,由以太网完成到多个接收端SoC的复制;控制器调节SoC的发送速率,使得在以太网的至少一条链路上所汇聚的多个SoC的发送流量不超过这条链路的剩余带宽,或者不大于任意接收SoC的入口带宽。
进一步地,响应于SoC间点对点通信,控制器调节SoC发送速率,通信,控制器调节SoC发送速率,使其不大于发送流量所经过的以太网至少一条链路上的剩余带宽或接收端SoC的入口带宽。
第二方面,本申请实施例还提供一种SoC集群分布式计算的方法,使用第一方面任意一项实施例所述SoC集群,包含以下步骤:
将计算任务抽象为计算图;
根据每个SoC提供的算力和内存,以太网连接的带宽,计算任务对算力、内存和带宽的需求,生成任务分解图,对计算任务进行分解;
将分解后的计算任务及数据下发给SoC;
某个SoC运行分配给它的若干计算步骤,计算完毕后,发送计算结果至承担下游计算步骤的若干SoC;
在发送结果到下游SoC前,调节SoC的发送速率,以及相应以太网链路上的流量控制机制,使得上下游SoC间的通信不丢包;
响应于SoC收到若干上游计算任务的计算结果,启动本SoC内的计算。
优选地,根据计算任务对应的计算图,生成任务分解图,包含以下步骤:
每个计算步骤映射为输入输出两个节点,它们之间有一条带权边,其权重为这个计算步骤所需的费用,并以这个计算需要的内存作为约束。以及,每个网络通信步骤映射为一条带权边,其权重为这次网络通信所需的费用,并以网络带宽作为约束,这条边连接上游计算步骤的输出和下游计算步骤的输入。所述费用为网络通信所花费的时间、成本或其它花费。
优选地,完成以下至少一个响应:
响应于某个计算步骤成为瓶颈,多个SoC分担这一步骤;
响应于某个SoC承担多个计算步骤,合并到同一个SoC内进行计算;
响应于某个通信步骤成为瓶颈,增加其网络带宽;
响应于一个SoC承担多个计算步骤,两个计算步骤间的通信步骤的权重设为0;
响应于下游计算步骤由N个SoC分担,将计算结果广播给这些SoC。
优选地,将计算任务图映射到SoC集群时,以计算任务完成时间最小化为目标进行优化。计算步骤对应的边的权重为计算时间,通信步骤对应的边的权重为通信时间。采用网络流算法寻找分解方案,使得整个计算任务中最长路径上所需要消耗的时间最小。
优选地,将计算任务图映射到SoC集群时,以计算任务花费的总成本最小化为目标进行优化。计算步骤对应的边的权重为固定值x,代表一个SoC的成本,通信步骤对应的边的权重为固定值y,代表一个以太网链路的成本。采用网络流算法寻找分解方案,使得整个计算任务所需要花费的总成本最小。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:
本申请通过SoC集群,解决了单个SoC无法运行大型计算任务的问题;简化了分布式计算系统的体系结构,仅由SoC、以太网和控制器组成。通过将计算任务对应的计算图映射到SoC集群,可以实现任意计算任务的分布式计算。通过任务分解图和网络流算法优化SoC集群中的任务分配,提高分布式计算系统的效率。通过SoC内共享内存技术避免了SoC内计算单元和网络通信单元之间数据拷贝,进一步提高了SoC间通信的速度,最终提升了分布式计算系统的效率。通过以太广播网络承载集体通信并实施流量控制,提高了多个SoC间集体通信的效率,最终提升了分布式计算系统的效率。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例一种SoC集群结构图;
图2为本申请实施例SoC内部组成图;
图3为SoC间的点对点(P2P)通信示意图;
图4为本申请实施例SoC间的集体(Collective)通信示意图;
图5为本申请实施例一种控制器结构图;
图6为本申请实施例一种SoC集群点对点通信流量控制方法流程图;
图7为本申请实施例一种SoC集群集体通信流量控制系统图;
图8为本申请实施例一种SoC集群分布式计算的方法流程图;
图9为本申请实施例SoC集群实现计算图的分布式计算示意图;
图10为本申请实施例计算图的任务分解示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下结合附图,详细说明本申请各实施例提供的技术方案。
图1为本申请实施例一种SoC集群结构图。本申请实施例提供一种SoC集群,包含多个(例如至少三个)SoC1以及连接其的以太网2和控制器3。
所述SoC,用于分布式计算及端到端通信。所述SoC,即单片系统(System onChip),
所述以太网,用于承载SoC间的点到点和集体通信,SoC通过内置的网络通信单元直接连接以太网。
所述控制器,用于以下至少一项功能:
感知SoC剩余算力和内存,以及以太网剩余带宽。
根据每个SoC能提供的算力和内存,以太网连接的带宽,计算任务对算力、内存和带宽的需求,对计算任务进行分解。
在分布式计算过程中对SoC和以太网进行流量控制。
SoC集群根据任务分解图定义的拓扑顺序完成整个计算任务并输出结果。
需要说明的是,本申请中SoC的算力是指SoC单位时间内能完成的最大计算次数,SoC剩余算力是指假设SoC已经承担了计算任务的情况下,还能够在单位时间内完成的计算次数。
所述以太网剩余带宽,是指假设某个以太网链路已经承载了网络流量的情况下,还剩余多少带宽可以承载新的网络流量。
作为本申请的最佳实施例,通过无损无阻塞的融合以太网(ConvergedEthernet),将多个SoC(System on Chip,片上系统)芯片连接起来,形成计算集群,在控制器的协调下实现分布式计算。
SoC用于分布式计算以及端到端的通信。
以太网承载SoC间的点到点和集体通信,实现无损传输,在传输过程中不丢包。例如,SoC集群没有单独的计算和存储单元,都分布到SoC内部。或者,每个SoC连接到专属于此SoC的可读写存储器,所述可读写存储器用于接收和存储分布式计算步骤相关的程序和数据。
进一步地,所述以太网,有如下特征:包含一个以太网交换芯片,或多个以太网交换芯片,或多个以太网交换机。
所述的多个以太网交换芯片或以太网交换机采用CLOS架构。例如,所述融合以太网采用CLOS架构实现无阻塞。
采用动态路由机制,在SoC间选择一到多条有足够带宽的路径,使得SoC间的通信无阻塞。这种动态路由机制,即支持SoC间的点到点通信(即单播),也支持SoC间的集体通信(即组播)。
图2为本申请实施例SoC内部组成图。进一步地,SoC包含计算单元、网络通信单元和共享内存,并连接专属于此SoC的可读存储器。所述计算单元产生的数据通过共享内存与网络通信单元共享,无需复制。
每个SoC是图灵完备的计算单元,如图5所示,SoC内部有CPU/GPU、NPU等计算单元,RAM等存储单元,以及以太网NIC等网络通信单元。CPU/GPU、NPU和NIC之间共享RAM,即共享内存。CPU/GPU用于通用计算,NPU用于神经网络计算,NIC用于网络通信。SoC通过NIC直接连接到以太网。
图3为SoC间的点对点(P2P)通信示意图。进一步地,为避免SoC之间的数据通信由于拥塞而产生丢包,由控制器根据并行计算任务的需求,提前计算各个SoC间通信带宽的需求,根据SoC间以太网的带宽,对SoC的发送速率进行流量控制,从而避免拥塞。
响应于SoC间点对点通信,控制器调节SoC发送速率,使其不大于发送流量所经过的以太网至少一条链路上的剩余带宽或接收端SoC的入口带宽。即发送端SoC的发送速率不大于发送端SoC和接收端SoC之间的带宽。
如图3所示,借助SoC内的共享RAM和SoC间的RDMA协议,SoC间实现了高效的P2P通信。假设需要在两个SoC的NPU之间通信。P2P通信消息由NPU产生,通过共享RAM交给NIC,NIC通过RDMA协议发送消息给融合以太网络,到达接收端NIC,接收端NIC通过共享RAM将消息交给NPU。这期间,NIC和NPU通过共享内存技术,仅传递内存指针,避免了数据拷贝,提高了通信效率。这时流量控制需要计算两个SoC之间的带宽,SoC发送速率不大于上述带宽。
图4为本申请实施例SoC间的Collective(集体)通信示意图。进一步地,响应于N个SoC之间集体通信,发送端SoC仅发送一个拷贝到以太网,由以太网完成到多个接收端SoC的复制。控制器调节SoC的发送速率,使得在以太网的至少一条链路上所汇聚的多个SoC的发送流量不超过这条链路的剩余带宽,或者不大于任意接收SoC的入口带宽。一种简单场景为,N个SoC之间通信,以太网接收发送端SoC的数据广播至多个接收端SoC。单个发送端SoC的发送速率不大于接收端SoC入口带宽的1/(N-1)。
例如,在同一台物理服务器内,SoC之间通过无阻塞交换网板相互连接。多台物理服务器之间通过CLOS架构的融合以太交换网络互联,可以跨越多个子网,实现大规模组网。
例如,为了高效实现SoC间的集体通信,如All-Reduce,All-Gather等All-to-All操作,本系统利用了以太网的广播特性,提高RDMA在融合以太网的效率。假设在SoC上,集体通信消息由NPU产生,通过共享RAM交给NIC,NIC仅发送一次消息到交换网板,交换网板将其广播到本物理服务器上所有相关的SoC。如果需要,交换网板将消息进一步广播到物理服务器之间的以太交换网络上,最终到达位于不同物理服务器的所有SoC,接收端NIC通过共享RAM将消息交给NPU。为了跨越子网(广播域),以及避免无关SoC参与通信,可采用组播技术减小广播范围。这时候的流量控制需要考虑N个SoC之间同时发送和同时接收的情况,调节SoC的发送速率,使得在以太网的至少一条链路上所汇聚的多个SoC的发送流量不超过这条链路的剩余带宽,或者不大于任意接收SoC的入口带宽。
图5为本申请实施例一种控制器结构图。所述控制器,用于以下至少一项功能:接收计算任务并抽象为计算图。根据每个SoC能提供的算力和内存,以太网连接的带宽,生成任务分解图,对计算任务进行分解。将分解后的计算任务及数据下发给SoC。
在集群中,每个SoC都可以执行分布式计算的一部分,包含若干个计算步骤。控制器进行任务分配,控制器的实现可以是一个特定的SoC。控制器用于管理整个计算集群,实现计算和网络资源的统一调度。
为实施上述技术方案,本申请提出的一种控制器,包含相互连接的资源感知模块301、资源分配模块302、资源控制模块303。
所述资源感知模块,用于感知计算和网络资源,接收计算任务,如实施例步骤110、130、140。
所述资源分配模块,用于根据每个SoC能提供的算力和内存,以太网连接的带宽,生成任务分解图,对计算任务进行分解,如实施例步骤220。
所述资源控制模块,用于将分解后的计算任务及数据下发给SoC,并对SoC间的流量进行控制,如实施例步骤230~280。
实现所述资源感知模块、资源分配模块、资源控制模块功能的具体方法如本申请各方法实施例所述,这里不再赘述。
例如,本申请所述的控制器,为了实现上述实施例所述SoC集群实现计算图的方法,还用于以下至少一项功能:
确定参与通信的SoC数量;确定接收端SoC入口带宽;调节发送端SoC的发送速率。
进一步地,所述资源感知模块,还用于感知参与通信的SoC数量和接收端SoC入口带宽。
所述资源控制模块,还用于调节所述发送端SoC的发送速率。
所述控制器同以太网连接。为避免SoC之间的数据通信由于拥塞而产生丢包,由控制器根据并行计算任务的需求,提前计算各个SoC间通信带宽的需求,根据SoC间以太网的带宽,对SoC的发送速率进行流量控制,从而避免拥塞。
需要说明的是,所述控制器可以由某个SoC承担或者是独立的处理器,这里不做进一步限定。
图6为本申请实施例一种SoC集群点对点控制方法流程图。
本申请实施例还提供一种SoC集群控制方法,用于本申请第一方面任意一项实施例所述的SoC集群的点对点通信,包含以下步骤:
步骤110、感知发送端SoC与接收端SoC端口带宽、以及各端口之间的以太网链路的带宽;
步骤120、调节发送端SoC发送速率小于发送端SoC与接收端SoC的带宽。
例如,点对点传输时,所述发送端计算单元生成数据并将数据发送至发送端共享内存得到相应的内存指针,将内存指针发送至发送端网络通信单元。所述发送端网络通信单元,接收发送端计算单元发送的内存指针,并根据内存指针获得发送端共享内存中的数据并发送到以太网。
所述接收端网络通信单元,用于接收数据并存储到接收端共享内存中,并将内存指针发送至接收端计算单元。所述接收端计算单元,接收内存指针,获得接收端共享内存中的数据。
图7为本申请实施例一种SoC集群集体通信控制系统图。在图示系统中,本申请实施例还提供一种SoC集群控制方法,用于SoC集体通信,使用本申请第一方面任意一项实施例所述SoC集群,感知SoC剩余算力、内存,以及以太网剩余带宽,具体包含以下步骤130~140;进行流量控制,具体包含以下步骤150:
步骤130、确定参与通信的若干个SoC;
步骤140、确定上述SoC间集体通信所经过的以太网链路及剩余带宽,包括接收端SoC入口带宽;
步骤150、调节发送端SoC的发送速率,使得在以太网的至少一条链路上所汇聚的多个SoC的发送流量不超过这条链路的剩余带宽,或者不大于任意接收SoC的入口带宽。
图8为本申请实施例一种SoC集群分布式计算方法流程图。
本申请实施例还提供一种SoC集群分布式计算方法,使用上述任意一项实施例所述SoC集群,包含步骤:
步骤210、将计算任务抽象为计算图;
步骤220、根据每个SoC能提供的算力和内存,以太网连接的带宽,生成任务分解图,对计算任务进行分解;
步骤230、将分解后的计算任务及数据下发给SoC。
步骤240、某个SoC运行分配给它的若干计算步骤,计算完毕后,发送计算结果至承担下游计算步骤的所有SoC;
步骤250、响应于下游计算步骤由N个SoC分担,将计算结果广播给这些SoC;
步骤260、在发送结果到下游SoC前,调节SoC的发送速率,以及相应以太网链路上的流量控制机制,使得上下游SoC间的通信不丢包;
步骤270、响应于下游计算步骤由N个SoC分担,将计算结果广播给这些SoC;
步骤280、响应于SoC收到所有上游计算任务的计算结果,启动本SoC内的计算。
为进一步解释步骤220的任务分解,参见图9~10。
图9为本申请实施例SoC集群实现计算图的分布式计算示意图。在高效率P2P和集体通信基础之上,本集群实现高效率的分布式计算,如大规模神经网络的训练和推理,由于模型参数巨大,单个SoC无法容纳所有的参数,必须将其分布在不同的SoC上。对于较简单的神经网络,可以采用前面介绍的张量并行和流水线并行技术进行分布式计算。
但一个复杂的神经网络不仅仅具有顺序结构,而是一个由多个计算步骤组成的DAG(有向无环图),称为计算图。这种有向无环图也可以映射到SoC集群上,由不同的SoC承担不同的计算步骤。如果某个SoC需要多个输入,则等待所有上游SoC的计算结果通过网络送达后开始计算;某个SoC计算完成后,将结果通过网络发送给下游的其他SoC;重复以上过程,直到所有SoC完成计算。其中,计算图中的一个计算步骤可以由多个SoC承担,此时它们之间可以采用张量并行的方式分担计算任务,从而加速这个计算步骤。一个SoC也可以承担多个计算步骤,从而让系统中各个SoC的计算负载更加均衡。如图7所示。
图10为本申请实施例计算图的任务分解示意图。进一步地,根据计算任务对应的计算图,生成任务分解图,包含以下步骤:
每个计算步骤映射为输入输出两个节点,它们之间有一条带权边,其权重为这个计算步骤所需的费用,并以这个计算需要的内存作为约束;
每个网络通信步骤映射为一条带权边,其权重为这次网络通信所需的费用,并以网络带宽作为约束,这条边连接上游计算步骤的输出和下游计算步骤的输入。
每个计算步骤映射为输入输出两个节点,它们之间有一条带权边,其权重为这个计算步骤所需的时间,并以这个计算需要的内存作为约束。每个网络通信步骤映射为一条带权边,其权重为这次网络通信所需的时间,并以网络带宽作为约束,这条边连接上游计算步骤的输出和下游计算步骤的输入。响应于一个SoC可以承担多个计算步骤,两个计算步骤间的通信步骤的权重设为0。
例如,为了实现以上计算图到SoC集群拓扑的映射,采用控制器对计算任务进行分解,综合考虑计算开销和网络开销,寻找最优的分配方式,最大化整个计算图的执行效率。计算任务分解的一种实现是网络流算法。这时候,要将计算和网络的开销都在同一个图中表示出来,这个图称为任务分解图。在任务分解图中,每个计算步骤映射为两个节点,输入和输出,它们之间有一条带权边,其权重为这个计算步骤所需的时间,并以这个计算需要的内存作为约束;每个网络通信步骤映射为一条带权边,其权重为这次网络通信所需的时间,并以网络带宽作为约束,这条边连接上游计算步骤的输出和下游计算步骤的输入。如果一个SoC可以承担多个计算步骤,则两个计算步骤间的通信步骤的权重设为0。有了这个任务分解图,就可以采用最小费用最大流等算法计算最优的计算图分解方案。当某个计算步骤成为瓶颈时,可以由多个SoC分担这一步骤;某个SoC可以承担多个计算步骤时,则合并到同一个SoC内进行计算;当某个通信步骤成为瓶颈时,则可以考虑增加其网络带宽。从而优化整个分布式计算系统的效率。优化策略包括时间优先和成本优先。时间优先是指以计算任务完成时间最小化为目标进行优化,成本优先是指以计算任务花费的总成本(如SoC的数量)最小化为目标进行优化。
进一步地,生成任务分解图后,完成以下至少一个响应将计算步骤映射到SoC集群上:
响应于某个计算步骤成为瓶颈,多个SoC分担这一步骤;
响应于某个SoC承担多个计算步骤,合并到同一个SoC内进行计算;
响应于某个通信步骤成为瓶颈,增加其网络带宽;
响应于一个SoC承担多个计算步骤,两个计算步骤间的通信步骤的权重设为0。
得到任务分解图,即可采用最小费用最大流等算法计算最优的计算图分解方案。
当某个计算步骤成为瓶颈时,可以由多个SoC分担这一步骤;某个SoC可以承担多个计算步骤时,则合并到同一个SoC内进行计算;当某个通信步骤成为瓶颈时,则可以考虑增加其网络带宽。从而优化整个分布式计算系统的效率。优化策略包括时间优先和成本优先。时间优先是指以计算任务完成时间最小化为目标进行优化,成本优先是指以计算任务花费的总成本(如SoC的数量)最小化为目标进行优化。
进一步地,将计算任务图映射到SoC集群时,以计算任务完成时间最小化为目标进行优化。此时计算步骤对应的边的权重为计算时间,通信步骤对应的边的权重为通信时间。采用网络流算法寻找分解方案,使得整个计算任务中最长路径上所需要消耗的时间最小。
进一步地,将计算任务图映射到SoC集群时,以计算任务花费的总成本最小化为目标进行优化。此时计算步骤对应的边的权重为固定值x,即一个SoC的成本,通信步骤对应的边的权重为固定值y,即一个以太网链路的成本。采用网络流寻找分解方案,使得整个计算任务所需要花费的总成本最小化。
综上所述,整个SoC集群系统实现分布计算的工作流程包括以下步骤:
将计算任务提交给控制器。
控制器将计算任务抽象为计算图,根据每个SoC能提供的算力和内存,以太网连接的带宽,生成任务分解图,对计算任务进行分解。
控制器将分解后的计算任务及数据下发给SoC。
控制器启动整个计算任务。
某个SoC运行分配给它的若干计算步骤,计算完毕后,发送中间结果给承担下游计算步骤的所有SoC,特别的,如果某个下游计算步骤由多个SoC分担,需要将中间结果复制给这些SoC。控制器根据传递中间结果所需要的数据通信量以及SoC间的带宽,对发送SoC进行流量控制。
某个SoC收到所有上游计算任务的中间计算结果,启动本SoC内的计算。
重复上述两个步骤,直到最后的计算步骤完成,并输出最终结果。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种SoC集群,其特征在于,包含多个SoC及连接其的以太网和控制器;
所述SoC,用于分布式计算及端到端通信;
所述以太网,用于承载SoC间的点到点和/或集体通信,SoC通过内置的网络通信单元直接连接以太网;
所述控制器,用于以下至少一项功能:
感知SoC剩余算力和内存,以及以太网剩余带宽;
根据每个SoC能提供的算力和内存,以太网连接的带宽,计算任务对算力、内存和带宽的需求,对计算任务进行分解;
在分布式计算过程中对SoC和以太网进行流量控制。
2.根据权利要求1所述SoC集群,其特征在于,所述SoC包含计算单元、网络通信单元和共享内存;
所述计算单元与所述网络通信单元通过所述共享内存共享分布式计算过程产生的数据。
3.根据权利要求1所述SoC集群,其特征在于,所述以太网,有如下特征:
包含一个或多个以太网交换芯片,或一个或多个以太网交换机;
多个以太网交换芯片或以太网交换机采用CLOS架构;
采用动态路由机制,在SoC间选择一到多条有足够带宽的路径,使得SoC间的通信无阻塞;
所述动态路由机制支持SoC间的点到点通信和/或集体通信。
4.根据权利要求1所述SoC集群,其特征在于,响应于N个SoC之间集体通信,控制器调节SoC的发送速率,使得在以太网的至少一条链路上所汇聚的多个SoC的发送流量不超过这条链路的剩余带宽,或者不大于任意接收SoC的入口带宽;发送端SoC仅发送一个拷贝到以太网,由以太网完成到多个接收端SoC的复制。
5.根据权利要求1所述SoC集群,其特征在于,响应于SoC间点对点通信,控制器调节SoC发送速率,使其不大于发送流量所经过的以太网至少一条链路上的剩余带宽或接收端SoC的入口带宽。
6.一种SoC集群分布式计算的方法,其特征在于,使用权利要求1-5任意一项所述SoC集群,包含以下步骤:
将计算任务抽象为计算图;
根据每个SoC提供的算力和内存,以太网连接的带宽,计算任务对算力、内存和带宽的需求,生成任务分解图,对计算任务进行分解;
将分解后的计算任务及数据下发给SoC;
某个SoC运行分配给它的若干计算步骤,计算完毕后,发送计算结果至承担下游计算步骤的若干SoC;
在发送结果到下游SoC前,调节SoC的发送速率,以及相应以太网链路上的流量控制机制,使得上下游SoC间的通信不丢包;
响应于SoC收到若干上游计算任务的计算结果,启动本SoC内的计算。
7.根据权利要求6所述SoC集群分布式计算的方法,其特征在于,根据计算任务对应的计算图,生成任务分解图,包含以下步骤:
每个计算步骤映射为输入输出两个节点,它们之间有一条带权边,其权重为这个计算步骤所需的费用,并以这个计算需要的内存作为约束;
每个网络通信步骤映射为一条带权边,这条边连接上游计算步骤的输出和下游计算步骤的输入,其权重为这次网络通信所需的费用,并以网络带宽作为约束。
8.根据权利要求6所述SoC集群分布式计算的方法,其特征在于,完成以下至少一个响应:
响应于某个计算步骤成为瓶颈,多个SoC分担这一步骤;
响应于某个SoC承担多个计算步骤,合并到同一个SoC内进行计算;
响应于某个通信步骤成为瓶颈,增加其网络带宽;
响应于一个SoC承担多个计算步骤,两个计算步骤间的通信步骤的权重设为0;
响应于下游计算步骤由N个SoC分担,将计算结果广播给这些SoC。
9.根据权利要求6所述SoC集群分布式计算的方法,其特征在于,将计算任务图映射到SoC集群时,以计算任务完成时间最小化为目标进行优化;
计算步骤对应的边的权重为计算时间,通信步骤对应的边的权重为通信时间;
采用网络流算法寻找分解方案,使得整个计算任务中最长路径上所需要消耗的时间最小。
10.根据权利要求6所述SoC集群分布式计算的方法,其特征在于,将计算任务图映射到SoC集群时,以计算任务花费的总成本最小化为目标进行优化;
计算步骤对应的边的权重为固定值x,代表一个SoC的成本,通信步骤对应的边的权重为固定值y,代表一个以太网链路的成本;
采用网络流算法寻找分解方案,使得整个计算任务所需要花费的总成本最小。
CN202310770466.9A 2023-06-27 一种SoC集群及分布式计算方法 Active CN116795769B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310770466.9A CN116795769B (zh) 2023-06-27 一种SoC集群及分布式计算方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310770466.9A CN116795769B (zh) 2023-06-27 一种SoC集群及分布式计算方法

Publications (2)

Publication Number Publication Date
CN116795769A true CN116795769A (zh) 2023-09-22
CN116795769B CN116795769B (zh) 2024-11-05

Family

ID=

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160306677A1 (en) * 2015-04-14 2016-10-20 Globalfoundries Inc. Automatic Analytical Cloud Scaling of Hardware Using Resource Sub-Cloud
CN112463709A (zh) * 2019-09-09 2021-03-09 上海登临科技有限公司 可配置的异构人工智能处理器
US20220121594A1 (en) * 2021-12-23 2022-04-21 Intel Corporation Soc architecture to reduce memory bandwidth bottlenecks and facilitate power management
CN114788238A (zh) * 2019-12-27 2022-07-22 英特尔公司 云原生工作负载的数据管理平台中的存储管理
CN115981802A (zh) * 2021-10-14 2023-04-18 华为技术有限公司 一种计算系统及相关性能调节方法
US11681627B1 (en) * 2021-10-18 2023-06-20 Meta Platforms Technologies, Llc Distributed temporal cache for Systems on a Chip

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160306677A1 (en) * 2015-04-14 2016-10-20 Globalfoundries Inc. Automatic Analytical Cloud Scaling of Hardware Using Resource Sub-Cloud
CN112463709A (zh) * 2019-09-09 2021-03-09 上海登临科技有限公司 可配置的异构人工智能处理器
CN114788238A (zh) * 2019-12-27 2022-07-22 英特尔公司 云原生工作负载的数据管理平台中的存储管理
CN115981802A (zh) * 2021-10-14 2023-04-18 华为技术有限公司 一种计算系统及相关性能调节方法
US11681627B1 (en) * 2021-10-18 2023-06-20 Meta Platforms Technologies, Llc Distributed temporal cache for Systems on a Chip
US20220121594A1 (en) * 2021-12-23 2022-04-21 Intel Corporation Soc architecture to reduce memory bandwidth bottlenecks and facilitate power management

Similar Documents

Publication Publication Date Title
Zhang et al. Adaptive interference-aware VNF placement for service-customized 5G network slices
Wang et al. Blink: Fast and generic collectives for distributed ml
Zhang et al. Online adaptive interference-aware VNF deployment and migration for 5G network slice
Cui et al. A novel offloading scheduling method for mobile application in mobile edge computing
Li et al. Priority based real-time communication for large scale wormhole networks
Tan et al. Joint online coflow routing and scheduling in data center networks
CN111475274A (zh) 云协同多任务调度方法及装置
CN113645146B (zh) 基于新流密度的软件定义网络控制器负载均衡方法及系统
Zhang et al. Online scheduling optimization for DAG-based requests through reinforcement learning in collaboration edge networks
Guo et al. A delay-sensitive resource allocation algorithm for container cluster in edge computing environment
CN114938374A (zh) 跨协议负载均衡方法及系统
Kanwal et al. A genetic based leader election algorithm for IoT cloud data processing
Xu et al. Online learning algorithms for offloading augmented reality requests with uncertain demands in MECs
Luo et al. Optimizing multicast flows in high-bandwidth reconfigurable datacenter networks
Zhu et al. Deep reinforcement learning-based edge computing offloading algorithm for software-defined IoT
Wu Deep reinforcement learning based multi-layered traffic scheduling scheme in data center networks
Li et al. Co-Scheduler: A coflow-aware data-parallel job scheduler in hybrid electrical/optical datacenter networks
Silva et al. A survey on energy efficiency for the future Internet
Zeng et al. Scheduling coflows of multi-stage jobs under network resource constraints
CN116795769B (zh) 一种SoC集群及分布式计算方法
CN115580619B (zh) 数据处理系统和数据处理方法
CN116795769A (zh) 一种SoC集群及分布式计算方法
CN110647399A (zh) 一种基于人工智能网络的高性能计算系统及方法
Fang et al. Accelerating Distributed Training With Collaborative In-Network Aggregation
Qin et al. Interference and topology-aware VM live migrations in software-defined networks

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