服务器及数据传输方法与流程

文档序号:17536898发布日期:2019-04-29 14:05阅读:461来源:国知局
服务器及数据传输方法与流程

本申请涉及电子设备技术领域,更具体地说,涉及一种服务器及数据传输方法。



背景技术:

根据服务器的尺寸不同,服务器存在多种标准,例如1u服务器,2u服务器,3u服务器,4u服务器,5u服务器等等。除1u服务器外,其它标准的服务器(以下简称多u服务器)由于具有较大的容纳空间,因而可以集成更多的元器件,因而扩展性能更好。然而,多u服务器的空间也是有限的,目前的多u服务器由于内部结构或其它一些因素的限制,仍然存在性能上的局限性。例如,以2u服务器为例,目前的2u服务器中,可以配置两个cpu和两个gpu,但每个gpu只能与一个cpu连接,这样导致两个gpu之间的通信必须经过两个cpu的内存进行数据中转,使得gpu之间的数据传输效率较低。

因此,如何提高两个gpu之间的数据传输效率成为亟待解决的技术问题。



技术实现要素:

本申请的目的是提供一种服务器及数据传输方法,以至少部分的克服现有技术中存在的技术问题。

为实现上述目的,本申请提供了如下技术方案:

一种服务器,包括:

至少两个中央处理器;其中,

存在n个中央处理器,其中每个中央处理器通过总线一一对应连接有控制单元;n为大于1的正整数;

所述n个中央处理器还通过总线连接有桥接单元,所述n个中央处理器连接的控制单元通过所述桥接单元建立通信链路;所述桥接单元为具有数据转发功能的部件。

上述服务器,优选的,所述桥接单元与所述至少两个中央处理器之间的总线中的链路总数,小于或等于所述控制单元与所述中央处理器之间的总线中的链路总数。

上述服务器,优选的,所述桥接单元为网卡。

上述服务器,优选的,所述网卡为开放计算项目ocp网卡

上述服务器,优选的,所述n个中央处理器连接的控制单元为相同或不同的控制单元。

上述服务器,优选的,所述控制单元是与所述中央处理器不同的用于特定运算的处理器。

上述服务器,优选的,所述控制单元包括:网卡。

上述服务器,优选的,所述中央处理器与所述控制单元之间,以及所述中央处理器与所述桥接单元之间,通过pcie总线连接。

一种数据传输方法,应用于服务器,包括:

第一控制单元通过第一中央处理器中的总线将数据传输给桥接单元;

所述桥接单元通过第二中央处理器中的总线将所述数据传输给第二控制单元。

上述方法,优选的,所述第一控制单元通过第一中央处理器中的总线将数据传输给桥接单元,包括:

所述第一控制单元通过与所述第一中央处理器连接的第一总线将所述数据传输给所述第一中央处理器;

所述中央处理器通过与所述桥接单元连接的第二总线将所述数据传输给所述桥接单元;

所述第二总线中的链路数小于所述第一总线中的链路数。

上述方法,优选的,所述桥接单元通过第二中央处理器中的总线将所述数据传输给第二控制单元,包括:

所述桥接单元通过与所述第二中央处理器连接的第三总线将所述数据传输给所述第二中央处理器;

所述第二中央处理器与所述第二控制单元连接的通过第四总线将所述数据传输给所述第二控制单元;

所述第三总线中的链路数小于所述第四总线中的链路数。

通过以上方案可知,本申请提供的一种服务器及数据传输方法,在服务器中增加一桥接单元,通过总线建立n个中央处理器与桥接单元之间的连接,n个中央处理器中,每个中央处理器还通过总线一一对应连接有控制单元,使得n个中央处理器连接的控制单元之间可以通过总线及桥接单元直接建立通信链接,提高控制单元之间的数据传输效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为现有技术中2u服务器的结构示意图;

图2为本申请实施例提供的服务器的一种结构示意图;

图3为本申请实施例提供的服务器的另一种结构示意图;

图4为本申请实施例提供的数据传输方法的一种实现流程图。

说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的部分,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示的以外的顺序实施。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,为现有技术中2u服务器的结构示意图。基于该结构,当

gpu1需要向gpu2发送数据时,需要gpu1先把数据写入cpu1为其分配的内存中,然后cpu1从内存中读取数据,并将该数据发送给cpu2,cpu2将接收到的数据写入cpu2为gpu2分配的内存中,然后gpu2再从cpu2为其分配的内存中读取数据,可见,这种结构需要多次的数据读写操作,使得gpu1与gpu2之间的数据传输速率较慢。

下面说明本申请公开的服务器及数据传输方法的具体实现方式。

请参阅图2,图2为本申请实施例提供的服务器的一种结构示意图,可以包括:

m个中央处理器(centralprocessingunit,cpu)11,n个控制单元12和桥接单元13;其中,m大于或等于n,m和n均为大于1的正整数。

控制单元12与中央处理器11不同。

桥接单元13为具有数据转发功能的部件。

在上述m个中央处理器11中,存在n个中央处理器11,该n个中央处理器11中的每个中央处理器11均一一对应连接有一控制单元12,且中央处理器11与控制单元12之间通过总线连接。上述n个中央处理器11还通过总线与上述桥接单元13连接。基于此,上述n个控制单元12直接通过总线与上述桥接单元13建立了通信链路,也就是说,上述n个控制单元12之间通过上述桥接单元13建立了通信链接。这样,上述n个控制单元12之间无需通过中央处理器11为其分配内存即可进行通信。

通常,cpu之间也通过总线建立连接,但cpu之间的连接总线,与上述cpu与控制单元之间的连接总线的类型不同。本申请实施例中,cpu与桥接单元之间的连接总线的类型,和cpu与控制单元之间的连接总线的类型相同。为便于区分,可以将cpu与控制单元之间的连接总线以及cpu与桥接单元之间的连接总线记为第一类型总线,将cpu之间的连接总线记为第二类型总线。

例如,第一类型总线可以为pcie(peripheralcomponentinterconnectexpress)总线,第二类型总线可以为qpi(quickpathinterconnect)总线。

本申请提供的服务器,配置有桥接单元,通过总线建立n个中央处理器与桥接单元之间的连接,n个中央处理器中,每个中央处理器还通过总线一一对应连接有控制单元,使得n个中央处理器连接的控制单元之间可以通过总线及桥接单元直接建立通信链接,提高控制单元之间的数据传输效率。

需要说明的是,图1所示服务器中,仅示出了两个cpu和两个控制单元,但服务器中,cpu的数量并不仅限于2个,控制单元的数量也不仅限于2个,只要其满足cpu的数量大于或等于控制单元的数量,且一个控制单元与一个cpu一一对应连接即可。当服务器中具有多个cpu时,cpu之间的连接关系不做具体限定,例如,所有cpu之间可以两两互联,或者,仅有部分cpu之间具有连接关系。

如图3所示,为本申请实施例提供的服务器的另一种结构示意图。该示例中,服务器内共配置了4个cpu,其中,有3个cpu一一对应连接了控制单元,这样,这三个控制单元之间可以直接进行通信而无需经过cpu的内存。

在一可选的实施例中,桥接单元13与至少两个中央处理器11之间的总线中的链路总数,小于或等于控制单元12与中央处理器11之间的总线中的链路总数。

以图2为例,假设cpu1与桥接单元之间的总线中的链路数l1,和cpu2与桥接单元之间的总线中的链路数l2之和为l(即l1+l2=l),cpu1与控制单元1之间的总线中的链路数l3,cpu2与控制单元2之间的总线中的链路数l4,则l小于或等于l3,且l小于或等于l4。

以第一类型总线为pcie总线为例,则在一种可能的示例中,cpu1与桥接单元之间的总线可以为pciex8,cpu2与桥接单元之间的总线也可以为pciex8,而cpu1与控制单元1之间的总线可以为pciex16,cpu2与控制单元2之间的总线也可以为pciex16。

再另一可能的示例中,cpu1与桥接单元之间的总线可以为pciex4,cpu2与桥接单元之间的总线也可以为pciex4,而cpu1与控制单元1之间的总线可以为pciex16,cpu2与控制单元2之间的总线也可以为pciex8。

在一可选的实施例中,桥接单元13可以为网卡,该网卡可以是支持远程直接数据存取(remotedirectmemoryaccess,rdma)功能的网卡。为了节省服务器内部的空间,可选的,桥接单元13可以为开放计算项目(opencomputeproject,ocp)网卡

在一可选的实施例中,上述n个控制单元12可以是相同的控制单元,也可以是不同的控制单元。

在一可选的实施例中,控制单元12可以是与所述中央处理器11不同的,用于特定运算的处理器。例如,控制单元可以包括:

dpu--deeplearningprocessingunit,深度学习处理器,或者,datastorageprocessingunit,智能固态硬盘处理器;

gpu--graphicsprocessingunit,图形处理器;

hpu--holographicsprocessingunit全息图像处理器;

npu--neuralnetworkprocessingunit,神经网络处理器;

tpu--tensorprocessingunit张量处理器,这是google公司推出的加速人工智能算法的专用处理器;

vpu--vectorprocessingunit矢量处理器,这是intel收购的movidius公司推出的图像处理与人工智能的专用芯片的加速计算核心。

上述n个控制单元12可以仅包含上述几种处理器中的一种,即n个控制单元12是上述几种处理器中同一种处理器,例如,上述n个控制单元12均是gpu,或者,均是npu等。当然,上述n个控制单元12也可以包含上述几种处理器中的至少两种,例如,假设n为2,则该2两个控制单元12可能一个为gpu,一个为hpu,或者,一个为dpu,一个为npu等。若n为3,则该3个控制单元12可能为:两个gpu,一个dpu,或者,两个npu,一个hpu,或者,一个gpu,一个hpu,一个vpu等,当然,还有其它的可能的实现方式,这里不再一一举例说明。

在一可选的实施例中,控制单元12也可以包括网卡。需要说明的是,作为控制单元的网卡与作为桥接单元的网卡是相互独立的网卡。

基于此,上述n个控制单元12可以全部为网卡,通过每一个网卡,还可可以建立服务器与服务器之间的通信连接,例如,将第一服务器中的作为控制单元的第一网卡与第二服务器中的作为控制单元的第二网卡建立通信连接,从而实现第一服务器与第二服务器的网络连接。

在一可能的实现方式中,n个控制单元12中可以部分为网卡,部分为用于特定运算的处理器。

本申请还提供一种应用于上述服务器的数据传输方法。本申请提供的数据传输方法的一种实现流程图如图4所示,可以包括:

步骤s41:第一控制单元通过第一中央处理器中的总线将数据传输给桥接单元。

第一控制单元与第一中央处理器之间,以及第一中央处理器器与桥接单元之间均通过总线连接。

桥接单元可以是具有数据转发功能的部件,如网卡。

步骤s42:桥接单元通过第二中央处理器中的总线将数据传输给第二控制单元。

桥接单元与第二中央处理器之间,以及第二中央处理器与第二控制单元之间,均通过总线连接。

本申请提供的数据传输方法,第一控制单元和第二控制单元之间,通过桥接单元和中央处理器中的总线直接进行数据传输,而无需在中央处理器为控制单元分配的内存中进行传输数据的读写,从而提高第一控制单元和第二控制单元之间的数据传输效率。

在一可选的实施例中,第一控制单元通过第一中央处理器中的总线将数据传输给桥接单元,可以包括:

第一控制单元通过与第一中央处理器连接的第一总线将数据传输给第一中央处理器;

中央处理器通过与桥接单元连接的第二总线将数据传输给桥接单元;

其中,第二总线中的链路数小于第一总线中的链路数。

在一可选的实施例中,桥接单元通过第二中央处理器中的总线将数据传输给第二控制单元,可以包括:

桥接单元通过与第二中央处理器连接的第三总线将数据传输给第二中央处理器;

第二中央处理器与第二控制单元连接的通过第四总线将数据传输给第二控制单元;

其中,第三总线中的链路数小于第四总线中的链路数。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

应当理解,本申请实施例中,从权、各个实施例、特征可以互相组合结合,都能实现解决前述技术问题。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1