WO2013082809A1 - 协处理加速方法、装置及系统 - Google Patents

协处理加速方法、装置及系统 Download PDF

Info

Publication number
WO2013082809A1
WO2013082809A1 PCT/CN2011/083770 CN2011083770W WO2013082809A1 WO 2013082809 A1 WO2013082809 A1 WO 2013082809A1 CN 2011083770 W CN2011083770 W CN 2011083770W WO 2013082809 A1 WO2013082809 A1 WO 2013082809A1
Authority
WO
WIPO (PCT)
Prior art keywords
processing
card
data
computer system
processed
Prior art date
Application number
PCT/CN2011/083770
Other languages
English (en)
French (fr)
Inventor
章晓峰
方帆
秦岭
Original Assignee
华为技术有限公司
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 华为技术有限公司 filed Critical 华为技术有限公司
Priority to CN201180005166.7A priority Critical patent/CN102906726B/zh
Priority to EP11860708.4A priority patent/EP2657836A4/en
Priority to PCT/CN2011/083770 priority patent/WO2013082809A1/zh
Priority to US13/622,422 priority patent/US8478926B1/en
Publication of WO2013082809A1 publication Critical patent/WO2013082809A1/zh

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/167Interprocessor communication using a common memory, e.g. mailbox
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent 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/3881Arrangements for communication of instructions and data
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/505Allocation 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
    • 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/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes

Definitions

  • a message receiving module configured to receive at least one co-processing request message sent by the computing node in the computer system, where the co-processing request message carries address information of the to-be-processed data; the to-be-processed data is data requested by the computing node; a first data transmission module, configured to obtain the to-be-processed data according to the address information of the to-be-processed data carried in the co-processing request message, and store the to-be-processed data in a public cache card; Requesting processed data for the co-processing request message;
  • the length of the data to be processed indicates the size of the storage space required for the data to be processed; 4. Destination address;
  • the public cache card is a public temporary storage added to the computer system as data transmission of each computing node and each co-processing card, which is different from the cache of the co-processing card, such as the cache of the GPU accelerator card, the public cache.
  • the card is a buffer shared by all co-processing cards in the computer system.
  • the public cache card can be any storage medium with fast access capability.
  • the public cache card may be a PCIE common cache card, and the storage medium is a Flash SSD (Solid State Storage), a PCM SSD or a DRAM (Dynamic Memory), or the like.
  • the to-be-processed data corresponding to the respective co-processing request messages are sequentially distributed from the common cache card to the idle co-processing card in the computer system in accordance with the processing sequence for processing.
  • the address information of the data to be processed may include a source address and a length of data to be processed;
  • the source address represents the first address of the storage space in which the data processed by the coprocessing card (ie, the data to be processed) is located.
  • the source address may be an address in a non-volatile memory of the computer system.
  • the non-volatile memory may be a hard disk or a flash memory.
  • the hard disk may specifically include a disk type hard disk and a solid state type hard disk (such as flash SSD, PCMSSD).
  • the address information in the co-processing request message includes: a source address and a length of data to be processed.
  • the data to be processed is obtained according to the information of the source address and the length of the data to be processed in the co-processing request message, where the data to be processed is specifically stored in a hard disk of the computer system and is waiting for the processing card to be processed.
  • Raw data Since the source address field in the co-processing request message indicates the first address of the data to be processed in the hard disk of the computer system, the data in the contiguous address space of the data system whose size is the length of the data to be processed starts from the source address in the hard disk of the computer system.
  • the hard disk may specifically include a disk type hard disk and a solid state type hard disk (such as flash SSD, PCMSSD).
  • the GPU accelerator card is determined to be in an idle state, and then the data to be processed is copied or migrated from the common cache card to the memory of the GPU accelerator card for processing; of course, it can be understood that in another embodiment If a computing node requests other types of coprocessing services, such as floating-point arithmetic classes, it should be determined whether there is a floating-point arithmetic co-processing card idle, and will not be described here.
  • coprocessing services such as floating-point arithmetic classes
  • the first data transmission module 430 is configured to obtain data to be processed according to the address information of the to-be-processed data carried in the co-processing request message, and store the to-be-processed data in a public cache card; specifically, in one implementation
  • the first data transmission module 430 can obtain the data to be processed from the hard disk of the computer system according to the address information carried in the coprocessing request message; in one embodiment, the address information in the coprocessing request message includes: a source address and The length of the data to be processed.
  • the second data transfer module 440 is configured to allocate the to-be-processed data stored in the common cache card to an idle co-processing card in the computer system for processing.
  • the obtaining unit 4401 is configured to obtain, from each co-processing request message, a request priority and a request type of the respective co-processing request messages;
  • the co-processing card 112 and the common cache card 103 are coupled to the bus switch 102 via input/output blocks. Specifically, the coprocessor card 112 and the common cache card 103 are inserted into the PCIE slot of the input/output subrack 107, and the input/output subrack 107 is connected to the bus switch 102 via the PCIE bus.

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 Interconnect Express, 快速外设组件互连)协处理卡的方式添加在计算机系统当中, 并由计 算机系统的计算节点控制协处理器进行协处理任务的处理, 同时利用计算节点 的内存作为协处理卡和计算节点数据传输的通道, 以中转待处理数据和经协处 理卡处理完毕的数据。
采用现有技术中的这种架构, 所有待处理数据数据必须通过计算节点的内 存来中转, 增加了内存开销, 而由于内存带宽、 延迟等因素的限制, 协处理速 度不高。 发明内容
本发明的实施例提供一种计算机系统、 协处理加速方法、 协处理任务管理 装置及加速管理板卡, 用于减少计算机系统的内存开销和提高计算机系统中协 处理器的协处理速度。
本发明实施例提供一种计算机系统, 包括: 至少一个计算节点、 总线交换 器和至少一个协处理卡, 所述计算机系统还包括: 公共緩存卡和协处理任务管 理装置, 所述公共緩存卡为所述计算机系统中各个计算节点和各个协处理卡之 间的数据传输提供临时存储; 所述公共緩存卡和所述至少一个协处理卡通过所 述总线交换器互连;
所述计算节点用于, 发送协处理请求消息;
所述协处理任务管理装置用于: 接收所述协处理请求消息, 所述协处理请 求消息携带有待处理数据的地址信息; 所述待处理数据为所述计算节点请求处 理的数据; 根据所述协处理请求消息携带的待处理数据的地址信息, 获得所述 待处理数据, 并将所述待处理数据存储到所述公共緩存卡中; 将存储到所述公 共緩存卡中的待处理数据分配到所述计算机系统中的空闲的协处理卡进行处 理。
本发明实施例提供一种协处理加速方法, 包括:
接收计算机系统中计算节点发出的至少一个协处理请求消息, 所述协处理 请求消息携带有待处理数据的地址信息; 所述待处理数据为所述计算节点请求 处理的数据;
根据所述协处理请求消息携带的待处理数据的地址信息, 获得所述待处理 数据, 并将所述待处理数据存储到公共緩存卡中; 所述待处理数据为所述协处 理请求消息请求处理的数据;
将存储在所述公共緩存卡中的待处理数据分配到所述计算机系统中的空 闲的协处理卡进行处理。
本发明的实施例提供一种协处理任务管理装置, 包括:
消息接收模块, 用于接收计算机系统中计算节点发出的至少一个协处理请 求消息, 所述协处理请求消息携带有待处理数据的地址信息; 所述待处理数据 为所述计算节点请求处理的数据; 第一数据传送模块, 用于根据所述协处理请求消息携带的待处理数据的地 址信息, 获得所述待处理数据, 并将所述待处理数据存储到公共緩存卡中; 所 述待处理数据为所述协处理请求消息请求处理的数据;
第二数据传送模块, 用于将存储在所述公共緩存卡中的待处理数据分配到 所述计算机系统中的空闲的协处理卡进行处理。
本发明实施例还提供一种加速管理板卡, 包括: 控制器和 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传 输, 然后输出读写命令, 直接控制数据的传输, 整个数据传输过程不需要计算 机系统中计算节点的参与, 有效节省了系统的资源。
需要说明的是, 所述硬盘具体可以包括磁盘类硬盘及固态类硬盘(如 flash SSD、 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.…代表的优 先级别, 本实施例不做特别地限定。
在一个实施例中, 请求计算节点标志、 请求类型、 源地址、 待处理数据长 度、 目的地址和请求优先级这些信息可以分别以字段的形式添加到协处理请求 消息中, 上述字段共同组成一个协处理请求消息。
5202, 在公共緩存卡内申请存储空间, 以緩存待处理数据; 所述公共緩存 卡设置在所述计算机系统中, 为所述计算机系统中各个计算节点和协处理卡之 间的数据传输提供临时存储;
具体地, 根据协处理请求消息携带的待处理数据的地址信息中的待处理数 据长度字段, 向公共緩存卡申请与待处理数据长度对应大小的内存空间, 用于 緩存待处理数据。
5203 , 根据所述协处理请求消息携带的待处理数据的地址信息, 获得待处 理数据, 并将所述待处理数据存储到上述公共緩存卡中申请的存储空间;
具体地, 在一个实施例中, 可以根据协处理请求消息携带的地址信息, 从 计算机系统的硬盘中获取待处理数据;
在一个实施例中, 协处理请求消息中的地址信息包括: 源地址和待处理数 据长度。 具体地, 根据协处理请求消息中的源地址和待处理数据长度这两个字 段的信息来获取待处理数据, 所述待处理数据具体指存放在计算机系统的硬盘 中等待协处理卡进行处理的原始数据。 由于协处理请求消息中的源地址字段表 示待处理数据在计算机系统的硬盘中的首地址, 因此, 计算机系统的硬盘中从 源地址开始, 大小为待处理数据长度的连续地址空间内的数据即为待处理数 据。 需要说明的是, 所述硬盘具体可以包括磁盘类硬盘及固态类硬盘(如 flash SSD、 PCMSSD )
在一个实施例中, 将待处理数据存储到公共緩存卡, 可以采用复制或迁移 的方式。
S204,将存储在所述公共緩存卡中的待处理数据分配到所述计算机系统中 的空闲的协处理卡进行处理;
需要说明的是, 所述空闲的协处理卡, 可以是当前没有协处理任务的协处 理卡; 也可以是根据负载均衡策略, 选择出的负载较小、 相对空闲的的协处理 卡, 例如, 可以将当前 CPU利用率最低的协处理卡作为空闲的协处理卡。
具体地, 在一个实施例中, 根据协处理请求消息中的请求类型以及与该请 求类型匹配的各协处理卡的利用率, 来判断是否有与协处理请求消息中的请求 类型匹配的空闲的协处理卡, 若有匹配的空闲的协处理卡, 则将公共緩存卡中 的待处理数据分配给该空闲处理器进行处理。 例如, 在一个实施例中, 若某一 计算节点请求图形协处理服务, 则通过系统函数调用来获取当前计算机系统中 所有 GPU加速卡的 CPU的利用率, 若某个 GPU加速卡的 CPU的利用率小于 5% , 即可判定该 GPU加速卡处于空闲状态, 然后将待处理数据从公共緩存卡 复制或迁移到该 GPU加速卡的存储器进行处理; 当然可以理解的是, 在另一 个实施例中, 若某一计算节点请求其他类型的协处理服务, 如浮点运算类, 则 应判断是否有浮点运算协处理卡空闲, 这里不再赘述。
进一步地, 为了根据优先级对多个协处理请求排序, 使优先级高的协处理 请求最先得到处理,使协处理卡得到更加合理的利用,在另一个实施例中, S204 可以具体包括如下步骤: ( 1 )从各个协处理请求消息中获得所述各个协处理请求消息的请求优先 级和请求类型;
( 2 )根据所述各个协处理请求消息的请求优先级和请求类型, 确定各个 协处理请求消息的处理顺序;
具体地, 确定各协处理请求消息的处理顺序的方法是: 将请求类型不同的 协处理请求消息放入不同的消息队列,请求类型相同的协处理请求消息在对应 的消息队列中按照请求优先级从高到低的顺序排队,请求优先级相同且请求类 型相同的协处理请求消息, 在对应的消息队列中按照请求的先后顺序排队; 与 请求类型匹配的空闲的协处理卡将按照对应任务队列中的先后顺序处理待处 理数据。
( 3 )将所述各个协处理请求消息对应的待处理数据, 按照所述处理顺序 依次从所述公共緩存卡分配到所述计算机系统中的空闲的协处理卡进行处理。
进一步的,在将所述待处理数据从所述公共緩存卡分配到所述计算机系统 中的空闲的协处理卡进行处理之后, 本发明实施例二提供的协处理加速方法还 包括:
5205 , 将所述待处理数据从所述公共緩存卡中擦除;
5206,将所述空闲的协处理卡处理完成的数据存储到到所述协处理请求消 息指定的目的地址;
需要说明的是, 所述目的地址, 为协处理请求消息中携带的目的地址, 它 表示经过协处理卡处理完成的数据最终的存储地址。
进一步的, 将空闲的协处理卡处理完成的数据存储到到所述协处理请求消 息指定的目的地址之后, 本发明实施例二提供的协处理加速方法还包括:
5207,根据协处理请求消息中的请求计算节点标志向发起协处理请求的计 算节点发送服务请求完成消息。
在一个实施例中,服务请求完成消息可以为一个包含特定含义字段的数据 报文, 所述报文包含的特定字段可以为 "finish" , "ok" 或 "yes" , 用于表示当 前的协处理任务已经完成。
本发明实施例二通过以上技术方案, 根据计算机系统中各个计算节点的发 送的协处理请求消息, 将各个计算节点请求处理的待处理数据分配给系统中的 空闲的协处理卡进行处理,计算节点不需要消耗自身的资源来进行待处理数据 的分配, 减少了各个计算节点自身的资源开销; 并使用公共緩存卡来作为计算 机系统的各个计算节点和各个协处理卡之间的公共数据緩冲通道,待处理数据 不必通过计算节点的内存来中转,避免了待处理数据从计算节点内存传输的开 销, 突破了内存延迟、 带宽的瓶颈, 提高了待处理数据的协处理速度。
实施例三, 本发明实施例提供一种协处理任务管理装置, 用于统一管理计 算机系统中的协处理任务, 如图 4所示, 该协处理任务管理装置包括:
消息接收模块 420, 用于接收计算机系统中计算节点发出的至少一个协处 理请求消息; 所述协处理请求消息携带有待处理数据的地址信息;
具体地, 在计算机系统中, 如果计算节点需要协处理卡处理待处理数据, 就发送协处理请求消息给消息接收模块 420, 消息接收模块 420接收计算节点 发出的协处理请求消息, 该协处理请求消息包含的内容与本发明实施例一的 S101所述的协处理请求消息内容完全一致, 本实施例不再赘述。
在另一个实施例中, 消息接收模块 420还用于, 在协处理卡将数据处理完 成之后,根据协处理请求消息中的请求计算节点标志向发起协处理请求的计算 节点发送服务请求完成消息。
具体地, 在协处理卡将数据处理完成之后, 消息接收模块 420根据该协处 理请求消息中的请求计算节点标志向发起该协处理请求的计算节点发送服务 请求完成消息。 在一个实施例中, 服务请求完成消息可以为一个包含特定含义 字段的数据报文, 所述报文包含的特定字段可以为 "finish" , "OK" 或 "yes" , 用于表示当前的协处理任务已经完成。
第一数据传送模块 430, 用于根据所述协处理请求消息携带的待处理数据 的地址信息, 获得待处理数据, 并将所述待处理数据存储到公共緩存卡中; 具体地, 在一个实施例中, 第一数据传送模块 430可以根据协处理请求消 息携带的地址信息,从计算机系统的硬盘中获取待处理数据;在一个实施例中, 协处理请求消息中的地址信息包括: 源地址和待处理数据长度。 具体地, 第一 数据传送模块 430根据协处理请求消息中的源地址和待处理数据长度这两个字 段信息来获取待处理数据, 所述待处理数据具体指存放在计算机系统的硬盘中 等待协处理卡进行处理的原始数据; 由于协处理请求消息中的源地址字段表示 待处理数据在计算机系统的硬盘中的首地址, 因此, 计算机系统的硬盘中从源 地址开始, 大小为待处理数据长度的连续地址空间内的数据即为待处理数据。
需要说明的是, 所述硬盘具体可以包括磁盘类硬盘及固态类硬盘(如 flash SSD、 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

权 利 要 求
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接口单元连接。
PCT/CN2011/083770 2011-12-09 2011-12-09 协处理加速方法、装置及系统 WO2013082809A1 (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201180005166.7A CN102906726B (zh) 2011-12-09 2011-12-09 协处理加速方法、装置及系统
EP11860708.4A EP2657836A4 (en) 2011-12-09 2011-12-09 ACCELERATION METHOD, DEVICE AND CO-PROCESSING SYSTEM
PCT/CN2011/083770 WO2013082809A1 (zh) 2011-12-09 2011-12-09 协处理加速方法、装置及系统
US13/622,422 US8478926B1 (en) 2011-12-09 2012-09-19 Co-processing acceleration method, apparatus, and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2011/083770 WO2013082809A1 (zh) 2011-12-09 2011-12-09 协处理加速方法、装置及系统

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US13/622,422 Continuation US8478926B1 (en) 2011-12-09 2012-09-19 Co-processing acceleration method, apparatus, and system

Publications (1)

Publication Number Publication Date
WO2013082809A1 true WO2013082809A1 (zh) 2013-06-13

Family

ID=47577491

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2011/083770 WO2013082809A1 (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)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
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
CN104410586B (zh) * 2014-12-11 2018-08-07 福建星网锐捷网络有限公司 一种vsu环境下的报文处理方法和装置
WO2016135875A1 (ja) 2015-02-25 2016-09-01 株式会社日立製作所 情報処理装置
CN105353978B (zh) * 2015-10-22 2017-07-14 湖南国科微电子股份有限公司 一种pcie ssd阵列的数据读方法、系统及读写方法
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
CN107544845B (zh) * 2017-06-26 2020-08-11 新华三大数据技术有限公司 Gpu资源调度方法及装置
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
CN111833232B (zh) * 2019-04-18 2024-07-02 杭州海康威视数字技术股份有限公司 一种图像处理装置
CN110399215A (zh) * 2019-06-25 2019-11-01 苏州浪潮智能科技有限公司 一种协处理器、一种电子设备及一种数据处理方法
CN113032298B (zh) * 2019-12-24 2023-09-29 中科寒武纪科技股份有限公司 用于保序的计算装置、集成电路装置、板卡及保序方法
CN113032299B (zh) * 2019-12-24 2023-09-26 中科寒武纪科技股份有限公司 用于处理请求的总线系统、集成电路装置、板卡及保序方法
CN113051957A (zh) * 2019-12-26 2021-06-29 浙江宇视科技有限公司 一种数据分析方法与系统
CN112272122A (zh) * 2020-10-14 2021-01-26 北京中科网威信息技术有限公司 Fpga加速卡检测方法、装置及可读存储介质
CN114691218A (zh) * 2020-12-31 2022-07-01 Oppo广东移动通信有限公司 协处理芯片、电子设备及启动方法
CN114020439A (zh) * 2021-11-17 2022-02-08 山东乾云启创信息科技股份有限公司 一种中断处理方法、装置及计算机设备
CN117311593A (zh) * 2022-06-25 2023-12-29 华为技术有限公司 数据处理方法、装置及系统
CN115801582B (zh) * 2022-09-27 2024-05-31 海光信息技术股份有限公司 系统链路带宽提升方法、相关器件及计算机设备

Citations (3)

* Cited by examiner, † Cited by third party
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 松下电器产业株式会社 控制处理器和协处理器间的数据传输的运算处理装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
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
US8370448B2 (en) * 2004-12-28 2013-02-05 Sap Ag API for worker node retrieval of session request
US7797670B2 (en) * 2006-04-14 2010-09-14 Apple Inc. Mirrored file system
US9170864B2 (en) * 2009-01-29 2015-10-27 International Business Machines Corporation Data processing in a hybrid computing environment

Patent Citations (3)

* Cited by examiner, † Cited by third party
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 松下电器产业株式会社 控制处理器和协处理器间的数据传输的运算处理装置

Also Published As

Publication number Publication date
EP2657836A1 (en) 2013-10-30
US20130151747A1 (en) 2013-06-13
US8478926B1 (en) 2013-07-02
EP2657836A4 (en) 2014-02-19
CN102906726A (zh) 2013-01-30
CN102906726B (zh) 2015-11-25

Similar Documents

Publication Publication Date Title
US8478926B1 (en) Co-processing acceleration method, apparatus, and system
EP3754498B1 (en) Architecture for offload of linked work assignments
EP3798835B1 (en) Method, device, and system for implementing hardware acceleration processing
US9606838B2 (en) Dynamically configurable hardware queues for dispatching jobs to a plurality of hardware acceleration engines
US10037222B2 (en) Virtualization of hardware accelerator allowing simultaneous reading and writing
US9176794B2 (en) Graphics compute process scheduling
US9176795B2 (en) Graphics processing dispatch from user mode
WO2023082560A1 (zh) 一种任务处理方法、装置、设备及介质
CN110647480A (zh) 数据处理方法、远程直接访存网卡和设备
US20120229481A1 (en) Accessibility of graphics processing compute resources
EP2284702A1 (en) Operating cell processors over a network
WO2023201987A1 (zh) 请求处理方法、装置、设备及介质
US9697047B2 (en) Cooperation of hoarding memory allocators in a multi-process system
CN113407357B (zh) 进程间数据搬移的方法及装置
US20150121376A1 (en) Managing data transfer
CN115525226A (zh) 硬件批量指纹计算方法、装置及设备
WO2024001850A1 (zh) 数据处理系统、方法、装置和控制器
US20230077147A1 (en) Data copy acceleration for service meshes
US10423424B2 (en) Replicated stateless copy engine
US20220058062A1 (en) System resource allocation for code execution
US20240069965A1 (en) Systems and methods for executing compute functions
US20230195664A1 (en) Software management of direct memory access commands

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201180005166.7

Country of ref document: CN

WWE Wipo information: entry into national phase

Ref document number: 2011860708

Country of ref document: EP

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11860708

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE