基于通信通道异构性的高效GPU选择

2018-09-28 08:45蒋智恩
周口师范学院学报 2018年5期
关键词:拓扑图度量级别

蒋智恩

(福建信息职业技术学院,福建 福州 350003)

多GPU节点已成为科学应用的首选平台.在多GPU节点中,GPU通过不同的通信通道互连在一起[1]. GPU之间的节点内通信可以以不同的延迟和带宽特性穿越不同的路径. 随着多GPU节点内的GPU数量的增加,GPU互连的物理拓扑往往具有更多层级,这反过来又增加了GPU通信通道的异构性[2].多GPU节点已被证明是加速不同领域应用的有前途的平台,已经得到广泛应用,如计算流体动力学、分子动力学和天气预报模型.

在多GPU节点中,不同的GPU之间可能存在各种遍历路径. 因此,不同GPU对之间的通信可能会经历不同的通信通道[3].图1是用作实验测试平台的多GPU节点的示例配置. 根据图1可知,GPU可以通过不同的路径相互通信. 通常,不同GPU对之间的通信路径可以遍历4个拓扑级别,称之为级别0、级别1、级别2和级别3.在0级,GPU对之间的通信路径穿过PCIe内部交换机,该路径存在于单个GPU加速器(例如,GPU 0与GPU 1之间的路径)的GPU之中;级别1的通信路径经过多个PCIe交换机(例如,GPU 0和GPU 2之间的路径);在级别2处,通信路径穿过根联合体(RC)设备(例如,GPU 0和GPU 4之间的路径),RC将PCIe交换机光纤连接到插座;级别3通过诸如Intel QPI之类的插座间(IS)链路(例如,GPU 0和GPU 8之间的路径)[4].不同拓扑级别的这种多种通信信道可能导致不同的GPU通信延迟和带宽.通过各种消息大小来测量16 GPU节点中所有可能GPU对的通信延迟和带宽.

图1 多GPU各层通信示意图

1 GPU高效选择方法的设计与实施

提出了一种拓扑感知GPU选择方案,以便根据应用的GPU通信模式以及目标多GPU节点的物理拓扑将GPU设备分配给MPI进程.使用三种不同的指标来模拟物理拓扑特征:延迟、带宽和距离.使用这些度量来区分多GPU节点内的不同GPU与GPU之间的通信路径.

在本节中,提出了拓扑感知GPU选择方案,以便将内部节点GPU有效地分配给MPI进程,从而提高节点内部进程间GPU通信性能. 在方法中,利用GPU通信模式和节点的物理特性,并将拓扑感知GPU选择方案建模为GPU通信图被映射到GPU物理拓扑图上的图映射问题. 这个映射问题的一个给定的解决方案将指定一个特定的GPU分配给MPI进程.

通过在初始运行中剖析应用程序来提取GPU通信模式. 在这方面,测试MPI库以收集GPU进程间通信,并保存为方形矩阵. 矩阵捕获每对进程之间传输的GPU消息的总体积. 使用这个矩阵,构造一个GPU虚拟拓扑图,表示应用程序的GPU通信模式. 在该图中,顶点代表MPI进程,加权边代表每对进程之间GPU通信的存在和意义. 因此,边缘权重越高,关联的GPU对等体之间的通信量就越高.

使用三种不同的度量来反映不同拓扑级别在多GPU节点中的影响:延迟、带宽和距离. 对于每个度量标准,执行一系列测试来提取关联的物理拓扑矩阵文件(请注意,没有一个测试需要root访问权限). 使用生成的文件,构建GPU物理拓扑图. 此图中的顶点代表GPU设备索引,边代表两个GPU之间的连接强度. 所有的内节点GPU都能够相互通信,因此GPU物理拓扑图将是一个完整的图. 较高的边缘值分别表示基于等待时间,基于带宽和基于距离的物理拓扑图中的较低等待时间,较高带宽和较低通信距离.最后,对于基于距离的度量,使用NVML库中的一组API来提取节点上可用的不同GPU对的通信距离.根据检测到的最大拓扑级数(本文中为4),对于每个GPU对,将该最大值与该对拓扑级别值之间的差异存储到物理拓扑矩阵文件中.

2 结果与讨论

实验在一台6节点K80 Helios超级计算机的一个节点上进行.每个K80节点配备16个GPU,256 GB内存和两个Intel Xeon Ivy Bridge E5-2697 v2处理器. 每个Xeon处理器都提供12个内核,以2.7 GHz时钟速度运行. 因此,每个节点总共有24个核心. 此外,每个节点都运行一个64位的CentOS 6.7作为操作系统,使用Open MPI 1.10.2、CUDA 7.5和SCOTCH 5.8.最后,运行了16个MPI进程(每个GPU一个进程)的所有实验,这些进程均匀分布在两个插座的核心之间.

图2至图3显示了每个微基准通信时间改进的结果. 报告了拓扑感知方案在默认GPU选择上所取得的改进. 在每种情况下,报告四次运行的平均值,并包括标准差.

根据图2,对于没有环绕的未加权的2D和3D微基准,主要针对大于64 kB的消息大小实现了性能改进. 通过环绕连接,在2D情况下(图2(b)),对于任何度量标准,都不能实现性能改进. 还可以使用距离度量观察一些性能下降. 对于3D案例(图2(d)),所有指标在所有消息中都有相同的改进.

相反,在环绕连接中看不到相同的行为.实际上,虽然增加环绕连接将导致3D微基准标记的进一步改进,但没有观察到对2D微基准标记的任何改进,甚至可以看到一些性能下降.为了进一步研究这一点,分析了这些微基准的通信模式,有无环绕连接.注意到在3D微基准标记中的环绕连接将导致进程之间的通信彼此远离(按照默认方法分配给它们的GPU).一方面,两颗GPU之间距离越远,其通信性能就越低.另一方面,在2D情况下,增加环绕连接将导致大多数通信发生在GPU之间,并且它们之间具有更强的连接.总之,增加环绕连接使默认的GPU分配成为2D微基准标记通信模式的已经很好地匹配,而与3D微基准标记相反.

图2 拓扑感知GPU选择实现通信时间改进的选择方案图

图3 拓扑感知GPU选择通过子通信器的选择方案实现的改进图

3 小结

一般来说,可以观察到拓扑感知方案对大消息(大于16 kB)更有利.原因在于,不同级别小消息的延迟差异不如大消息带宽的差异.更具体地说,小消息的级别1、级别2和级别3到级别0的等待时间比率分别是1.01,1.17和1.57.对于大消息,级别0到级别1、级别2和级别3的带宽比率分别是2.47,4.22和4.47.因此,不同层次的频道之间的主要区别在于它们的带宽.对于较大的消息,不同拓扑级别的性能更加多样化,因为它们主要受底层通信通道的带宽特性影响.对于小消息,改进的空间要小得多(1.57的延迟比与4.47的带宽比相比).此外,小型消息通信受启动延迟的影响很大,这不受拓扑感知和用于GPU分配的特定策略的影响.考虑到这一点,仍然可以通过三个微观基准来获得小信息的性能改进.在另一些情况下,发现小消息的性能会有轻微下降.对这一趋势进行进一步的调查,以便为未来的工作发送小信息.设计一个针对小消息通信进行精细调整的方案属于未来工作的范围.

猜你喜欢
拓扑图度量级别
简单拓扑图及几乎交错链环补中的闭曲面
鲍文慧《度量空间之一》
基于含圈非连通图优美性的拓扑图密码
代数群上由模糊(拟)伪度量诱导的拓扑
突出知识本质 关注知识结构提升思维能力
级别分明
度 量
迈向UHD HDR的“水晶” 十万元级别的SIM2 CRYSTAL4 UHD
新年导购手册之两万元以下级别好物推荐
你是什么级别的