CN102135949B - 基于图形处理器的计算网络系统、方法及装置 - Google Patents
基于图形处理器的计算网络系统、方法及装置 Download PDFInfo
- Publication number
- CN102135949B CN102135949B CN 201110049546 CN201110049546A CN102135949B CN 102135949 B CN102135949 B CN 102135949B CN 201110049546 CN201110049546 CN 201110049546 CN 201110049546 A CN201110049546 A CN 201110049546A CN 102135949 B CN102135949 B CN 102135949B
- Authority
- CN
- China
- Prior art keywords
- gpu
- cpu
- data
- equipment
- calculating
- 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 55
- 238000012545 processing Methods 0.000 title claims abstract description 12
- 238000003384 imaging method Methods 0.000 claims description 65
- 239000000872 buffer Substances 0.000 claims description 41
- 230000005540 biological transmission Effects 0.000 claims description 25
- 238000013508 migration Methods 0.000 claims description 15
- 230000005012 migration Effects 0.000 claims description 15
- 238000005192 partition Methods 0.000 abstract 1
- 238000004364 calculation method Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 4
- 239000003208 petroleum Substances 0.000 description 4
- 230000003139 buffering effect Effects 0.000 description 3
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000000342 Monte Carlo simulation Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000012530 fluid Substances 0.000 description 1
Images
Landscapes
- Image Processing (AREA)
Abstract
本发明披露了基于图形处理器的计算网络系统、方法及装置,涉及计算网络中的管理节点和多个计算节点,方法包括:管理节点获取计算网络中计算节点的个数,根据计算空间大小开辟每一计算节点的内存;计算节点根据本节点的GPU设备的个数和CPU核数开辟CPU计算线程和GPU计算线程,并划分计算空间数据;管理节点将参与计算的数据广播到各个计算节点;CPU设备调用GPU计算线程与GPU设备协同完成一部分计算,同时并行调用CPU计算线程完成另一部分计算。本发明通过采用CPU/GPU协同计算、共同计算实现了大型计算应用的高速化和最优化。
Description
技术领域
本发明涉及高性能计算应用技术,尤其涉及基于图形处理器的计算网络系统、方法及装置。
背景技术
随着图形处理器(GPU,Graphic Processing Unit)体系结构的不断发展,利用GPU进行通用计算的方法被越来越多的学术和工业界所采用。GPU设备(显卡)拥有计算能力强,显示内存吞吐量大等特点,尤其适合于细粒度、高度并发的并行算法领域,在高性能计算领域受到越来越多的关注。
例如,石油行业高性能计算是典型的行业应用。其中叠前时间偏移又是石油行业重要的处理地震信息的方法,是以时间记录的方式来处理地震资料信息,适用于地层速度横向变化不大的构造。
在现有的作为计算网络系统中计算节点的服务器设备中,虽然也有引入GPU设备应用于譬如叠前时间偏移计算这类大型计算上,但这些GPU设备与服务器设备中的CPU设备(主卡)只是简单的协同关系,即由CPU设备控制GPU设备,主要的计算操作由GPU设备完成。显然,这样的工作模式并没有充分利用CPU设备,工作效率较低。
将GPU设备尤其是GPU集群应用于计算网络实现大型计算应用是一项非常有意义的工作。尤其是在引入GPU设备之后,需要设计一种软件方法,使得CPU设备在控制GPU设备的同时,能够参与计算,由此可以提高设备的工作效率,并避免由于引入GPU设备所引起的负载不均衡等问题,以及可以更加充分地利用GPU集群的性能优势。
发明内容
本发明所要解决的技术问题是提供一种基于图形处理器的计算网络系统、方法及装置,能够使得CPU设备在控制GPU设备的同时参与部分计算。
为了解决上述技术问题,本发明提供了一种基于图形处理器的计算网络中的方法,涉及计算网络中的管理节点和多个计算节点,该方法包括:
管理节点获取计算网络中计算节点的个数为M,根据计算空间大小为S为每个计算节点各开辟大小为S/M的内存,用于各计算节点存储本地的计算空间数据;
计算节点根据本节点的图形处理器GPU设备的个数和CPU核数开辟CPU计算线程和GPU计算线程,并划分计算空间数据,具体包括:
获取本节点所有CPU设备的核数共为N_CPU,GPU设备个数为N_GPU,则开辟(N_CPU-N_GPU)个CPU计算线程和N_GPU个GPU线程;
根据N_CPU、N_GPU及GPU设备与CPU设备计算能力的比值N将计算空间数据按照(N_CPU-N_GPU)∶N∶N进行划分,其中,CPU设备的计算空间数据大小为:(N_CPU-N_GPU)/[(N_CPU-N_GPU)+N_GPU*N];GPU设备的计算空间数据大小为:N*N_GPU/[(N_CPU-N_GPU)+N_GPU*N];
管理节点将参与计算的数据广播到各个计算节点;CPU设备调用GPU计算线程与GPU设备协同完成一部分计算,同时并行调用CPU计算线程完成另一部分计算。
进一步地,管理节点将参与计算的数据广播到各个计算节点,具体包括:
管理节点利用消息传输接口并行地将参与计算的数据广播到计算节点。
进一步地,CPU设备调用GPU计算线程与GPU设备协同完成一部分计算,同时并行调用CPU计算线程完成另一部分计算,具体包括:
CPU设备调用GPU计算线程,初始化GPU设备,向GPU设备传递计算空间数据;在通过一个接收线程接收到数据后,控制GPU设备将该数据对于划分给GPU设备的计算空间数据进行相应部分的计算,直至对所有接收的数据计算结束;同时并行调用CPU计算线程用接收到的数据对于划分给CPU设备的计算空间数据进行相应部分的计算,直至所有接收的数据计算结束。
进一步地,
GPU计算线程在GPU设备中开辟两块缓冲区用于缓存数据,并创建两个流标志;当具有第一流标志的数据到来后向第一缓存区传输,并调用GPU计算核心用该第一缓存区的数据对于计算空间数据进行计算;当具有第二流标志的数据到来后向第二缓存区传输,并调用GPU计算核心用该第二缓存区的数据对计算空间数据进行计算。
进一步地,还涉及计算网络的存储设备;
CPU设备调用GPU计算线程控制GPU设备完成相应的计算后,还包括:导出计算的计算空间数据,以及释放GPU资源;
在并行调用CPU计算线程完成相应的计算后,还包括:将CPU计算线程与GPU计算线程各自计算的计算空间数据写回该存储设备。
进一步地,该基于图形处理器的计算网络为叠前时间偏移计算网络,该计算空间数据为成像空间数据,参与计算的数据为参与计算的道数据。
为了解决上述技术问题,本发明提供了一种基于图形处理器的计算网络系统,包括管理节点、多个计算节点以及存储设备,其中:
管理节点,获取计算网络中计算节点的个数为M,根据计算空间大小为S为每个计算节点各开辟大小为S/M的内存,用于各计算节点存储本地的计算空间数据;将从存储设备读取的参与计算的数据广播到各个计算节点;
计算节点,根据本节点的图形处理器GPU设备的个数和CPU核数开辟CPU计算线程和GPU计算线程,并划分计算空间数据,具体包括:获取本节点所有CPU设备的核数共为N_CPU,GPU设备个数为N_GPU,则开辟(N_CPU-N_GPU)个CPU计算线程和N_GPU个GPU线程;根据N_CPU、N_GPU及GPU设备与CPU设备计算能力的比值N将计算空间数据按照(N_CPU-N_GPU)∶N∶N进行划分,其中,CPU设备的计算空间数据大小为:(N_CPU-N_GPU)/[(N_CPU-N_GPU)+N_GPU*N];GPU设备的计算空间数据大小为:N*N_GPU/[(N_CPU-N_GPU)+N_GPU*N];通过调用GPU计算线程与GPU设备协同完成一部分计算,通过并行调用CPU计算线程完成另一部分计算;
存储设备,至少存储参与计算的数据。
进一步地,计算网络系统为叠前时间偏移计算网络系统,计算空间数据为成像空间数据,参与计算的数据为参与计算的道数据。
进一步地,
管理节点利用消息传输接口MPI并行地将参与计算的道数据广播到计算节点;
CPU设备调用GPU计算线程初始化GPU设备,向GPU设备传递成像空间数据;在通过一个接收线程接收到道数据后,控制GPU设备用道数据对划分给GPU设备的成像空间数据进行相应部分的计算,直至对所有接收的道数据计算结束;同时并行调用CPU计算线程用接收到的道数据对划分给CPU设备的成像空间数据进行相应部分的计算,直至所有接收的道数据计算结束。
进一步地,
CPU设备调用的GPU计算线程在GPU设备中开辟两块缓冲区用于缓存道数据,并创建两个流标志;当具有第一流标志的道数据到来后向第一缓存区传输,并调用GPU计算核心用该第一缓存区的道数据对成像空间数据进行计算;当具有第二流标志的道数据到来后向第二缓存区传输,并调用GPU计算核心用该第二缓存区的道数据对成像空间数据进行计算。
进一步地,
CPU设备调用GPU计算线程控制GPU设备完成相应的计算后,还导出计算的成像空间数据,并释放GPU资源;在并行调用CPU计算线程完成相应的计算后,还将CPU计算线程与GPU计算线程各自计算的成像空间数据写回存储设备;
存储设备还存储最终计算完成的成像空间数据。
为了解决上述技术问题,本发明提供了一种基于图形处理器的计算网络中的计算节点装置,包括共同计算初始模块、CPU设备、图形处理单元GPU设备以及存储模块,其中:
共同计算初始模块,分别连接CPU设备和存储模块,根据获取的本节点的CPU核数共为N_CPU和GPU设备数为N_GPU开辟N_GPU个GPU计算线程和(N_CPU-N_GPU)个CPU计算线程,并在存储模块中根据所述N_CPU、所述N_GPU及GPU设备与CPU设备计算能力的比值N将计算空间数据按照(N_CPU-N_GPU)∶N∶N划分,CPU设备的计算空间数据大小为:(N_CPU-N_GPU)/[(N_CPU-N_GPU)+N_GPU*N];GPU设备的计算空间数据大小为:N*N_GPU/[(N_CPU-N_GPU)+N_GPU*N];将GPU计算线程、CPU计算线程和划分的计算空间数据的地址输出给CPU设备;
CPU设备,分别连接GPU设备和存储模块,根据GPU计算线程与GPU设备协同完成一部分计算;根据CPU计算线程完成对收到的数据和相应地址的计算空间数据的另一部分计算;
GPU设备,用于在CPU设备的控制下完成对收到的数据和相应的计算空间数据的一部分计算;
存储模块,至少存储初始的计算空间数据。
进一步地,该装置为叠前时间偏移计算网络中的计算节点装置,计算空间数据为成像空间数据,参与计算的数据为参与计算的道数据。
进一步地,
CPU设备调用GPU计算线程初始化GPU设备,向GPU设备传递成像空间数据;在通过一个接收线程接收到道数据后,控制GPU设备用道数据对划分给GPU设备的成像空间数据进行相应部分的计算,直至对所有接收的道数据计算结束;同时并行调用CPU计算线程用接收到的道数据对划分给CPU设备的成像空间数据进行相应部分的计算,直至所有接收的道数据计算结束。
进一步地,
CPU设备还在控制GPU设备完成相应的计算后,将计算的成像空间数据导出到存储模块中,并释放GPU资源;在完成本CPU设备相应的计算并保存到存储模块后,将从该存储模块中读取的成像空间数据上传给计算网络中的存储设备进行存储。
进一步地,
CPU设备调用的GPU计算线程在GPU设备中开辟两块缓冲区用于缓存道数据,并创建两个流标志;当具有第一流标志的道数据到来后向第一缓存区传输,并调用GPU计算核心用该第一缓存区的道数据对成像空间数据进行计算;当具有第二流标志的道数据到来后向第二缓存区传输,并调用GPU计算核心用该第二缓存区的道数据对成像空间数据进行计算。
本发明充分利用了CPU/GPU混合异构架构,通过构建基于CPU/GPU混合架构节点的集群系统,在传统的CPU集群计算的基础上,通过采用CPU/GPU协同计算以实现对GPU操作的加速,同时通过采用CPU/GPU共同计算以实现大型计算应用的最优化。此外,通过采用成像空间在CPU设备与GPU设备上的划分来实现这两类计算设备间的负载均衡,并通过采用GPU设备的双流双缓冲策略以及GPU设备与IO开销的异步调用来达到时间的相互覆盖,从而实现了一个高效的GPU集群计算方案。
附图说明
图1为本发明的基于图形处理器的计算网络系统实施例的架构示意图;
图2为图1所示的系统实施例中CPU设备与GPU设备共同参与计算的示意图;
图3为图1所示的系统实施例中CPU设备与GPU设备数据划分方式示意图;
图4为本发明的用于基于图形处理器的计算网络系统中的节点装置实施例的结构框图;
图5为本发明的用于基于图形处理器的计算网络中的方法实施例的流程图。
具体实施方式
以下结合附图和优选实施例对本发明的技术方案进行详细地阐述。下面例举的实施例仅用于说明和解释本发明,而不构成对本发明技术方案的限制。
如图1所示,是本发明的基于图形处理器的计算网络系统实施例的架构;在该系统实施例中,使用了6个计算节点(即服务器节点0~5)、1个管理节点(即服务器节点6)以及一个存储设备,每个计算节点包含两个CPU设备和两个GPU设备,计算空间大小为12GB;计算节点之间通过以太网或高IB(InfiniBand)网与千兆交换机和万兆交换机互联;其中:
管理节点,用于在系统启动后获取计算节点个数,根据计算空间大小为计算节点开辟内存;将从存储设备中读取的参与计算的数据广播给各计算节点;
计算节点,用于在系统启动后由CPU设备获取本地的CPU核数和GPU设备数,据此开辟CPU计算线程和GPU计算线程,并划分计算空间数据;其中GPU计算线程用于CPU设备与GPU设备协同完成一部分计算;CPU计算线程则用于CPU设备完成另一部分计算;
存储设备,用于存储最终计算完成的计算空间结果数据。
譬如,将上述系统实施例运用于石油行业的叠前时间偏移计算中,其中计算空间例如为叠前时间偏移计算中的成像空间,参与计算的数据例如为道数据。
管理节点获取的计算节点个数为6,根据成像空间大小为12GB为每个计算节点各开辟2GB(12/6)内存,用作各个计算节点本地的成像空间。管理节点利用消息传输接口(MPI,Message Passing Interface)进行粗粒度并行操作,将从存储设备读取的参与计算的道数据广播到各个计算节点。
每个计算节点利用多线程进行中粒度并发计算操作,其中计算线程的个数与节点上CPU的核数相同;各计算节点是按照(SPMD,Single-ProgramMultiple-Data)模式进行编程,并使用额外的一个接收线程进行道数据的接收和处理。
每一计算节点的CPU设备获知两个CPU设备的核数总共为8,GPU设备个数为2,因此两个CPU设备共需开辟6个CPU计算线程和2个GPU计算线程,如图2所示。根据CPU设备的核数N_CPU、GPU设备的个数N_GPU及GPU设备与CPU设备计算能力的比值N,将成像空间按照6(N_CPU-N_GPU)∶N∶N在CPU设备和GPU设备上进行划分,如图3所示,其中6比值的成像空间数据为两个CPU设备计算所用,即CPU设备成像空间大小为6/(6+2N)GB;N比值的成像空间数据为每一个GPU设备计算所用,即两个GPU设备空间大小为N*2/(6+2N)GB。
其中,GPU计算线程在系统启动后完成对GPU设备的初始化,并将划分给GPU设备的成像空间数据传递给GPU设备;在等待道数据到来后,将道数据传递给GPU设备中的计算核心进行相应的计算,直至对所有到来的道数据计算完毕,将GPU计算核心计算的成像空间数据导出,并释放GPU资源。
其中,CPU计算线程在等待道数据到来后将道数据传递给CPU计算核心进行相应的计算,直至所有到来的道数据计算完毕,将CPU计算核心计算的成像空间数据导出。
GPU计算线程的数据传输采用双流、双缓冲策略,即GPU计算线程首先在GPU设备中开辟两块缓冲区用于缓存道数据,并创建两个流标志;当具有第一流标志的道数据到来后向第一缓冲区传输,并调用GPU计算核心用该第一缓冲区的道数据对成像空间数据进行计算,上述操作为异步操作;当具有第二流标志的道数据到来后向第二缓冲区传输,并调用GPU计算核心用该第二缓冲区的道数据对成像空间数据进行计算;这样可以形成第一流的计算与第二流的传输在时间上相互覆盖,由此提高工作效率。
计算节点将本节点所处理的成像空间数据返回到存储设备中进行存储。
本发明针对上述系统实施例,相应地还提供了计算节点装置的实施例,其结构如图4所示,包括共同计算初始模块410、CPU设备420、GPU设备430以及存储模块440;其中:
共同计算初始模块410,分别连接CPU设备420和存储模块440,用于根据获取的本节点的CPU核数和GPU设备数开辟GPU计算线程和CPU计算线程,并在存储模块440中划分计算空间数据;将开辟的计算线程和划分的计算空间数据地址输出给CPU设备420;
CPU设备420,分别连接GPU设备420和存储模块440,用于根据GPU计算线程与GPU设备协同完成一部分计算;根据CPU计算线程完成对收到的道数据和相应地址的成像空间数据的另一部分计算;
GPU设备430,用于在CPU设备420的控制下完成对收到的数据和相应的计算空间数据的一部分计算;
存储模块440,用于存储初始的计算空间数据,并存储由CPU设备420和GPU设备430分别计算的计算空间数据。
CPU设备420还在控制GPU设备430完成相应的计算后,将计算的成像空间数据导出到存储模块440中,并释放GPU资源;在本CPU设备完成相应的计算并保存到存储模块440后,将从存储模块440中读取的计算空间数据上传给计算网络中的存储设备进行存储。
在上述装置实施例中,要求GPU设备支持通用计算或统一计算设备架构(CUDA,Compute Unified Device Architecture)/开放式计算语言(OpenCL)技术。
本发明针对上述系统实施例,相应地还提供了基于图形处理器的计算网络中的方法实施例,其流程如图5所示,包括:
510:管理节点获取计算网络中计算节点的个数,根据计算空间大小开辟每一计算节点的内存;
例如将上述实施例运用于石油行业的叠前时间偏移计算中,计算空间大小譬如为叠前时间偏移计算中的成像空间大小。管理节点获取的计算节点个数为6,每一计算节点上具有两个CPU设备和两个GPU设备;根据成像空间大小为12GB,为每个计算节点各开辟2GB(12/6)内存,用作各个计算节点本地的成像空间。
520:计算节点根据本节点的GPU设备个数和CPU核数开辟CPU计算线程和GPU计算线程,并划分计算空间数据;
例如,用于叠前时间偏移计算的计算节点根据CPU与GPU的计算能力,如在相同成像空间下CPU与GPU处理相同道数据的时间比例为N∶1,根据该N的数值进行CPU设备和GPU设备对成像空间数据的划分。假设CPU设备的核数总共为N_CPU,GPU设备的个数为N_GPU,则分别属于CPU设备与GPU设备成像空间数据的大小比值为:(N_CPU-N_GPU):N_GPU*N;单个CPU线程的成像空间大小与单个GPU设备的成像空间大小比值为1∶N;图3则描述了CPU设备与GPU设备对于成像空间数据的划分方式。
计算节点的两个CPU设备的核数总共为8,GPU设备个数为2,因此CPU设备共需开辟6个CPU计算线程和2个GPU计算线程。根据CPU设备的核数8、GPU设备的个数2及GPU设备与CPU设备计算能力的比值N,将成像空间数据按照6∶N∶N进行划分,其中6比值的成像空间数据为两个CPU设备计算所用,即CPU设备成像空间大小为6/(6+2N)GB;N比值的成像空间数据为每一个GPU设备计算所用,即两个GPU设备空间大小为N*2/(6+2N)GB。
530:CPU设备调用GPU计算线程初始化GPU设备,向GPU设备传递计算空间数据;
GPU设备的初始化、IO传输以及GPU内核的资源释放等等,都由GPU计算线程通过调用GPU计算核心来执行,而不需调用CPU计算核心。
531:CPU设备调用CPU计算线程等待参与计算的数据到来后进行相应部分的计算,直至所有数据计算结束;
CPU线程调用CPU计算核心执行该部分计算。
540:CPU设备通过接收线程接收到数据后,控制GPU设备进行相应部分的计算,直至所有数据计算结束;
GPU设备的IO数据传输和内核调用均采用异步方式进行,其中IO数据传输需要在GPU设备上开辟两个缓冲区,对应于IO数据传输的两个流分别进行操作。这种IO流操作与GPU内核计算的时间可以相互覆盖。
550:CPU设备将GPU设备计算的计算空间数据导出,并释放GPU资源;
560:CPU设备将CPU计算线程与GPU计算线程的数据写回存储设备,并结束计算线程的操作。
由上述步骤530、540~550构成了本发明的CPU设备与GPU设备协同计算的流程;该协同计算流程与步骤531一起则形成了本发明的CPU设备与GPU设备共同计算的流程。CPU计算线程与GPU计算线程在各自的计算核心的调用上形成并发处理,由CPU和GPU共同承担本节点上的总体成像空间数据的计算。
上述方法实施例提出了CPU设备与GPU设备协同计算并结合二者共同计算的新模式。
其中,协同计算是指,对于高并行度、计算密集型任务交给GPU设备进行高速计算,因此要求GPU设备支持通用计算或CUDA/OpenCL技术;CPU设备在处理一些高复杂逻辑任务的同时,控制GPU进行高速计算的工作。
共同计算是指,CPU设备除了控制GPU设备和复杂逻辑任务之外,还参与与GPU设备目的一致的密集型计算任务。
本发明的上述系统、方法实施例所涉及的集群系统为CPU/GPU混合异构架构系统,其中每个计算节点都包含一或多个CPU设备或GPU设备。
在上述系统、方法实施例中,计算空间的划分方式可根据计算节点个数进行自动调优,即当计算节点个数发生变化时,重新对计算空间进行优化划分。每一计算节点内的计算空间数据划分方式可根据CPU核数与GPU设备个数进行自动调优,亦即当计算节点的CPU核数和/或GPU设备个数发生变化时,重新对计算空间数据进行优化划分。
本发明通过构建基于CPU/GPU混合架构节点的集群系统,通过采用CPU/GPU协同计算以实现对GPU操作的加速,同时通过采用CPU/GPU共同计算以实现对于叠前时间偏移这类大型计算的最优化。此外,通过采用成像空间在CPU设备与GPU设备上的划分来实现这两类计算设备间的负载均衡,并通过采用GPU设备的双流双缓冲策略以及GPU设备与IO开销的异步调用来达到时间的相互覆盖,从而给出一个高效的GPU集群计算方案。
当然,本发明例举的上述系统、装置及方法不仅适用于叠前时间偏移计算,而且还适用于其它一些基于CPU/GPU混合架构实现的细粒度、高密集度和高并发度的算法领域中,譬如金融分析中的Black Scholes方法、MonteCarlo方法;生命科学中的三维电镜重构方法;生物医疗中的CT设备内的运算方法等。
以上说明仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权力要求书的保护范围为准。
Claims (16)
1.一种基于图形处理器的计算网络中的方法,涉及所述计算网络中的管理节点和多个计算节点,该方法包括:
管理节点获取计算网络中计算节点的个数为M,根据计算空间大小为S为每个计算节点各开辟大小为S/M的内存,用于各计算节点存储本地的计算空间数据;
计算节点根据本节点的图形处理器GPU设备的个数和CPU核数开辟CPU计算线程和GPU计算线程,并划分计算空间数据,具体包括:
获取本节点所有CPU设备的核数共为N_CPU,GPU设备个数为N_GPU,则开辟(N_CPU-N_GPU)个CPU计算线程和N_GPU个GPU线程;
根据所述N_CPU、所述N_GPU及GPU设备与CPU设备计算能力的比值N将所述计算空间数据按照(N_CPU-N_GPU):N:N进行划分,其中,所述CPU设备的计算空间数据大小为:(N_CPU-N_GPU)/[(N_CPU-N_GPU)+N_GPU*N];所述GPU设备的计算空间数据大小为:N*N_GPU/[(N_CPU-N_GPU)+N_GPU*N];
所述管理节点将参与计算的数据广播到各个计算节点;CPU设备调用GPU计算线程与所述GPU设备协同完成一部分计算,同时并行调用CPU计算线程完成另一部分计算。
2.按照权利要求1所述的方法,其特征在于,所述管理节点将参与计算的数据广播到各个计算节点,具体包括:
所述管理节点利用消息传输接口并行地将所述参与计算的数据广播到所述计算节点。
3.按照权利要求2所述的方法,其特征在于,所述CPU设备调用GPU计算线程与所述GPU设备协同完成一部分计算,同时并行调用CPU计算线程完成另一部分计算,具体包括:
所述CPU设备调用GPU计算线程,初始化所述GPU设备,向所述GPU设备传递所述计算空间数据;在通过一个接收线程接收到数据后,控制所述GPU设备将所述数据对于划分给所述GPU设备的计算空间数据进行相应部分的计算,直至对所有接收的数据计算结束;同时并行调用所述CPU计算线程用接收到的数据对于划分给所述CPU设备的计算空间数据进行相应部分的计算,直至所有接收的数据计算结束。
4.按照权利要求3所述的方法,其特征在于,
所述GPU计算线程在所述GPU设备中开辟两块缓冲区用于缓存数据,并创建两个流标志;当具有第一流标志的数据到来后向第一缓存区传输,并调用GPU计算核心用该第一缓存区的数据对于计算空间数据进行计算;当具有第二流标志的数据到来后向第二缓存区传输,并调用GPU计算核心用该第二缓存区的数据对计算空间数据进行计算。
5.按照权利要求1所述的方法,其特征在于,还涉及计算网络的存储设备;
所述CPU设备调用所述GPU计算线程控制所述GPU设备完成相应的计算后,还包括:导出计算的计算空间数据,以及释放GPU资源;
在并行调用所述CPU计算线程完成相应的计算后,还包括:将所述CPU计算线程与所述GPU计算线程各自计算的计算空间数据写回该存储设备。
6.按照权利要求1至5任一项所述的方法,其特征在于,所述基于图形处理器的计算网络为叠前时间偏移计算网络,所述计算空间数据为成像空间数据,所述参与计算的数据为参与计算的道数据。
7.一种基于图形处理器的计算网络系统,包括管理节点、多个计算节点以及存储设备,其中:
管理节点,获取计算网络中计算节点的个数为M,根据计算空间大小为S为每个计算节点各开辟大小为S/M的内存,用于各计算节点存储本地的计算空间数据,将从存储设备读取的参与计算的数据广播到各个计算节点;
计算节点,根据本节点的图形处理器GPU设备的个数为N_GPU和CPU核数共为N_CPU开辟(N_CPU-N_GPU)个CPU计算线程和N_GPU个GPU计算线程,根据所述N_CPU、所述N_GPU及GPU设备与CPU设备计算能力的比值N将所述计算空间数据按照(N_CPU-N_GPU):N:N进行划分,所述CPU设备的计算空间数据大小为:(N_CPU-N_GPU)/[(N_CPU-N_GPU)+N_GPU*N];所述GPU设备计算空间数据大小为:N*N_GPU/[(N_CPU-N_GPU)+N_GPU*N];通过调用GPU计算线程与所述GPU设备协同完成一部分计算,通过并行调用CPU计算线程完成另一部分计算;
存储设备,至少存储所述参与计算的数据。
8.按照权利要求7所述的系统,其特征在于,所述计算网络系统为叠前时间偏移计算网络系统,所述计算空间数据为成像空间数据,所述参与计算的数据为参与计算的道数据。
9.按照权利要求8所述的系统,其特征在于,
所述管理节点利用消息传输接口MPI并行地将所述参与计算的道数据广播到所述计算节点;
所述CPU设备调用GPU计算线程初始化所述GPU设备,向所述GPU设备传递所述成像空间数据;在通过一个接收线程接收到道数据后,控制所述GPU设备用所述道数据对划分给所述GPU设备的成像空间数据进行相应部分的计算,直至对所有接收的道数据计算结束;同时并行调用所述CPU计算线程用接收到的道数据对划分给所述CPU设备的成像空间数据进行相应部分的计算,直至所有接收的道数据计算结束。
10.按照权利要求9所述的系统,其特征在于,
所述CPU设备调用的所述GPU计算线程在所述GPU设备中开辟两块缓冲区用于缓存道数据,并创建两个流标志;当具有第一流标志的道数据到来后向第一缓存区传输,并调用GPU计算核心用该第一缓存区的道数据对成像空间数据进行计算;当具有第二流标志的道数据到来后向第二缓存区传输,并调用GPU计算核心用该第二缓存区的道数据对成像空间数据进行计算。
11.按照权利要求8至10任一项所述的系统,其特征在于,
所述CPU设备调用所述GPU计算线程控制所述GPU设备完成相应的计算后,还导出计算的成像空间数据,并释放GPU资源;在并行调用所述CPU计算线程完成相应的计算后,还将所述CPU计算线程与所述GPU计算线程各自计算的成像空间数据写回所述存储设备;
所述存储设备还存储最终计算完成的成像空间数据。
12.一种基于图形处理器的计算网络中的计算节点装置,其特征在于,包括共同计算初始模块、CPU设备、图形处理单元GPU设备以及存储模块,其中:
共同计算初始模块,分别连接CPU设备和存储模块,根据获取的本节点的CPU核数共为N_CPU和GPU设备数为N_GPU开辟N_GPU个GPU计算线程和(N_CPU-N_GPU)个CPU计算线程,并在存储模块中根据所述N_CPU、所述N_GPU及GPU设备与CPU设备计算能力的比值N将计算空间数据按照(N_CPU-N_GPU):N:N划分,所述CPU设备的计算空间数据大小为:(N_CPU-N_GPU)/[(N_CPU-N_GPU)+N_GPU*N];所述GPU设备的计算空间数据大小为:N*N_GPU/[(N_CPU-N_GPU)+N_GPU*N];将所述GPU计算线程、所述CPU计算线程和划分的所述计算空间数据的地址输出给CPU设备;
CPU设备,分别连接GPU设备和存储模块,根据所述GPU计算线程与GPU设备协同完成一部分计算;根据所述CPU计算线程完成对收到的数据和相应地址的计算空间数据的另一部分计算;
GPU设备,在CPU设备的控制下完成对收到的数据和相应的计算空间数据的所述一部分计算;
存储模块,至少存储初始的计算空间数据。
13.按照权利要求12所述的装置,其特征在于,该装置为叠前时间偏移计算网络中的计算节点装置,所述计算空间数据为成像空间数据,参与计算的数据为参与计算的道数据。
14.按照权利要求13所述的装置,其特征在于,
所述CPU设备调用GPU计算线程初始化所述GPU设备,向所述GPU设备传递所述成像空间数据;在通过一个接收线程接收到道数据后,控制所述GPU设备用所述道数据对划分给所述GPU设备的成像空间数据进行相应部分的计算,直至对所有接收的道数据计算结束;同时并行调用所述CPU计算线程用接收到的道数据对划分给所述CPU设备的成像空间数据进行相应部分的计算,直至所有接收的道数据计算结束。
15.按照权利要求14所述的装置,其特征在于,
所述CPU设备还在控制GPU设备完成相应的计算后,将计算的成像空间数据导出到存储模块中,并释放GPU资源;在完成本CPU设备相应的计算并保存到所述存储模块后,将从所述存储模块中读取的成像空间数据上传给计算网络中的存储设备进行存储。
16.按照权利要求13至15任一项所述的装置,其特征在于,
所述CPU设备调用的所述GPU计算线程在所述GPU设备中开辟两块缓冲区用于缓存道数据,并创建两个流标志;当具有第一流标志的道数据到来后向第一缓存区传输,并调用GPU计算核心用该第一缓存区的道数据对成像空间数据进行计算;当具有第二流标志的道数据到来后向第二缓存区传输,并调用GPU计算核心用该第二缓存区的道数据对成像空间数据进行计算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110049546 CN102135949B (zh) | 2011-03-01 | 2011-03-01 | 基于图形处理器的计算网络系统、方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110049546 CN102135949B (zh) | 2011-03-01 | 2011-03-01 | 基于图形处理器的计算网络系统、方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102135949A CN102135949A (zh) | 2011-07-27 |
CN102135949B true CN102135949B (zh) | 2013-06-19 |
Family
ID=44295737
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110049546 Active CN102135949B (zh) | 2011-03-01 | 2011-03-01 | 基于图形处理器的计算网络系统、方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102135949B (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102214086A (zh) * | 2011-06-20 | 2011-10-12 | 复旦大学 | 基于多核处理器的通用并行加速算法 |
CN103428228A (zh) * | 2012-05-14 | 2013-12-04 | 辉达公司 | 通过无线技术进行协同计算的图形显示卡 |
US9489475B2 (en) * | 2012-05-31 | 2016-11-08 | Saudi Arabian Oil Company | Reservoir simulation with scalable grid computing |
CN103713314B (zh) * | 2012-09-28 | 2017-05-03 | 中国石油化工股份有限公司 | 一种叠前时间偏移并行处理方法 |
CN103049421B (zh) * | 2012-12-11 | 2019-08-27 | 百度在线网络技术(北京)有限公司 | 一种cpu与协处理器间的数据传输方法和装置 |
CN103425234B (zh) * | 2013-07-30 | 2015-12-02 | 海信集团有限公司 | 动态调节图像处理性能的方法及显示终端 |
CN103617085A (zh) * | 2013-11-19 | 2014-03-05 | 浪潮电子信息产业股份有限公司 | 一种cpu+gpu协同计算并行框架 |
CN103617088B (zh) * | 2013-11-29 | 2018-07-24 | 深圳中微电科技有限公司 | 在不同类型线程中分配内核资源的方法、装置及其处理器 |
CN103684754B (zh) * | 2013-12-03 | 2016-11-23 | 中国电子科技集团公司第三十研究所 | 一种基于gpu集群的wpa共享密钥破解系统 |
CN104102546B (zh) * | 2014-07-23 | 2018-02-02 | 浪潮(北京)电子信息产业有限公司 | 一种实现cpu和gpu负载均衡的方法及系统 |
CN105897653A (zh) * | 2014-11-28 | 2016-08-24 | 韩成阳 | 一种高性能移动设备架构 |
CN106846236A (zh) * | 2016-12-26 | 2017-06-13 | 中国科学院计算技术研究所 | 一种可扩展的分布式gpu加速方法及装置 |
CN106951190B (zh) * | 2017-03-21 | 2019-11-26 | 联想(北京)有限公司 | 数据存储及访问方法、节点和服务器集群 |
CN107295110B (zh) * | 2017-08-16 | 2020-08-04 | 网宿科技股份有限公司 | 计算任务的处理方法、边缘节点、业务服务器及系统 |
CN107766148B (zh) * | 2017-08-31 | 2021-02-19 | 北京百度网讯科技有限公司 | 一种异构集群及任务处理方法和装置 |
CN111124920A (zh) * | 2019-12-24 | 2020-05-08 | 北京金山安全软件有限公司 | 设备性能测试方法、装置及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1715405A1 (en) * | 2005-04-19 | 2006-10-25 | STMicroelectronics S.r.l. | Processing method, system and computer program product for dynamic allocation of processing tasks in a multiprocessor cluster platforms with power adjustment |
CN101350098A (zh) * | 2008-08-19 | 2009-01-21 | 黄建军 | 一种图像处理的方法、系统及设备 |
CN101398753A (zh) * | 2007-09-27 | 2009-04-01 | 辉达公司 | 用于执行扫描运算的系统、方法及计算机程序产品 |
CN101706741A (zh) * | 2009-12-11 | 2010-05-12 | 中国人民解放军国防科学技术大学 | 一种基于负载平衡的cpu和gpu两级动态任务划分方法 |
-
2011
- 2011-03-01 CN CN 201110049546 patent/CN102135949B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1715405A1 (en) * | 2005-04-19 | 2006-10-25 | STMicroelectronics S.r.l. | Processing method, system and computer program product for dynamic allocation of processing tasks in a multiprocessor cluster platforms with power adjustment |
CN101398753A (zh) * | 2007-09-27 | 2009-04-01 | 辉达公司 | 用于执行扫描运算的系统、方法及计算机程序产品 |
CN101350098A (zh) * | 2008-08-19 | 2009-01-21 | 黄建军 | 一种图像处理的方法、系统及设备 |
CN101706741A (zh) * | 2009-12-11 | 2010-05-12 | 中国人民解放军国防科学技术大学 | 一种基于负载平衡的cpu和gpu两级动态任务划分方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102135949A (zh) | 2011-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102135949B (zh) | 基于图形处理器的计算网络系统、方法及装置 | |
CN110619595B (zh) | 一种基于多fpga加速器互联的图计算优化方法 | |
US20220076110A1 (en) | Efficient Neural Network Accelerator Dataflows | |
Ma et al. | Garaph: Efficient {GPU-accelerated} Graph Processing on a Single Machine with Balanced Replication | |
CN110704360B (zh) | 一种基于异构fpga数据流的图计算优化方法 | |
CN103562866B (zh) | 用于通过使用由可分割引擎实例化的虚拟核来支持代码块执行的寄存器文件段 | |
CN111143174B (zh) | 在共享功率/热约束下操作的硬件的最佳操作点估计器 | |
US9286067B2 (en) | Method and apparatus for a hierarchical synchronization barrier in a multi-node system | |
Kim et al. | Multi-GPU system design with memory networks | |
CN102117260A (zh) | 在cpu和gpu之间共享资源 | |
CN111630505A (zh) | 深度学习加速器系统及其方法 | |
CN104375882A (zh) | 匹配于高性能计算机结构的多级嵌套数据驱动计算方法 | |
CN102306371A (zh) | 一种分层并行的模块化序列图像实时处理装置 | |
Katevenis et al. | Next generation of Exascale-class systems: ExaNeSt project and the status of its interconnect and storage development | |
US11645225B2 (en) | Partitionable networked computer | |
Wang et al. | Wavelet: Efficient DNN training with tick-tock scheduling | |
CN116775518A (zh) | 用于高效访问多维数据结构和/或其他大型数据块的方法和装置 | |
CN107562549A (zh) | 基于片上总线和共享内存的异构众核asip架构 | |
CN114529444B (zh) | 图形处理模块、图形处理器以及图形处理方法 | |
Nair et al. | Fpga acceleration of gcn in light of the symmetry of graph adjacency matrix | |
Ghose et al. | Foreword (special issue of cluster computing on divisible load scheduling) | |
Wei et al. | Performance issues of a distributed frame buffer on a multicomputer | |
US20230289190A1 (en) | Programmatically controlled data multicasting across multiple compute engines | |
Qin et al. | Gpu-based in situ visualization for large-scale discrete element simulations | |
US20150242323A1 (en) | Source-to-source compiler and run-time library to transparently accelerate stack or queue-based irregular applications on many-core architectures |
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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20201117 Address after: 215100 No. 1 Guanpu Road, Guoxiang Street, Wuzhong Economic Development Zone, Suzhou City, Jiangsu Province Patentee after: SUZHOU LANGCHAO INTELLIGENT TECHNOLOGY Co.,Ltd. Address before: 100085 Beijing, Haidian District on the road to information on the ground floor, building 2-1, No. 1, C Patentee before: Inspur (Beijing) Electronic Information Industry Co.,Ltd. |