你好,这里是 zzudongxiang 👋

记录技术、数学与生活。

文献阅读《Mystique: Enabling accurate and scalable generation of production AI benchmarks》

1. 挑战与贡献 挑战 模型的多样性和更新速度无法与云基础设施上不断变化、高度多样化的人工智能生产工作负载相匹配 工程师或研究人员需要手动选择现有的生产或开源工作负载,并将其调整为可用于基准测试的形式 贡献 框架:建立了一个可扩展的自动化端到端基础设施,可对真实生产型人工智能工作负载的执行轨迹进行剖析和重现 高精度:通过在warehouse-scale fleet中运行的几个 PyTorch 生产工作负载对 Mystique 进行了评估,结果表明,生成的基准在性能和系统级指标方面与原始基准非常接近 可移植性:展示了跨平台生成基准的可移植性,并评估了 Mystique 可应用的几种情况,包括早期平台评估、子轨迹重放和缩小性能测试 2. 相关工作 Benchmark DeepBench:提供了一套深度神经网络(DNN)使用的基本操作,并在不同平台上对其进行了评估 TBD:确定了八个具有代表性的 DNN 模型,并在不同的深度学习框架和硬件配置上进行了详细的性能分析 DAWNBench:测量训练和推理的端到端性能,以规定的精度为前提,允许软件、算法、通信方法的创新 MLPerf:目前最为流行的Benchmark 仿真工具 Sniper:并行、可扩展的CPU仿真工具,对多核和多处理器进行高度抽象 gem5:一种微架构的仿真器,目前适用于仿真GPU GPGPU-Sim:提供一种时钟周期级别的仿真工具,可以对运行CUDA和OpenCL的Nvidia GPU进行仿真 性能建模 Daydream:根据内核-任务依赖图预测模型在某些优化条件下的运行时间 Habitat:使用波形缩放和 MLP 预测 DNN 训练的执行时间 CM-DARE:提出了一种利用云端 GPU 服务器进行分布式训练的性能模型 性能收集 MicroGrad:收集CPU指标,并使用基于梯度下降的调整机制来生成工作负载克隆和压力测试 PerfProx:根据硬件性能计数器得出的性能指标,生成真实世界数据库应用程序的miniature proxies CAMP:模拟核心性能、内存位置以及它们之间的相互作用,以模仿BigData应用程序 ECHO:重点是利用统计模型克隆分布式云应用中的网络行为,并生成与原始服务的定位和流量特征相似的合成基准 Ditto:提出了一种自动克隆框架,该框架可捕获分布式云应用程序的低级和高级性能指标 G-MAP:为 GPU 应用程序的内存访问模式和并行性建模,以创建内存代理 GPGPU-MiniBench:生成 CUDA GPGPU 内核的miniature proxies,以保持相似的性能 3. 相关背景 Pytorch ATen ops:低层级的Tensor库,是Pytorch的后端,用于执行真实的计算任务(加法、矩阵乘法等) Communication ops:多设备之间的分布式训练通信,通常为异步的。在Pytorch中c10d是一个非常流行的通信库,提供了大量的集合通信API和P2P通信API Fused ops:融合操作,是一种计算加速优化方法,可以把多个操作融合成一个运算操作。CPU中常用NNC作为融合操作的后端,GPU中为NVFuser Custom ops:允许用户实现比默认实现更好的模型块 4. Mystique设计 ...

2026年9月12日 · 1 分钟

文献阅读《Alibaba HPN: A Data Center Network for Large Language Model Training》

Alibaba High Performance Network (HPN) HPN介绍了一种两层的双平面网络,可以在一个Pod中接入1.5w个GPU,通常需要3层Clos架构的网络才能容纳这么多GPU HPN 提出了一种新的双 ToR 设计,以取代传统数据中心网络中的单 ToR 1. 贡献与挑战 挑战 流量模式 传统网络无法应对LLM的低熵、周期性、突发的网络特点,传统的数据中心网络一般是高熵的(传统网络中会存在百万条流,但是每条流的利用率特别低,一半小于20%) ECMP在传统的数据中心的高熵、低利用率的网络中性能表现较好,但是在LLM训练中并不是最佳的 单点故障的敏感性高 LLM训练是一个同步过程,所有GPU合作完成一系列迭代,任何一个GPU发生故障都有可能导致整个训练过程出现问题 对LLM训练影响最大的是与机架顶部(ToR)相关的单点故障,这种故障可能会影响到各种GPU 生产统计数据显示,LLM训练中出现的故障造成的损失是一般云计算故障的 20 倍 贡献 非堆叠的双层ToR网络,可以在两个交换机之间直接同步,很好的改善了大规模部署的可信度 适配最新的51.2Tbps的交换机芯片,可以将1K个GPU部署在Tier 1网络中,使96.3%的训练任务获得高性能的网络 我们的实验表明,使用HPN的LLM训练吞吐量比传统数据中心网络高14.9倍 2. 背景知识 LLM的并行策略 DP:每次迭代使用All Reduce同步计算梯度数据 PP:每次使用Send/Recv传递中间结果 TP:每次迭代使用All Reduce/All Gather同步输出和对应的梯度 LLM的流量特征 带宽利用率周期性突发 流的数量少 传统的数据中心网络不适用于LLM流量模式 LLM对单点故障的敏感性 LLM每次的Checkpoint间隔大概在2-4小时,按照一个3k张GPU的集群计算,每次失败导致的回滚都将导致大约3w美元的损失 常见的监控工具和异常分析工具并不能避免网络产生故障,根据实验表明,在NIC到ToR之间每个月大概有0.057%的Link故障率,在ToR交换机每个月的故障率大约是0.051%,即一个LLM训练集群每个月可能会产生1-2次的Crash,5k-60k次的Link故障 LLM网络架构的建设目标 规模化:达到15K个GPU的规模,未来可以扩展到100K个GPU的规模 高性能:尽可能小的网络跳数,尽可能使用GPU-GPU直达的连接 单点故障容错率:在网络拓扑层尽可能改善单点故障的容错率 3. HPN架构 分为前端网络和后端网络,前端网络主要负责例如管理、接口、存储等网络流量,后端网络负责LLM的训练时的流量 每个Host包含8个GPU,使用NVLink互联,双向带宽达到400GBps-900GBps 每个Host包含9个2x200Gbps的网卡,其中一个连接到前端网络,其余的8个与GPU直连,接入后端网络 每个网卡的2个端口分别连接至不同的ToR网络,这种双ToR设计可以避免单点故障 4. 双ToR网络 传统数据中心的NIC的两个光缆接入一个交换机成为单ToR设计 双ToR设计将NIC的两个光缆接口分别接入不同的ToR交换机中 两个接口配置相同的IP和MAC地址,即使其中一个ToR故障,另外一个依旧可以正常工作 基于以上,同一个NIC的两个网卡共享相同的Queue Pair Context ...

2024年8月28日 · 1 分钟

文献阅读《xCCL: A Survey of Industry-Led Collective Communication Libraries for Deep Learning》

we survey the current state-of-the-art collective communication libraries (namely xCCL, including NCCL, oneCCL, RCCL, MSCCL, ACCL, and Gloo), with a focus on the industry-led ones for deep learning workloads. 常见的MPI库:MPICH、MVAPICH、OpenMPI 其他的非MPI库:OpenSHMEM(Open-source Symmetric Hierarchical MEMory)、UCX(Unified Communication X)、UCC(Unified Collective Communication) 常见的xCCL库:NVIDIA Collective Communications Library (NCCL)、AMD’s ROCm Collective Communication Library (RCCL)、Gloo 1. 贡献与挑战 挑战 什么让同时代的xCCL比MPI更具有吸引力? 每种集合通信库的性能特性如何? 这些xCCL库是如何设计的?是否存在某种共享的设计模式? 贡献 总结和研究集合通信原语、网络拓扑、算法,为同时代的深度学习训练奠定基础 讨论这些研究的工业集合通信解决方案以及其细节测试 对比当前的集合通信库的性能情况 2. 集合通信原语 Broadcast:常用于将训练数据发送到各个设备上 All Reduce:广泛应用于分布式神经网络训练的后向传播阶段 All Gather、Scatter、All-to-All、Reduce、Reduce Scatter 3. 网络拓扑架构 3.1 HyperCube 优点:高度的连接性,不容易发生故障 ...

2024年8月26日 · 3 分钟

《ASTRA-sim 系列两篇》

《ASTRA-SIM: Enabling SW/HW co-design exploration for distributed DL training platforms》 1. 文章简介 1.1 摘要 现代深度学习系统主要依靠基于高性能加速器(如 TPU、GPU)的硬件平台进行分布式训练。目前的例子包括谷歌的云 TPU 和 Facebook 的 Zion。DNN 训练涉及 DNN 模型架构、并行化策略、调度策略、集体通信算法、网络拓扑和终端加速器之间复杂的相互作用。随着人工智能/ML 模型的创新不断加速发展,需要一种全面的方法来理解和驾驭未来系统中复杂的 SW/HW 设计空间,以支持未来 DNN 模型的高效训练。在这项工作中,我们做出了以下贡献:(i) 为分层扩展结构上的分布式训练建立了 SW/HW 设计空间;(ii) 开发了一个用于导航设计空间的网络模拟器;(iii) 展示了算法拓扑协同设计加速端到端训练的前景。 1.2 研究动机 对模型架构、并行策略、调度算法、集合通信、网络拓扑、终端算力的仿真 大规模并行训练成本高,在实际部署和训练之前,需要一个仿真工具进行评估 1.3 主要贡献 为分层加速器结构设计空间探索建立 SW/HW 设计空间,并确定扩展 DL 工作负载的关键瓶颈 开发名为 ASTRASIM 的端到端网络模拟器,用于评估设计空间的各个方面 使用 ASTRA-SIM 对 alltoall 和 Torus 拓扑的 all-reduce 和 all-to-all 集合的一维、二维和三维拓扑进行全面分析 2. 实现方法 3. 实验结果 实验参数 ...

2024年6月15日 · 1 分钟

文献阅读《Chakra: Advancing performance benchmarking and co-design using standardized execution traces》

1. 文章简介 1.1 摘要 基准测试和协同设计对于推动 ML 模型、ML 软件和下一代硬件的优化和创新至关重要。全工作量基准(如 MLPerf)在实现不同软件和硬件堆栈之间的公平比较方面发挥着至关重要的作用,尤其是在系统完全设计和部署之后。然而,人工智能创新的步伐要求模拟器和仿真器采用更加敏捷的方法来创建和使用基准,以实现未来的系统协同设计。我们提出了 Chakra,这是一种开放式图模式,用于标准化工作负载规范,捕捉关键操作和依赖关系,也称为执行跟踪(ET)。此外,我们还提出了一套互补的工具/功能,使各种模拟器、仿真器和基准能够收集、生成和采用 Chakra ET。例如,我们使用生成式人工智能模型学习数千种 Chakra ET 的潜在统计属性,并使用这些模型合成 Chakra ET。这些合成的 ET 可以混淆关键的专有信息,还可以针对未来的假设场景进行设计。举例来说,我们展示了一个端到端的概念验证,它能将 PyTorch ET 转换为 Chakra ET,并以此驱动一个开源训练系统模拟器(ASTRA-sim)。我们的最终目标是建立一个充满活力的全行业敏捷基准和工具生态系统,以推动未来的人工智能系统协同设计。 1.2 研究动机 Full Workload Benchmarks对于评价分布式训练的性能虽然非常重要,但是需要更加敏捷的方式 评价分布式训练的软硬件联合设计的效果 不同的AI/ML模型通常由不同的公司在不同的平台上构建,通常不能提供公开模型的细节 缺少在不同的组织之间交换ML模型ET的统一架构 缺少完善的性能评估工具链 目前的方法缺乏合成ET的能力 以Pytorch为例,可以使用Execution Graph Observer获取直接的ET,但是这种方法得到的结果受真实的系统的限制(例如NPU数量,计算时间,网络延迟等),使用合成的ET可以避免这些限制 1.3 主要贡献 捕捉相关执行和依赖信息的 Chakra ET 可视化器、转换器和模拟器等开源工具链 人工智能生成模型的ET合成 2. 实现方法 2.1 设计需求 应该包含内存访问、计算负载、网络通信、并行策略 应该最小化且可扩展 应该从性能建模的角度对 ML 执行的各个方面进行建模 应该能显示不同执行阶段的ET,且与设备解耦 2.2 实现方案 2.2.1 ET的表示 A. Chakra Node type的值范围 INVALID 字段的初始值,用于忽略非关键节点 MEM_LOAD、MEM_STORE COMP COMM_SEND、COMM_RECV、COMM_COLL B. Chakra Attribute type的值范围 ...

2024年6月15日 · 1 分钟