CN104679664A - 一种集群系统中的通信方法和装置 - Google Patents
一种集群系统中的通信方法和装置 Download PDFInfo
- Publication number
- CN104679664A CN104679664A CN201410834109.5A CN201410834109A CN104679664A CN 104679664 A CN104679664 A CN 104679664A CN 201410834109 A CN201410834109 A CN 201410834109A CN 104679664 A CN104679664 A CN 104679664A
- Authority
- CN
- China
- Prior art keywords
- equipment
- memory
- main frame
- fixed memory
- internal memory
- 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.)
- Pending
Links
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种集群系统中的通信方法和装置,该方法应用于包括主机和设备的系统中,包括以下步骤:在主机的内存中为设备分配固定内存;通过固定内存实现主机与设备之间的通信。本发明通过使用固定内存传输控制主机与设备之间的数据传输,固定内存始终存在于物理内存中,能够通过DMA加速与设备端进行通信,不会被分配到低速的虚拟内存中,从而省掉了主机和设备之间进行数据拷贝的工作,实现主机和设备之间的最高带宽,消除了硬件传输对集群系统的瓶颈影响,减少集群系统的计算时间,提升集群系统的整体计算性能。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种集群系统中的通信方法和装置。
背景技术
随着计算机技术的迅速发展,高性能集群的优势越来越明显,而GPU集群的作用也越来越突出。与CPU集群相比,GPU集群能够在使用较少操作系统镜像的情况下正常工作,降低管理复杂性,因而在高性能计算应用中非常有吸引力。
现有技术中,集群系统的通信流程包括:在设备上分配内存,从主机向设备复制数据;在设备上执行计算,得到计算结果;将计算结果从设备复制到主机;释放在设备上分配的内存。其中,从主机向设备复制数据,以及将计算结果从设备复制到主机是必需的步骤,也是传输数据最慢的部分,使得集群系统的计算时间较长,导致集群系统的整体计算性能较差。
发明内容
本发明提供了一种集群系统中的通信方法和装置,以解决集群系统的整体计算性能较差的缺陷。
本发明提供了一种集群系统中的通信方法,应用于包括主机和设备的系统中,所述方法包括以下步骤:
在所述主机的内存中为所述设备分配固定内存;
通过所述固定内存实现所述主机与所述设备之间的通信。
可选地,在所述主机的内存中为所述设备分配固定内存,具体为:
从所述主机的内存中选择固定内存,将所述固定内存直接映射到所述设备的内存空间。
可选地,通过所述固定内存实现所述主机与所述设备之间的通信,具体为:
所述设备通过对所述固定内存进行写操作,向所述主机发送数据;
和/或,
所述设备通过对所述固定内存进行读操作,获取来自所述主机的数据。
可选地,通过所述固定内存实现所述主机与所述设备之间的通信,具体为:
使用所述固定内存,在操作队列中进行异步内存复制。
可选地,在所述主机的内存中为所述设备分配固定内存之后,还包括:
释放所述固定内存。
本发明还提供了一种集群系统中的通信装置,应用于包括主机和设备的系统中,所述装置包括:
分配模块,用于在所述主机的内存中为所述设备分配固定内存;
通信模块,用于通过所述分配模块分配的所述固定内存实现所述主机与所述设备之间的通信。
可选地,所述分配模块,具体用于从所述主机的内存中选择固定内存,将所述固定内存直接映射到所述设备的内存空间。
可选地,所述通信模块,具体用于通过对所述固定内存进行读和/或写操作,实现所述主机与所述设备之间的数据收发。
可选地,所述通信模块,具体用于使用所述固定内存,在操作队列中进行异步内存复制。
可选地,所述的装置,还包括:
释放模块,用于释放所述分配模块分配的所述固定内存。
本发明通过使用固定内存传输控制主机与设备之间的数据传输,固定内存始终存在于物理内存中,能够通过DMA加速与设备端进行通信,不会被分配到低速的虚拟内存中,从而省掉了主机和设备之间进行数据拷贝的工作,实现主机和设备之间的最高带宽,消除了硬件传输对集群系统的瓶颈影响,减少集群系统的计算时间,提升集群系统的整体计算性能。
附图说明
图1为本发明实施例中的一种集群系统中的通信方法流程图;
图2为本发明实施例中的一种集群系统中的通信装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,如果不冲突,本发明实施例以及实施例中的各个特征可以相互结合,均在本发明的保护范围之内。另外,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本发明实施例提供了一种集群系统中的通信方法,应用于包括主机和设备的系统中,其中,主机可以是CPU及系统的内存,设备可以是GPU及GPU本身的显示内存。上述通信方法如图1所示,包括以下步骤:
步骤101,在主机的内存中为设备分配固定内存。
具体地,从主机的内存中选择固定内存,将固定内存直接映射到设备的内存空间。
其中,固定内存会始终驻留在物理内存中,不会被主机的操作系统分页,也不会被主机的操作系统交换到磁盘上,也不会被破坏或重新定位。
本实施例中,通过cudaHostAlloc()函数来分配固定内存,该固定内存作为cudaMemcpy()函数调用中的源内存或者目标内存使用,且仅能被分配该固定内存的CPU线程访问。
步骤102,通过固定内存实现主机与设备之间的通信。
具体地,设备可以通过对固定内存进行写操作,向主机发送数据;也可以通过对固定内存进行读操作,获取来自主机的数据。
本实施例中,设备可以在无需主机介入的条件下,根据固定内存的物理地址,通过DMA(Direct Memory Access,直接内存访问)技术在主机与设备之间复制数据。
此外,还可以使用固定内存,在操作队列中进行异步内存复制。
本实施例中,可以调用cudaMemcpyAsync()函数,在操作队列中放置内存复制请求,以实现异步内存复制。其中,cudaMemcpyAsync()函数是一个非阻断的cudaMemcpy()标准,传递给cudaMemcpyAsync()函数的主机内存指针为固定内存。当通过cudaMemcpyAsync()执行内存复制请求,则立即返回到主控制线程。
为调用cudaMemcpyAsync()函数,还需要为内核和内存复制分别编写多个数据流:
cudaStreamCreate(&mystream1);
cudaStreamCreate(&mystream2);
cudaMemcpyAsync(deviceArray,hostArray,size,cudaMemcpyHostToDevice,mystream1);
kernel<<>>(otherDataArray);
步骤103,释放固定内存。
本实施例中,通过cudaFreeHost()函数释放固定内存。
本发明实施例通过使用固定内存传输控制主机与设备之间的数据传输,固定内存始终存在于物理内存中,能够通过DMA加速与设备端进行通信,不会被分配到低速的虚拟内存中,从而省掉了主机和设备之间进行数据拷贝的工作,实现主机和设备之间的最高带宽,消除了硬件传输对集群系统的瓶颈影响,减少集群系统的计算时间,提升集群系统的整体计算性能。
此外,本发明实施例还通过多个数据流实现异步内存复制和计算,内存复制和内核分别在不同的数据流中,能够启动多个内核实例,对到达该设备的每一个数据块进行操作,从而屏蔽主机和设备之间的传输时间,达到优化集群系统性能的作用。
基于上述集群系统中的通信方法,本发明实施例还提供了一种集群系统中的通信装置,应用于包括主机和设备的系统中,上述装置如图2所示,包括:
分配模块210,用于在主机的内存中为设备分配固定内存。
具体地,上述分配模块210,具体用于从主机的内存中选择固定内存,将该固定内存直接映射到设备的内存空间。
通信模块220,用于通过分配模块210分配的固定内存实现主机与设备之间的通信。
具体地,上述通信模块220,具体用于通过对固定内存进行读和/或写操作,实现主机与设备之间的数据收发。
本实施例中,上述通信模块220,具体用于使用固定内存,在操作队列中进行异步内存复制。
释放模块230,用于释放分配模块210分配的固定内存。
本发明实施例通过使用固定内存传输控制主机与设备之间的数据传输,固定内存始终存在于物理内存中,能够通过DMA加速与设备端进行通信,不会被分配到低速的虚拟内存中,从而省掉了主机和设备之间进行数据拷贝的工作,实现主机和设备之间的最高带宽,消除了硬件传输对集群系统的瓶颈影响,减少集群系统的计算时间,提升集群系统的整体计算性能。
此外,本发明实施例还通过多个数据流实现异步内存复制和计算,内存复制和内核分别在不同的数据流中,能够启动多个内核实例,对到达该设备的每一个数据块进行操作,从而屏蔽主机和设备之间的传输时间,达到优化集群系统性能的作用。
结合本文中所公开的实施例描述的方法中的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种集群系统中的通信方法,其特征在于,应用于包括主机和设备的系统中,所述方法包括以下步骤:
在所述主机的内存中为所述设备分配固定内存;
通过所述固定内存实现所述主机与所述设备之间的通信。
2.如权利要求1所述的方法,其特征在于,在所述主机的内存中为所述设备分配固定内存,具体为:
从所述主机的内存中选择固定内存,将所述固定内存直接映射到所述设备的内存空间。
3.如权利要求1所述的方法,其特征在于,通过所述固定内存实现所述主机与所述设备之间的通信,具体为:
所述设备通过对所述固定内存进行写操作,向所述主机发送数据;
和/或,
所述设备通过对所述固定内存进行读操作,获取来自所述主机的数据。
4.如权利要求1所述的方法,其特征在于,通过所述固定内存实现所述主机与所述设备之间的通信,具体为:
使用所述固定内存,在操作队列中进行异步内存复制。
5.如权利要求1所述的方法,其特征在于,在所述主机的内存中为所述设备分配固定内存之后,还包括:
释放所述固定内存。
6.一种集群系统中的通信装置,其特征在于,应用于包括主机和设备的系统中,所述装置包括:
分配模块,用于在所述主机的内存中为所述设备分配固定内存;
通信模块,用于通过所述分配模块分配的所述固定内存实现所述主机与所述设备之间的通信。
7.如权利要求6所述的装置,其特征在于,
所述分配模块,具体用于从所述主机的内存中选择固定内存,将所述固定内存直接映射到所述设备的内存空间。
8.如权利要求6所述的装置,其特征在于,
所述通信模块,具体用于通过对所述固定内存进行读和/或写操作,实现所述主机与所述设备之间的数据收发。
9.如权利要求6所述的装置,其特征在于,
所述通信模块,具体用于使用所述固定内存,在操作队列中进行异步内存复制。
10.如权利要求6所述的装置,其特征在于,还包括:
释放模块,用于释放所述分配模块分配的所述固定内存。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410834109.5A CN104679664A (zh) | 2014-12-26 | 2014-12-26 | 一种集群系统中的通信方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410834109.5A CN104679664A (zh) | 2014-12-26 | 2014-12-26 | 一种集群系统中的通信方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104679664A true CN104679664A (zh) | 2015-06-03 |
Family
ID=53314743
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410834109.5A Pending CN104679664A (zh) | 2014-12-26 | 2014-12-26 | 一种集群系统中的通信方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104679664A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110737608A (zh) * | 2018-07-03 | 2020-01-31 | 阿里巴巴集团控股有限公司 | 一种数据操作方法、装置及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102708088A (zh) * | 2012-05-08 | 2012-10-03 | 北京理工大学 | 面向海量数据高性能计算的cpu/gpu协同处理方法 |
US20130007406A1 (en) * | 2011-07-01 | 2013-01-03 | Gad Sheaffer | Dynamic pinning of virtual pages shared between different type processors of a heterogeneous computing platform |
CN103530224A (zh) * | 2013-06-26 | 2014-01-22 | 郑州大学 | 一种基于GPU的Harris角点检测软件系统 |
-
2014
- 2014-12-26 CN CN201410834109.5A patent/CN104679664A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130007406A1 (en) * | 2011-07-01 | 2013-01-03 | Gad Sheaffer | Dynamic pinning of virtual pages shared between different type processors of a heterogeneous computing platform |
CN102708088A (zh) * | 2012-05-08 | 2012-10-03 | 北京理工大学 | 面向海量数据高性能计算的cpu/gpu协同处理方法 |
CN103530224A (zh) * | 2013-06-26 | 2014-01-22 | 郑州大学 | 一种基于GPU的Harris角点检测软件系统 |
Non-Patent Citations (1)
Title |
---|
李晓阳: "GPU加速的运动目标检测与分割", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110737608A (zh) * | 2018-07-03 | 2020-01-31 | 阿里巴巴集团控股有限公司 | 一种数据操作方法、装置及系统 |
CN110737608B (zh) * | 2018-07-03 | 2024-03-15 | 阿里巴巴集团控股有限公司 | 一种数据操作方法、装置及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10216419B2 (en) | Direct interface between graphics processing unit and data storage unit | |
US9342857B2 (en) | Techniques for locally modifying draw calls | |
US9547535B1 (en) | Method and system for providing shared memory access to graphics processing unit processes | |
US10877757B2 (en) | Binding constants at runtime for improved resource utilization | |
US10275275B2 (en) | Managing copy operations in complex processor topologies | |
US9626216B2 (en) | Graphics processing unit sharing between many applications | |
US7725620B2 (en) | Handling DMA requests in a virtual memory environment | |
US20130185728A1 (en) | Scheduling and execution of compute tasks | |
US10180916B2 (en) | Managing copy operations in complex processor topologies | |
EP3465450B1 (en) | Improving throughput in openfabrics environments | |
US20130086285A1 (en) | Sharing iommu mappings across devices in a dma group | |
CN104636185A (zh) | 业务上下文管理方法、物理主机、pcie设备及迁移管理设备 | |
CN102291298B (zh) | 一种高效的面向长消息的计算机网络通信方法 | |
JP2020503609A (ja) | マルチオペレーティングシステム用のメモリアクセス方法、装置及び電子設備 | |
JP2019185764A (ja) | Ndpサーバー―データセンターのストレージサーバーベースのデータ中心のコンピューティングアーキテクチャ― | |
CN117806833A (zh) | 一种数据处理系统、方法及介质 | |
CN111831404A (zh) | 用于dram控制器的高性能内联ecc架构 | |
US10255209B2 (en) | Tracking statistics corresponding to data access in a computer system | |
CN104679664A (zh) | 一种集群系统中的通信方法和装置 | |
US9588917B2 (en) | Tracking statistics corresponding to data access in a computer system | |
US20220335109A1 (en) | On-demand paging support for confidential computing | |
US11960410B2 (en) | Unified kernel virtual address space for heterogeneous computing | |
US11061571B1 (en) | Techniques for efficiently organizing and accessing compressible data | |
US20170199701A1 (en) | Enhanced message control banks | |
US20240069736A1 (en) | Self-synchronizing remote memory operations in a multiprocessor system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150603 |