新特性!支持 AI 计算硬件故障检测
3月5日,十四届全国人大四次会议,国务院总理李强向 《政府工作报告》中明确提出,“支持人工智能开源社区建设,促进开源生态繁荣”,中国开源史上悄然翻开新章程。
HUATUO 新版本开源 AI 计算场景下硬件故障检测功能!
业务痛点
大规模分布式模型训练需要在多达数千台机器上协同训练。如此庞大复杂的系统涉及海量的计算、通信、存储资源以及软件支持,因此发生故障的概率很高,可能导致训练任务失败。根据实际经验,每个训练任务平均每天会遇到约两次故障,有时会导致训练整体暂停数小时,故障检测已成为分布式训练的重要挑战。
注:故障数量随着训练规模增长而增长。
根据观察,训练中故障通常起源于单机问题(例如 CUDA 错误、NVLink 错误),但会产生级联效应,最终导致整个任务中断或明显减速。例如通信过程中的硬件 ECC 错误可能触发 NCCL 超时或网络断连,进而导致数百台机器同时停止并空闲。
真实案例 PCIe 降速,某次 128 台机器训练任务因一台机器的 PCIe 链路从 800Mbps 降至 500Mbps,导致通信严重拥堵,数千张 V100 GPU 利用率大幅下降,整整慢了 40 分钟。
故障类型
下列出了常见故障类型、发生频率,以及各类监控指标能够表征该故障的比例。
通过分析上述表格,结论如下:硬件故障占主导(55.8%),其中 ECC 错误占比最高(38.9%)。单一指标无法覆盖所有故障,因此需要一种硬件级故障检测能力,而 HUATUO 华佗正式开源了该能力。
HUATUO 最新版本支持硬件故障类型:
- CPU, L1/L2/L3 Cache, TLB
- Memory, ECC
- PCIe
- Network Interface Card Link
- PFC/RDMA
- ACPI
- GPU MetaX
实战应用
HUATUO 通过事件触发实时感知各硬件模块上报的故障信息:故障类型,设备标识,错误信息,时间戳等。
网卡故障,该故障信息被存储在部署华佗组件的服务器,huatuo-local/netdev_event,以及配置的 Elasticsearch 存储服务。其中本地存储的信息格式如下:
|
|
.linkstatus 数值类型还可能为:
|
|
网卡故障,硬件丢包指标:
|
|
网卡 RDMA PFC 网络拥塞:
|
|
Linux 内核 RAS 硬件故障指标:
|
|
|
|
内存故障
如下是线上机器内存故障监控,以及详细故障信息。
|
|
网卡故障
如下是HUATUO 华佗捕获的线上服务器的网卡物理链路不可用事件(最终确认光模块弱导致),该故障导致使线上业务应用指标抖动。
交换机侧确认光模块问题
原理剖析
HUATUO 华佗总体架构如下,支持各种硬件类型故障检查。
HUATUO 基于 Linux 内核 MCE 和 RAS 技术,通过 eBPF 捕获关键硬件事件,获取硬件设备信息。RAS 在 Linux 内核一直在不断演进发展,从内核 2.6 版本开始逐步的引入更多 tracepoint 点。这种轻量级,事件驱动的实现方式能够覆盖绝大多数高频硬件故障场景。此外 HUATUO 还支持 PFC/RDMA,网卡物理链路状态的检查。