专为大模型训练优化,百度集合通信库 BCCL 万卡集群快速定位故障

1    集合通信对分布式训练至关重要

在分布式训练中,每一块 GPU 只负责处理部分模型或者数据。集群中不同 GPU 之间通过集合通信的方式,完成梯度同步和参数更新等操作,使得所有 GPU 能够作为一个整体加速模型训练。

如果有一块 GPU 在集合通信中出了状况,将会导致其他 GPU 处于等待状态,直到这块 GPU 完成数据同步,集群中所有 GPU 才会开始后续工作。

所以,集合通信性能直接影响了分布式任务的速度,决定了集群中所有 GPU 能否形成合力加速模型训练。

为了最大提升集合通信的性能,在基础设施层面,集群通常采用基于 RDMA 的高性能物理网络,在任务运行时使用集合通信库进行加速。

2    大模型对系统的运维能力和稳定性提出新要求

我们知道,大模型的训练任务时长以周或月为周期,集群规模在千卡甚至万卡以上规模。这导致在整个任务过程中会发生各种故障,导致资源利用率不高或者任务中断。这使得大模型的训练任务,不能只看重集群规模和性能,更需要关注系统的运维能力和稳定性。

如果系统的运维能力和稳定性不够好,将会降低集群的「有效训练时长」,延长项目时间产生昂贵的时间成本。比如完成整个训练任务花了 30 天,结果有 10 天是在排除各类故障,这是不可接受的。

在分布式训练任务中,作为系统核心组件之一的集合通信库,同样需要面向大模型场景,在系统的运维能力和稳定性上进行优化。

3    百度集合通信库 BCCL 概述

百度集合通信库 BCCL(Baidu Collective Communication Library)是百度智能云推出的一款面向大模型训练场景优化的集合通信库,是百度百舸 3.0中的重要组件。

BCCL 基于开源的 NCCL 进行了功能扩展和能力增强,针对大模型训练场景在可观测性、故障诊断、稳定性等方面进行优化,进一步提升集合通信库的可运维能力。同时,BCCL 针对百度智能云的特定 GPU 芯片进行了集合通信性能优化,进一步提升资源利用率。相比 NCCL,BCCL 的关键特性如下:

  • 可观测性:新增集合通信带宽实时统计能力;
  • 故障诊断:新增集合通信 hang 时的故障诊断能力;
  • 稳定性:增强网络稳定性和故障容错能力;
  • 性能优化:提升大模型训练主流 GPU 芯片的集合通信性能。

接下来,我们将介绍 BCCL 在以上 4 个方面的能力。

4    可观测性:集合通信带宽实时统计

4.1    背景

在训练过程中,有时候会出现任务正常运行,但是集群的端到端性能下降的情况。出现这类问题,可能是集群中任一组件导致的。这时候就需要运维工程师对集群进行全面的检查。

4.2    问题

其中,存储系统、RDMA 网络、GPU 卡等通常都配有实时可观测性平台,可以在不中断任务运行的情况下判断是否存在异常。相比之下,针对集合通信性能的判断,则缺乏实时和直接的手段。目前,若怀疑集合通信存在性能问题,只能使用如下 2 种手段:

  • 使用 RDMA 流量监控平台进行故障排查。这种方法仅能间接推测出跨机集合通信性能是否有异常。
  • 停止训练任务释放 GPU 资源,使用 nccl-test 进行二分查找,最终锁定出现故障的设备。

虽然第 2 种方法可以完成集合通信异常的诊断,但是测试场景比较有限,只能判断是否有常规的硬件异常问题。同时整个过程中会导致训练中断,产生昂贵的时间成本。

4.3    特性和效果

BCCL 的实时集合通信带宽统计功能,可以在训练过程中对集合通信性能进行实时观测,准确地展示集合通信在不同阶段的性能表现,为故障诊断排除、训练性能调优等提供数据支撑。即使在复杂通信模式下,BCCL 通过精确的打点技术依然能提供准确的带宽统计的能力。

在集合通信性能异常的故障排除方面,可以进一步根据不同通信组的性能缩小故障范围。在混合并行模式下,可以通过多个性能异常的通信组的交集进一步确认故障节点。

在训练性能优化方面,可以评估该带宽是否打满硬件上限,是否有其他的优化策略,为模型调优提供更多的监控数据支撑。

5    故障诊断:集合通信故障诊断

5.1    背景

设备故障导致的训练任务异常停止,也是大模型训练任务时常发生的状况。故障发生后,一般都会有报错日志或者巡检异常告警,比如可以发现某个 GPU 存在异常。在训练任务异常时,我们只需要匹配异常时间点是否有相关异常事件或告警,即可确认故障 root cause。

除此之外,还存在着一类不告警的「静默故障」。当发生故障时,整个训练任务 hang 住,无法继续训练,但是进程不会异常退出,也无法确认是哪个 GPU 或哪个故障节点导致训练任务 hang。然而,此类问题的排查难点在于,该类故障不会立刻发生,训练任务可以正常启动并正常训练,但是在训练超过一定时间后(可能是几个小时或者数天)突然 hang 住。排查时很难稳定复现该故障,导致排查难度进一步提高。

5.2    问题

由于集合通信的同步性,当某个 GPU 出现故障时,其他 GPU 仍会认为自己处于正常地等待状态。因此,当通信过程中断时,没有 GPU 会输出异常日志,使得我们很难迅速定位到具体的故障 GPU。当上层应用程序在某一多 GPU 的集合通信操作中 hang 时,应用程序也只能感知到某个集合通信组(故障 comm)出现了问题,却无法精确地判断是哪个 GPU 导致了此次集合通信的异常。

运维工程师通常使用 nccl-test 来尝试复现和定位问题,但是由于压测时间短、测试场景简单,很难复现集合通信 hang。

在百度集团内部排查此类问题时,首先停止线上的训练任务,然后进行长时间的压测,比如对于现有训练任务模型进行切分,对集群机器进行分批次压测,不断缩小故障范围,从而确认故障机。排查代价通常需要 2 天甚至更多。这类故障排查的时间,将带来巨大的集群停机成本。

5.3    特性和效果

为了应对这一挑战,在训练任务正常运行时,BCCL 实时记录集合通信内部的通信状态。当任务 hang 时,BCCL 会输出各个 rank 的集合通信状态。运维工程师可以根据这些数据特征来进一步缩小故障 GPU 的范围。通过这种方法,BCCL 通过一种近乎无损的方式实现了故障机的快速定位,大幅度提高了问题排查的效率。

6    稳定性:网络稳定性和容错增强

6.1    背景

在模型训练过程中,单个网络端口偶发性的 updown 会导致当前进程异常,进而引起整个训练任务退出。然而,单端口的偶发性 updown 在物理网络是不可避免的。

6.2    特性和效果

BCCL 针对此类偶发性的异常场景,进行了故障容错以避免任务退出,提升训练任务的稳定性。

  • 控制面容错能力提升:在训练任务启动时,通常会由于偶发性的网络故障或其他故障导致训练任务启动失败。BCCL 针对常见的偶发性异常故障增加相应的重试机制,确保训练任务正常启动。
  • 数据面容错能力提升:在训练任务正常运行时,偶发性的网络抖动可能导致 RDMA 重传超次,从而导致整个训练任务异常。BCCL 优化了 RDMA 重传超次机制,提升训练任务的健壮性。

7    性能优化:集合通信性能优化

针对大模型训练场景的主流 GPU 芯片,集合通信性能还存在继续提升的空间,进一步对任务进行加速。

BCCL 针对百度智能云提供的主流的 GPU 芯片进行了深度优化。以双机 H800 测试环境为例,BCCL 相比 NCCL 带宽利用率可提升 10%。

图片

图片

图片

8    总结

2023 年 12 月 20 日,百度百舸·AI 异构计算平台 3.0 发布,它是专为大模型优化的智能基础设施。

借助 BCCL 在运维能力和稳定性进行的优化,使得百度百舸平台的有效训练时长达到 98%,带宽的有效利用率可以达到 95%。

大家可以访问 安装BCCL库 - 百舸异构计算平台AIHC | 百度智能云文档​​​​​​​,了解更多 BCCL 的相关信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/714826.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

1_SQL

文章目录 前端复习SQL数据库的分类关系型数据库非关系型数据库(NoSQL) 数据库的构成软件架构MySQL内部数据组织方式 SQL语言登录数据库数据库操作查看库创建库删除库修改库 数据库中表的操作选择数据库创建表删除表查看表修改表 数据库中数据的操作添加数…

性别和年龄的视频实时监测项目

注意:本文引用自专业人工智能社区Venus AI 更多AI知识请参考原站 ([www.aideeplearning.cn]) 性别和年龄检测 Python 项目 首先介绍性别和年龄检测的高级Python项目中使用的专业术语 什么是计算机视觉? 计算机视觉是使计算机能…

基于Camunda实现bpmn 2.0各种类型的任务

基于Camunda实现bpmn中各种类型任务 ​ Camunda Modeler -为流程设置器(建模工具),用来构建我们的流程模型。Camunda Modeler流程绘图工具,支持三种协议类型流程文件分别为:BPMN、DMN、Form。 ​ Camunda Modeler下载…

配置MySQL与登录模块

使用技术 MySQL,Mybatis-plus,spring-security,jwt验证,vue 1. 配置Mysql 1.1 下载 MySQL :: Download MySQL Installer 1.2 安装 其他页面全选默认即可 1.3 配置环境变量 将C:\Program Files\MySQL\MySQL Server 8.0\bin…

【Spring Boot 源码学习】BootstrapRegistry 初始化器实现

《Spring Boot 源码学习系列》 BootstrapRegistry 初始化器实现 一、引言二、往期内容三、主要内容3.1 BootstrapRegistry3.2 BootstrapRegistryInitializer3.3 BootstrapRegistry 初始化器实现3.3.1 定义 DemoBootstrapper3.3.2 添加 DemoBootstrapper 四、总结 一、引言 前面…

Avalonia学习(二十八)-OpenGL

Avalonia已经继承了opengl,详细的大家可以自己查阅。Avalonia里面启用opengl继承OpenGlControlBase类就可以了。有三个方法。分别是初始化、绘制、释放。 这里把官方源码的例子扒出来给大家看一下。源码在我以前发布的单组件里面。地址在前面的界面总结博文里面。 …

YOLOv9有效改进|使用空间和通道重建卷积SCConv改进RepNCSPELAN4

专栏介绍:YOLOv9改进系列 | 包含深度学习最新创新,主力高效涨点!!! 一、改进点介绍 SCConv是一种即插即用的空间和通道重建卷积。 RepNCSPELAN4是YOLOv9中的特征提取模块,类似YOLOv5和v8中的C2f与C3模块。 …

MySQL进阶:MySQL事务、并发事务问题及隔离级别

👨‍🎓作者简介:一位大四、研0学生,正在努力准备大四暑假的实习、 🌌上期文章:MySQL进阶:视图&&存储过程&&存储函数&&触发器 📚订阅专栏:MySQL进…

Docker Machine windows系统下 安装

如果你是 Windows 平台,可以使用 Git BASH,并输入以下命令: basehttps://github.com/docker/machine/releases/download/v0.16.0 &&mkdir -p "$HOME/bin" &&curl -L $base/docker-machine-Windows-x86_64.exe >…

点燃技能火花:探索PyTorch学习网站,开启AI编程之旅!

介绍:PyTorch是一个开源的Python机器学习库,它基于Torch,专为深度学习和科学计算而设计,特别适合于自然语言处理等应用程序。以下是对PyTorch的详细介绍: 历史背景:PyTorch起源于Torch,一个用于…

【真机Bug】异步加载资源未完成访问单例导致资源创建失败

1.错误表现描述 抽卡时,10抽展示界面为A。抽取内容可能是整卡或者碎片,抽到整卡,会有立绘展示和点击详情的按钮。点击详情后出现详情页B。【此时界面A预制体被销毁,卡片数据进入数据缓存池】点击页面B的返回按钮,单例…

C++——模版

前言:哈喽小伙伴们好久不见,这是2024年的第一篇博文,我们将继续C的学习,今天这篇文章,我们来习一下——模版。 目录 一.什么是模版 二.模版分类 1.函数模版 2.类模板 总结 一.什么是模版 说起模版,我们…

高性能通信之Netty

一, 同步IO(BIO)模型的架构 一般针对性能不高的情况下可以使用. 二,异步IO(NIO)模型的架构 多路复用(epoll模型):

【LeetCode:124. 二叉树中的最大路径和 + 二叉树+递归】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

【力扣hot100】刷题笔记Day19

前言 回溯回溯回溯!早上整理档案竟然用了桶排序,不愧是算法狂魔们 79. 单词搜索 - 力扣(LeetCode) DFS class Solution:def exist(self, board: List[List[str]], word: str) -> bool:m, n len(board), len(board[0])# used…

谈谈高并发系统的设计方法论

谈谈高并发系统的设计方法论 何为高并发系统?什么是并发(Conurrent)?什么是高并发(Hight Concurrnet)?高并发的衡量指标有哪些? 实现高并发系统的两大板块高并发系统应用程序侧的设计…

腾讯云学生服务器使用教程_申请腾讯云学生机详细流程

2024年腾讯云学生服务器优惠活动「云校园」,学生服务器优惠价格:轻量应用服务器2核2G学生价30元3个月、58元6个月、112元一年,轻量应用服务器4核8G配置191.1元3个月、352.8元6个月、646.8元一年,CVM云服务器2核4G配置842.4元一年&…

还在用Jenkins?快来试试这款简而轻的自动部署软件!

最近发现了一个比 Jenkins 使用更简单的项目构建和部署工具,完全可以满足个人以及一些小企业的需求,分享一下。 Jpom 是一款 Java 开发的简单轻量的低侵入式在线构建、自动部署、日常运维、项目监控软件。 日常开发中,Jpom 可以解决下面这些…

吴恩达机器学习全课程笔记第五篇

目录 前言 P80-P85 添加数据 迁移学习 机器学习项目的完整周期 公平、偏见与伦理 P86-P95 倾斜数据集的误差指标 决策树模型 测量纯度 选择拆分方式增益 使用分类特征的一种独热编码 连续的有价值特征 回归树 前言 这是吴恩达机器学习笔记的第五篇&#xff0c…

《2023跨境电商投诉大数据报告》发布|亚马逊 天猫国际 考拉海购 敦煌网 阿里巴巴

2023年,跨境电商API接口天猫国际、京东国际和抖音全球购以其强大的品牌影响力和市场占有率,稳坐行业前三的位置。同时,各大跨境电商平台消费纠纷问题层出不穷。依据国内知名网络消费纠纷调解平台“电诉宝”(315.100EC.CN&#xff…