CN116627888B - 硬件计算模块、设备、方法、电子设备及存储介质 - Google Patents
硬件计算模块、设备、方法、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116627888B CN116627888B CN202310914809.4A CN202310914809A CN116627888B CN 116627888 B CN116627888 B CN 116627888B CN 202310914809 A CN202310914809 A CN 202310914809A CN 116627888 B CN116627888 B CN 116627888B
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- hardware computing
- processed
- hardware
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 29
- 238000012545 processing Methods 0.000 claims abstract description 168
- 238000004364 calculation method Methods 0.000 claims abstract description 120
- 230000005540 biological transmission Effects 0.000 claims description 25
- 238000004590 computer program Methods 0.000 claims description 9
- 230000006870 function Effects 0.000 claims description 8
- 230000008676 import Effects 0.000 claims description 8
- 230000000977 initiatory effect Effects 0.000 claims description 5
- 230000001960 triggered effect Effects 0.000 claims description 4
- 230000001133 acceleration Effects 0.000 description 36
- 238000010586 diagram Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 2
- 230000002035 prolonged effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
- G06F15/17331—Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- 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/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/544—Remote
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供一种硬件计算模块、设备、方法、电子设备及存储介质,涉及数据处理技术领域,该硬件计算模块包括远程直接内存访问网卡和内核单元,其中:所述远程直接内存访问网卡,用于获取远端服务器发送的待处理数据,并将所述待处理数据发送至第一内存中进行存储,其中,所述第一内存为所述硬件计算模块中的内存,所述待处理数据是根据主机服务器的当前计算任务确定的;所述内核单元,用于对所述第一内存中的所述待处理数据进行数据计算处理,并将数据计算处理结果发送至所述第一内存中进行存储,以供所述主机服务器从所述第一内存中获取所述数据计算处理结果。本发明减少了输入数据的导入路径,提高了数据处理效率。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种硬件计算模块、设备、方法、电子设备及存储介质。
背景技术
在互联网行业,随着信息化的普及,数据量呈***式的增长,对计算力提出更高要求;同时,机器学习、人工智能、无人驾驶以及工业仿真等领域的崛起,使得通用中央处理器(Central Processing Unit,简称CPU)在处理海量计算、海量数据或图片时遇到越来越多的性能瓶颈。
为了应对计算多元化的需求,越来越多的场景开始引入图形处理器(GraphicsProcessing Unit,简称GPU)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等硬件进行计算加速,异构计算(Heterogeneous Computing)应运而生,异构计算主要指不同类型的指令集和体系架构的计算模块组成***的计算方式。在现有异构计算中,本地服务器从远端服务器获取数据,需要先将数据存储到本地的内存上,然后再将数据从本地内存拷贝到计算模块(如GPU)的内存上,进而再通过计算模块对数据进行处理,并将数据处理结果返回至本地服务器。
然而,现有异构计算过程需要从远端服务器获取数据,数据的传输路径绕行了主机的内存,增加了输入数据的导入路径,扩大了输入数据的导入延时,同时也降低了数据处理的效率。因此,现在亟需一种硬件计算模块、设备、方法、电子设备及存储介质来解决上述问题。
发明内容
针对现有技术存在的问题,本发明提供一种硬件计算模块、设备、方法、电子设备及存储介质。
本发明提供一种硬件计算模块,包括远程直接内存访问网卡和内核单元,其中:
所述远程直接内存访问网卡,用于获取远端服务器发送的待处理数据,并将所述待处理数据发送至第一内存中进行存储,其中,所述第一内存为所述硬件计算模块中的内存,所述待处理数据是根据主机服务器的当前计算任务确定的;
所述内核单元,用于对所述第一内存中的所述待处理数据进行数据计算处理,并将数据计算处理结果发送至所述第一内存中进行存储,以供所述主机服务器从所述第一内存中获取所述数据计算处理结果,其中,所述硬件计算模块通过所述主机服务器的中央处理器获取所述当前计算任务。
根据本发明提供的一种硬件计算模块,所述硬件计算模块还包括内核启动单元,用于向所述内核单元发送启动触发信号,以触发所述内核单元对所述第一内存中的所述待处理数据进行数据计算处理。
根据本发明提供的一种硬件计算模块,所述远程直接内存访问网卡还用于在确定已接收到所述待处理数据之后,生成第一中断信号,并将所述第一中断信号发送至所述内核启动单元;
所述内核启动单元,用于根据所述远程直接内存访问网卡发送的所述第一中断信号生成所述启动触发信号,并将所述启动触发信号发送至所述内核单元。
根据本发明提供的一种硬件计算模块,所述远程直接内存访问网卡具体用于:通过第一网络链路获取所述远端服务器发送的所述待处理数据,其中,所述第一网络链路是所述远程直接内存访问网卡根据第二网络链路的配置信息建立的,所述第一网络链路为所述硬件计算模块与所述远端服务器之间的远程直接内存访问网络链路;所述第二网络链路是通过所述远程直接内存访问网卡建立的所述主机服务器与所述远端服务器之间的传输控制协议网络链路。
根据本发明提供的一种硬件计算模块,所述远程直接内存访问网卡,还用于根据第一存储空间地址信息,将所述待处理数据存储至所述第一内存中对应的内存空间;
所述内核单元,还用于根据所述第一存储空间地址信息,获取所述待处理数据,并根据第二存储空间地址信息,将所述待处理数据存储至所述第一内存中对应的内存空间。
根据本发明提供的一种硬件计算模块,所述硬件计算模块至少包括图形处理器、专用集成电路芯片、协处理器和现场可编程门阵列芯片。
本发明还提供一种硬件计算设备,包括中央处理器和上述硬件计算模块,其中:
所述中央处理器,用于基于主机服务器的当前计算任务,确定执行所述当前计算任务所需要的待处理数据;
所述硬件计算模块,用于通过远程直接内存访问网卡,从所述远端服务器中获取所述待处理数据,并通过内核单元对所述待处理数据进行数据计算处理,得到数据计算处理结果,以供所述主机服务器从第一内存中获取所述数据计算处理结果。
根据本发明提供的一种硬件计算设备,所述中央处理器还用于生成第一存储空间地址信息和第二存储空间地址信息,并将第一存储空间地址信息和第二存储空间地址信息发送至所述硬件计算模块,以供所述硬件计算模块根据所述第一存储空间地址信息和所述第二存储空间地址信息,对所述第一内存的存储地址参数进行配置;
所述硬件计算模块,还用于根据所述第一存储空间地址信息,将所述待处理数据存储至所述第一内存中对应的内存空间;根据所述第二存储空间地址信息将所述数据计算处理结果发送至第二内存进行存储,其中,所述第二内存为所述主机服务器的本地内存。
根据本发明提供的一种硬件计算设备,所述中央处理器包括第一线程处理单元和第二线程处理单元,其中:
所述第一线程处理单元,用于通过所述远程直接内存访问网卡,与所述远端服务器建立传输控制协议网络链路;
所述第二线程处理单元,用于在所述传输控制协议网络链路建立之后,建立所述远程直接内存访问网卡与所述远端服务器之间的远程直接内存访问网络链路。
根据本发明提供的一种硬件计算设备,所述硬件计算模块,还用于在所述远程直接内存访问网卡已接收到所述待处理数据之后,通过所述远程直接内存访问网卡生成第一中断信号,并将所述第一中断信号发送至所述中央处理器,其中,所述第一中断信号用于指示所述中央处理器等待接收所述数据计算处理结果。
根据本发明提供的一种硬件计算设备,所述中央处理器,还用于通过第二中断信号,在确定所述数据计算处理结果已存储至所述第一内存时,将存储至所述第一内存的所述数据计算处理结果导入到所述第二内存,其中,所述第二中断信号是所述内核单元在完成数据计算处理后生成的。
根据本发明提供的一种硬件计算设备,所述硬件计算设备包括多个所述硬件计算模块,所述主机服务器根据各个所述硬件计算模块的硬件类型,将对应的内核程序发送至所述硬件计算模块,其中,多个所述硬件计算模块包括图形处理器、专用集成电路芯片、协处理器和现场可编程门阵列芯片中的至少两种;所述内核程序用于为所述硬件计算模块提供对应的计算功能;
各个所述硬件计算模块在接收到对应的所述内核程序后,将所述内核程序安装至所述内核单元。
根据本发明提供的一种硬件计算设备,所述中央处理器,还用于根据所述待处理数据的数据类型,从多个所述硬件计算模块中确定所述当前计算任务对应的目标硬件计算模块,以通过所述目标硬件计算模块接收所述远端服务器发送的所述待处理数据。
本发明还提供一种基于上述的硬件计算设备的硬件计算方法,包括:
接收第一输入,所述第一输入包括通过主机服务器确定当前计算任务的操作;
响应于所述第一输入,通过硬件计算模块中的远程直接内存访问网卡,从远端服务器中获取所述当前计算任务对应的待处理数据,并通过所述硬件计算模块的内核单元对所述待处理数据进行数据计算处理,得到数据计算处理结果;
将所述数据计算处理结果发送至所述主机服务器。
根据本发明提供的一种硬件计算方法,所述响应于所述第一输入,通过硬件计算模块中的远程直接内存访问网卡,从远端服务器中获取所述当前计算任务对应的待处理数据,包括:
通过中央处理器,配置第一存储空间地址信息和第二存储空间地址信息;
根据所述第一存储空间地址信息,将所述远程直接内存访问网卡接收到的所述待处理数据存储至第一内存中对应的内存空间,所述第一内存为所述硬件计算模块中的内存。
根据本发明提供的一种硬件计算方法,所述通过所述硬件计算模块的内核单元对所述待处理数据进行数据计算处理,得到数据计算处理结果,包括:
在确定所述远程直接内存访问网卡已接收到所述待处理数据之后,所述远程直接内存访问网卡生成第一中断信号;
根据所述第一中断信号,生成对应的启动触发信号;
通过所述启动触发信号,触发所述内核单元对所述待处理数据进行数据计算处理,得到所述数据计算处理结果;
根据所述第二存储空间地址信息,将所述数据计算处理结果存储至第一内存中对应的内存空间。
根据本发明提供的一种硬件计算方法,所述将所述数据计算处理结果发送至所述主机服务器,包括:
通过高速串行计算机扩展总线标准接口,将所述第二存储空间地址信息对应的内存空间中存储的所述数据计算处理结果发送到第二内存,其中,所述第二内存为所述主机服务器的本地内存。
根据本发明提供的一种硬件计算方法,所述方法还包括:
通过所述远程直接内存访问网卡,建立所述主机服务器与所述远端服务器之间的传输控制协议网络链路,并获取所述传输控制协议网络链路的配置信息;
根据所述配置信息,获取所述远端服务器的服务器地址信息;
根据所述服务器地址信息,建立所述远程直接内存访问网卡与所述远端服务器之间的远程直接内存访问网络链路,以供所述远程直接内存访问网卡通过所述远程直接内存访问网络链路获取所述待处理数据。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述硬件计算方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述硬件计算方法。
本发明提供的硬件计算模块、设备、方法、电子设备及存储介质,通过硬件计算模块中的远程直接内存访问网卡,从远端服务器中获取当前计算任务对应的待处理数据,并将待处理数据存储至硬件计算模块的内存中,进而通过硬件计算模块的内核单元对待处理数据进行数据计算处理,再将得到的数据计算处理结果发送至主机服务器,从而减少了输入数据的导入路径,提高了数据处理效率。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图进行简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有图形计算加速的应用场景示意图;
图2为现有多个图形处理器之间的数据传输示意图;
图3为本发明提供的硬件计算模块的结构示意图;
图4为本发明提供的基于硬件计算模块的计算加速过程示意图;
图5为本发明提供的硬件计算设备的结构示意图;
图6为本发明提供的硬件计算设备的整体流程示意图;
图7为本发明提供的基于硬件计算设备的硬件计算方法的流程示意图;
图8为本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
异构计算技术作为一种将不同体系架构的计算模块,如CPU、GPU、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、协处理器和FPGA等各种计算模块,组成一个混合的***,以采用不同类型指令集执行计算的特殊方式,可应用于多种场景中。例如,在GPU加速卡的应用场景中,应用场景是主机端从远端的服务器获取需要计算的数据到本地,然后将本地的数据传输到GPU加速卡上进行计算,完成计算后主机再将结果从GPU加速卡上传回到主机。
图1为现有图形计算加速的应用场景示意图,可参考图1所示,首先,主机服务器的CPU下载内核(Kernel)程序到GPU加速卡(即硬件计算模块)上;然后,主机服务器和远端服务器(即数据采集服务器)建立传输控制协议(Transmission Control Protocol,简称TCP),从而基于TCP可靠链接配置主机与远端服务器之间的远程直接内存访问(RemoteDirect Memory Access,简称RDMA)网口的链路参数及数据传输参数,其中,RDMA技术在一定程度上降低了网络传输中服务器端数据处理的延迟。RDMA网卡通过网络把数据从远端服务器直接传入计算机的存储区,从而将数据从一个***快速移动到***存储器中,而不对操作***造成任何影响,这样就不需要用到多少计算机的处理功能。RDMA技术消除了外部存储器复制和上下文切换的开销,因而能解放内存带宽和CPU周期,以改进应用***性能。
进一步地,主机服务器和远端服务器基于RDMA链路进行数据传输,将输入数据(即待处理数据)从远端服务器拷贝到本地服务器的内存上;接着,主机服务器通过PCIE(Peripheral Component Interconnect Express)总线,使用直接内存访问(DirectMemory Access,简称DMA)技术将主机内存中的输入数据拷贝到GPU加速卡的内存中,其中,DMA是一些计算机总线架构提供的功能,该技术能使数据从附加设备(如,PCIE加速卡)直接发送到计算机主板的内存上。此时,主机服务器启动GPU加速卡内核中的Kernel程序执行运算, GPU加速卡的内核将存储在GPU内存中的输入数据导入,并开始启动计算。当GPU加速卡的内核完成计算后,将输出的计算结果数据导出到GPU内存中,并发送信号通知主机程序,以告知内核程序的运算任务已经完成。最后,主机服务器在收到GPU加速卡的计算完成信号后,通过PCIE总线,使用DMA将计算结果数据从GPU加速卡的内存拷贝到主机服务器的内存,这样就完成一次远端数据传输,以及本地加速卡运算的过程。
在图1中,主机服务器和远端服务器建立RDMA通道链接,主机服务器从远端服务器获取输入数据,需要先将输入数据存储到本地的内存上,然后主机服务器再通过PCIE总线,使用DMA将本地内存的数据拷贝到GPU加速卡的内存上,使得GPU加速卡才可以继续工作。由于输入数据路径绕行至主机的内存,增加了输入数据的导入路径,扩大了输入数据的导入延时,同时也降低了数据处理的效率。
图2为现有多个图形处理器之间的数据传输示意图,可参考图2所示,现有采用GPUDirect RDMA技术,实现多个GPU加速卡之间的数据传输,当单个GPU卡无法独立完成运算的时候,可以使用多个GPU加速卡进行分布式运算,减少了GPU通信的数据复制次数,通信延迟得到降低。但是,该技术针对的是多个相同硬件计算模块之间的路径优化,即计算机1的GPU可以直接访问计算机2的GPU内存,未对不同计算模块之间的路径进行优化。
本发明在主机服务器和远端服务器建立RDMA链接后,通过主机服务器确定远端服务器中待获取的输入数据后,直接将这个输入数据存储到硬件计算模块的内存上,进而通过硬件计算模块直接对数据进行处理,这样减少了输入数据的导入路径,提高了输入数据的导入效率。
图3为本发明提供的硬件计算模块的结构示意图,如图3所示,本发明提供了一种硬件计算模块,包括远程直接内存访问网卡301和内核单元302,其中:
所述远程直接内存访问网卡301,用于获取远端服务器303发送的待处理数据,并将所述待处理数据发送至第一内存304中进行存储,其中,所述第一内存304为所述硬件计算模块中的内存,所述待处理数据是根据主机服务器的当前计算任务确定的;
所述内核单元302,用于对所述第一内存304中的所述待处理数据进行数据计算处理,并将数据计算处理结果发送至所述第一内存304中进行存储,以供所述主机服务器从所述第一内存304中获取所述数据计算处理结果,其中,所述硬件计算模块通过所述主机服务器的中央处理器获取所述当前计算任务。
在本发明中,以硬件计算模块为FPGA加速卡为例进行说明,在该FPGA加速卡中内置了RDMA的网络模块,即图3中的远程直接内存访问网卡301,从而通过远程直接内存访问网卡301的RDMA网口和远端服务器303的RDMA网口建立链接,可记为第一网络链路。在上述实施例的基础上,所述硬件计算模块至少包括图形处理器、专用集成电路芯片、协处理器和现场可编程门阵列芯片。需要说明的是,在本发明中,主机服务器每次发布的计算任务所对应的硬件计算模块的类型是不同的,主机服务器的CPU与各种硬件计算模块连接,构建成一种异构计算设备,使得主机服务器可根据具体计算任务选取对应的硬件计算模块实现计算加速处理。
进一步地,硬件计算模块基于这个第一网络链路进行数据的接收工作,从而将输入数据(即待处理数据)从远端服务器303中直接导入至FPGA加速卡的指定内存地址上。当FPGA加速卡的内核单元302确定当前计算任务所需的待处理数据已全部存储至第一内存304中之后,启动FPGA加速卡的内核,并从第一内存304中将待处理数据进行导入,进而对待处理数据进行相应的数据计算处理。当内核完成数据计算处理之后,再将处理结果存储至第一内存304中,以等待主机服务器从第一内存304中对应的内存空间获取数据计算结果。
本发明提供的硬件计算模块,通过硬件计算模块中的远程直接内存访问网卡,从远端服务器中获取当前计算任务对应的待处理数据,并将待处理数据存储至硬件计算模块的内存中,进而通过硬件计算模块的内核单元对待处理数据进行数据计算处理,再将得到的数据计算处理结果发送至主机服务器,从而减少了输入数据的导入路径,提高了数据处理效率。
在上述实施例的基础上,所述硬件计算模块还包括内核启动单元,用于向所述内核单元发送启动触发信号,以触发所述内核单元对所述第一内存中的所述待处理数据进行数据计算处理。
可参考图1所示,现有硬件计算模块的加速计算场景中,硬件计算模块的内核需要通过主机服务器启动,即需要等待主机服务器将主机内存的待处理数据发送至硬件计算模块的内存之后,硬件计算模块需要通知主机服务器已接收完毕,再通过主机服务器的CPU触发硬件计算模块的内核启动运算,存在内核触发效率较低的问题。
在本发明中,在硬件计算模块(如FPGA加速卡)上设置内核启动单元,从而通过内核启动单元,在硬件计算模块的内存已存储当前计算任务对应的全部待处理数据之后,直接在硬件计算模块一侧将启动触发信号发送至内核启动单元,从而替代主机服务器启动硬件计算模块内核的模式,提高了内核触发效率,对整体数据处理流程进行了优化。
在上述实施例的基础上,所述远程直接内存访问网卡还用于在确定已接收到所述待处理数据之后,生成第一中断信号,并将所述第一中断信号发送至所述内核启动单元;
所述内核启动单元,用于根据所述远程直接内存访问网卡发送的所述第一中断信号生成所述启动触发信号,并将所述启动触发信号发送至所述内核单元。
在本发明中,在FPGA加速卡内置内核启动单元,将外部(即通过远端直接内存访问网卡)来的中断信号(即第一中断信号)转换为配置内核启动寄存器的信号,以替代主机服务器下发启动内核的指令。具体地,将通过远端直接内存访问网卡的中断触发电平复制,并将这个复制的电平信号连接到内核启动单元上,当通过远端直接内存访问网卡完成输入数据接收后,触发中断通知主机服务器的时候,同时触发内核启动单元,再由内核启动单元配置内核启动寄存器,从而启动内核运算,提高了内核的触发效率,进而提高了服务器的整体工作流程效率。
在上述实施例的基础上,所述远程直接内存访问网卡具体用于:通过第一网络链路获取所述远端服务器发送的所述待处理数据,其中,所述第一网络链路是所述远程直接内存访问网卡根据第二网络链路的配置信息建立的,所述第一网络链路为所述硬件计算模块与所述远端服务器之间的远程直接内存访问网络链路;所述第二网络链路是通过所述远程直接内存访问网卡建立的所述主机服务器与所述远端服务器之间的传输控制协议网络链路。
在本发明中,硬件计算模块中设置有远程直接内存访问网卡,从而可直接通过RDMA网口分别建立主机服务器与远端服务器之间的链路,以及硬件计算模块与远端服务器之间的链路。在建立硬件计算模块与远端服务器之间的RDMA数据链接之前,需要通过远程直接内存访问网卡建立主机服务器与远端服务器之间的TCP链接,再基于TCP链接中对应的配置信息(如远端服务器的IP地址信息、网口信息等),建立远程直接内存访问网卡配置硬件计算模块与远端服务器之间的RDMA数据链路。在本发明中,由于远程直接内存访问网卡的RDMA网口可以同时支持TCP/IP的网络数据和基于融合以太网的RDMA(RDMA overConverged Ethernet,简称RoCE)的网络数据,可针对不同的网口配置对应的网络链路,从而通过硬件计算模块快速建立网络链路。
在上述实施例的基础上,所述远程直接内存访问网卡,还用于根据第一存储空间地址信息,将所述待处理数据存储至所述第一内存中对应的内存空间;
所述内核单元,还用于根据所述第一存储空间地址信息,获取所述待处理数据,并根据第二存储空间地址信息,将所述待处理数据存储至所述第一内存中对应的内存空间。
在本发明中,第一内存在前期已配置好数据的存储空间地址,从而将不同来源的数据存储至硬件计算模块内存中对应的内存空间,使得在每个流程环节中,数据都会存储至指定空间内,以提供更快的数据访问速度,加快程序执行和数据处理的效率。
图4为本发明提供的基于硬件计算模块的计算加速过程示意图,如图4所示,以硬件计算模块为FPGA加速卡进行说明,主机服务器首先通过自身的CPU将内核程序下载到FPGA加速卡上;然后,基于FPGA加速卡上内置的RDMA网卡,建立主机服务器和远端服务器之间的TCP链接,在本发明中,主机服务器基于TCP链接的配置信息,通过FPGA加速卡上的RDMA网卡再建立FPGA加速卡与远端服务器之间的RDMA链接,并将网络数据的存储位置指定到FPGA加速卡的内存地址上。
进一步地,远端服务器基于RDMA链接,向FPGA加速卡发送输入数据,FPGA加速卡的RDMA网卡将输入数据存储到本地(即FPGA内存)内存上。当RDMA网卡完成输入数据接收后,给内核启动单元发送中断信号,同时给主机服务器发送中断信号,以通知主机服务器当前计算任务所需的数据已经接收完成,等待FPGA加速卡完成计算。
进一步地,内核启动单元收到中断信号后,通过配置内核的寄存器来触发内核启动。接着,内核根据FPGA内存中待处理数据的存储地址,将FPGA内存中的待处理数据导出,并开始进行计算处理。当内核完成计算处理后,根据前期已配置的计算结果的存储地址信息,将数据结果导出到FPGA内存进行存储,并通知主机服务器当前计算任务完成。最后,在主机服务器接收到计算任务完成的信号后,通过PCIE总线将计算结果从FPGA加速卡的内存上拷贝到自身内存,从而完成一次从输入数据的接收到数据处理的流程。
本发明提供的硬件计算模块,使用RDMA技术,将远端服务器的待处理数据直接导入到硬件计算模块的内存,并通过硬件计算模块的内核启动单元,替代主机服务器启动硬件计算模块中的内核,进而在内核完成计算处理之后,将计算结果发送至主机服务器,从而对整体数据处理的流程进行了优化,减少了输入数据的导入路径,提高了内核触发效率。
图5为本发明提供的硬件计算设备的结构示意图,如图5所示,本发明提供了一种硬件计算设备501,包括中央处理器502和上述各实施例所述的硬件计算模块503,其中:
所述中央处理器502,用于基于主机服务器504的当前计算任务,确定执行所述当前计算任务所需要的待处理数据;
所述硬件计算模块503,用于通过远程直接内存访问网卡506,从所述远端服务器505中获取所述待处理数据,并通过内核单元507对所述待处理数据进行数据计算处理,得到数据计算处理结果,以供所述主机服务器504从第一内存508中获取所述数据计算处理结果。
在本发明中,中央处理器502设置在主机服务器504,在确定当前计算任务需要进行计算加速处理时,中央处理器502与硬件计算模块503(本发明以FPGA加速卡为例进行说明),构成异构计算设备,即硬件计算设备501,从而对特定任务或处理特定类型数据进行计算加速处理。
具体地,硬件计算设备501中的远程直接内存访问网卡506,从而通过远程直接内存访问网卡506的RDMA网口和远端服务器505的RDMA网口建立链接,在本发明中,硬件计算模块可以是图形处理器、专用集成电路芯片、协处理器或现场可编程门阵列芯片,主机服务器可根据具体计算任务选取对应的硬件计算模块与中央处理器502组成硬件计算设备501,以实现计算加速处理。
进一步地,硬件计算设备501通过设置在硬件计算模块503的远程直接内存访问网卡506,从远端服务器505进行数据的接收工作,从而将待处理数据从远端服务器505中直接导入至FPGA加速卡的指定内存地址上,即第一内存508。当FPGA加速卡的内核单元507确定当前计算任务所需的待处理数据已全部存储至第一内存508之后,启动FPGA加速卡的内核单元507,并从第一内存508中将待处理数据进行导入,进而对待处理数据进行相应的数据计算处理。当内核单元507完成数据计算处理之后,再将处理结果存储至第一内存508中,以等待主机服务器504从第一内存508中对应的内存空间获取数据计算结果,并存储至主机内存510中。优选地,在本发明中,硬件计算模块503中还设置有内核启动单元509,当远程直接内存访问网卡506完成数据的接收后,向内核启动单元509发送中断信号,以通过内核启动单元509配置内核单元507的寄存器,从而快速触发内核启动。
本发明提供的硬件计算设备,通过硬件计算模块中的远程直接内存访问网卡,从远端服务器中获取当前计算任务对应的待处理数据,并将待处理数据存储至硬件计算模块的内存中,进而通过硬件计算模块的内核单元对待处理数据进行数据计算处理,再将得到的数据计算处理结果发送至主机服务器,从而减少了输入数据的导入路径,提高了数据处理效率。
在上述实施例的基础上,所述中央处理器还用于生成第一存储空间地址信息和第二存储空间地址信息,并将第一存储空间地址信息和第二存储空间地址信息发送至所述硬件计算模块,以供所述硬件计算模块根据所述第一存储空间地址信息和所述第二存储空间地址信息,对所述第一内存的存储地址参数进行配置;
所述硬件计算模块,还用于根据所述第一存储空间地址信息,将所述待处理数据存储至所述第一内存中对应的内存空间;根据所述第二存储空间地址信息将所述数据计算处理结果发送至第二内存进行存储,其中,所述第二内存为所述主机服务器的本地内存。
在本发明中,中央处理器通过两个线程配置内存地址空间,从而分别为硬件计算模块获取到的待处理数据、数据计算处理结果以及主机服务器获取到的数据处理结果配置对应的存储地址,可以减少读写操作,从而降低***的输入输出负载,提升整体***性能和响应速度。
在上述实施例的基础上,所述中央处理器包括第一线程处理单元和第二线程处理单元,其中:
所述第一线程处理单元,用于通过所述远程直接内存访问网卡,与所述远端服务器建立传输控制协议网络链路;
所述第二线程处理单元,用于在所述传输控制协议网络链路建立之后,建立所述远程直接内存访问网卡与所述远端服务器之间的远程直接内存访问网络链路。
在本发明中,在确定目标服务器(即远端服务器)的IP地址和TCP端口号等信息后,通过第一线程处理单元利用远程直接内存访问网卡,将远端服务器与主机服务器之间建立TCP链路;然后,通过第二线程处理单元,结合已建立的TCP链路中的配置信息,根据IP地址等信息,利用远程直接内存访问网卡,将硬件计算模块与远端服务器之间建立RDMA链路,使得主机服务器之间不再直接与远端服务器建立RDMA链路,通过将待处理数据直接发送至硬件计算模块,减少数据导入路径。
在上述实施例的基础上,所述硬件计算模块,还用于在所述远程直接内存访问网卡已接收到所述待处理数据之后,通过所述远程直接内存访问网卡生成第一中断信号,并将所述第一中断信号发送至所述中央处理器,其中,所述第一中断信号用于指示所述中央处理器等待接收所述数据计算处理结果。
在本发明中,远程直接内存访问网卡在完成数据接收后,生成第一中断信号,用于通知主机服务器中的中央处理器,以打断当前正在执行的程序,并将控制权转移到相应的中断处理程序上,即等待内核单元完成计算后,将计算处理结果从第一内存中导出至主机内存中,提高***的效率和实时性。
在上述实施例的基础上,所述中央处理器,还用于通过第二中断信号,在确定所述数据计算处理结果已存储至所述第一内存时,将存储至所述第一内存的所述数据计算处理结果导入到所述第二内存,其中,所述第二中断信号是所述内核单元在完成数据计算处理后生成的。
在本发明中,内核单元在完成计算任务后,同时生成一个中断信号,即第二中断信号,并将该中断信号发送至中央处理器,使得主机服务器保存当前的状态和现场信息,然后转移控制到对应的中断处理程序(即将计算处理结果从第一内存导入至主机内存),在处理完毕后再恢复之前的状态,继续执行被中断的程序,保证计算加速处理过程的效率。
在上述实施例的基础上,所述硬件计算设备包括多个所述硬件计算模块,所述主机服务器根据各个所述硬件计算模块的硬件类型,将对应的内核程序发送至所述硬件计算模块,其中,多个所述硬件计算模块包括图形处理器、专用集成电路芯片、协处理器和现场可编程门阵列芯片中的至少两种;所述内核程序用于为所述硬件计算模块提供对应的计算功能;
各个所述硬件计算模块在接收到对应的所述内核程序后,将所述内核程序安装至所述内核单元。
在本发明中,各个硬件计算模块的内核程序已预先安装,当接收到对应的待处理数据时,可通过内核程序快速执行数据计算处理,无需再从主机服务器下载内核程序。
在上述实施例的基础上,所述中央处理器,还用于根据所述待处理数据的数据类型,从多个所述硬件计算模块中确定所述当前计算任务对应的目标硬件计算模块,以通过所述目标硬件计算模块接收所述远端服务器发送的所述待处理数据。
在本发明中,中央处理器可以和多个不同类型的硬件计算模块连接,以针对不同的计算任务,根据待处理数据的数据类型,如图像数据,则采用GPU计算卡,将中央处理器的连接对象切换至目标硬件计算模块,从而构建一种可针对多种计算任务的硬件计算设备,扩展设备的应用场景。
图6为本发明提供的硬件计算设备的整体流程示意图,可参考图6所示,以硬件计算设备中的硬件计算模块为FPGA加速卡为例进行说明,其中,线程1(即第一线程处理单元)和线程2(即第二线程处理单元)在中央处理器中执行,具体地:
在线程2中,首先初始化opencl的环境,并下载内核程序clCreateKernel(Kernel),然后,线程2调用以下函数申请FPGA加速卡的内存空间:
input = clCreateBuffer(size);
output = clCreteBuffer(size);
其中,input和output分别为FPGA加速卡内存上的输入数据物理地址和计算结果数据物理地址。
定义主机端的内存地址空间,用于在主机服务器存放结果数据:
scoped_array output_h。
进一步地,线程2发送input地址给线程1,send_msg(input),其中,input为FPGA加速卡的内存地址。进一步地,线程2配置内核的所需参数,即输入数据在第一内存中的存放地址input,以及输出数据(计算处理结果)在第一内存中的存放地址output,clSetKernelArg(input,output)。
在完成上述配置过程之后,线程2等待FPGA加速卡发送完成计算的中断信号,clwaitForevent。当线程2收到加速卡完成的中断信号后,从output地址上把结果数据拷贝到主机内存对应的output_h上,其中,output_h是主机内存地址,即主机内存中存储数据结果的地址。
在线程1中,首先和远端服务器建立TCP链接,并注册了信号的回调函数sem_fun1,等待线程2的消息。当线程1的回调函数sem_fun1被触发,接收到线程2发送的input地址,接着,线程1开始配置RDMA的链接,使用input的地址接收输入数据,Rdma_setup_wr_start_buff(input)。
进一步地,线程1通知远端服务器开始向FPGA加速卡发送输入数据,当线程1收到RDMA的中断信号后,重新开始等待线程2的信号。
在FPGA加速卡的逻辑流程中,FPGA加速卡中的RDMA网卡配置了输入数据的存放地址input,进而通过RDMA网卡开始接收远端服务器发送的输入数据,并存放到input地址上。进一步地,RDMA网卡发送中断信号给内核启动单元,使得kernel启动单元接收到中断信号后,开始配置内核启动的寄存器(在编译内核的时候,定义的启动寄存器),以触发内核开始执行计算过程。
然后,内核单元将输入数据导入并开始计算,将输出的数据计算结果导出到第一内存的output地址上,并通知主机服务器已计算完成,当中央处理器中的线程2接收到计算完成的信号后,从FPGA加速卡内存上的output地址,将计算处理结果读回到主机内存的output_h地址上,clEnqueueReadBuffer(output_h,output)。
图7为本发明提供的基于硬件计算设备的硬件计算方法的流程示意图,如图7所示,本发明提供了一种硬件计算方法,包括:
步骤701,接收第一输入,所述第一输入包括通过主机服务器确定当前计算任务的操作;
步骤702,响应于所述第一输入,通过硬件计算模块中的远程直接内存访问网卡,从远端服务器中获取所述当前计算任务对应的待处理数据,并通过所述硬件计算模块的内核单元对所述待处理数据进行数据计算处理,得到数据计算处理结果;
步骤703,将所述数据计算处理结果发送至所述主机服务器。
在本发明中,通过主机服务器获取到当前计算任务后,主机服务器中的中央处理器与硬件计算模块构成异构计算设备,从而对特定任务或处理特定类型数据进行计算加速处理。具体地,通过硬件计算设备中的远程直接内存访问网卡,与远端服务器的RDMA网口建立链接后,从远端服务器进行数据的接收工作,将待处理数据从远端服务器中直接导入至硬件计算模块(如FPGA加速卡)的指定内存地址上。
进一步地,当硬件计算模块的内核单元确定当前计算任务所需的待处理数据已全部存储至本地内存(即第一内存)之后,启动内核单元,并从第一内存中将待处理数据进行导入,进而对待处理数据进行相应的数据计算处理。当内核单元完成数据计算处理之后,再将处理结果存储至第一内存中,以等待主机服务器从第一内存中对应的内存空间获取数据计算结果,并存储至主机内存中。
本发明提供的硬件计算方法,通过硬件计算模块中的远程直接内存访问网卡,从远端服务器中获取当前计算任务对应的待处理数据,并将待处理数据存储至硬件计算模块的内存中,进而通过硬件计算模块的内核单元对待处理数据进行数据计算处理,再将得到的数据计算处理结果发送至主机服务器,从而减少了输入数据的导入路径,提高了数据处理效率。
在上述实施例的基础上,所述响应于所述第一输入,通过硬件计算模块中的远程直接内存访问网卡,从远端服务器中获取所述当前计算任务对应的待处理数据,包括:
通过中央处理器,配置第一存储空间地址信息和第二存储空间地址信息;
根据所述第一存储空间地址信息,将所述远程直接内存访问网卡接收到的所述待处理数据存储至第一内存中对应的内存空间,所述第一内存为所述硬件计算模块中的内存。
在本发明中,中央处理器通过两个线程配置内存地址空间,从而分别为硬件计算模块获取到的待处理数据、数据计算处理结果以及主机服务器获取到的数据处理结果配置对应的存储地址,可以减少读写操作,从而降低***的输入输出负载,提升整体***性能和响应速度。
在上述实施例的基础上,所述通过所述硬件计算模块的内核单元对所述待处理数据进行数据计算处理,得到数据计算处理结果,包括:
在确定所述远程直接内存访问网卡已接收到所述待处理数据之后,所述远程直接内存访问网卡生成第一中断信号;
根据所述第一中断信号,生成对应的启动触发信号;
通过所述启动触发信号,触发所述内核单元对所述待处理数据进行数据计算处理,得到所述数据计算处理结果;
根据所述第二存储空间地址信息,将所述数据计算处理结果存储至第一内存中对应的内存空间。
在本发明中,在FPGA加速卡内置内核启动单元,将远端直接内存访问网卡发送的第一中断信号转换为配置内核启动寄存器的信号,以替代主机服务器下发启动内核的指令。具体地,将通过远端直接内存访问网卡的中断触发电平复制,并将这个复制的电平信号连接到内核启动单元上,当通过远端直接内存访问网卡完成输入数据接收后,触发中断通知主机服务器的时候,同时触发内核启动单元,再由内核启动单元配置内核启动寄存器,从而启动内核运算,提高了内核的触发效率,进而提高了服务器的整体工作流程效率。
在上述实施例的基础上,所述将所述数据计算处理结果发送至所述主机服务器,包括:
通过高速串行计算机扩展总线标准接口,将所述第二存储空间地址信息对应的内存空间中存储的所述数据计算处理结果发送到第二内存,其中,所述第二内存为所述主机服务器的本地内存。
在本发明中,可采用PCIE这种高速串行计算机扩展总线标准接口,利用DMA技术,将数据计算处理结果从硬件计算模块的内存中导入至主机服务器的本地内存中,相对于传统的PCI总线,PCIE可以提供更快的数据传输速率,适用于需要大带宽和高性能的应用场景。
在上述实施例的基础上,所述方法还包括:
通过所述远程直接内存访问网卡,建立所述主机服务器与所述远端服务器之间的传输控制协议网络链路,并获取所述传输控制协议网络链路的配置信息;
根据所述配置信息,获取所述远端服务器的服务器地址信息;
根据所述服务器地址信息,建立所述远程直接内存访问网卡与所述远端服务器之间的远程直接内存访问网络链路,以供所述远程直接内存访问网卡通过所述远程直接内存访问网络链路获取所述待处理数据。
在本发明中,通过硬件计算模块中的远程直接内存访问网卡,可直接通过RDMA网口分别建立主机服务器与远端服务器之间的链路,以及硬件计算模块与远端服务器之间的链路。具体地,首先通过远程直接内存访问网卡建立主机服务器与远端服务器之间的TCP链接,再基于TCP链接中对应的配置信息(如远端服务器的IP地址信息、网口信息等),建立远程直接内存访问网卡配置硬件计算模块与远端服务器之间的RDMA数据链路,实现了一种快速建立两种网络链路的过程。
图8为本发明提供的电子设备的结构示意图,如图8所示,该电子设备可以包括:处理器(Processor)801、通信接口(Communications Interface)802、存储器(Memory)803和通信总线804,其中,处理器801,通信接口802,存储器803通过通信总线804完成相互间的通信。处理器801可以调用存储器803中的逻辑指令,以执行硬件计算方法,该方法包括:接收第一输入,所述第一输入包括通过主机服务器确定当前计算任务的操作;响应于所述第一输入,通过硬件计算模块中的远程直接内存访问网卡,从远端服务器中获取所述当前计算任务对应的待处理数据,并通过所述硬件计算模块的内核单元对所述待处理数据进行数据计算处理,得到数据计算处理结果;将所述数据计算处理结果发送至所述主机服务器。
此外,上述的存储器803中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的硬件计算方法,该方法包括:接收第一输入,所述第一输入包括通过主机服务器确定当前计算任务的操作;响应于所述第一输入,通过硬件计算模块中的远程直接内存访问网卡,从远端服务器中获取所述当前计算任务对应的待处理数据,并通过所述硬件计算模块的内核单元对所述待处理数据进行数据计算处理,得到数据计算处理结果;将所述数据计算处理结果发送至所述主机服务器。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的硬件计算方法,该方法包括:接收第一输入,所述第一输入包括通过主机服务器确定当前计算任务的操作;响应于所述第一输入,通过硬件计算模块中的远程直接内存访问网卡,从远端服务器中获取所述当前计算任务对应的待处理数据,并通过所述硬件计算模块的内核单元对所述待处理数据进行数据计算处理,得到数据计算处理结果;将所述数据计算处理结果发送至所述主机服务器。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (19)
1.一种硬件计算模块,其特征在于,包括远程直接内存访问网卡和内核单元,其中:
所述远程直接内存访问网卡,用于获取远端服务器发送的待处理数据,并将所述待处理数据发送至第一内存中进行存储,其中,所述第一内存为所述硬件计算模块中的内存,所述待处理数据是根据主机服务器的当前计算任务确定的;
所述内核单元,用于对所述第一内存中的所述待处理数据进行数据计算处理,并将数据计算处理结果发送至所述第一内存中进行存储,以供所述主机服务器从所述第一内存中获取所述数据计算处理结果,其中,所述硬件计算模块通过所述主机服务器的中央处理器获取所述当前计算任务,所述硬件计算模块与所述中央处理器构建成一种异构计算设备;
所述硬件计算模块还包括内核启动单元,用于在所述远程直接内存访问网卡完成所述待处理数据的接收后,向所述内核单元发送启动触发信号,以通过所述内核启动单元配置所述内核单元的寄存器,触发所述内核单元对所述第一内存中的所述待处理数据进行数据计算处理。
2.根据权利要求1所述的硬件计算模块,其特征在于,所述远程直接内存访问网卡还用于在确定已接收到所述待处理数据之后,生成第一中断信号,并将所述第一中断信号发送至所述内核启动单元;
所述内核启动单元,用于根据所述远程直接内存访问网卡发送的所述第一中断信号生成所述启动触发信号,并将所述启动触发信号发送至所述内核单元。
3.根据权利要求1所述的硬件计算模块,其特征在于,所述远程直接内存访问网卡具体用于:通过第一网络链路获取所述远端服务器发送的所述待处理数据,其中,所述第一网络链路是所述远程直接内存访问网卡根据第二网络链路的配置信息建立的,所述第一网络链路为所述硬件计算模块与所述远端服务器之间的远程直接内存访问网络链路;所述第二网络链路是通过所述远程直接内存访问网卡建立的所述主机服务器与所述远端服务器之间的传输控制协议网络链路。
4.根据权利要求3所述的硬件计算模块,其特征在于,所述远程直接内存访问网卡,还用于根据第一存储空间地址信息,将所述待处理数据存储至所述第一内存中对应的内存空间;
所述内核单元,还用于根据所述第一存储空间地址信息,获取所述待处理数据,并根据第二存储空间地址信息,将所述待处理数据存储至所述第一内存中对应的内存空间。
5.根据权利要求1所述的硬件计算模块,其特征在于,所述硬件计算模块至少包括图形处理器、专用集成电路芯片、协处理器或现场可编程门阵列芯片。
6.一种硬件计算设备,其特征在于,包括中央处理器和权利要求1至5任一项所述的硬件计算模块,其中:
所述中央处理器,用于基于主机服务器的当前计算任务,确定执行所述当前计算任务所需要的待处理数据;
所述硬件计算模块,用于通过远程直接内存访问网卡,从远端服务器中获取所述待处理数据,并通过内核单元对所述待处理数据进行数据计算处理,得到数据计算处理结果,以供所述主机服务器从第一内存中获取所述数据计算处理结果。
7.根据权利要求6所述的硬件计算设备,其特征在于,所述中央处理器还用于生成第一存储空间地址信息和第二存储空间地址信息,并将第一存储空间地址信息和第二存储空间地址信息发送至所述硬件计算模块,以供所述硬件计算模块根据所述第一存储空间地址信息和所述第二存储空间地址信息,对所述第一内存的存储地址参数进行配置;
所述硬件计算模块,还用于根据所述第一存储空间地址信息,将所述待处理数据存储至所述第一内存中对应的内存空间;根据所述第二存储空间地址信息将所述数据计算处理结果发送至第二内存进行存储,其中,所述第二内存为所述主机服务器的本地内存。
8.根据权利要求7所述的硬件计算设备,其特征在于,所述中央处理器包括第一线程处理单元和第二线程处理单元,其中:
所述第一线程处理单元,用于通过所述远程直接内存访问网卡,与所述远端服务器建立传输控制协议网络链路;
所述第二线程处理单元,用于在所述传输控制协议网络链路建立之后,建立所述远程直接内存访问网卡与所述远端服务器之间的远程直接内存访问网络链路。
9.根据权利要求7所述的硬件计算设备,其特征在于,所述硬件计算模块,还用于在所述远程直接内存访问网卡已接收到所述待处理数据之后,通过所述远程直接内存访问网卡生成第一中断信号,并将所述第一中断信号发送至所述中央处理器,其中,所述第一中断信号用于指示所述中央处理器等待接收所述数据计算处理结果。
10.根据权利要求9所述的硬件计算设备,其特征在于,所述中央处理器,还用于通过第二中断信号,在确定所述数据计算处理结果已存储至所述第一内存时,将存储至所述第一内存的所述数据计算处理结果导入到所述第二内存,其中,所述第二中断信号是所述内核单元在完成数据计算处理后生成的。
11.根据权利要求6所述的硬件计算设备,其特征在于,所述硬件计算设备包括多个所述硬件计算模块,所述主机服务器根据各个所述硬件计算模块的硬件类型,将对应的内核程序发送至所述硬件计算模块,其中,多个所述硬件计算模块包括图形处理器、专用集成电路芯片、协处理器和现场可编程门阵列芯片中的至少两种;所述内核程序用于为所述硬件计算模块提供对应的计算功能;
各个所述硬件计算模块在接收到对应的所述内核程序后,将所述内核程序安装至所述内核单元。
12.根据权利要求11所述的硬件计算设备,其特征在于,所述中央处理器,还用于根据所述待处理数据的数据类型,从多个所述硬件计算模块中确定所述当前计算任务对应的目标硬件计算模块,以通过所述目标硬件计算模块接收所述远端服务器发送的所述待处理数据。
13.一种基于权利要求6至12任一项所述的硬件计算设备的硬件计算方法,其特征在于,包括:
接收第一输入,所述第一输入包括通过主机服务器确定当前计算任务的操作;
响应于所述第一输入,通过硬件计算模块中的远程直接内存访问网卡,从远端服务器中获取所述当前计算任务对应的待处理数据,并通过所述硬件计算模块的内核单元对所述待处理数据进行数据计算处理,得到数据计算处理结果;
将所述数据计算处理结果发送至所述主机服务器。
14.根据权利要求13所述的硬件计算方法,其特征在于,所述响应于所述第一输入,通过硬件计算模块中的远程直接内存访问网卡,从远端服务器中获取所述当前计算任务对应的待处理数据,包括:
通过中央处理器,配置第一存储空间地址信息和第二存储空间地址信息;
根据所述第一存储空间地址信息,将所述远程直接内存访问网卡接收到的所述待处理数据存储至第一内存中对应的内存空间,所述第一内存为所述硬件计算模块中的内存。
15.根据权利要求14所述的硬件计算方法,其特征在于,所述通过所述硬件计算模块的内核单元对所述待处理数据进行数据计算处理,得到数据计算处理结果,包括:
在确定所述远程直接内存访问网卡已接收到所述待处理数据之后,所述远程直接内存访问网卡生成第一中断信号;
根据所述第一中断信号,生成对应的启动触发信号;
通过所述启动触发信号,触发所述内核单元对所述待处理数据进行数据计算处理,得到所述数据计算处理结果;
根据所述第二存储空间地址信息,将所述数据计算处理结果存储至第一内存中对应的内存空间。
16.根据权利要求15所述的硬件计算方法,其特征在于,所述将所述数据计算处理结果发送至所述主机服务器,包括:
通过高速串行计算机扩展总线标准接口,将所述第二存储空间地址信息对应的内存空间中存储的所述数据计算处理结果发送到第二内存,其中,所述第二内存为所述主机服务器的本地内存。
17.根据权利要求14所述的硬件计算方法,其特征在于,所述方法还包括:
通过所述远程直接内存访问网卡,建立所述主机服务器与所述远端服务器之间的传输控制协议网络链路,并获取所述传输控制协议网络链路的配置信息;
根据所述配置信息,获取所述远端服务器的服务器地址信息;
根据所述服务器地址信息,建立所述远程直接内存访问网卡与所述远端服务器之间的远程直接内存访问网络链路,以供所述远程直接内存访问网卡通过所述远程直接内存访问网络链路获取所述待处理数据。
18.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求13至17任一项所述硬件计算方法。
19.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求13至17任一项所述硬件计算方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310914809.4A CN116627888B (zh) | 2023-07-25 | 2023-07-25 | 硬件计算模块、设备、方法、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310914809.4A CN116627888B (zh) | 2023-07-25 | 2023-07-25 | 硬件计算模块、设备、方法、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116627888A CN116627888A (zh) | 2023-08-22 |
CN116627888B true CN116627888B (zh) | 2023-10-03 |
Family
ID=87597653
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310914809.4A Active CN116627888B (zh) | 2023-07-25 | 2023-07-25 | 硬件计算模块、设备、方法、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116627888B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116881191B (zh) * | 2023-09-06 | 2024-01-16 | 苏州浪潮智能科技有限公司 | 数据处理方法、装置、设备及存储介质 |
CN117112044B (zh) * | 2023-10-23 | 2024-02-06 | 腾讯科技(深圳)有限公司 | 基于网卡的指令处理方法、装置、设备和介质 |
CN117312229B (zh) * | 2023-11-29 | 2024-02-23 | 苏州元脑智能科技有限公司 | 一种数据传输装置、数据处理设备、***、方法及介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107690622A (zh) * | 2016-08-26 | 2018-02-13 | 华为技术有限公司 | 实现硬件加速处理的方法、设备和*** |
CN113595807A (zh) * | 2021-09-28 | 2021-11-02 | 阿里云计算有限公司 | 计算机***、rdma网卡及数据通信方法 |
CN113852656A (zh) * | 2020-06-28 | 2021-12-28 | 华为技术有限公司 | 一种数据传输方法、处理器***及内存访问*** |
CN116028292A (zh) * | 2023-02-28 | 2023-04-28 | 珠海星云智联科技有限公司 | 用于远程直接内存访问仿真验证的仿真验证***及方法 |
WO2023104194A1 (zh) * | 2021-12-10 | 2023-06-15 | 华为技术有限公司 | 一种业务处理方法及装置 |
CN116402673A (zh) * | 2023-03-10 | 2023-07-07 | 阿里巴巴(中国)有限公司 | 数据处理方法、***、计算设备和存储介质 |
-
2023
- 2023-07-25 CN CN202310914809.4A patent/CN116627888B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107690622A (zh) * | 2016-08-26 | 2018-02-13 | 华为技术有限公司 | 实现硬件加速处理的方法、设备和*** |
CN113852656A (zh) * | 2020-06-28 | 2021-12-28 | 华为技术有限公司 | 一种数据传输方法、处理器***及内存访问*** |
CN113595807A (zh) * | 2021-09-28 | 2021-11-02 | 阿里云计算有限公司 | 计算机***、rdma网卡及数据通信方法 |
WO2023104194A1 (zh) * | 2021-12-10 | 2023-06-15 | 华为技术有限公司 | 一种业务处理方法及装置 |
CN116028292A (zh) * | 2023-02-28 | 2023-04-28 | 珠海星云智联科技有限公司 | 用于远程直接内存访问仿真验证的仿真验证***及方法 |
CN116402673A (zh) * | 2023-03-10 | 2023-07-07 | 阿里巴巴(中国)有限公司 | 数据处理方法、***、计算设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116627888A (zh) | 2023-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116627888B (zh) | 硬件计算模块、设备、方法、电子设备及存储介质 | |
CN109739786B (zh) | 一种dma控制器和异构加速*** | |
US11922304B2 (en) | Remote artificial intelligence (AI) acceleration system | |
CN111314799A (zh) | 终端***构架、通信***及通信方法、存储介质 | |
CN113678113A (zh) | 计算存储装置与基于网络化的*** | |
US12034604B2 (en) | MQTT protocol simulation method and simulation device | |
CN114281521B (zh) | 优化深度学习异构资源通信效率方法、***、设备及介质 | |
CN111190842A (zh) | 直接存储器访问、处理器、电子设备和数据搬移方法 | |
CN111262917A (zh) | 一种基于fpga云平台的远端数据搬移装置和方法 | |
CN115237500A (zh) | 一种池化平台的数据处理方法、装置、设备和介质 | |
CN111338808B (zh) | 一种协同计算方法及*** | |
CN115686836A (zh) | 一种安装有加速器的卸载卡 | |
US10353857B2 (en) | Parallel processing apparatus and method for controlling communication | |
EP2620876B1 (en) | Method and apparatus for data processing, pci-e bus system and server | |
CN103092676A (zh) | 虚拟机集群的模拟输入输出方法、装置及*** | |
CN113347017B (zh) | 一种网络通信的方法、装置、网络节点设备及混合网络 | |
CN113472523A (zh) | 用户态协议栈报文处理优化方法、***、装置及存储介质 | |
CN112631778B (zh) | 一种基于fpga云的计算优化方法、***、存储介质及设备 | |
KR20190044098A (ko) | 컨테이너를 액세스하는데 사용하기 위한 방법 및 디바이스 | |
US20230153153A1 (en) | Task processing method and apparatus | |
CN114020618B (zh) | 一种基于fpga和dpdk的高可用测试方法及*** | |
CN112925739B (zh) | 应用于众核芯片的通信方法、众核芯片及存储介质 | |
CN114416275A (zh) | 一种实现多个管理客户端同步虚拟机状态的方法及*** | |
CN115374038A (zh) | 一种兼容PCIe结构的设备间互联方法及相关设备 | |
CN115687233B (zh) | 通信方法、装置、设备及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |