CN102906726A - 协处理加速方法、装置及系统 - Google Patents
协处理加速方法、装置及系统 Download PDFInfo
- Publication number
- CN102906726A CN102906726A CN2011800051667A CN201180005166A CN102906726A CN 102906726 A CN102906726 A CN 102906726A CN 2011800051667 A CN2011800051667 A CN 2011800051667A CN 201180005166 A CN201180005166 A CN 201180005166A CN 102906726 A CN102906726 A CN 102906726A
- Authority
- CN
- China
- Prior art keywords
- association
- pending data
- request message
- buffer memory
- data
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 174
- 238000012545 processing Methods 0.000 title claims abstract description 155
- 230000005540 biological transmission Effects 0.000 claims abstract description 27
- 230000008569 process Effects 0.000 claims description 143
- 230000001133 acceleration Effects 0.000 claims description 15
- 239000007787 solid Substances 0.000 claims description 12
- 230000026676 system process Effects 0.000 claims description 6
- 230000002093 peripheral effect Effects 0.000 claims description 3
- 230000003139 buffering effect Effects 0.000 abstract description 4
- 230000008878 coupling Effects 0.000 description 9
- 238000010168 coupling process Methods 0.000 description 9
- 238000005859 coupling reaction Methods 0.000 description 9
- 238000012546 transfer Methods 0.000 description 8
- 238000012163 sequencing technique Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000000977 initiatory effect Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000013508 migration Methods 0.000 description 4
- 230000005012 migration Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 241001269238 Data Species 0.000 description 2
- 230000013011 mating Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 238000003825 pressing Methods 0.000 description 2
- 230000010076 replication Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
- G06F9/3879—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
- G06F9/3881—Arrangements for communication of instructions and data
-
- 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/505—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 the load
-
- 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/544—Buffers; Shared memory; Pipes
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Multi Processors (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明实施例公开一种协处理加速方法,包括:接收计算机系统中计算节点发出的携带有待处理数据地址信息的协处理请求消息,根据该协处理请求消息获得待处理数据,并将该待处理数据存储到公共缓存卡中;将存储在公共缓存卡中的待处理数据分配到计算机系统中的空闲的协处理卡进行处理。相应地,本发明实施例还公开了一种协处理任务管理装置、加速管理板卡及计算机系统,通过以上技术方案,使用添加的公共缓存卡来作为计算机系统硬盘和各个协处理卡之间的公共数据缓冲通道,待处理数据不必通过计算节点的内存来中转,避免了数据从计算节点内存传输的开销,从而突破了内存延迟、带宽的瓶颈,提高了协处理速度。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种协处理加速方法、装置及系统。
背景技术
随着计算机技术的发展,计算机被应用到越来越广阔的领域。除了日常生活中常见的计算办公应用之外,计算机还被应用到一些非常复杂的领域,例如大型科学计算、海量数据处理等,它们通常对计算机的处理能力有更高的要求。然而单个计算机的处理能力毕竟有限,在上述这些大规模的运算场景下,容易成为系统性能提升的瓶颈,集群系统的出现有效解决了这一问题,所谓集群系统,就是通过高速互联网络连接起来的多台自治计算机和相关资源组成的高性能系统,其中每一台自治计算机称为一个计算节点。在集群中,由于每个计算节点的CPU(central processing unit,中央处理器)是作为通用计算设备来设计的,在某些特定应用领域,例如图像处理、音频处理等,处理效率往往不高,所以出现了很多协处理器,例如网络协处理器,GPU(Graphics processing unit,图形处理器),压缩协处理器等,这些协处理器可以辅助计算节点进行任务处理,即协处理;协处理器辅助计算节点处理的任务称为协处理任务。在大型计算机系统海量计算场景下,如何利用协处理器辅助计算节点进行协处理,将直接关系到计算机系统的工作效率。
现有技术中,协处理器大都以PCIE(Peripheral Component InterconnectExpress,快速外设组件互连)协处理卡的方式添加在计算机系统当中,并由计算机系统的计算节点控制协处理器进行协处理任务的处理,同时利用计算节点的内存作为协处理卡和计算节点数据传输的通道,以中转待处理数据和经协处理卡处理完毕的数据。
采用现有技术中的这种架构,所有待处理数据数据必须通过计算节点的内存来中转,增加了内存开销,而由于内存带宽、延迟等因素的限制,协处理速度不高。
发明内容
本发明的实施例提供一种计算机系统、协处理加速方法、协处理任务管理装置及加速管理板卡,用于减少计算机系统的内存开销和提高计算机系统中协处理器的协处理速度。
本发明实施例提供一种计算机系统,包括:至少一个计算节点、总线交换器和至少一个协处理卡,所述计算机系统还包括:公共缓存卡和协处理任务管理装置,所述公共缓存卡为所述计算机系统中各个计算节点和各个协处理卡之间的数据传输提供临时存储;所述公共缓存卡和所述至少一个协处理卡通过所述总线交换器互连;
所述计算节点用于,发送协处理请求消息;
所述协处理任务管理装置用于:接收所述协处理请求消息,所述协处理请求消息携带有待处理数据的地址信息;所述待处理数据为所述计算节点请求处理的数据;根据所述协处理请求消息携带的待处理数据的地址信息,获得所述待处理数据,并将所述待处理数据存储到所述公共缓存卡中;将存储到所述公共缓存卡中的待处理数据分配到所述计算机系统中的空闲的协处理卡进行处理。
本发明实施例提供一种协处理加速方法,包括:
接收计算机系统中计算节点发出的至少一个协处理请求消息,所述协处理请求消息携带有待处理数据的地址信息;所述待处理数据为所述计算节点请求处理的数据;
根据所述协处理请求消息携带的待处理数据的地址信息,获得所述待处理数据,并将所述待处理数据存储到公共缓存卡中;所述待处理数据为所述协处理请求消息请求处理的数据;
将存储在所述公共缓存卡中的待处理数据分配到所述计算机系统中的空闲的协处理卡进行处理。
本发明的实施例提供一种协处理任务管理装置,包括:
消息接收模块,用于接收计算机系统中计算节点发出的至少一个协处理请求消息,所述协处理请求消息携带有待处理数据的地址信息;所述待处理数据为所述计算节点请求处理的数据;
第一数据传送模块,用于根据所述协处理请求消息携带的待处理数据的地址信息,获得所述待处理数据,并将所述待处理数据存储到公共缓存卡中;所述待处理数据为所述协处理请求消息请求处理的数据;
第二数据传送模块,用于将存储在所述公共缓存卡中的待处理数据分配到所述计算机系统中的空闲的协处理卡进行处理。
本发明实施例还提供一种加速管理板卡,包括:控制器和PCIE接口单元;所述控制器通过所述PCIE接口单元与计算机系统的总线交换器数据连接;所述控制器用于接收所述计算机系统的中央处理器CPU发出的至少一个协处理请求消息,所述协处理请求消息携带有待处理数据的地址信息,所述待处理数据为所述CPU请求处理的数据;并根据所述协处理请求消息携带的待处理数据的地址信息,从所述计算机系统中的硬盘获取所述待处理数据,将所述待处理数据存储到公共缓存单元中;
所述控制器还用于,将存储在所述公共缓存单元中的待处理数据分配到所述计算机系统中的空闲的GPU加速卡进行处理,所述GPU加速卡通过自身的第一PCIE接口和所述计算机系统的总线交换器连接。
本发明实施例通过以上技术方案,使用公共缓存卡来作为计算机系统的各个计算节点和各个协处理卡之间的公共数据缓冲通道,待处理数据不必通过计算节点的内存来中转,避免了待处理数据从计算节点内存传输的开销,突破了内存延迟、带宽的瓶颈,提高了待处理数据的协处理速度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中一种协处理系统的架构图;
图2为本发明实施例一提供的一种协处理加速方法的流程图;
图3为本发明实施例二提供的一种协处理加速方法的流程图;
图4为本发明实施例三提供的一种协处理任务管理装置示意图;
图5为本发明实施例三的第二数据传送模块示意图;
图6为本发明实施例四提供的一种计算机系统结构图;
图7为本发明实施例五提供的一种加速管理板卡示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为使本领域一般技术人员更好的了解本发明实施例提供的技术方案,对现有技术中的协处理系统及协处理方案做一个介绍。
如图1所示,现有技术方案中,协处理卡通过PCIE接口安置在输入/输出插框上,帮助计算节点完成协处理任务,输入/输出插框通过PCIE总线交换器与计算节点数据连接。步骤1,计算节点1将数据从硬盘复制到计算节点1的内存中;步骤2,计算节点1利用DMA(Direct Memory Access,直接内存存取)技术将数据从计算节点1的内存复制到协处理卡的内存进行处理;步骤3,计算节点1利用DMA将处理完的数据从协处理卡内存复制到计算节点1的内存;步骤4,计算节点1在该数据上进一步处理或将该数据重新保存到硬盘中。
本发明实施例提供给的技术方案可以应用于多处理器架构的大型计算设备、云计算、CRAN(cloud radio acess net,云无线接入网)业务等多种海量计算场景。如图2所示,本发明实施例一提供一种协处理加速方法,用于提高计算机系统中协处理的速度,根据图2,该方法包括:
S101,接收计算机系统中计算节点发出的至少一个协处理请求消息,所述协处理请求消息携带有待处理数据的地址信息;
需要说明的是,所述待处理数据为所述计算节点通过所述协处理消息请求处理的数据;本发明所有实施例中关于待处理数据的解释均如此。
具体地,在计算机系统中,存在至少一个计算节点和至少一个协处理卡,协处理卡可以辅助计算节点进行任务处理,即协处理;当计算节点需要协处理卡辅助进行任务处理时,就发出协处理请求消息。在一个实施例中,协处理请求消息可以为一个包含若干字段的数据报文。
在一个实施例中,协处理请求消息具体包括但不局限以下信息:
1.请求计算节点标志;
在一个计算机系统中,存在至少一个计算节点,请求计算节点标志用于标示和区分发起服务请求的计算节点;具体地,可以为计算机系统中的每个计算节点分配一个唯一的ID号,当某个计算节点发出协处理请求消息时,就将该计算节点的ID号作为请求计算节点标志。
2.请求类型;
请求类型用于表示计算节点请求的协处理类型,常见的协处理类型有:图形处理类、浮点运算类、网络类、Hash运算类等,具体地,可以用协处理请求消息中的一个字段来表示请求类型,例如,请求类型字段为graphic表示图形处理类、请求类型字段为float表示浮点运算类、请求类型字段为net表示网络类、请求类型字段为Hash表示Hash运算类。需要说明的是,在计算机系统中,可以配置一种或多种类型的协处理卡,因此可以允许的请求类型需要根据当前计算机系统中配置的协处理卡的种类来确定。例如,在一个实施例中,系统可以只配置一种类型的协处理卡,比如GPU加速卡,这时请求类型就只有图形处理类;在另一个实施例中,系统可以同时配置多种类型的协处理卡,比如浮点运算协处理卡、Hash运算协处理卡、网络协处理卡以及GPU加速卡等,这时请求类型就对应有浮点运算类、Hash运算类、网络类和图形处理类等,本发明实施例不做特别地限定。
3.待处理数据的地址信息;
一个实施例中,待处理数据的地址信息可以包括源地址和待处理数据的长度;
其中,源地址表示等待协处理卡处理的数据(即,待处理数据)所在存储空间的首地址。在一个实施例中,源地址可以是计算机系统的非易失性存储器中的某一地址,进一步地,所述非易失性存储器可以为硬盘或flash(闪存),需要说明的是,所述硬盘具体可以包括磁盘类硬盘及固态类硬盘(如flash SSD、PCMSSD)。
待处理数据长度表示待处理数据所需的存储空间的大小;
4.目的地址;
目的地址为经过协处理卡处理完成的数据最终的存储地址。在一个实施例中,目的地址可以是计算机系统的硬盘中的某一地址,例如硬盘中的某一地址。需要说明的是,所述硬盘具体可以包括磁盘类硬盘及固态类硬盘(如flash SSD、PCMSSD)
5.请求优先级;
请求优先级是由计算节点根据协处理任务的性质、紧迫程度或来源等来指定的,在一个实施例中,请求优先级可以分成高、中、低三个级别,当然可以理解的是,在另一个实施例中,优先级还可以细分成更多的级别,比如极高、高、普通、正常、较低、极低等,也可以是用阿拉伯数字1、2、3....代表的优先级别,本实施例不做特别地限定。
在一个实施例中,请求计算节点标志、请求类型、源地址、待处理数据长度、目的地址和请求优先级这些信息可以分别以字段的形式添加到协处理请求消息中,上述字段共同组成一个协处理请求消息。
S102,根据所述协处理请求消息携带的待处理数据的地址信息,获得待处理数据,并将所述待处理数据存储到公共缓存卡中;
需要说明的是,所述公共缓存卡为所述计算机系统中各个计算节点和各协处理卡之间的数据传输提供临时缓存;
具体地,在一个实施例中,可以根据协处理请求消息携带的地址信息,从计算机系统的硬盘中获取待处理数据。
在一个实施例中,协处理请求消息中的地址信息包括:源地址和待处理数据长度。具体地,根据协处理请求消息中的源地址和待处理数据长度这两个字段的信息来获取待处理数据,所述待处理数据具体指存放在计算机系统的硬盘中等待协处理卡进行处理的原始数据。由于协处理请求消息中的源地址字段表示待处理数据在计算机系统的硬盘中的首地址,因此,计算机系统的硬盘中从源地址开始,大小为待处理数据长度的连续地址空间内的数据即为待处理数据;将该待处理数据存储到公共缓存卡中。
在一个实施例中,将待处理数据存储到公共缓存卡中,可以采用复制或迁移的方式。
具体地,可以通过DMA方式实现上述复制或迁移操作。具体地,在进行数据复制或迁移之前,待处理数据所在存储器的I/O接口先向发出DMA请求指令,向计算机系统的总线逻辑控制器提出总线请求,当计算机系统中的计算节点执行完当前总线周期内的指令并释放总线控制权后,总线逻辑控制器输出总线应答,表示DMA已经响应,并将总线控制权交给DMA控制器,DMA控制器获得总线控制权后,通知待复制数据所在存储器的I/O接口开始DMA传输,然后输出读写命令,直接控制数据的传输,整个数据传输过程不需要计算机系统中计算节点的参与,有效节省了系统的资源。
需要说明的是,所述硬盘具体可以包括磁盘类硬盘及固态类硬盘(如flashSSD、PCMSSD)。
需要说明的是,公共缓存卡是添加在计算机系统中,作为各个计算节点和各个协处理卡进行数据传输的公共临时存储,它不同于协处理卡的缓存,如GPU加速卡的缓存,公共缓存卡是供计算机系统中所有协处理卡共用的缓存区,作为计算机系统硬盘和所有协处理卡传输数据的缓冲通道,公共缓存卡可以是具有快速存取能力的任何存储介质。在一个实施例中,公共缓存卡可以为PCIE公共缓存卡,其存储介质为Flash SSD(Solid State Storage,固态硬盘)、PCM SSD或DRAM(动态存储器)等。
S103,将存储在所述公共缓存卡中的待处理数据分配到所述计算机系统中的空闲的协处理卡进行处理。
需要说明的是,所述空闲的协处理卡,可以是当前没有协处理任务的协处理卡;也可以是根据负载均衡策略,选择出的负载较小或相对空闲的协处理卡,例如,可以将当前CPU利用率最低的协处理卡作为空闲的协处理卡。
具体地,在一个实施例中,根据协处理请求消息中的请求类型以及与该请求类型匹配的各协处理卡的利用率,来判断是否有与协处理请求消息中的请求类型匹配的空闲的协处理卡,若有匹配的空闲的协处理卡,则将公共缓存卡中的待处理数据分配给该空闲处理器进行处理。例如,在一个实施例中,若某一计算节点请求图形协处理服务,则通过系统函数调用来获取当前计算机系统中所有GPU加速卡的CPU利用率,若某个GPU加速卡的CPU的利用率小于5%,即可判定该GPU加速卡处于空闲状态,然后将待处理数据从公共缓存卡复制或迁移到该GPU加速卡的存储器进行处理;当然可以理解的是,在另一个实施例中,若某一计算节点请求其他类型的协处理服务,如浮点运算类,则应判断是否有浮点运算协处理卡空闲,这里不再赘述。
进一步地,为了根据优先级对多个协处理请求排序,使优先级高的协处理请求最先得到处理,使协处理卡得到更加合理的利用,在另一个实施例中,S103可以具体包括如下步骤:
(1)从各个协处理请求消息中获得所述各个协处理请求消息的请求优先级和请求类型;
(2)根据所述各个协处理请求消息的请求优先级和请求类型,确定各个协处理请求消息的处理顺序;
具体地,确定各协处理请求消息的处理顺序的方法是:将请求类型不同的协处理请求消息放入不同的消息队列,请求类型相同的协处理请求消息在对应的消息队列中按照请求优先级从高到低的顺序排队,请求优先级相同且请求类型相同的协处理请求消息,在对应的消息队列中按照请求的先后顺序排队;与请求类型匹配的空闲的协处理卡将按照对应任务队列中的先后顺序处理待处理数据。
(3)将所述各个协处理请求消息对应的待处理数据,按照所述处理顺序依次从所述公共缓存卡分配到所述计算机系统中的空闲的协处理卡进行处理。
需要说明的是,将待处理数据从公共缓存卡分配到空闲的协处理卡进行处理的具体方法之前已经作了详细说明,此处不再赘述。
本发明实施例一通过以上技术方案,根据计算机系统中各个计算节点的发送的协处理请求消息,将各个计算节点请求处理的待处理数据分配给系统中的空闲的协处理卡进行处理,计算节点不需要消耗自身的资源来进行待处理数据的分配,减少了各个计算节点自身的资源开销;并使用公共缓存卡来作为计算机系统的各个计算节点和各个协处理卡之间的公共数据缓冲通道,待处理数据不必通过计算节点的内存来中转,避免了待处理数据从计算节点内存传输的开销,突破了内存延迟、带宽的瓶颈,提高了待处理数据的协处理速度。
实施例二,本发明实施例提供一种协处理加速方法,用于提高计算机系统中协处理的速度,如图3所示,该方法包括:
S201,接收计算机系统中计算节点发出的至少一个协处理请求消息;
在一个实施例中,每个协处理消息携带有该协处理消息对应的待处理数据(即,计算节点通过该协处理消息请求处理的待处理数据)的地址信息;
具体地,在计算机系统中,存在至少一个计算节点和至少一个协处理卡,协处理卡可以辅助计算节点进行任务处理,即协处理;当计算节点需要协处理卡辅助进行任务处理时,就发出协处理请求消息。在一个实施例中,协处理请求消息可以为一个包含若干字段的数据报文。
在一个实施例中,协处理请求消息具体包括但不局限以下信息:
1.请求计算节点标志;
在一个计算机系统中,存在至少一个计算节点,请求计算节点标志用于标示和区分发起服务请求的计算节点;具体地,可以为计算机系统中的每个计算节点分配一个唯一的ID号,当某个计算节点发出协处理请求消息时,就将该计算节点的ID号作为请求计算节点标志。
2.请求类型;
请求类型用于表示计算节点请求的协处理类型,常见的协处理类型有:图形处理类、浮点运算类、网络类、Hash运算类等,具体地,可以用协处理请求消息中的一个字段来表示请求类型,例如,请求类型字段为graphic表示图形处理类、请求类型字段为float表示浮点运算类、请求类型字段为net表示网络类、请求类型字段为Hash表示Hash运算类。需要说明的是,在计算机系统中,可以配置一种或多种类型的协处理卡,因此可以允许的请求类型需要根据当前计算机系统中配置的协处理卡的种类来确定。例如,在一个实施例中,系统可以只配置一种类型的协处理卡,比如GPU加速卡,这时请求类型就只有图形处理类;在另一个实施例中,系统可以同时配置多种类型的协处理卡,比如浮点运算协处理卡、Hash运算协处理卡、网络协处理卡以及GPU加速卡等,这时请求类型就对应有浮点运算类、Hash运算类、网络类和图形处理类等,本发明实施例不做特别地限定。
3.待处理数据的地址信息;
一个实施例中,待处理数据的地址信息可以包括源地址和待处理数据的长度;
其中,源地址表示等待协处理卡处理的数据(即,待处理数据)所在存储空间的首地址。在一个实施例中,源地址可以是计算机系统的非易失性存储器中的某一地址,进一步地,所述非易失性存储器可以为硬盘或flash(闪存),需要说明的是,所述硬盘具体可以包括磁盘类硬盘及固态类硬盘(如flash SSD、PCMSSD)。
待处理数据长度表示待处理数据所需的存储空间的大小;
4.目的地址;
目的地址为经过协处理卡处理完成的数据最终的存储地址。在一个实施例中,目的地址可以是计算机系统的硬盘中的某一地址,例如硬盘中的某一地址。需要说明的是,所述硬盘具体可以包括磁盘类硬盘及固态类硬盘(如flash SSD、PCMSSD)
5.请求优先级;
请求优先级是由计算节点根据协处理任务的性质、紧迫程度或来源等来指定的,在一个实施例中,请求优先级可以分成高、中、低三个级别,当然可以理解的是,在另一个实施例中,优先级还可以细分成更多的级别,比如极高、高、普通、正常、较低、极低等,也可以是用阿拉伯数字1、2、3....代表的优先级别,本实施例不做特别地限定。
在一个实施例中,请求计算节点标志、请求类型、源地址、待处理数据长度、目的地址和请求优先级这些信息可以分别以字段的形式添加到协处理请求消息中,上述字段共同组成一个协处理请求消息。
S202,在公共缓存卡内申请存储空间,以缓存待处理数据;所述公共缓存卡设置在所述计算机系统中,为所述计算机系统中各个计算节点和协处理卡之间的数据传输提供临时存储;
具体地,根据协处理请求消息携带的待处理数据的地址信息中的待处理数据长度字段,向公共缓存卡申请与待处理数据长度对应大小的内存空间,用于缓存待处理数据。
S203,根据所述协处理请求消息携带的待处理数据的地址信息,获得待处理数据,并将所述待处理数据存储到上述公共缓存卡中申请的存储空间;
具体地,在一个实施例中,可以根据协处理请求消息携带的地址信息,从计算机系统的硬盘中获取待处理数据;
在一个实施例中,协处理请求消息中的地址信息包括:源地址和待处理数据长度。具体地,根据协处理请求消息中的源地址和待处理数据长度这两个字段的信息来获取待处理数据,所述待处理数据具体指存放在计算机系统的硬盘中等待协处理卡进行处理的原始数据。由于协处理请求消息中的源地址字段表示待处理数据在计算机系统的硬盘中的首地址,因此,计算机系统的硬盘中从源地址开始,大小为待处理数据长度的连续地址空间内的数据即为待处理数据。需要说明的是,所述硬盘具体可以包括磁盘类硬盘及固态类硬盘(如flashSSD、PCMSSD)
在一个实施例中,将待处理数据存储到公共缓存卡,可以采用复制或迁移的方式。
S204,将存储在所述公共缓存卡中的待处理数据分配到所述计算机系统中的空闲的协处理卡进行处理;
需要说明的是,所述空闲的协处理卡,可以是当前没有协处理任务的协处理卡;也可以是根据负载均衡策略,选择出的负载较小、相对空闲的的协处理卡,例如,可以将当前CPU利用率最低的协处理卡作为空闲的协处理卡。
具体地,在一个实施例中,根据协处理请求消息中的请求类型以及与该请求类型匹配的各协处理卡的利用率,来判断是否有与协处理请求消息中的请求类型匹配的空闲的协处理卡,若有匹配的空闲的协处理卡,则将公共缓存卡中的待处理数据分配给该空闲处理器进行处理。例如,在一个实施例中,若某一计算节点请求图形协处理服务,则通过系统函数调用来获取当前计算机系统中所有GPU加速卡的CPU的利用率,若某个GPU加速卡的CPU的利用率小于5%,即可判定该GPU加速卡处于空闲状态,然后将待处理数据从公共缓存卡复制或迁移到该GPU加速卡的存储器进行处理;当然可以理解的是,在另一个实施例中,若某一计算节点请求其他类型的协处理服务,如浮点运算类,则应判断是否有浮点运算协处理卡空闲,这里不再赘述。
进一步地,为了根据优先级对多个协处理请求排序,使优先级高的协处理请求最先得到处理,使协处理卡得到更加合理的利用,在另一个实施例中,S204可以具体包括如下步骤:
(1)从各个协处理请求消息中获得所述各个协处理请求消息的请求优先级和请求类型;
(2)根据所述各个协处理请求消息的请求优先级和请求类型,确定各个协处理请求消息的处理顺序;
具体地,确定各协处理请求消息的处理顺序的方法是:将请求类型不同的协处理请求消息放入不同的消息队列,请求类型相同的协处理请求消息在对应的消息队列中按照请求优先级从高到低的顺序排队,请求优先级相同且请求类型相同的协处理请求消息,在对应的消息队列中按照请求的先后顺序排队;与请求类型匹配的空闲的协处理卡将按照对应任务队列中的先后顺序处理待处理数据。
(3)将所述各个协处理请求消息对应的待处理数据,按照所述处理顺序依次从所述公共缓存卡分配到所述计算机系统中的空闲的协处理卡进行处理。
进一步的,在将所述待处理数据从所述公共缓存卡分配到所述计算机系统中的空闲的协处理卡进行处理之后,本发明实施例二提供的协处理加速方法还包括:
S205,将所述待处理数据从所述公共缓存卡中擦除;
S206,将所述空闲的协处理卡处理完成的数据存储到到所述协处理请求消息指定的目的地址;
需要说明的是,所述目的地址,为协处理请求消息中携带的目的地址,它表示经过协处理卡处理完成的数据最终的存储地址。
进一步的,将空闲的协处理卡处理完成的数据存储到到所述协处理请求消息指定的目的地址之后,本发明实施例二提供的协处理加速方法还包括:
S207,根据协处理请求消息中的请求计算节点标志向发起协处理请求的计算节点发送服务请求完成消息。
在一个实施例中,服务请求完成消息可以为一个包含特定含义字段的数据报文,所述报文包含的特定字段可以为“finish”、“ok”或“yes”,用于表示当前的协处理任务已经完成。
本发明实施例二通过以上技术方案,根据计算机系统中各个计算节点的发送的协处理请求消息,将各个计算节点请求处理的待处理数据分配给系统中的空闲的协处理卡进行处理,计算节点不需要消耗自身的资源来进行待处理数据的分配,减少了各个计算节点自身的资源开销;并使用公共缓存卡来作为计算机系统的各个计算节点和各个协处理卡之间的公共数据缓冲通道,待处理数据不必通过计算节点的内存来中转,避免了待处理数据从计算节点内存传输的开销,突破了内存延迟、带宽的瓶颈,提高了待处理数据的协处理速度。
实施例三,本发明实施例提供一种协处理任务管理装置,用于统一管理计算机系统中的协处理任务,如图4所示,该协处理任务管理装置包括:
消息接收模块420,用于接收计算机系统中计算节点发出的至少一个协处理请求消息;所述协处理请求消息携带有待处理数据的地址信息;
具体地,在计算机系统中,如果计算节点需要协处理卡处理待处理数据,就发送协处理请求消息给消息接收模块420,消息接收模块420接收计算节点发出的协处理请求消息,该协处理请求消息包含的内容与本发明实施例一的S101所述的协处理请求消息内容完全一致,本实施例不再赘述。
在另一个实施例中,消息接收模块420还用于,在协处理卡将数据处理完成之后,根据协处理请求消息中的请求计算节点标志向发起协处理请求的计算节点发送服务请求完成消息。
具体地,在协处理卡将数据处理完成之后,消息接收模块420根据该协处理请求消息中的请求计算节点标志向发起该协处理请求的计算节点发送服务请求完成消息。在一个实施例中,服务请求完成消息可以为一个包含特定含义字段的数据报文,所述报文包含的特定字段可以为“finish”、“OK”或“yes”,用于表示当前的协处理任务已经完成。
第一数据传送模块430,用于根据所述协处理请求消息携带的待处理数据的地址信息,获得待处理数据,并将所述待处理数据存储到公共缓存卡中;
具体地,在一个实施例中,第一数据传送模块430可以根据协处理请求消息携带的地址信息,从计算机系统的硬盘中获取待处理数据;在一个实施例中,协处理请求消息中的地址信息包括:源地址和待处理数据长度。具体地,第一数据传送模块430根据协处理请求消息中的源地址和待处理数据长度这两个字段信息来获取待处理数据,所述待处理数据具体指存放在计算机系统的硬盘中等待协处理卡进行处理的原始数据;由于协处理请求消息中的源地址字段表示待处理数据在计算机系统的硬盘中的首地址,因此,计算机系统的硬盘中从源地址开始,大小为待处理数据长度的连续地址空间内的数据即为待处理数据。
需要说明的是,所述硬盘具体可以包括磁盘类硬盘及固态类硬盘(如flashSSD、PCMSSD)。
需要说明的是,公共缓存卡是添加在计算机系统中,作为各个计算节点和协处理卡进行数据传输的临时存储,它不同于协处理卡的缓存,如GPU加速卡的缓存,公共缓存卡是供计算机系统中所有协处理卡共用的缓存区,作为计算机系统的硬盘和所有协处理卡传输数据的缓冲通道,公共缓存卡可以是具有快速存取能力的任何存储介质。在一个实施例中,公共缓存卡可以为PCIE公共缓存卡,其存储介质为Flash SSD、PCM SSD或DRAM等。
第二数据传送模块440,用于将存储在所述公共缓存卡中的待处理数据分配到所述计算机系统中的空闲的协处理卡进行处理。
需要说明的是,所述空闲的协处理卡,可以是当前没有协处理任务的协处理卡;也可以是根据负载均衡策略,选择出的负载较小、相对空闲的的协处理卡,例如,可以将当前CPU利用率最低的协处理卡作为空闲的协处理卡。
具体地,在一个实施例中,第二数据传送模块440根据协处理请求消息中的请求类型以及与该请求类型匹配的各协处理卡的利用率,来判断是否有与协处理请求消息中的请求类型匹配的空闲的协处理卡,若有匹配的空闲的协处理卡,则第二数据传送模块440将公共缓存卡中的待处理数据分配给该空闲处理器进行处理。例如,在一个实施例中,若某一计算节点请求图形协处理服务,则第二数据传送模块440通过系统函数调用来获取当前计算机系统中所有GPU加速卡的CPU的利用率,若某个GPU加速卡的CPU的利用率小于5%,即可判定该GPU加速卡处于空闲状态,然后将待处理数据从公共缓存卡复制或迁移到该GPU加速卡的存储器进行处理;当然可以理解的是,在另一个实施例中,若某一计算节点请求其他类型的协处理服务,如浮点运算类,则应判断是否有浮点运算协处理卡空闲,这里不再赘述。
进一步地,在另一个实施例中,第二数据传送模块440还可以用于将协处理卡处理完成的数据存储到协处理请求消息指定的目的地址。
在一个实施例中,如图5所示,当所述协处理请求消息为多个时,为了根据优先级对多个协处理请求排序,使优先级高的协处理请求最先得到处理,使协处理卡得到更加合理的利用,第二数据传送模块可以具体包括:
获取单元4401,用于从各个协处理请求消息中获得所述各个协处理请求消息的请求优先级和请求类型;
请求顺序确定单元4402,用于根据所述各个协处理请求消息的请求优先级和请求类型,确定各协处理请求消息处理顺序;
在一个实施例中,请求顺序确定单元4402确定各协处理请求消息的处理顺序的方法是:将请求类型不同的协处理请求消息放入不同的消息队列,请求类型相同的协处理请求消息在对应的消息队列中按照请求优先级从高到低的顺序排队,请求优先级相同且请求类型相同的协处理请求消息,在对应的消息队列中按照请求的先后顺序排队;与请求类型匹配的空闲的协处理卡将按照对应任务队列中的先后顺序处理待处理数据。
数据处理单元4403,用于将所述各个协处理请求消息对应的待处理数据,按照所述处理顺序依次从所述公共缓存卡分配到所述计算机系统中的空闲的协处理卡进行处理。
在一个实施例中,第一数据传送模块430可以采用复制或迁移的方式将待处理数据存储到公共缓存卡中,第二数据传送模块440可以采用复制或迁移的方式将协处理卡处理完成的数据存储到协处理请求消息指定的目的地址。进一步地,第一数据传送模块430和第二数据传送模块440可以通过DMA方式实现数据在计算节点硬盘、公共缓存卡以及协处理卡之间的复制或迁移。具体地,以第一数据传送模块430为例,在进行数据复制或迁移之前,待复制数据所在存储器的I/O接口先向第一数据传送模块430发出DMA请求指令,第一数据传送模块430根据DMA请求指令,向计算机系统的总线逻辑控制器提出总线请求,当计算机系统中的计算节点执行完当前总线周期内的指令并释放总线控制权后,总线逻辑控制器输出总线应答,表示DMA已经响应,并将总线控制权交给第一数据传送模块430,第一数据传送模块430获得总线控制权后,通知待复制数据所在存储器的I/O接口开始DMA传输,然后输出读写命令,直接控制数据的传输,整个数据传输过程不需要计算机系统中计算节点的参与,有效节省了系统的资源。
第二数据传送模块440的具体工作可以参照本发明实施例一S103。
进一步的,为了便于公共缓存卡存储空间的管理,本发明实施例三提供的协处理任务管理装置还包括:
缓存管理模块450,用于在第一数据传送模块430将所述待处理数据存储到公共缓存卡之前,在所述公共缓存卡中申请存储空间,所述存储空间用于缓存所述待处理数据。
本发明实施例三通过以上技术方案,通过协处理任务管理装置将计算机系统中各个计算节点的协处理任务以协处理请求消息进行统一处理,计算节点不需要消耗自身的资源来进行待处理数据的分配,减少了各个计算节点的资源开销;同时,以添加的公共缓存卡来作为计算机系统硬盘和各个协处理卡之间公共的数据缓冲通道,实现数据的复制或迁移,避免了待处理数据从计算节点内存传输的开销,从而突破了内存延迟、带宽的瓶颈,提高了待处理数据的协处理速度;进一步地,在向公共缓存卡复制数据之前,利用缓存管理模块在公共缓存卡中申请空间,使公共缓存卡空间的管理更加方便;进一步地,通过任务优先级管理模块,使优先级高的协处理请求最先得到处理,使协处理卡得到更加合理的利用,提高了协处理的效率。
实施例四,如图6所示,本发明实施例四提供一种计算机系统,包括:
硬盘101、总线交换器102、公共缓存卡103、协处理任务管理装置104、至少一个计算节点(例如,图6中的计算节点105)和至少一个协处理卡(例如,图6中的协处理卡112);协处理卡112、硬盘101、和公共缓存卡103与总线交换器102数据连接,总线交换器102使协处理卡112、硬盘101和公共缓存卡103互连;至少一个计算节点105用于发送协处理请求消息,所述协处理请求消息携带有待处理数据的地址信息,所述待处理数据为所述计算节点105请求处理的数据;
协处理任务管理装置104用于:接收所述协处理请求消息;根据所述协处理请求消息携带的待处理数据的地址信息获得待处理数据,并将所述待处理数据存储到公共缓存卡103中;所述待处理数据为所述协处理请求消息求处理的数据;将存储到公共缓存卡103中的待处理数据分配到所述计算机系统中至少一个协处理卡中空闲的的一个协处理卡(假设图6中的协处理卡112空闲)进行处理。
在一个实施例中,所述计算机系统还包括硬盘101,协处理任务管理装置104根据所述协处理请求消息,从硬盘101中获得待处理数据。需要说明的是,硬盘101具体可以为磁盘类硬盘或固态类硬盘(如flash SSD、PCMSSD)。
进一步的,为了便于缓存卡存储空间的管理,在一个实施例中,协处理任务管理装置104还用于,在将待处理数据存储到公共缓存卡103之前,在公共缓存卡103内申请存储空间,该存储空间用于存储所述待处理数据。在另一个实施例中,协处理任务管理装置104还用于将公共缓存卡103中的待处理数据分配到协处理卡112进行处理之后,将所述待处理数据从公共缓存卡103中擦除。
在另一个实施例中,协处理任务管理装置104还用于,将协处理卡112处理完成的数据存储到所述协处理请求消息指定的目的地址;相应地,至少一个计算节点105还用于,从所述目的地址中获取协处理卡112处理完成的数据。
在一个实施例中,协处理任务管理装置104可以采用复制或迁移的方式将待处理数据存储到公共缓存卡103中,也可以采用复制或迁移的方式将协处理卡112处理完成的数据存储到所述协处理请求消息指定的目的地址。进一步地,可以通过DMA方式实现数据上述复制或迁移操作。
在一个实施例中,上述公共缓存卡103可以为PCIE缓存卡,其存储介质可以为flash SSD、PCM SSD或DRAM。
在一个实施例中,协处理卡112、硬盘101和公共缓存卡103均可以通过PCIE总线直接与总线交换器102连接。
在另一个实施例中,如图6所示,协处理卡112和公共缓存卡103通过输入/输出插框与总线交换器102连接。具体地,协处理卡112和公共缓存卡103插置于输入/输出插框107的PCIE插槽中,输入/输出插框107通过PCIE总线和总线交换器102连接。
PCIE作为最新的总线接口标准,与其他总线接口标准相比,具有较高数据传输速率,因此采用PICE总线进行数据连接,可以提高数据在硬盘、协处理卡和公共缓存卡之间的传输速度,进一步提高计算机系统的协处理速度。
当然可以理解的是,实际应用中的另一个实施例中,协处理卡112、硬盘101和公共缓存卡103也可以通过AGP总线与总线交换器102连接。本发明实施例并不做特别地限定。
需要说明的是,本发明实施例四提供的计算机系统包括一个协处理卡112和一个计算节点105仅仅是一个举例,故不应理解为对本发明实施例四提供的计算机系统的计算节点和协处理卡数量的限定。可以理解的是,在一个实施例中,计算节点和协处理卡的数量可以是大于零的任意整数值,但是实际应用中出于节约成本的考虑,协处理卡的数量应该不多于计算机系统中计算节点的个数,比如说,当前协处理装置中包含有20个计算节点,则协处理卡的数量可以为1、5、10、15或者20等。
进一步地,在一个实施例中,协处理卡的类型可以只有一种,比如GPU加速卡;也可以有多种,例如浮点运算协处理卡、Hash运算协处理卡、网络协处理卡以及GPU加速卡等。当然可以理解的是,计算机系统中包含的协处理卡类型越多,整个系统能够支持的协处理任务类型就会越多,协处理功能就会越强大。
本发明实施例四通过以上技术方案,通过协处理任务管理装置对计算机系统中的协处理任务进行统一管理,减少了各个计算节点的资源开销;同时计算机系统中的多个协处理卡可以共用公共缓存卡来作为硬盘和协处理卡之间的数据缓冲通道,并通过协处理任务管理装置实现数据的复制或迁移,避免了数据从计算节点内存传输的开销,从而突破了内存延迟、带宽的瓶颈,提高了协处理的速度;进一步地,通过PCIE总线来连接计算机系统中的协处理卡、硬盘、公共缓存卡和总线交换器,可以有效提高数据的传输速率,进而提高了协处理的速度。
实施例五,如图7所示,本发明实施例五提供一种加速管理板卡,用于提高计算机系统的协处理速度,包括:控制器710和PCIE接口单元720;控制器710和PCIE接口单元720数据连接;控制器710接收计算机系统中计算节点的CPU发出的至少一个协处理请求消息,该协处理请求消息携带有待处理数据的地址信息,并根据所述待处理数据的地址信息,从所述计算机系统中的硬盘获取待处理数据,将所述待处理数据存储到公共缓存单元中;所述待处理数据为所述CPU请求处理的数据;
控制器710还用于,将存储在所述公共缓存单元中的待处理数据分配到计算机系统中的空闲的GPU加速卡进行处理;具体地点,如图7所示,GPU加速卡80通过自身的第一PCIE接口810和加速管理板卡70的PICE接口单元720数据连接。
在一个实施例中,公共缓存单元可以集成在所述加速管理板卡内部,如图7所示,公共缓存单元730通过加速管理板卡710上的总线与控制器710连接,具体地,所述加速板卡上的总线可以为PCIE总线。
在另一个实施例中,公共缓存单元也可以设置于所述加速管理板卡外部,作为一个单独的物理实体;进一步的公共缓存单元可以为PCIE缓存卡。具体地,如图7所示,PCIE缓存卡90包含有第二PCIE接口910,PCIE缓存卡90通过其第二PCIE接口910与加速管理板卡70的PCIE接口单元720连接。
需要说明的是,PCIE作为最新的总线接口标准,与其他总线接口标准相比,具有较高数据传输速率,因此上述实施例中采用PCIE接口作为GPU加速卡和控制器,以及控制器和公共缓存单元数据连接的接口,只是为取得最佳技术效果的一种举例,故不应理解为对本发明实施例的限制。
本发明实施例通过以上技术方案,通过单独的控制器对计算机系统中的协处理任务进行统一管理,减少了各个计算节点的资源开销;同时计算机系统中的多个协处理卡可以共用公共缓存单元来作为硬盘和协处理卡之间的数据缓冲通道,避免了数据从计算节点内存传输的开销,从而突破了内存延迟、带宽的瓶颈,提高了协处理的速度。
以上所述仅为本发明的几个实施例,本领域的技术人员依据申请文件公开的可以对本发明进行各种改动或变型而不脱离本发明的精神和范围。
Claims (29)
1.一种计算机系统,包括:至少一个计算节点、总线交换器和至少一个协处理卡,其特征在于,所述系统还包括:公共缓存卡和协处理任务管理装置,所述公共缓存卡为所述计算机系统中各个计算节点和各个协处理卡之间的数据传输提供临时存储;所述公共缓存卡和所述至少一个协处理卡通过所述总线交换器互连;
所述计算节点用于,发送协处理请求消息,所述协处理请求消息携带有待处理数据的地址信息;所述待处理数据为所述计算节点请求处理的数据;
所述协处理任务管理装置用于:
接收所述协处理请求消息;
根据所述协处理请求消息携带的待处理数据的地址信息获得所述待处理数据,并将所述待处理数据存储到所述公共缓存卡中;
将存储到所述公共缓存卡中的待处理数据分配到所述计算机系统中的空闲的协处理卡进行处理。
2.如权利要求1所述的计算机系统,其特征在于,所述协处理任务管理装置还用于,在将所述待处理数据存储到所述公共缓存卡之前,在所述公共缓存卡内申请存储空间,所述存储空间用于存储所述待处理数据。
3.如权利要求1或2所述的计算机系统,其特征在于,所述协处理任务管理装置还用于,将所述空闲的协处理卡处理完成的数据存储到所述协处理请求消息指定的目的地址。
4.如权利要求3所述的计算机系统,其特征在于,所述计算节点还用于,从所述协处理请求消息指定的目的地址中获取所述空闲的协处理卡处理完成的数据。
5.如权利要求1-4任一项所述的计算机系统,其特征在于,所述协处理任务管理装置还用于,在将存储到所述公共缓存卡中的待处理数据分配到所述计算机系统中的空闲的协处理卡进行处理之后,将所述待处理数据从所述公共缓存卡中擦除。
6.如权利要求1-5任一项所述的计算机系统,其特征在于,所述协处理任务管理装置具体用于:
接收多个所述协处理请求消息;
根据各个协处理请求消息获得对应的待处理数据,并将各个待处理数据存储到所述公共缓存卡中;
从各个协处理请求消息中获得所述各个协处理请求消息的请求优先级和请求类型;
根据所述各个协处理请求消息的请求优先级和请求类型,确定各个协处理请求消息对应的待处理数据的处理顺序;
将所述各个待处理数据,按照所述处理顺序依次从所述公共缓存卡分配到所述计算机系统中的空闲的协处理卡进行处理。
7.如权利要求1-6任一项所述的计算机系统,其特征在于:所述公共缓存卡为快速外设组件互连PCIE缓存卡,其存储介质为闪存固态硬盘flash SSD、相变换存储固态硬盘PCM SSD或动态存储器DRAM。
8.如权利要求1-7任一项所述的计算机系统,其特征在于,所述协处理卡为PCIE协处理卡。
9.如权利要求8所述的计算机系统,其特征在于,所述PCIE协处理卡为图形处理器GPU加速卡。
10.如权利要求1-9任一项所述的计算机系统,其特征在于,所述公共缓存卡和所述至少一个协处理卡通过PCIE接口与所述总线交换器互连。
11.如权利要求1-10任一项所述的计算机系统,其特征在于,所述协处理任务管理装置根据所述协处理请求消息,从所述计算机系统的硬盘中获得待处理数据。
12.如权利要求1-10任一项所述的计算机系统,其特征在于,所述协处理任务管理装置采用直接内存存取DMA方式将所述待处理数据存储到所述公共缓存卡中。
13.一种协处理加速方法,包括:
接收计算机系统中计算节点发出的至少一个协处理请求消息,所述协处理请求消息携带有待处理数据的地址信息;所述待处理数据为所述计算节点请求处理的数据;
根据所述协处理请求消息携带的待处理数据的地址信息,获得所述待处理数据,并将所述待处理数据存储到公共缓存卡中;所述待处理数据为所述协处理请求消息请求处理的数据;
将存储在所述公共缓存卡中的待处理数据分配到所述计算机系统中的空闲的协处理卡进行处理。
14.如权利要求13所述的方法,其特征在于,在将所述待处理数据存储到公共缓存卡之前,所述方法还包括:在所述公共缓存卡内申请存储空间,所述存储空间用于存储所述待处理数据。
15.如权利要求13或14所述的方法,其特征在于,所述协处理请求消息为多个;所述将存储在所述公共缓存卡中的待处理数据分配到所述计算机系统中的空闲的协处理卡进行处理,具体包括:
从各个协处理请求消息中获得所述各个协处理请求消息的请求优先级和请求类型;
根据所述各个协处理请求消息的请求优先级和请求类型,确定各个协处理请求消息对应的待处理数据的处理顺序;
将所述各个协处理请求消息对应的待处理数据,按照所述处理顺序依次从所述公共缓存卡分配到所述计算机系统中的空闲的协处理卡进行处理。
16.如权利要求13-15任一项所述的方法,其特征在于,所述方法还包括:
将所述空闲的协处理卡处理完成的数据存储到到所述协处理请求消息指定的目的地址。
17.如权利要求13-16任一项所述的方法,其特征在于,在将存储到所述公共缓存卡中的待处理数据分配到所述计算机系统中的空闲的协处理卡进行处理之后,所述方法还包括,将所述待处理数据从所述公共缓存卡中擦除。
18.如权利要求13-17任一项所述的方法,其特征在于,所述将所述待处理数据存储到公共缓存卡中,具体包括:
将所述待处理数据采用DMA方式存储到公共缓存卡中。
19.如权利要求13-18任一项所述的方法,其特征在于,所述公共缓存卡为PCIE缓存卡。
20.如权利要求13-19任一项所述的方法,其特征在于,所述协处理卡为PCIE协处理卡。
21.如权利要求20所述的方法,其特征在于,所述PCIE协处理卡为GPU加速卡。
22.一种协处理任务管理装置,其特征在于,包括:
消息接收模块,用于接收计算机系统中计算节点发出的至少一个协处理请求消息,所述协处理请求消息携带有待处理数据的地址信息;所述待处理数据为所述计算节点请求处理的数据;
第一数据传送模块,用于根据所述协处理请求消息携带的待处理数据的地址信息,获得所述待处理数据,并将所述待处理数据存储到公共缓存卡中;所述待处理数据为所述协处理请求消息请求处理的数据;
第二数据传送模块,用于将存储在所述公共缓存卡中的待处理数据分配到所述计算机系统中的空闲的协处理卡进行处理。
23.如权利要求22所述的装置,其特征在于,所述第二数据传送模块还用于,
将所述空闲的协处理卡处理完成的数据存储到到所述协处理请求消息指定的目的地址。
24.如权利要求22或23所述的装置,其特征在于,所述装置还包括:
缓存管理模块,用于在将所述待处理数据存储到公共缓存卡之前,在所述公共缓存卡中申请存储空间,所述存储空间用于缓存所述待处理数据。
25.如权利要求22-24任一项所述的装置,其特征在于,所述第二数据传送模块具体包括:
获取单元,用于在所述协处理请求消息为多个时,从各个协处理请求消息中获得所述各个协处理请求消息的请求优先级和请求类型;
请求顺序确定单元,用于根据所述各个协处理请求消息的请求优先级和请求类型,确定各个协处理请求消息对应的待处理数据处理顺序;
数据处理单元,用于将所述各个协处理请求消息对应的待处理数据,按照所述处理顺序依次从所述公共缓存卡分配到所述计算机系统中的空闲的协处理卡进行处理。
26.如权利要求22-25任一项所述的装置,其特征在于,所述第一数据传送模块通过DMA方式将所述待处理数据存储到公共缓存卡中。
27.一种加速管理板卡,其特征在于,包括:控制器和PCIE接口单元;所述控制器通过所述PCIE接口单元与计算机系统的总线交换器数据连接;所述控制器用于接收所述计算机系统的中央处理器CPU发出的至少一个协处理请求消息,所述协处理请求消息携带有待处理数据的地址信息;所述待处理数据为所述CPU请求处理的数据;并根据所述协处理请求消息携带的待处理数据的地址信息,从所述计算机系统中的硬盘获取所述待处理数据,将所述待处理数据存储到公共缓存单元中;
所述控制器还用于,将存储在所述公共缓存单元中的待处理数据分配到所述计算机系统中的空闲的GPU加速卡进行处理,所述GPU加速卡通过自身的第一PCIE接口和所述计算机系统的总线交换器连接。
28.如权利要求27所述的加速管理板卡,其特征在于,所述公共缓存单元位于所述加速管理板卡内部。
29.如权利要求27所述的加速管理板卡,其特征在于,所述公共缓存单元位于所述加速管理板卡外部,所述公共缓存单元为PCIE缓存卡,所述PCIE缓存卡包含第二PCIE接口,所述PCIE缓存卡通过所述第二PCIE接口与所述连PICE接口单元连接。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2011/083770 WO2013082809A1 (zh) | 2011-12-09 | 2011-12-09 | 协处理加速方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102906726A true CN102906726A (zh) | 2013-01-30 |
CN102906726B CN102906726B (zh) | 2015-11-25 |
Family
ID=47577491
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180005166.7A Active CN102906726B (zh) | 2011-12-09 | 2011-12-09 | 协处理加速方法、装置及系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8478926B1 (zh) |
EP (1) | EP2657836A4 (zh) |
CN (1) | CN102906726B (zh) |
WO (1) | WO2013082809A1 (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104410586A (zh) * | 2014-12-11 | 2015-03-11 | 福建星网锐捷网络有限公司 | 一种vsu环境下的报文处理方法和装置 |
CN105353978A (zh) * | 2015-10-22 | 2016-02-24 | 湖南国科微电子股份有限公司 | 一种pcie ssd阵列的数据读方法、系统及读写方法 |
CN107544845A (zh) * | 2017-06-26 | 2018-01-05 | 新华三大数据技术有限公司 | Gpu资源调度方法及装置 |
CN110399215A (zh) * | 2019-06-25 | 2019-11-01 | 苏州浪潮智能科技有限公司 | 一种协处理器、一种电子设备及一种数据处理方法 |
CN111833232A (zh) * | 2019-04-18 | 2020-10-27 | 杭州海康威视数字技术股份有限公司 | 一种图像处理装置 |
CN113032299A (zh) * | 2019-12-24 | 2021-06-25 | 中科寒武纪科技股份有限公司 | 用于处理请求的总线系统、集成电路装置、板卡及保序方法 |
CN113032298A (zh) * | 2019-12-24 | 2021-06-25 | 中科寒武纪科技股份有限公司 | 用于保序的计算装置、集成电路装置、板卡及保序方法 |
CN113051957A (zh) * | 2019-12-26 | 2021-06-29 | 浙江宇视科技有限公司 | 一种数据分析方法与系统 |
CN114691218A (zh) * | 2020-12-31 | 2022-07-01 | Oppo广东移动通信有限公司 | 协处理芯片、电子设备及启动方法 |
WO2023246843A1 (zh) * | 2022-06-25 | 2023-12-28 | 华为技术有限公司 | 数据处理方法、装置及系统 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103631873B (zh) * | 2013-11-07 | 2017-12-12 | 华为技术有限公司 | 一种数据压缩方法及存储系统 |
KR20150084098A (ko) * | 2014-01-13 | 2015-07-22 | 한국전자통신연구원 | 스트림 데이터 분산 처리 시스템 및 그 방법 |
US20150261535A1 (en) * | 2014-03-11 | 2015-09-17 | Cavium, Inc. | Method and apparatus for low latency exchange of data between a processor and coprocessor |
JP6329318B2 (ja) | 2015-02-25 | 2018-05-23 | 株式会社日立製作所 | 情報処理装置 |
CN105426122B (zh) * | 2015-11-02 | 2019-09-03 | 深圳忆联信息系统有限公司 | 一种数据处理的方法、电子设备及存储装置 |
US10261847B2 (en) * | 2016-04-08 | 2019-04-16 | Bitfusion.io, Inc. | System and method for coordinating use of multiple coprocessors |
US10970133B2 (en) * | 2016-04-20 | 2021-04-06 | International Business Machines Corporation | System and method for hardware acceleration for operator parallelization with streams |
JP2018113075A (ja) * | 2018-04-19 | 2018-07-19 | 株式会社日立製作所 | 情報処理装置 |
US11281609B2 (en) * | 2019-03-12 | 2022-03-22 | Preferred Networks, Inc. | Arithmetic processor and control method for arithmetic processor |
CN112272122A (zh) * | 2020-10-14 | 2021-01-26 | 北京中科网威信息技术有限公司 | Fpga加速卡检测方法、装置及可读存储介质 |
CN114020439A (zh) * | 2021-11-17 | 2022-02-08 | 山东乾云启创信息科技股份有限公司 | 一种中断处理方法、装置及计算机设备 |
CN115801582B (zh) * | 2022-09-27 | 2024-05-31 | 海光信息技术股份有限公司 | 系统链路带宽提升方法、相关器件及计算机设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020095562A1 (en) * | 2001-01-12 | 2002-07-18 | Mitsubishi Denki Kabushiki Kaisha | Arithmetic unit comprising a memory shared by a plurality of processors |
CN1642138A (zh) * | 2004-01-09 | 2005-07-20 | 华为技术有限公司 | 一种cpu与协处理单元通信的方法及系统 |
CN1749955A (zh) * | 2004-07-06 | 2006-03-22 | 松下电器产业株式会社 | 控制处理器和协处理器间的数据传输的运算处理装置 |
US20060143284A1 (en) * | 2004-12-28 | 2006-06-29 | Galin Galchev | API for worker node retrieval of session request |
US20100287526A1 (en) * | 2006-04-14 | 2010-11-11 | Apple Inc. | Mirrored file system |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6484224B1 (en) * | 1999-11-29 | 2002-11-19 | Cisco Technology Inc. | Multi-interface symmetric multiprocessor |
US7082502B2 (en) * | 2001-05-15 | 2006-07-25 | Cloudshield Technologies, Inc. | Apparatus and method for interfacing with a high speed bi-directional network using a shared memory to store packet data |
US8296764B2 (en) * | 2003-08-14 | 2012-10-23 | Nvidia Corporation | Internal synchronization control for adaptive integrated circuitry |
US7240182B2 (en) * | 2004-09-16 | 2007-07-03 | International Business Machines Corporation | System and method for providing a persistent function server |
US9170864B2 (en) * | 2009-01-29 | 2015-10-27 | International Business Machines Corporation | Data processing in a hybrid computing environment |
-
2011
- 2011-12-09 EP EP11860708.4A patent/EP2657836A4/en not_active Ceased
- 2011-12-09 WO PCT/CN2011/083770 patent/WO2013082809A1/zh active Application Filing
- 2011-12-09 CN CN201180005166.7A patent/CN102906726B/zh active Active
-
2012
- 2012-09-19 US US13/622,422 patent/US8478926B1/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020095562A1 (en) * | 2001-01-12 | 2002-07-18 | Mitsubishi Denki Kabushiki Kaisha | Arithmetic unit comprising a memory shared by a plurality of processors |
CN1642138A (zh) * | 2004-01-09 | 2005-07-20 | 华为技术有限公司 | 一种cpu与协处理单元通信的方法及系统 |
CN1749955A (zh) * | 2004-07-06 | 2006-03-22 | 松下电器产业株式会社 | 控制处理器和协处理器间的数据传输的运算处理装置 |
US20060143284A1 (en) * | 2004-12-28 | 2006-06-29 | Galin Galchev | API for worker node retrieval of session request |
US20100287526A1 (en) * | 2006-04-14 | 2010-11-11 | Apple Inc. | Mirrored file system |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104410586B (zh) * | 2014-12-11 | 2018-08-07 | 福建星网锐捷网络有限公司 | 一种vsu环境下的报文处理方法和装置 |
CN104410586A (zh) * | 2014-12-11 | 2015-03-11 | 福建星网锐捷网络有限公司 | 一种vsu环境下的报文处理方法和装置 |
CN105353978A (zh) * | 2015-10-22 | 2016-02-24 | 湖南国科微电子股份有限公司 | 一种pcie ssd阵列的数据读方法、系统及读写方法 |
CN107544845A (zh) * | 2017-06-26 | 2018-01-05 | 新华三大数据技术有限公司 | Gpu资源调度方法及装置 |
CN111833232B (zh) * | 2019-04-18 | 2024-07-02 | 杭州海康威视数字技术股份有限公司 | 一种图像处理装置 |
CN111833232A (zh) * | 2019-04-18 | 2020-10-27 | 杭州海康威视数字技术股份有限公司 | 一种图像处理装置 |
CN110399215A (zh) * | 2019-06-25 | 2019-11-01 | 苏州浪潮智能科技有限公司 | 一种协处理器、一种电子设备及一种数据处理方法 |
CN113032299A (zh) * | 2019-12-24 | 2021-06-25 | 中科寒武纪科技股份有限公司 | 用于处理请求的总线系统、集成电路装置、板卡及保序方法 |
CN113032299B (zh) * | 2019-12-24 | 2023-09-26 | 中科寒武纪科技股份有限公司 | 用于处理请求的总线系统、集成电路装置、板卡及保序方法 |
CN113032298B (zh) * | 2019-12-24 | 2023-09-29 | 中科寒武纪科技股份有限公司 | 用于保序的计算装置、集成电路装置、板卡及保序方法 |
CN113032298A (zh) * | 2019-12-24 | 2021-06-25 | 中科寒武纪科技股份有限公司 | 用于保序的计算装置、集成电路装置、板卡及保序方法 |
CN113051957A (zh) * | 2019-12-26 | 2021-06-29 | 浙江宇视科技有限公司 | 一种数据分析方法与系统 |
CN113051957B (zh) * | 2019-12-26 | 2024-10-01 | 浙江宇视科技有限公司 | 一种数据分析方法与系统 |
CN114691218A (zh) * | 2020-12-31 | 2022-07-01 | Oppo广东移动通信有限公司 | 协处理芯片、电子设备及启动方法 |
WO2023246843A1 (zh) * | 2022-06-25 | 2023-12-28 | 华为技术有限公司 | 数据处理方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
EP2657836A4 (en) | 2014-02-19 |
CN102906726B (zh) | 2015-11-25 |
US20130151747A1 (en) | 2013-06-13 |
EP2657836A1 (en) | 2013-10-30 |
US8478926B1 (en) | 2013-07-02 |
WO2013082809A1 (zh) | 2013-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102906726B (zh) | 协处理加速方法、装置及系统 | |
CN107690622B9 (zh) | 实现硬件加速处理的方法、设备和系统 | |
RU2425412C2 (ru) | Мультимедиа-процессор, многопоточный по требованию | |
CN110083461B (zh) | 一种基于fpga的多任务处理系统及方法 | |
CN101159765B (zh) | 网络接口方法、装置和系统 | |
CN109074281B (zh) | 图形处理器任务的分配方法和装置 | |
CN105335309B (zh) | 一种数据传输方法及计算机 | |
CN102109997A (zh) | 通过利用虚拟OpenCL设备作为与计算云的接口来加速OpenCL应用 | |
CN112825042A (zh) | 资源管理方法和装置、电子设备及存储介质 | |
CN109509139A (zh) | 顶点数据处理方法、装置及设备 | |
CN116886751A (zh) | 一种异构设备的高速通信方法、装置和异构通信系统 | |
WO2024082985A1 (zh) | 一种安装有加速器的卸载卡 | |
US9697047B2 (en) | Cooperation of hoarding memory allocators in a multi-process system | |
CN117058288A (zh) | 图形处理器及方法、多核图形处理系统、电子装置及设备 | |
US20140149528A1 (en) | Mpi communication of gpu buffers | |
CN111813541B (zh) | 一种任务调度方法、装置、介质和设备 | |
CN116483536B (zh) | 数据调度方法、计算芯片及电子设备 | |
CN102693160B (zh) | 一种计算机系统动态资源重配置的方法 | |
CN117632843A (zh) | 一种数据处理方法、装置、片上系统和电子设备 | |
CN114827151B (zh) | 一种异构服务器集群以及数据转发方法、装置和设备 | |
CN105718990A (zh) | 细胞阵列计算系统以及其中细胞之间的通信方法 | |
CN117632457A (zh) | 一种加速器调度方法及相关装置 | |
CN115549858A (zh) | 数据传输方法以及装置 | |
CN113778617A (zh) | 容器水平伸缩方法、装置、电子设备及存储介质 | |
CN111506419A (zh) | 一种gpu资源共享方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |