一种CPU与GPU之间的数据传输方法技术

技术编号:21398864 阅读:26 留言:0更新日期:2019-06-19 06:58
本申请公开了一种CPU与GPU之间的数据传输方法,应用于GPU,能预先将多个线程与全局存储器中存储单元的对应关系发送到CPU,以便于CPU依据对应关系传输数据,在接收到CPU发送的数据后将数据存储到CPU指定的存储单元,最后调用多个线程并行读取全局存储器的数据。可见,该方法通过预先将存储单元与线程的对应关系发送给CPU,在后续数据传输过程中只需将数据存储到CPU指定的存储单元,即可避免为线程分配存储空间的计算过程,节省了GPU的运算资源,提高了数据传输效率。此外,本申请还提供了一种CPU与GPU之间的数据传输装置及图形处理系统,其作用与上述方法相对应。

【技术实现步骤摘要】
一种CPU与GPU之间的数据传输方法
本申请涉及计算机领域,特别涉及一种CPU与GPU之间的数据传输方法、装置及图形处理系统。
技术介绍
目前服务器系统接开始导向GPU人工运算配置,故CPU搭配GPU的运算模型越来越多,这类型服务器运用统称HPC(Highperformancecomputing),搭配NVIDIA的CUDA(computeunifiedDeviceArchitecture)的GPU结构与CPU内存做沟通,图1为服务器系统CPU与GPU基本内存通讯架构。GPU具体的内部结构如图2所示,GPU内包括全局存储器(GlobalMemory)、线程(Thread)、寄存器(Register)、共享存储器(SharedMemory)等。目前,服务器CPU与GPU间内存的沟通模式如图3所示,CPU向GPU的全局存储器并行传输数据,然后GPU计算多个线程与数据存储单元之间的分配关系,然后调用线程依据这种分配关系从相应的存储单元读取数据。当CPU再次向GPU传输数据后,GPU需要再次计算线程与存储单元之间的分配关系。可见,每次接收到CPU发送的数据后GPU都需要计算线程和存储单元之间的对应关系,这种重复的计算造成GPU的运算能力的浪费,且导致CPU与GPU之间的数据传输效率较低。
技术实现思路
本申请的目的是提供一种CPU与GPU之间的数据传输方法、装置及图形处理系统,用以解决传统的方案中GPU每次接收到CPU发送的数据都需要计算线程和存储单元之间的对应关系,这种重复的计算造成GPU的运算能力的浪费,且导致CPU与GPU之间的数据传输效率较低。为解决上述技术问题,本申请提供了一种CPU与GPU之间的数据传输方法,应用于GPU,包括:预先将多个线程与全局存储器中存储单元的对应关系发送到CPU,以便于CPU在后续的数据传输过程中依据所述对应关系进行数据传输,其中,所述对应关系为依据GPU对存储单元的分配而确定的;接收CPU依据所述对应关系发送的数据,将数据存储到CPU指定的存储单元;调用所述多个线程并行读取所述全局存储器中的数据。可选的,在所述预先将多个线程与全局存储器中存储单元的对应关系发送到CPU,以便于CPU在后续的数据传输过程中依据所述对应关系进行数据传输之前,还包括:依据运算需求为多个线程分配全局存储器中的存储单元,得到线程与存储单元之间的对应关系。可选的,所述调用所述多个线程并行读取所述全局存储器中的数据,具体包括:调用所述多个线程并行读取所述全局存储器中的数据并与寄存器和/或共享存储器进行数据交互。可选的,所述存储单元为位。相应的,本申请还提供了一种CPU与GPU之间的数据传输装置,应用于GPU,包括:对应关系发送模块:用于预先将多个线程与全局存储器中存储单元的对应关系发送到CPU,以便于CPU在后续的数据传输过程中依据所述对应关系进行数据传输,其中,所述对应关系为依据GPU对存储单元的分配而确定的;数据接收模块:用于接收CPU依据所述对应关系发送的数据,将数据存储到CPU指定的存储单元;并行读取模块:用于调用所述多个线程并行读取所述全局存储器中的数据。可选的,所述装置还包括:对应关系确定模块:用于依据运算需求为多个线程分配全局存储器中的存储单元,得到线程与存储单元之间的对应关系。可选的,所述数据接收模块具体用于:调用所述多个线程并行读取所述全局存储器中的数据并与寄存器和/或共享存储器进行数据交互。此外,本申请还提供了一种CPU与GPU之间的数据传输方法,应用于CPU,包括:获取GPU中多个线程与全局存储器中存储单元的对应关系;依据所述对应关系,将数据发送到所述全局存储器中指定的存储单元,以便于GPU调用所述多个线程并行读取所述全局存储器中的数据。相应的,本申请还提供了一种CPU与GPU之间的数据传输装置,应用于CPU,包括:对应关系获取模块:用于获取GPU中多个线程与全局存储器中存储单元的对应关系;数据发送模块:用于依据所述对应关系,将数据传输到所述全局存储器中指定的存储单元,以便于GPU调用所述多个线程并行读取所述全局存储器中的数据。最后,本申请还提供了一种图形处理系统,包括:GPU和CPU,其中,所述GPU用于实现如上任意一项所述的一种应用于GPU的CPU与GPU之间的数据传输方法的步骤,所述CPU用于实现如上所述的一种应用于CPU的CPU与GPU之间的数据传输方法的步骤。本申请所提供的一种CPU与GPU之间的数据传输方法,应用于GPU,能够预先将多个线程与全局存储器中存储单元的对应关系发送到CPU,以便于CPU在后续的数据传输过程中依据对应关系进行数据传输,在接收到CPU发送的数据后将数据存储到CPU指定的存储单元,最后调用多个线程并行读取全局存储器中的数据。可见,该方法通过预先将存储单元与线程的对应关系发送给CPU,在后续的数据传输过程中只需要将数据存储到CPU指定的存储单元,即可避免为线程分配存储空间的计算过程,后续直接调用多个线程并行读取全局存储器中的数据即可,节省了GPU的运算资源,提高了数据传输效率。此外,本申请还提供了一种CPU与GPU之间的数据传输装置及图形处理系统,其作用与上述方法相对应,这里不再赘述。附图说明为了更清楚的说明本申请实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为目前服务器系统CPU与GPU的基本内存通讯架构示意图图一;图2为目前服务器系统CPU与GPU的基本内存通讯架构示意图图二;图3为目前CPU与GPU的全局存储器之间并行传输系统结构示意图;图4为本申请所提供的一种应用于GPU的CPU与GPU之间的数据传输方法实施例一的实现流程图;图5为本申请所提供的一种应用于GPU的CPU与GPU之间的数据传输方法实施例一的全局存储器与线程之间并行传输的通讯架构示意图;图6为本申请所提供的一种应用于GPU的CPU与GPU之间的数据传输方法实施例二的实现流程图;图7为本申请所提供的一种应用于GPU的CPU与GPU之间的数据传输装置的功能框图;图8为本申请所提供的一种应用于CPU的CPU与GPU之间的数据传输方法实施例的实现流程图;图9为本申请所提供的一种应用于CPU的CPU与GPU之间的数据传输装置的功能框图;图10为本申请所提供的一种图形处理系统的结构示意图。具体实施方式本申请的核心是提供一种CPU与GPU之间的数据传输方法、装置及图形处理系统,避免了每次传输数据都需要GPU为线程分配存储空间的计算过程,节省了GPU的运算资源,提高了数据传输效率。为了使本
的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。首先对技术背景进行介绍,本申请的目的在于加快CPU与GPU间的内存读取匹配,由于GPU内的共享存储器的容量远小于全局存储器容量,因此有效率的内存匹配本文档来自技高网
...

【技术保护点】
1.一种CPU与GPU之间的数据传输方法,应用于GPU,其特征在于,包括:预先将多个线程与全局存储器中存储单元的对应关系发送到CPU,以便于CPU在后续的数据传输过程中依据所述对应关系进行数据传输,其中,所述对应关系为依据GPU对存储单元的分配而确定的;接收CPU依据所述对应关系发送的数据,将数据存储到CPU指定的存储单元;调用所述多个线程并行读取所述全局存储器中的数据。

【技术特征摘要】
1.一种CPU与GPU之间的数据传输方法,应用于GPU,其特征在于,包括:预先将多个线程与全局存储器中存储单元的对应关系发送到CPU,以便于CPU在后续的数据传输过程中依据所述对应关系进行数据传输,其中,所述对应关系为依据GPU对存储单元的分配而确定的;接收CPU依据所述对应关系发送的数据,将数据存储到CPU指定的存储单元;调用所述多个线程并行读取所述全局存储器中的数据。2.如权利要求1所述的方法,其特征在于,在所述预先将多个线程与全局存储器中存储单元的对应关系发送到CPU,以便于CPU在后续的数据传输过程中依据所述对应关系进行数据传输之前,还包括:依据运算需求为多个线程分配全局存储器中的存储单元,得到线程与存储单元之间的对应关系。3.如权利要求2所述的方法,其特征在于,所述调用所述多个线程并行读取所述全局存储器中的数据,具体包括:调用所述多个线程并行读取所述全局存储器中的数据并与寄存器和/或共享存储器进行数据交互。4.如权利要求3所述的方法,其特征在于,所述存储单元为位。5.一种CPU与GPU之间的数据传输装置,应用于GPU,其特征在于,包括:对应关系发送模块:用于预先将多个线程与全局存储器中存储单元的对应关系发送到CPU,以便于CPU在后续的数据传输过程中依据所述对应关系进行数据传输,其中,所述对应关系为依据GPU对存储单元的分配而确定的;数据接收模块:用于接收CPU依据所述对应关...

【专利技术属性】
技术研发人员:吕孟桓
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1