来源:市场资讯
(来源:华为计算)
大规模AI训练中,单点硬件异常就可能拖慢甚至中断整个任务,硬件可靠性已成为影响大规模 AI 集群稳定运行的关键因素。云原生操作系统可观测性项目HUATUO(华佗)正式支持昇腾的深度观测。该功能通过DCMI、PCIe和HCCN三类采集路径,持续监测设备状态、计算负载、存储可靠性和通信链路,将昇腾纳入了统一的Prometheus监测体系,在昇腾环境下实现了单次scrape采集72项硬件指标、端到端低时延的生产级性能,帮助AI集群快速发现并定位训练与推理过程中的异常。
昇腾的硬件可观测性基座
昇腾具备完善的硬件状态观测体系。通过DCMI,昇腾以C语言动态库(libdcmi.so)的形式,向操作系统层开放了以下核心查询能力:设备健康状态检测、实时功耗与温度读取、各运算部件(AI Core、Vector Core 等)的利用率统计、片上内存的显存容量与带宽信息、以及ECC纠错统计。配套的hccn_tool工具进一步提供了RoCE网卡链路状态与光模块物理层参数的查询能力,npu-smi则面向运维人员的人工诊断场景。
这套接口体系的设计原则是明确的:让硬件状态对上层软件透明可见,使无论是云原生可观测性平台、集群资源调度器,还是运维自动化工具,都能以标准化方式获取昇腾产品的实时运行状态。
在实际部署中,运维团队面临的核心挑战并非接口的有无,而是如何将不同来源、不同调用方式的硬件指标统一映射到Prometheus等主流监测体系中去。MindCluster作为昇腾官方的集群使能软件,在其内部提供了完整的DCMI接口Go封装和HCCN命令行工具封装,为社区开发者提供了清晰的上层集成范本。滴滴开源的HUATUO项目在此基础上,面向单机可观测性场景做了针对性适配,给出了一个完整的工程范例。
HUATUO的集成实践:从通用监测到昇腾算力可观测
HUATUO华佗,由滴滴开源并依托中国计算机学会(CCF)孵化的操作系统内核/Agent沙箱全景观测项目,广泛应用于通用计算、AI沙箱、云原生和基础设施等服务,其既有采集框架覆盖CPU、内存、网络、磁盘等通用资源, HUATUO团队将昇腾NPU算力资源统一纳管至其Prometheus监测体系。
在集成过程中,HUATUO设定了以下设计目标:
Prometheus原生暴露:所有指标遵循Prometheus数据模型,由HUATUO CollectorManager集中注册,无需额外部署独立exporter。
硬件维度全覆盖:覆盖设备健康、功耗、温度、电压、AI Core/Vector Core利用率、片上内存的容量与带宽、ECC错误统计、PCIe链路能力、RoCE网络状态、光模块物理层参数。
生产级采集性能:单次scrape须在Prometheus默认15秒超时窗口内完成。
细粒度按需启停:DCMI、PCIe、HCCN三类指标可独立配置启停。
方案深度参考了昇腾官方MindCluster的设计,具体体现在 DCMI接口选取、HCCN命令封装、架构分层三个层面。最终形态是一个三层架构的采集子系统——这是昇腾开放接口在真实生产环境中经受工程化检验的一个典型案例。
借鉴MindCluster:从官方参考实现到生产适配
DCMI接口子集选取:MindCluster的devmanager模块通过DeviceInterface 抽象暴露了80+设备管理方法,涵盖虚拟设备管理、芯片信息查询、故障事件订阅等广泛领域。HUATUO聚焦于指标采集场景,从中选取了与Prometheus监测直接相关的15个DCMI 函数进行封装——包括设备健康状态、功耗/温度/电压读取、各部件(AI Core、Vector Core、AI CPU、Ctrl CPU、片上内存)利用率和频率查询、片上内存详情与 ECC 纠错统计、PCIe信息采集等——在功能完整性与集成复杂度之间取得了平衡。
hccn_tool工具命令封装对齐:MindCluster的hccn_tool以link、bandwidth、stat、optical四条命令为骨架,通过逐行字符串解析将工具输出转化为结构化map。HUATUO完整沿用了这四条命令的功能语义和输出解析逻辑,并在 MindCluster的基础上增加了三项工程增强:并发信号量限流、Context 超时控制、以及1MB输出截断保护。
架构分层理念延续:MindCluster的分层架构为HUATUO提供了清晰的模块化范本。HUATUO据此构建了CollectorManager → ascendNpuCollector → DCMI/PCIe/HCCN三层采集子系统,实现了采集调度、接口调用、数据源的职责分离。与MindCluster的全量封装不同,HUATUO的DCMI层额外引入了引用计数和库生命周期管理,适配了单机采集器反复启停的使用场景。
架构剖析:三层采集体系如何驱动72项指标
HUATUO的NPU指标采集子系统采用了清晰的三层架构:
顶层:HUATUO CollectorManager,统一承接Prometheus的scrape请求。
中间层:昇腾NPU专属采集器,负责设备拓扑感知与多设备并行调度。
底层:三个独立采集通道——DCMI C 库(通过 purego 实现零 CGo 绑定)、PCIe sysfs文件系统、hccn_tool命令行封装。
三层之间的职责边界清晰,各通道解耦运行,充分体现了昇腾接口的分层设计在工程落地中的可组合性。
单设备采集阶段,最多11组goroutine全量并行(健康、功耗、温度、电压、5种利用率、3种频率、网络健康、片上内存、ECC、PCIe、HCCN),全部采用best-effort容错策略,单组失败不阻断其他组。采集结果统一附加card、device、host标签,支撑Prometheus多维聚合。
所有指标统一附加card(NPU 卡 ID)、device(芯片 ID)、host(主机名)标签,PCIe指标额外携带bdf(PCIe功能地址)标签,支撑Prometheus体系下的多维聚合。
接口利用中的工程洞察
以下四个关键工程决策,展示了昇腾接口在不同技术路线下的适应力:
DCMI与purego:从CGo到零摩擦调用
MindCluster的DCMI封装采用CGo+dlopen/dlsym方式动态加载libdcmi.so,每个函数调用经C包装层转发至实际动态库符号。HUATUO保留了相同的动态加载理念和接口语义,但将实现路径切换为purego——纯Go实现的跨平台动态库加载框架。这一调整消除了每次调用中的CGo线程切换开销,同时保留了编译时零C依赖的优势,更契合HUATUO纯Go的构建管线。HUATUO通过purego注册了15个DCMI函数(Health、Power、Temperature、Voltage、Utilization、Frequency、片上内存、ECC、PCIe等),覆盖了MindCluster DeviceInterface中与指标采集直接相关的子集。
HCCN网络指标:基于 MindCluster封装的工程增强
NPU网络侧指标(RoCE带宽、MAC统计计数器、光模块物理层信息)目前仅通过hccn_tool命令行工具对外提供。MindCluster的hccn/hccn_tool.go封装了4条核心命令(link、bandwidth、stat、optical),以map形式返回结构化数据。HUATUO沿用了这4条命令的封装模式和输出解析逻辑,并在此基础上增加了三项工程增强:信号量限流(最大32并发进程,防止PID表打满)、Context超时控制(5秒超时,避免僵尸子进程)、以及1MB输出截断(防止异常输出 OOM)。HCCN指标默认关闭,按需启用。开启后单设备scrape 时延约1.5秒,仍在Prometheus默认15秒scrape窗口内保有充裕余量。
全设备并行+全组并行:接口并发能力的极致发掘
HUATUO 早期版本的采集逻辑为全设备串行遍历,在 单设备环境下串行总时延达 8 秒。优化方案将设备遍历改为多路并发,单设备独立 goroutine,且设备内 11 次采集调用全部拆分为独立 goroutine,全链路 best-effort 容错。尽管 DCMI C 库内部存在全局锁,实验表明极限并发策略仍使总墙钟达到最优。这一结果说明,昇腾DCMI接口在并发调用场景下具备足够的吞吐承载力。
72项指标全景
HUATUO当前通过昇腾接口共对外暴露72个Prometheus指标:
DCMI指标(27 个):设备健康状态、功耗/温度/电压、部件利用率、时钟频率、片上内存详细信息、ECC 纠错信息、网络健康状态,以及向后兼容别名指标。
PCIe指标(4 个):链路能力与状态。
HCCN指标(41 个,默认关闭):RoCE 链路状态、上下行带宽、MAC与RoCE协议层统计计数器、光模块物理层指标。
以ECC为例:当片上内存多比特错误隔离页数累积至 64 页,标识可能存在物理坏块,运维流程为:隔离节点 → 切换热备 → 使用昇腾诊断工具收集日志 → 联系华为技术支持分析。
生态融合与后续演进
HUATUO已实现昇腾NPU核心监测指标的完整覆盖,后续演进方向包括:
采集与暴露解耦:借鉴MindCluster缓存架构,将HCCN慢速指标的采集与Prometheus scrape生命周期解耦,消除采集抖动对监测查询的影响。
故障设备动态隔离:自动识别持续超时设备并暂缓采集,避免单点故障拖累全集群采集效率。
多厂商加速器覆盖:扩展国内异构芯片监测能力,推动异构计算可观测性的标准化。
Grafana大盘模板:提供开箱即用的NPU监测仪表盘,降低社区上手成本。
共建开放可观测生态
HUATUO在昇腾上的集成实践,是昇腾硬件开放能力在真实生产场景中的一次深度验证。它展示了一条清晰的路径:昇腾提供标准化、高性能的硬件遥测接口,社区开发者基于这些接口快速构建贴合自身业务需求的监测方案,无需等待厂商提供端到端的定制化工具。
昇腾的 DCMI 接口、sysfs 硬件能力暴露、以及持续完善中的网络侧可编程接口,构成了 AI 算力可观测性的坚实基座。我们欢迎更多社区伙伴基于昇腾开放接口,构建面向各自场景的采集器、可视化方案与告警规则,共同推动国内AI 加速器在可观测性领域的标准化与生态繁荣。
• HUATUO GitHub:https://github.com/ccfos/huatuo
• 昇腾社区:https://www.hiascend.com
热门跟贴