CN107102957A - 一种基于gpu与nic之间的内存高速直接交换的方法及系统 - Google Patents

一种基于gpu与nic之间的内存高速直接交换的方法及系统 Download PDF

Info

Publication number
CN107102957A
CN107102957A CN201610095729.0A CN201610095729A CN107102957A CN 107102957 A CN107102957 A CN 107102957A CN 201610095729 A CN201610095729 A CN 201610095729A CN 107102957 A CN107102957 A CN 107102957A
Authority
CN
China
Prior art keywords
gpu
memory
cpu
memory block
network interface
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
Application number
CN201610095729.0A
Other languages
English (en)
Inventor
秦明
尹博
刘国文
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Know Dome Technology Co Ltd
Original Assignee
Shenzhen Know Dome Technology Co Ltd
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 Shenzhen Know Dome Technology Co Ltd filed Critical Shenzhen Know Dome Technology Co Ltd
Priority to CN201610095729.0A priority Critical patent/CN107102957A/zh
Publication of CN107102957A publication Critical patent/CN107102957A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1063Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently virtually addressed
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • 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/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Multi Processors (AREA)

Abstract

本发明公开了一种基于GPU与NIC之间的内存高速直接交换的方法和系统,所述对系统包括CPU、GPU和NIC,还包括:GPU存储区分配模块,用于CPU应用程序在GPU内存中分配一个或多个存储区并将分配的内存块的参数返回给CPU;信息传递模块,用于CPU将内存块参数传递给内核网卡驱动,网卡驱动程序将获得的GPU内存块信息保存;数据直传模块,用于网卡收到网络数据后,网卡的DMA控制器访问获得的内存块参数,然后将数据直接发送到GPU对应的内存块中存储。本发明解决了数据从网卡传到GPU需要多次在不同的内存区域之间拷贝问题。减少数据传输时间,减少数据延迟时间,提高了数据吞吐量,减少了因开辟缓冲区而对内存的占用,提高了系统性能。

Description

一种基于 GPU 与 NIC 之间的内存高速直接交换的方法及系统
技术领域
本发明涉及一种基于GPU与NIC之间的内存高速直接交换的方法及系统。
背景技术
随着GPU技术的快速发展,当前的GPU已经具有很强的并行计算能力,浮点运算能力甚至可以达到同代CPU的10倍以上。同时,随着Nvidia公司CUDA的推出,使得GPU具有更好的可编程性,因此,在诸如数据库防火墙、网络防火墙、信息安全保护、图像处理等通用计算领域有着广泛的应用。如何充分利用GPU的并行计算特点实现海量网络数据的快速处理,已经成为当今的热点问题之一。GPU具有独特的硬件结构,采用常规的网络数据交换方法,由于数据交换的延迟,很难发挥GPU的并行运算优势。图1是现有GPU与NIC网络数据传输示意图。常规的方法对此类涉及大量数据的应用的传输与处理并不高效。从图1中可以看出,共涉及三次数据复制:第一次从网卡缓冲区复制到CPU内核内存区,内核协议栈处理后将数据从内核内存区复制到用户内存区,最后从用户内存区复制到GPU内存区供GPU使用。从网卡到GPU内存中的三次数据复制,增加了数据传输延迟,可能需要几微秒到几百微秒的时间用于数据传输。其次,分配主存储器作为缓冲区,以临时存储数据,也导致可用内存减少。最后,在多个存储区之间的数据传输的数据吞吐量也受到严重影响,因为处理器必须等待缓冲区被填充有数据,才能复制数据。因此,目前方法存在以下问题:
1、多次内存数据交换,导致数据传输延迟时间长;
2、多个存储区之间的数据传输,数据吞吐量受到严重影响;
3、由于开辟存储缓冲区,占用大量内存空间,导致可用内存资源减少。
发明内容
本发明的目的在于提出一种在图形处理器(GPU)和网卡(NIC)之间的内存高速直接传输数据的方法及系统。本发明通过在GPU和NIC之间的数据直接传输机制,实现GPU快速处理海量网络数据的目的。
本发明采用的技术方案是,一种基于GPU与NIC之间的内存高速直接交换的方法,包括下列步骤:
步骤1,CPU应用程序在GPU内存中分配一个或多个存储区,并将每块内存区的物理地址和大小用一个内存块参数标记然后,将分配的GPU内存块映射到CPU内存空间的一个虚拟地址中;
步骤2,GPU将分配的内存块参数返回给CPU;
步骤3,CPU将内存块参数传递给内核网卡驱动,网卡驱动程序将获得的GPU内存块信息保存;
步骤4,网卡收到网络数据后,网卡的DMA控制器访问获得的内存块参数,然后将数据直接发送到GPU对应的内存块中;
步骤5,网卡驱动触发一个CPU中断;
步骤6,CPU收到中断后即启动GPU处理数据,然后返回步骤4循环。
在一实施例中,CPU通过ioctl系统函数将内存块传送给网卡的DMA控制器,每分配一块GPU内存块调用一次ioctl,将内存块参数传递给网卡DMA控制器,网卡DMA控制器给每个GPU内存块分配一个相同的内存块参数并保存相应的信息;
步骤1中,使用NIVIDIA公司的CUDA开发工具库中的cuMemMap函数将分配的GPU内存块映射到CPU内存空间的一个虚拟地址中。
所述的内存块参数采用GPUMemStruct(Kn,Mn)格式,步骤3中CPU通过调用Linux下的ioctl将GPUMemStruct(Kn,Mn)内存块信息传递给CPU内核网卡驱动,网卡驱动程序将获得的GPUMemStruct(K1,M1)保存。
网卡驱动使用函数dma_alloc_coherent分配GPUMemStruct(Kn,Mn),每调用一次此函数会分配一块内存区,多次调用生成一个内存区队列。
本发明还提出一种基于GPU与NIC之间的内存高速直接交换的系统,包括CPU、GPU和NIC,还包括:
GPU存储区分配模块,用于CPU应用程序在GPU内存中分配一个或多个存储区,并将每块内存区的物理地址和大小用一个内存块参数标记然后,将分配的GPU内存块映射到CPU内存空间的一个虚拟地址,并将分配的内存块的参数返回给CPU;
信息传递模块,用于CPU将内存块参数传递给内核网卡驱动,网卡驱动程序将获得的GPU内存块参数信息保存;
数据直传模块,用于网卡收到网络数据后,网卡的DMA控制器访问获得的内存块参数,然后将数据直接发送到GPU对应的内存块中存储。
所述信息传递模块通过ioctl系统函数将内存块传送给网卡的DMA控制器,每分配一块GPU内存块调用一次ioctl,将内存块参数传递给网卡DMA控制器,网卡DMA控制器给每个GPU内存块分配一个相同的内存块参数并保存相应的信息。
所述GPU存储区分配模块使用NIVIDIA公司的CUDA开发工具库中的cuMemMap函数将分配的GPU内存块映射到用户内存空间的一个虚拟地址中。
本发明解决了数据从网卡传到GPU需要多次在不同的内存区域之间拷贝问题。减少数据传输时间,减少数据延迟时间,提高了数据吞吐量,减少了因开辟缓冲区而对内存的占用,提高了系统性能。
附图说明
图1是现有GPU与NIC网络数据传输示意图;
图2是本发明提出的GPU与NIC网络数据直接内存传输示意图;
图3 是本发明提出的GPU与NIC网络数据直接内存传输流程图。
具体实施方式
下面结合附图和实施例对发明进行详细的说明。
在现有的方法中,需要减少多个存储区之间的数据复制操作来提高数据传输效率。因此需要结合GPU和网卡的硬件特点,来减少数据的复制次数甚至完全避免数据复制,才能有效提高GPU的网络数据处理能力。
在现有数据复制流程中有两个过程可以避免,一是从CPU的内核内存区到CPU的用户内存区,另一个是从CPU的用户内存区到GPU的内存区。最终的流程变成从网卡的缓冲区直接复制到GPU的内存区。由于直接从网卡将数据复制到GPU内存中略过了内核对数据的协议栈处理,因此需要GPU对数据作协议栈的解析。
本发明具体实现方案如下:
首先由应用程序分配一块或多块GPU的内存,并将每块内存区的物理地址和大小保存在一个结构体中,例如,标记为GPUMemStruct (K1,M1;……Kn,Mn),其中:K1为GPU内存块大小,M1为GPU内存块地址,通过Linux 的ioctl系统函数传送给网卡的DMA控制器,每分配一块GPU内存调用一次ioctl传递GPUMemStruct(K1,M1)参数给网卡DMA控制器,网卡DMA控制器给每个GPU内存块分配一个相同的结构体并保存相应的信息。每当网卡接收到数据时就会将数据按传递给网卡DMA控制器的GPU内存块的顺序复制到相应的GPU内存块中。图2显示结构体GPUMemStruct(K1,M1)的生成过程:
网卡驱动使用Linux函数dma_alloc_coherent分配GPUMemStruct(K1,M1),此函数分配一块一致的内存区,设备或CPU往此内存区写入的内容可以立即被设备或CPU读取,而不用担心缓存问题。网卡驱动分配GPU内存结构体的最大数目及最大内存块大小由驱动设定,可以通过向驱动传递配置参数而改变,网卡启动时会设置一个默认的参数。每调用一次此函数会分配一块内存区,多次调用生成一个内存区队列。
GPU内存块的地址和大小会通过网卡驱动传递给网卡的DMA(直接内存存取)控制器,当网卡收到数据时DMA控制器可以利用获得的GPU内存块信息向GPU直接传送数据。
GPU与NIC网络数据直接内存传输流程如下:
步骤1、CPU应用程序在GPU内存中申请一个存储区,内存块大小为K1,用NIVIDIA公司的CUDA开发工具链中的cuMemMap函数,此函数将分配的GPU内存块映射到用户内存空间的一个虚拟地址;
步骤2、GPU将分配的内存块地址M1返回给CPU;
步骤3,CPU将内存块参数传递给内核网卡驱动,网卡驱动程序将获得的GPU内存块信息保存;
例如,调用Linux下的ioctl 将GPUMemStruct(K1,M1)传递给CPU内核网卡驱动,网卡驱动程序将获得的GPUMemStruct(K1,M1)保存;
步骤4,网卡收到网络数据后,网卡驱动开始处理;网卡的DMA控制器访问获得的内存块参数GPUMemStruct(K1,M1)GPU内存块信息,然后将数据直接发送到GPU对应的内存块中;
步骤5,网卡驱动触发一个CPU中断;
步骤6,CPU收到中断后即启动GPU处理数据,然后返回步骤4循环。
本发明还提出一种基于GPU与NIC之间的内存高速直接交换的系统,包括CPU、GPU和NIC,还包括:
GPU存储区分配模块,用于CPU应用程序在GPU内存中分配一个或多个存储区,并将每块内存区的物理地址和大小保存在一个结构体中标记然后,将分配的GPU内存块映射到用户内存空间的一个虚拟地址,并将分配的内存块的参数返回给CPU;
信息传递模块,用于CPU将内存块参数传递给内核网卡驱动,网卡驱动程序将获得的GPU内存块信息保存;
数据直传模块,用于网卡收到网络数据后,网卡的DMA控制器访问获得的内存块参数,然后将数据直接发送到GPU对应的内存块中存储。
所述信息传递模块通过Linux的ioctl系统函数将内存块传送给网卡的DMA控制器,每分配一块GPU内存块调用一次Linux的ioctl,将内存块参数传递给网卡DMA控制器,网卡DMA控制器给每个GPU内存块分配一个相同的结构体并保存相应的信息。
所述GPU存储区分配模块使用NIVIDIA公司的CUDA开发工具库中的cuMemMap函数将分配的GPU内存块映射到用户内存空间的一个虚拟地址中。
所述GPU存储区分配模块使用函数dma_alloc_coherent分配GPUMemStruct(Kn,Mn),每调用一次此函数会分配一块内存区,多次调用生成一个内存区队列。
本发明实现了一种在图形处理器(GPU)和网卡(NIC)之间的内存高速直接传输数据的方法,主要用于通过网卡从网络获取大量数据并传输给GPU处理的应用,在数据高吞吐量的当前,我们广泛使用的是1G或10G网卡,超过200G以上的更高性能的网卡已经推出,数据高吞吐量时代即将来临。在高吞吐量环境下,数据量大,数据处理速度性能要求高,特别在数据安全保护领域,需求更加迫切,本发明适用于高吞吐量数据库防火墙、网络防火墙、高速实时超高清图像处理等海量网络数据的交换处理。
上述实施例仅用于说明本发明的具体实施方式。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和变化,这些变形和变化都应属于本发明的保护范围。

Claims (10)

1.一种基于GPU与NIC之间的内存高速直接交换的方法,其特征在于,包括下列步骤:
步骤1,CPU应用程序在GPU内存中分配一个或多个存储区,并将每块内存区的物理地址和大小用一个内存块参数标记然后,将分配的GPU内存块映射到CPU内存空间的一个虚拟地址中;
步骤2,GPU将分配的内存块参数返回给CPU;
步骤3,CPU将内存块参数传递给内核网卡驱动,网卡驱动程序将获得的GPU内存块信息保存;
步骤4,网卡收到网络数据后,网卡的DMA控制器访问获得的内存块参数,然后将数据直接发送到GPU对应的内存块中;
步骤5,网卡驱动触发一个CPU中断;
步骤6,CPU收到中断后即启动GPU处理数据,然后返回步骤4循环。
2.如权利要求1所述的方法,其特征在于:CPU通过ioctl系统函数将内存块传送给网卡的DMA控制器,每分配一块GPU内存块调用一次ioctl,将内存块参数传递给网卡DMA控制器,网卡DMA控制器给每个GPU内存块分配一个相同的内存块参数并保存相应的信息。
3.如权利要求1所述的方法,其特征在于:步骤1中,使用NIVIDIA公司的CUDA开发工具库中的cuMemMap函数将分配的GPU内存块映射到CPU内存空间的一个虚拟地址中。
4.如权利要求1所述的方法,其特征在于:所述的内存块参数采用GPUMemStruct(Kn,Mn)格式,步骤3中CPU通过调用Linux下的ioctl将GPUMemStruct(Kn,Mn)内存块信息传递给CPU内核网卡驱动,网卡驱动程序将获得的GPUMemStruct(K1,M1)保存。
5.如权利要求1所述的方法,其特征在于:网卡驱动使用函数dma_alloc_coherent分配GPUMemStruct(Kn,Mn),每调用一次此函数会分配一块内存区,多次调用生成一个内存区队列。
6.一种基于GPU与NIC之间的内存高速直接交换的系统,包括CPU、GPU和NIC,其特征在于,还包括:
GPU存储区分配模块,用于CPU应用程序在GPU内存中分配一个或多个存储区,并将每块内存区的物理地址和大小用一个内存块参数标记然后,将分配的GPU内存块映射到CPU内存空间的一个虚拟地址,并将分配的内存块的参数返回给CPU;
信息传递模块,用于CPU将内存块参数传递给内核网卡驱动,网卡驱动程序将获得的GPU内存块参数信息保存;
数据直传模块,用于网卡收到网络数据后,网卡的DMA控制器访问获得的内存块参数,然后将数据直接发送到GPU对应的内存块中存储。
7.如权利要求6所述的系统,其特征在于:信息传递模块通过ioctl系统函数将内存块传送给网卡的DMA控制器,每分配一块GPU内存块调用一次ioctl,将内存块参数传递给网卡DMA控制器,网卡DMA控制器给每个GPU内存块分配一个相同的内存块参数并保存相应的信息。
8.如权利要求6所述的系统,其特征在于:GPU存储区分配模块使用NIVIDIA公司的CUDA开发工具库中的cuMemMap函数将分配的GPU内存块映射到用户内存空间的一个虚拟地址中。
9.如权利要求6所述的系统,其特征在于:所述内存块参数采用GPUMemStruct(Kn,Mn)格式,步骤3中CPU通过调用Linux下的ioctl将GPUMemStruct(Kn,Mn)内存块信息传递给CPU内核网卡驱动,网卡驱动程序将获得的GPUMemStruct(K1,M1)保存。
10.如权利要求6或9所述的系统,其特征在于:GPU存储区分配模块使用函数dma_alloc_coherent分配GPUMemStruct(Kn,Mn),每调用一次此函数会分配一块内存区,多次调用生成一个内存区队列。
CN201610095729.0A 2016-02-22 2016-02-22 一种基于gpu与nic之间的内存高速直接交换的方法及系统 Pending CN107102957A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610095729.0A CN107102957A (zh) 2016-02-22 2016-02-22 一种基于gpu与nic之间的内存高速直接交换的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610095729.0A CN107102957A (zh) 2016-02-22 2016-02-22 一种基于gpu与nic之间的内存高速直接交换的方法及系统

Publications (1)

Publication Number Publication Date
CN107102957A true CN107102957A (zh) 2017-08-29

Family

ID=59658342

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610095729.0A Pending CN107102957A (zh) 2016-02-22 2016-02-22 一种基于gpu与nic之间的内存高速直接交换的方法及系统

Country Status (1)

Country Link
CN (1) CN107102957A (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107870878A (zh) * 2017-10-31 2018-04-03 深圳清华大学研究院 存储系统、终端及计算机装置
CN109828940A (zh) * 2019-01-31 2019-05-31 郑州云海信息技术有限公司 一种智能网卡及数据处理系统和方法
CN110442389A (zh) * 2019-08-07 2019-11-12 北京技德系统技术有限公司 一种多桌面环境共享使用gpu的方法
CN112465689A (zh) * 2020-10-21 2021-03-09 中国船舶重工集团公司第七0九研究所 基于可见显存交换区的gpu不可见显存管理方法及系统
EP3796179A1 (en) * 2019-09-19 2021-03-24 INTEL Corporation System, apparatus and method for processing remote direct memory access operations with a device-attached memory
CN113190476A (zh) * 2021-04-14 2021-07-30 摩尔线程智能科技(北京)有限责任公司 数据传输方法和装置
CN113556403A (zh) * 2021-07-30 2021-10-26 中科计算技术西部研究院 一种用于分布式训练的通信方法及系统
US11263145B2 (en) 2018-08-31 2022-03-01 Nyriad Limited Vector processor storage
CN115934323A (zh) * 2022-12-02 2023-04-07 北京首都在线科技股份有限公司 云端计算资源的调用方法、装置、电子设备及存储介质
WO2023071158A1 (zh) * 2021-10-26 2023-05-04 西安广和通无线通信有限公司 内存优化方法、装置、终端、存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102291298A (zh) * 2011-08-05 2011-12-21 曾小荟 一种高效的面向长消息的计算机网络通信方法
CN102402462A (zh) * 2010-09-30 2012-04-04 微软公司 用于对启用gpu的虚拟机进行负载平衡的技术
CN103200128A (zh) * 2013-04-01 2013-07-10 华为技术有限公司 一种网络包处理的方法、装置和系统
CN103970680A (zh) * 2014-04-28 2014-08-06 上海华为技术有限公司 内存管理方法、装置及嵌入式系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102402462A (zh) * 2010-09-30 2012-04-04 微软公司 用于对启用gpu的虚拟机进行负载平衡的技术
CN102291298A (zh) * 2011-08-05 2011-12-21 曾小荟 一种高效的面向长消息的计算机网络通信方法
CN103200128A (zh) * 2013-04-01 2013-07-10 华为技术有限公司 一种网络包处理的方法、装置和系统
CN103970680A (zh) * 2014-04-28 2014-08-06 上海华为技术有限公司 内存管理方法、装置及嵌入式系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
FENG JI等: "DMA-Assisted, Intranode Communication in GPU Accelerated Systems", 《2012 IEEE 14TH INTERNATIONAL CONFERENCE ON HIGH PERFORMANCE COMPUTING AND COMMUNICATION & 2012 IEEE 9TH INTERNATIONAL CONFERENCE ON EMBEDDED SOFTWARE AND SYSTEMS》 *
MICHAEL BAUER等: "CudaDMA: Optimizing GPU memory bandwidth via warp specialization", 《 SC "11: PROCEEDINGS OF 2011 INTERNATIONAL CONFERENCE FOR HIGH PERFORMANCE COMPUTING, NETWORKING, STORAGE AND ANALYSIS》 *
ROBERTO AMMENDOLA等: "Virtual-to-Physical address translation for an FPGA-based interconnect with host and GPU remote DMA capabilities", 《2013 INTERNATIONAL CONFERENCE ON FIELD-PROGRAMMABLE TECHNOLOGY (FPT)》 *

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107870878A (zh) * 2017-10-31 2018-04-03 深圳清华大学研究院 存储系统、终端及计算机装置
US11263145B2 (en) 2018-08-31 2022-03-01 Nyriad Limited Vector processor storage
US11782844B2 (en) 2018-08-31 2023-10-10 Nyriad Inc. Vector processor storage
US11347653B2 (en) 2018-08-31 2022-05-31 Nyriad, Inc. Persistent storage device management
US11263144B2 (en) 2018-08-31 2022-03-01 Nyriad Limited Block device interface using non-volatile pinned memory
CN109828940A (zh) * 2019-01-31 2019-05-31 郑州云海信息技术有限公司 一种智能网卡及数据处理系统和方法
CN110442389A (zh) * 2019-08-07 2019-11-12 北京技德系统技术有限公司 一种多桌面环境共享使用gpu的方法
CN110442389B (zh) * 2019-08-07 2024-01-09 北京技德系统技术有限公司 一种多桌面环境共享使用gpu的方法
EP3796179A1 (en) * 2019-09-19 2021-03-24 INTEL Corporation System, apparatus and method for processing remote direct memory access operations with a device-attached memory
US11036650B2 (en) 2019-09-19 2021-06-15 Intel Corporation System, apparatus and method for processing remote direct memory access operations with a device-attached memory
CN112465689A (zh) * 2020-10-21 2021-03-09 中国船舶重工集团公司第七0九研究所 基于可见显存交换区的gpu不可见显存管理方法及系统
CN113190476A (zh) * 2021-04-14 2021-07-30 摩尔线程智能科技(北京)有限责任公司 数据传输方法和装置
CN113556403A (zh) * 2021-07-30 2021-10-26 中科计算技术西部研究院 一种用于分布式训练的通信方法及系统
CN113556403B (zh) * 2021-07-30 2023-06-09 中科计算技术西部研究院 一种用于分布式训练的通信方法及系统
WO2023071158A1 (zh) * 2021-10-26 2023-05-04 西安广和通无线通信有限公司 内存优化方法、装置、终端、存储介质
CN115934323A (zh) * 2022-12-02 2023-04-07 北京首都在线科技股份有限公司 云端计算资源的调用方法、装置、电子设备及存储介质
CN115934323B (zh) * 2022-12-02 2024-01-19 北京首都在线科技股份有限公司 云端计算资源的调用方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN107102957A (zh) 一种基于gpu与nic之间的内存高速直接交换的方法及系统
CN102609298B (zh) 基于硬件队列扩展的网卡虚拟化系统及其方法
US9658981B2 (en) Network interface card for a computing node of a parallel computer accelerated by general purpose graphics processing units, and related inter-node communication method
CN102906726B (zh) 协处理加速方法、装置及系统
CN110737536B (zh) 一种基于共享内存的消息存储方法和消息读取方法
CN105656805B (zh) 一种基于控制块预分配的分组接收方法和装置
US11470394B2 (en) Scalable light-weight protocols for wire-speed packet ordering
CN104102542A (zh) 一种网络数据包处理方法和装置
CN113515396A (zh) 图形渲染方法、装置、电子设备与存储介质
CN111190854A (zh) 通信数据处理方法、装置、设备、系统和存储介质
CN111400212A (zh) 一种基于远程直接数据存取的传输方法、设备
CN109547519A (zh) 反向代理方法、装置及计算机可读存储介质
CN112835843A (zh) 数据渲染方法及系统
Agostini et al. GPUDirect Async: Exploring GPU synchronous communication techniques for InfiniBand clusters
CN105677491A (zh) 一种数据传输方法及装置
CN109509139A (zh) 顶点数据处理方法、装置及设备
CN105808345B (zh) 数据处理方法、加速引擎、控制板和系统
TW200617668A (en) Cache memory management system and method
US20150121376A1 (en) Managing data transfer
CN110445580A (zh) 数据发送方法及装置、存储介质、电子装置
CN102117261B (zh) 一种芯片内部处理器之间的通信方法
CN104468417B (zh) 一种堆叠交换机报文传输方法、系统及堆叠交换机
US10579310B2 (en) System and method for reliably persisting storage writes at high speed
CN110659143A (zh) 一种容器间的通讯方法、装置及电子设备
WO2001016761A2 (en) Efficient page allocation

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20170829