The invention discloses a method and a device for multi GPU communication, the method includes determining a GPU direct relationship according to the data broadcasting data; determining a predetermined communication data and the need for the communication of GPU, and will need to communicate in GPU contains a predetermined data communication GPU is divided into a first set, a collection of other GPU divided into second GPU; the transmission in the first set GPU set to second according to the GPU direct relationship in the data and has direct relationship between predetermined communication data, and the second set has a predetermined data communication GPU moved to the first set, until the second set is empty or second sets in the first set and the remaining GPU GPU there is no direct relationship. When there is a residual; second GPU collection, CPU GPU transmission to remaining predetermined communication data; avoid all data transfer between the GPU to go through the CPU caused CPU to become Bottleneck.
【技术实现步骤摘要】
一种单机多GPU通信的方法及装置
本专利技术涉及数据处理
,特别涉及一种单机多GPU通信的方法及装置。
技术介绍
自从2006年英伟达(NVIDIA)公司推出图形处理器G80(包含了128个流式多处理器)以来,图形处理器(GPU,GraphicProcessingUnit)在某些大规模并行计算的应用上,相对于CPU来说性能提高可达100倍以上。GPU拥有更多的晶体管,用于数据处理而不是像CPU那样去处理数据cache和指令控制,这意味着GPU具有巨大的并行计算能力。GPU众核处理器计算资源密度更高,具有更高的计算性能,双精性能超过1TFlops。随着高性能计算应用软件的发展,应用对计算性能的需求越来越高,CPU+GPU异构协同计算相对于传统的CPU集群带来了更高的性能、更低的成本等优势,越来越多的高性能计算应用软件采用CPU+GPU异构协同计算的计算模式。CPU+GPU异构协同计算架构如图1所示,在一个计算节点内采用了CPU+GPU异构的计算方式。在某些计算量非常巨大的应用场景中,如深度学习神经网络的训练,多个GPU必须协调工作,因此多GPU间的数据传输速度对整个应用的性能影响非常大。如何在现有的硬件架构基础上完成高效的数据传输是一个难题。
技术实现思路
本专利技术的目的是提供一种单机多GPU通信的方法及装置,利用GPUDirect技术,避免了所有GPU间的数据传输都要经过CPU而造成CPU成为瓶颈,同时根据具体的硬件拓扑进行合理的路径规划,实现多GPU间的高速通信。为解决上述技术问题,本专利技术提供一种单机多GPU通信的方法,所述方法包括:对全部GPU ...
【技术保护点】
一种单机多GPU通信的方法,其特征在于,所述方法包括:对全部GPU进行检测,确定GPU直连关系数据;根据数据广播确定预定通信数据及需要进行通信的GPU,并将需要进行通信的GPU中包含所述预定通信数据的GPU划分为第一集合,不包含所述预定通信数据的GPU划分为第二集合;所述第一集合中的GPU根据所述GPU直连关系数据向所述第二集合中与其具有直连关系的GPU传输所述预定通信数据,在完成数据传输后,将所述第二集合中具有所述预定通信数据的GPU移动到所述第一集合中,直到所述第二集合为空或者所述第二集合中存在与所述第一集合中GPU不存在直连关系的剩余GPU为止;当所述第二集合中存在所述剩余GPU时,CPU向所述剩余GPU传输所述预定通信数据。
【技术特征摘要】
1.一种单机多GPU通信的方法,其特征在于,所述方法包括:对全部GPU进行检测,确定GPU直连关系数据;根据数据广播确定预定通信数据及需要进行通信的GPU,并将需要进行通信的GPU中包含所述预定通信数据的GPU划分为第一集合,不包含所述预定通信数据的GPU划分为第二集合;所述第一集合中的GPU根据所述GPU直连关系数据向所述第二集合中与其具有直连关系的GPU传输所述预定通信数据,在完成数据传输后,将所述第二集合中具有所述预定通信数据的GPU移动到所述第一集合中,直到所述第二集合为空或者所述第二集合中存在与所述第一集合中GPU不存在直连关系的剩余GPU为止;当所述第二集合中存在所述剩余GPU时,CPU向所述剩余GPU传输所述预定通信数据。2.根据权利要求1所述的方法,其特征在于,对全部GPU进行检测,确定GPU直连关系数据,包括:利用双重循环遍历所有2块GPU的组合,得到任意2个GPU间是否存在直连关系的数据表。3.根据权利要求2所述的方法,其特征在于,具有直连关系的两个GPU之间通过GPUDirect技术进行数据传输。4.根据权利要求3所述的方法,其特征在于,CPU向所述剩余GPU传输所述预定通信数据,包括:在timestep时所述第一集合中的预定GPU将所述预定通信数据传输到CPU的内存,并从所述内存中将所述预定通信数据传输到所述剩余GPU内。5.一种单机多GPU通信的装置,其特征在于,包括:直连关系检测模块,用于对全部GPU进行检测,...
【专利技术属性】
技术研发人员:张清,龚湛,宋书涛,
申请(专利权)人:郑州云海信息技术有限公司,
类型:发明
国别省市:河南,41
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。