一种CPU与协处理器间的数据传输方法和装置制造方法及图纸

技术编号:8593925 阅读:171 留言:0更新日期:2013-04-18 07:05
本发明专利技术提供了一种CPU与协处理器间的数据传输方法和装置,其中方法包括:根据CPU生成的N个线程并行对N个协处理器的数据传输进行控制,所述N为大于或等于2的整数;所述控制包括:协处理器接收CPU以切片形式发送的数据;或者,协处理器接收并存储CPU或上一协处理器发送来的当前时刻的数据切片的同时,发送已存储的上一时刻的数据切片至下一协处理器。本发明专利技术能够充分利用各个协处理器与CPU之间的总线,以及各个协处理器之间的总线,能够提高CPU将数据传送至多个协处理器时以及协处理器将数据传输至其余多个协处理器时的数据传输效率。

【技术实现步骤摘要】
一种CPU与协处理器间的数据传输方法和装置
本专利技术涉及处理器数据传输技术,尤其涉及一种CPU与协处理器间的数据传输方法和装置。
技术介绍
如今,以GPU (图形处理器)为代表的协处理器已经具有越来越强大的计算能力, 在众多需要高性能计算的领域,都会采用多协处理器与CPU合作的方式来执行计算任务, 在这个过程中,经常需要CPU与协处理器以及多个协处理器之间的数据传输,数据传输的效率直接影响着计算任务的执行效率。现有的数据传输方法中,数据从CPU传输至多个协处理器,或者一个协处理器将数据广播至多个协处理器时,数据的传输效率都非常低,主要体现在将一份数据从CPU传输至多个协处理器时,现有的方法通常是CPU依次和这多个协处理器进行数据传输,即每次CPU和一个协处理器传输完这份数据后,再和另一个协处理器进行数据传输,这样使得CPU和一个协处理器在传输数据时,其余协处理器的总线都处于空闲状态,总线利用率非常低。协处理器将一份数据传输至其余多个协处理器时,现有的方法通常是协处理器先把数据发送至CPU内存,再从CPU的内存依次传输至另一个协处理器,或者,直接通过协处理器生产商提供的传输函数,依次将数据传输至其余多个协处理器,与上述CPU将一份数据传输至多个协处理器类似,这两种方法同样会导致未在传输数据的协处理器的总线处于空闲状态,总线利用率非常低。如上所述的问题使得CPU与协处理器以及多个协处理器之间的数据传输效率很低,并且会直接降低整个系统的运算能力,例如在语音识别的训练过程中,需要通过多GPU 配合CPU来进行计算,每个GPU都要有同一份训练数据,然而由于数据传输开销较大,会导致多GPU的训练速度甚至没有单GPU快。
技术实现思路
有鉴于此,本专利技术提供了一种CPU与协处理器间的数据传输方法和装置,能够提高CPU将数据传送至多个协处理器时以及协处理器将数据传输至其余多个协处理器时的数据传输效率。具体技术方案如下—种CPU与协处理器间的数据传输方法,该方法包括根据CPU生成的N个线程 并行对N个协处理器的数据传输进行控制,所述N为大于或等于2的整数;所述控制包括协处理器接收CPU以数据切片形式发送的数据;或者,协处理器接收并存储CPU或上一协处理器发送来的当前时刻的数据切片的同时,发送已存储的上一时刻的数据切片至下一协处理器。根据本专利技术一优选实施例,当所述方法用于由CPU传输数据至N个目标协处理器 时,所述CPU将数据以数据切片形式发送至其中一个目标协处理器,并通过对应的线程控 制该目标协处理器接收并存储CPU发送来的当前时刻的数据切片的同时,发送已存储的上 一时刻的数据切片至下一目标协处理器。根据本专利技术一优选实施例,当所述方法用于由CPU传输数据至N个目标协处理器 时,所述CPU将数据以数据切片形式发送至所述N个目标协处理器,并通过对应线程控制所 述N个目标协处理器同时接收并存储CPU发送来的数据切片。根据本专利技术一优选实施例,当所述方法用于由一个源协处理器传输数据至其他 N-1个目标协处理器时,所述CPU通过对应线程控制源协处理器将数据以数据切片的形式 发送至CPU,所述CPU接收并存储源协处理器发送来的当前时刻的数据切片的同时,发送已 存储的上一时刻的数据切片至其中一个目标协处理器,并通过对应线程控制该目标协处理 器接收并存储CPU发送来的当前时刻的数据切片的同时,发送已存储的上一时刻的数据切 片至下一目标协处理器。根据本专利技术一优选实施例,如果所述下一目标协处理器为最后一个目标协处理 器,则通过对应线程控制最后一个目标协处理器接收并存储接收到的数据分片,否则,通过 对应线程控制所述下一目标协处理器在接收到上一目标协处理器发送来的当前时刻的数 据切片的同时,发送已存储的上一时刻的数据切片至下一目标协处理器,直至最后一个目 标协处理器。根据本专利技术一优选实施例,当所述方法用于由一个源协处理器传输数据至其他 N-1个目标协处理器时,所述CPU通过对应线程通知源协处理器将数据以数据切片的形式 从源协处理器发送至CPU,所述CPU接收并存储源协处理器发送来的当前时刻的数据切片 的同时,发送已存储的上一时刻的数据切片至所述N-1个目标协处理器,并通过对应线程 控制所述N-1个协处理器同时接收并存储CPU发送来的数据切片。一种CPU与协处理器间的数据传输装置,该装置设置于CPU,其特征在于,该装置 包括线程控制单元,用于生成N个线程;传输控制单元,用于根据所述N个线程并行对N个协处理器的数据传输进行控制, 所述N为大于或等于2的整数;所述控制包括协处理器接收CPU以数据切片形式发送的数据;或者,协处理器接 收并存储CPU或上一协处理器发送来的当前时刻的数据切片的同时,发送已存储的上一时 刻的数据切片至下一协处理器。根据本专利技术一优选实施例,当所述装置用于由CPU传输数据至N个目标协处理器 时,所述CPU将数据以数据切片形式发送至其中一个目标协处理器,所述传输控制单元根 据对应的线程控制该协处理器接收并存储CPU发送来的当前时刻的数据切片的同时,发送 已存储的上一时刻的数据切片至下一目标协处理器。根据本专利技术一优选实施例,当所述装置用于由CPU传输数据至N个目标协处理器 时,所述CPU将数据以数据切片形式发送至该N个目标协处理器,所述传输控制单元根据对 应线程控制所述N个目标协处理器同时接收并存储CPU发送来的数据切片。根据本专利技术一优选实施例,当所述装置用于由一个源协处理器传输数据至其他N-1个目标协处理器时,所述传输控制单元根据对应线程控制源协处理器将数据以数据切片形式发送至CPU,所述CPU接收并存储源协处理器发送来的当前时刻的数据切片的同时, 发送已存储的上一时刻的数据切片至其中一个目标协处理器,所述传输控制单元根据对应线程控制该目标协处理器接收并存储CPU发送来的当前时刻的数据切片的同时,发送已存储的上一时刻的数据切片至下一目标协处理器。根据本专利技术一优选实施例,如果所述下一目标协处理器为最后一个目标协处理器,则所述传输控制单元通过对应线程控制最后一个目标协处理器接收并存储接收到的数据分片,否则,所述传输控制单元通过对应线程控制所述下一目标协处理器在接收到上一目标协处理器发送来的当前时刻的数据切片的同时,发送已存储的上一时刻的数据切片至下一目标协处理器,直至最后一个目标协处理器。根据本专利技术一优选实施例,当所述装置用于由一个源协处理器传输数据至其他 N-1个目标协处理器时,所述传输控制单元根据对应线程控制源协处理器将数据以数据切片形式发送至CPU,所述CPU接收并存储源协处理器发送来的当前时刻的数据切片的同时, 发送已存储的上一时刻的数据切片至所述N-1个目标协处理器,所述传输控制单元根据对应线程控制所述N-1个目标协处理器同时接收并存储CPU发送来的数据切片。由以上技术方案可以看出,本专利技术通过生成多线程来控制各个协处理器将数据以切片的形式传输,各个线程能够并行控制其对应的协处理器进行相应的数据切片的接收或传输操作。本专利技术能够充分利用各个协处理器与CPU之间的总线,以及各个协处理器之间的总线,显著提高了 CPU将数据传送至多个协处理器时和一个协处理器将数据传输至其余多个协处理器时的数据传输效率。附图说明图1为本专利技术实施例本文档来自技高网
...

【技术保护点】
一种CPU与协处理器间的数据传输方法,其特征在于,该方法包括:根据CPU生成的N个线程并行对N个协处理器的数据传输进行控制,所述N为大于或等于2的整数;所述控制包括:协处理器接收CPU以数据切片形式发送的数据;或者,协处理器接收并存储CPU或上一协处理器发送来的当前时刻的数据切片的同时,发送已存储的上一时刻的数据切片至下一协处理器。

【技术特征摘要】
1.ー种CPU与协处理器间的数据传输方法,其特征在于,该方法包括 根据CPU生成的N个线程并行对N个协处理器的数据传输进行控制,所述N为大于或等于2的整数; 所述控制包括协处理器接收CPU以数据切片形式发送的数据;或者,协处理器接收并存储CPU或上一协处理器发送来的当前时刻的数据切片的同时,发送已存储的上一时刻的数据切片至下一协处理器。2.根据权利要求1所述的方法,其特征在于,当所述方法用于由CPU传输数据至N个目标协处理器时,所述CPU将数据以数据切片形式发送至其中一个目标协处理器,并通过对应的线程控制该目标协处理器接收并存储CPU发送来的当前时刻的数据切片的同时,发送已存储的上ー时刻的数据切片至下一目标协处理器。3.根据权利要求1所述的方法,其特征在于,当所述方法用于由CPU传输数据至N个目标协处理器吋,所述CPU将数据以数据切片形式发送至所述N个目标协处理器,并通过对应线程控制所述N个目标协处理器同时接收并存储CPU发送来的数据切片。4.根据权利要求1所述的方法,其特征在干,当所述方法用于由ー个源协处理器传输数据至其他N-1个目标协处理器吋,所述CPU通过对应线程控制源协处理器将数据以数据切片的形式发送至CPU,所述CPU接收并存储源协处理器发送来的当前时刻的数据切片的同吋,发送已存储的上ー时刻的数据切片至其中一个目标协处理器,并通过对应线程控制该目标协处理器接收并存储CPU发送来的当前时刻的数据切片的同时,发送已存储的上一时刻的数据切片至下一目标协处理器。5.根据权利要求2或4所述的方法,其特征在于,如果所述下一目标协处理器为最后ー个目标协处理器,则通过对应线程控制最后一个目标协处理器接收并存储接收到的数据分片,否则,通过对应线程控制所述下一目标协处理器在接收到上一目标协处理器发送来的当前时刻的数据切片的同时,发送已存储的上ー时刻的数据切片至下一目标协处理器,直至最后ー个目标协处理器。6.根据权利要求1所述的方法,其特征在干,当所述方法用于由ー个源协处理器传输数据至其他N-1个目标协处理器吋,所述CPU通过对应线程通知源协处理器将数据以数据切片的形式从源协处理器发送至CPU,所述CPU接收并存储源协处理器发送来的当前时刻的数据切片的同时,发送已存储的上ー时刻的数据切片至所述N-1个目标协处理器,并通过对应线程控制所述N-1个协处理器同时接收并存储CPU发送来的数据切片。7.—种CPU与协处理器间的数据传输装置,该装置设置于CPU,其特征在于,该装...

【专利技术属性】
技术研发人员:欧阳剑王勇
申请(专利权)人:百度在线网络技术北京有限公司
类型:发明
国别省市:

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

1