文献阅读《TPU v4: An optically reconfigurable supercomputer for machine learning with hardware support ...》

1. 内容简介 1.1 摘要 为了应对机器学习(ML)模型的创新,生产工作负载发生了翻天覆地的变化。TPU v4 是谷歌第五个特定领域架构(DSA),也是第三台用于此类 ML 模型的超级计算机。光路交换机(OCS)可以动态地重新配置其互连拓扑结构,以提高规模、可用性、利用率、模块化、部署、安全性、功耗和性能;如果需要,用户可以选择扭曲的三维环形拓扑结构。与 Infiniband 相比,OCS 的成本更低、功耗更小、速度更快,OCS 和底层光学元件占系统成本的比例小于 5%,占系统功耗的比例小于 3%。每个 TPU v4 都包含 SparseCores 数据流处理器,可将依赖嵌入的模型加速 5-7 倍,但仅占用 5% 的芯片面积和功耗。自 2020 年部署以来,TPU v4 的性能是 TPU v3 的 2.1 倍,性能/瓦特数提高了 2.7 倍。TPU v4 超级计算机的芯片数量为 4096 个,是 TPU v3 的 4 倍,因此整体速度提高了近 10 倍,再加上 OCS 的灵活性和可用性,大型语言模型的平均训练速度可达到峰值 FLOPS/second 的 60%。对于类似大小的系统,它比 Graphcore IPU Bow 快 4.3-4.5 倍,比 Nvidia A100 快 1.2-1.7 倍,功耗低 1.3-1.9 倍。谷歌云能源优化仓库规模计算机内的 TPU v4 与典型内部数据中心的当代 DSA 相比,能耗降低约 2-6 倍,二氧化碳排放量降低约 20 倍。 ...

2024年6月15日 · 1 分钟

文献阅读《COSSIM: An open-source integrated solution to address the simulator gap for systems of systems》

1. 文章简介 1.1 摘要 在复杂的网络化异构系统时代,仅对设计中系统的部分、组件或属性进行独立仿真是不可行、不准确或不高效的。交互作用太多、太复杂,无法产生有意义的结果,而且以孤立的方式考虑系统的每个部分时,优化机会受到严重限制。所介绍的 COSSIM 仿真框架是首个已知的开源高性能仿真器,可全面处理包括处理器、外设和网络在内的系统;这种方法对 CPS/IoT 和高并行异构系统设计人员和应用开发人员都非常有吸引力。我们的高度集成方法通过精确的功率估算和安全子工具得到了进一步增强,这些工具可以挖掘所有系统组件,并对整个网络系统进行安全性和稳健性分析。此外,我们还开发了一个图形用户界面,以提供简便的仿真设置、执行和结果可视化。COSSIM 已在云计算和 CPS 系统的实际应用中进行了评估,显示出很高的准确性和性能,几乎与专用于模拟器的 CPU 数量成线性关系。 1.2 研究动机 针对CPS/IoT或依赖高度并行的异构系统的仿真场景,没有现有的、可靠的、高精度、高性能的工具 现有工具主要分为两类: 一种面向系统功能设计,针对物理器件、处理器、电子组件、用户行为、事件、消息等(Ptolemy、Matlab Simulink、Modelica-based Simulation Environments) 另外一种可以处理周期精度、功耗等,主要在WSN中广泛应用(TOSSIM、COOJA) 在云服务器仿真中常用的是:CloudSim及其衍生物 1.3 主要贡献 构建了一套COSSIM的仿真工具,具有高精度、高可信、高效的特点 仿真工具可以对系统性能、功耗、网络、安全等多方面进行评估 仿真工具主要面向两种系统:一种是Encompasses Systems(WSN、CPS、IoT等),另外一种是Cloud and Parallel/Distributed Systems 2. 实现方法 COSSIM主要针对的软件栈、动态网络、能耗仿真等几个方面 2.1 COSSIM组成 2.1.1 处理器仿真 主要使用 GEM5 对节点(处理器)进行仿真,它可以满足对周期精度、指令集、可配置等多个条件。但是由于GEM5不支持对能耗的仿真,因此使用 McPAT 对能耗进行补充 2.1.2 网络仿真 GEM5虽然可以支持到网络网卡(NIC)层级的仿真,但是不支持网络建模。使用 OMNET++ 处理从网卡层级及以上的仿真。 2.1.3 组件集成 需要在处理器仿真与网络仿真之间细心的设计通信接口和同步方案。使用 IEEE HLA 对网络数据、消息、同步等进行网络控制 2.2 COSSIM实现 用户输入系统配置、运行的应用、系统镜像、网络拓扑等参数,通过仿真可以得到处理器/网络状态、应用是模拟输出、功耗等信息 GEM5和McPAT模块用于仿真节点,在运行的时候是多个实例进行并行的 OMNET++用于多节点之间的网络模拟 在节点(GEM5)和网络(OMNET++)之间通过HLA进行时钟同步 使用嵌入的COSSIMlib控制节点间的同步策略和全局同步策略 同一个网络上可以有多个不同算力,不同配置的GEM5实例,且节点间需要同时交换信息,因此同步是必要的 3. 实验结果 COSSIM在移动视觉搜索应用和建筑管理系统应用上进行仿真和验证 3.1 移动视觉搜索 移动视觉搜索(Mobile Visual Search,MVS)是一个计算机视觉应用,主要分为图像分析和搜索两个阶段 ...

2024年6月7日 · 1 分钟

文献阅读《TOPOOPT: Co-optimizing Network Topology and Parallelization Strategy...》

WANG W, KHAZRAEE M, ZHONG Z, et al. TopoOpt: Co-optimizing Network Topology and Parallelization Strategy for Distributed Training Jobs \[Z\]. NSDI. 2023 https://www.usenix.org/conference/nsdi23/presentation/wang-weiyang 论文简介 1. 摘要 本文提出一种新的适用于DNN的直连结构网络$T_{OPO}O_{PT}$,它可以在计算、通信和网络拓扑三个维度上优化分布式训练的过程。我们演示了 AllReduce 流量的可变性,并利用此属性为 DNN 训练作业构建高效的网络拓扑。然后,$T_{OPO}O_{PT}$使用交替优化技术和名为TotientPerms的群论启发算法来找到最佳网络拓扑和路由计划以及并行化策略。我们构建了一个功能齐全的 12 节点直连原型,具有 100 Gbps 的远程直接内存访问 (RDMA) 转发。对真实分布式训练模型的大规模模拟表明,与类似成本的 Fat-tree 互连相比,TOPOOPT 将 DNN 训练时间减少了高达 3.4 倍。 2. 主要贡献 综合考虑了计算、通信和网络拓扑三个维度的优化策略 分析了MP与AllReduce的流量特征 利用AllReduce的流量可变性优化AllReduce路径 利用交替优化技术和TotientPerms算法来找到最佳网络拓扑 在12个节点的情况下,比传统的胖树网络降低了DNN的3.4倍训练时间 实现方法 1. $T_{OPO}O_{PT}$架构 假定有n个Server,每个Server有d个接口,每个接口连接一个Optical Seicth,共计需要d个Optical Switch。Optical Switch可以通过配置可以在内部视作直接连接任意两个端口,从而实现任意两个Server之间的直接连接。 论文中提到Server与Optical Switch之间的连接是使用RDMA网卡,并对其进行了修改:原生RDMA网卡会抛弃非本机的数据,修改后支持数据转发和数据中继。 TOPOOPT的网络连接方式 论文中称Server的端口数量d为Server的Degree,它决定着每个Server与其他Server的连接数量,也是 $T_{OPO}O_{PT}$ 算法的一个计算参数。 2. 交替优化策略 问题: 从计算、通信、网络拓扑三个维度对并行计算进行优化会产生一个非常大的搜索空间,导致该优化问题可能无法求得最优解。 ...

2024年5月16日 · 1 分钟

文献阅读《Adaptive and Hierarchical Large Message All-to-all Communication Algorithms...》

I. 前置内容 在了解集合通信(Collective Communication)之前要先了解点P2P对点通信(Point-to-Point)。P2P通信通常为两个不同进程间的通信,是1对1的; 在MPI规范中,既有同步阻塞的P2P接口:MPI_send和MPI_Recv接口,也定义了非阻塞的P2P接口如:MPI_Isend、MPI_Irecve。 集合通信和P2P通信是相对应的,集合通信则是1对多或是多对多的。在分布式系统中,各个节点间往往存在大量的集合通信需求,而我们可以用消息传递接口(Message Passing Interface,MPI)来定义一些比较底层的消息通信行为譬如Reduce、Allreduce、Scatter、Gather、Allgather等。 1.1 系统架构 集合通信算法的优化往往与其对应的网络拓扑和系统架构有直接关系,通常情况下,一个节点内的GPU-GPU或GPU-CPU之间的结构成为系统架构,节点之间的网络连接称为网络拓扑,一种确定的系统架构会有确定的网络拓扑架构。 在HPC领域有很多经典的系统架构和网络拓扑,例如:Summit system或者Lassen system等。本文主要由于发表于2021年,很多系统架构和指标数据与当先最新数据差异较大,但是为了方便后续的理解,本文后续还是以Summit system和Lassen system为例进行分析。 简化的Summit System和Lassen System(论文中的结构) 每个节点包含6个GPU和2个CPU,每3个GPU和1个CPU组成一个Group,使用NVLink进行连接,CPU与CPU之间使用X-Bus进行连接,同时与IB网卡使用PCIe进行连接,节点间使用IB协议进行组网。NVLink、NVSwitch、IB等硬件设备的概念将会在下一节中介绍。 1.2 相关组件 NVLink and NVSwitch NVLink和NVSwitch是一种可支持服务器内和服务器间实现高级多 GPU 通信的基础模组。第四代NVLink技术可为多 GPU 系统配置提供高于以往 1.5 倍的带宽,以及增强的可扩展性。第三代NVSwitch基于 NVLink 的高级通信能力构建,可为计算密集型工作负载提供更高带宽和更低延迟。 Mellanox InfiniBand InfiniBand(直译为“无限带宽”技术,缩写为IB)是一个用于高性能计算的计算机网络通信标准,它具有极高的吞吐量和极低的延迟,用于计算机与计算机之间的数据互连。InfiniBand也用作服务器与存储系统之间的直接或交换互连,以及存储系统之间的互连。常用的IB交换机/网卡带宽普遍为为400GB/s。 Remote Direct Memory Access (RDMA) RDMA是一种概念,在两个或者多个计算机进行通讯的时候使用DMA, 从一个主机的内存直接访问另一个主机的内存。 1.3 (Non-)Personalized All-to-All 1.3.1 Non-Personalized All-to-All Non-Personalized All-to-All(通常称为 MPI_Allgather)是一种 MPI 集体通信模式,是 MPI_Gather 和 MPI_Bcast 的结合。所有进程按等级顺序从其他进程收集数据。操作结束时,每个进程都将与所有其他进程交换数据。 1.3.2 Personalized All-to-All Personalized All-to-All称为 MPI_Alltoall,与 MPI_Allgather 类似,所有进程都相互共享数据。然而,每个进程都会向其他进程发送不同的数据,从而形成一种个性化的集体通信模式(即,每个进程都会向每个其他进程发送不同的数据块) 1.4 相关算法 1.4.1 Ring 每个进程i发送数据给(i+1) \ N并从(i-1) \ N接收数据,但是这种方法会带来过高的延迟。 ...

2024年5月7日 · 3 分钟

集合通信-通信原语

参考来源: 分布式训练常用的集合通信及其通信原语, 分布式训练常用的网络结构及集合通信拓扑算法 图片来源:volta-architecture-whitepaper 1 Broadcast Broadcast属于1对多的通信原语,一个数据发送者,多个数据接收者,可以在集群内把一个节点自身的数据广播到其他节点上。如下图所示,圈圈表示集群中的训练加速卡节点,相同的颜色的小方块则代表相同的数据。当主节点 0 执行Broadcast时,数据即从主节点0被广播至其他节点。 Broadcast是数据的1对多的同步,它将一张XPU卡上的数据同步到其他所有的XPU卡上,其应用场景有: 数据并行的参数初始化,确保每张卡上的初始参数是一致的; allReduce里的 broadcast + reduce组合里的broadcast操作; 分布式训练parameter server 参数服务器结构里的 master节点 broadcast 数据到worker节点,再从worker节点reduce数据回master节点里的broadcast操作; 2 Scatter 同Broadcast一样,Scatter也是一个1对多的通信原语,也是一个数据发送者,多个数据接收者,可以在集群内把一个节点自身的数据发散到其他节点上。与Broadcast不同的是Broadcast把主节点0的数据发送给所有节点,而Scatter则是将数据的进行切片再分发给集群内所有的节点,如下图所示,不相同的颜色的小方块代表不相同的数据,主节点 0 将数据分为四份分发到了节点0-3。 Scatter是数据的1对多的分发,它将一张XPU卡上的数据进行分片再分发到其他所有的XPU卡上,他的反向操作对应Gather,其应用场景有: ReduceScatter组合里的 Scatter操作; 模型并行里初始化时将模型scatter到不同的XPU上; 3 Gather Gather操作属于多对1的通信原语,具有多个数据发送者,一个数据接收者,可以在集群内把多个节点的数据收集到一个节点上,如下图所示,不相同的颜色的小方块代表不相同的数据。 Gather是数据的多对1的收集,它将多张XPU卡上的数据收集到1张XPU卡上,它的反向操作对应Scatter,其应用场景有: ReduceScatter组合里的 Scatter操作; 4 Reduce Reduce属于多对1的通信原语,具有多个数据发送者,一个数据接收者,可以在集群内把多个节点的数据规约运算到一个主节点上,常用的规约操作符有:求累加和SUM、求累乘积PROD、求最大值MAX、求最小值MIN、逻辑与 LAND、按位与BAND、逻辑或LOR、按位或BOR、逻辑异或LXOR、按位异或BOXR、求最大值和最小大的位置MAXLOC、求最小值和最小值的位置MINLOC等,这些规约运算也需要加速卡支持对应的算子才能生效。 Reuduce操作从集群内每个节点上获取一个输入数据,通过规约运算操作后,得到精简数据,如下图的SUM求累加和:节点0数值 5、节点1数值6、节点2数值7、节点3数值8,经过SUM运算后 累积和为 26,即得到更为精简的数值,在reduce原语里回会去调用 reduce SUM算子来完成这个求和累加。 Reduce是数据的多对1的规约运算,它将所有张XPU卡上的数据规约(比如SUM求和)到1张XPU卡上,其应用场景有: ...

2024年4月28日 · 1 分钟