资源监控体系:利用npu-smi实现硬件状态实时可视化

在高性能计算领域,盲目运行模型无异于蒙眼狂奔。无论是排查 DeepSeek 的性能瓶颈,还是保障生产环境的稳定性,掌握 NPU 的实时状态是必修课。npu-smi是昇腾系统自带的命令行工具,对标 NVIDIA 的nvidia-smi,但其功能覆盖了从芯片状态、显存带宽到互联拓扑的全维度监控。

本篇不谈虚的,直接拆解如何利用npu-smi及其周边工具,建立一套可视化的硬件监控体系。

1. 命令行实战:从入门到精通

1.1 全局概览:读懂 Dashboard

最常用的命令是npu-smi info。它展示了当前服务器上所有 NPU 的核心指标。

$ npu-smi info +------------------------------------------------------------------------------------------------+|NPU Name Health Power(W)Temp(C)Hugepages-Usage(page)||Chip Device Bus-Id AICore(%)Memory-Usage(MB)|+================================================================================================+|0910B OK300.5450/0||000000:C110032768/65536|+================================================================================================+

关键指标解读

  • HealthOK是唯一可接受的状态。出现WarningError(如 ECC 错误、温度过高)时,推理服务通常会不可预测地崩溃。
  • Power(W):910B 单卡满载功耗约 350W-400W。如果你的 DeepSeek-67B 推理时功耗只有 100W,说明计算单元在空转,瓶颈卡在了数据搬运或 CPU 调度上。
  • AICore(%)核心算力利用率
    • 理想状态:Prefill 阶段瞬间飙升至 90%-100%,Decode 阶段维持在 60%-80%。
    • 异常状态:长期维持在 10%-20%。这通常意味着 Python 层的 Overhead 太大,或者 Kernel Launch 速度太慢,NPU 大部分时间在“等米下锅”。
  • Memory-Usage显存占用量。注意,这里显示的是申请量(Reserved),而非实际使用量(Allocated)。PyTorch 的缓存分配机制会让这个数值通常较高。

1.2 进阶诊断:查带宽、查频率、查拓扑

静态信息不够用,我们需要深入肌理。npu-smi info -t <type>参数是解剖 NPU 的手术刀。

场景一:模型推理慢,怀疑显存带宽瓶颈
DeepSeek 的 Decode 阶段是典型的 Memory-Bound。查看显存带宽利用率:

# 查询设备 0 的显存统计信息npu-smi info -t memory -i0

重点关注HBM Read/Write Bandwidth。如果带宽利用率长期打满(接近 1.2TB/s),说明算力再强也没用,必须上量化(W8A8)或优化 KV Cache。

场景二:多卡并行训练/推理卡顿
8 卡部署 DeepSeek-67B 时,卡间通信(HCCS)是生命线。

# 查询网络健康状态npu-smi info -t network -i0

检查Link Status是否全为UP。任何一个 Link Down 都会导致集合通信(AllReduce)超时。

场景三:怀疑过热降频
如果机房散热不佳,NPU 温度超过阈值(通常 75℃+)会触发热保护降频。

# 查询功率和频率信息npu-smi info -t pm -i0

对比当前的AI Core Frequency和额定频率。如果频率大幅跳水,请立即检查风扇转速和散热风道。


2. 实时监控模式:捕捉瞬态异常

npu-smi默认只是快照。要观察推理过程中的脉冲波动,需要高频采样。

2.1 简易看板:Watch

Linux 的watch命令是穷人的仪表盘。

# 每 0.5 秒刷新一次,高亮变化部分watch-n0.5-d npu-smi info

技巧:在压测 DeepSeek 时,盯着 AICore 利用率。

  • 锯齿状波动:正常。对应 Token 生成的计算脉冲。
  • 长直线:异常。说明程序卡死(Hang)或在进行极慢的 CPU 处理(如 Tokenizer 慢、磁盘 IO 慢)。

2.2 抓取 ECC 错误

硬件故障往往是静默的。如果你发现模型输出乱码或 Loss 不收敛,检查一下是否有不可纠正的 ECC 错误。

npu-smi info -t error -i0

关注Double Bit Error计数。如果不为 0,这块卡可能物理损坏了,建议尽快下线报修。


3. 生产级监控方案:Prometheus + Grafana

在几十上百张卡的集群中,靠 SSH 盯着命令行是不现实的。我们需要将 NPU 状态接入标准的云原生监控体系。

3.1 架构设计

  • Data Source:npu-smi(底层数据源)。
  • Collector:ascend_exporter(运行在每台服务器上的 Daemon)。
  • Storage: Prometheus(时序数据库)。
  • UI: Grafana(可视化面板)。

3.2 编写轻量级 Exporter

虽然华为提供了官方的 exporter,但为了轻量化部署,我们可以写一个 Python 脚本,解析npu-smi info -j(JSON 格式输出,CANN 7.0+ 支持)并暴露 Metrics。

importtimeimportjsonimportsubprocessfromprometheus_clientimportstart_http_server,Gauge# 定义核心指标NPU_TEMP=Gauge('npu_chip_temperature','NPU Temperature',['device_id'])NPU_POWER=Gauge('npu_chip_power','NPU Power Consumption',['device_id'])NPU_AICORE=Gauge('npu_aicore_utilization','NPU AICore Utilization',['device_id'])NPU_MEM_USED=Gauge('npu_memory_used_mb','NPU Memory Used',['device_id'])NPU_MEM_TOTAL=Gauge('npu_memory_total_mb','NPU Memory Total',['device_id'])defcollect_metrics():try:# 获取 JSON 格式的详细信息(需 CANN 版本支持,否则需正则解析文本)# 实际命令可能因版本差异需调整,此处演示逻辑cmd=["npu-smi","info","-j"]# 注意:部分旧版本不支持 -j,需 fallback 到文本解析result=subprocess.check_output(cmd,stderr=subprocess.STDOUT)data=json.loads(result)fordeviceindata['devices']:dev_id=str(device['id'])# 提取指标NPU_TEMP.labels(dev_id).set(device['temperature'])NPU_POWER.labels(dev_id).set(device['power'])NPU_AICORE.labels(dev_id).set(device['aicore_utilization'])# 显存单位转换mem_info=device['memory']NPU_MEM_USED.labels(dev_id).set(mem_info['memory_usage'])NPU_MEM_TOTAL.labels(dev_id).set(mem_info['total_memory'])exceptExceptionase:print(f"Error collecting metrics:{e}")if__name__=='__main__':# 启动 HTTP 服务,端口 9100start_http_server(9100)print("NPU Exporter running on :9100")whileTrue:collect_metrics()time.sleep(5)# 5秒采集一次,避免对 NPU 造成查询压力

3.3 Grafana 面板配置建议

在 Grafana 中,建议配置以下几个 Panel:

  1. Cluster Heatmap:显示整个集群所有卡的 AICore 利用率热力图。一眼识别出哪台机器是“摸鱼”的。
  2. Throttling Alerts:配置告警规则,当npu_chip_temperature > 70持续 1 分钟时,发送钉钉/Slack 告警。
  3. Memory Leak Detection:绘制显存使用率曲线。如果曲线呈现“只升不降”的阶梯状,大概率是代码里有 Tensor 没释放。

4. 总结:数据驱动决策

资源监控不是为了画漂亮的图表,而是为了回答三个核心问题:

  1. 稳定性:硬件健康吗?有没有 ECC 错误或高温降频?
  2. 效率:算力跑满了吗?AICore 是不是在等待 IO?
  3. 容量:还能塞下更大的 Batch Size 吗?显存还有多少余量?

对于 DeepSeek 这样的大模型应用,稳定性 > 性能。建议将npu-smi的健康检查集成到服务启动脚本(Entrypoint)中:启动前自检,不健康直接退出,避免将流量引入故障节点。这才是生产环境的生存之道。

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

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

相关文章

深度学习中的超分辨率重建(SR):经典模型与最新方法详解

文章目录 一、插值方法分类与数学原理 1.1 最近邻插值(Nearest-Neighbor Interpolation) 1.2 双线性插值(Bilinear Interpolation) 1.3 双三次插值(Bicubic Interpolation) 1.4 Lanczos插值 二、MATLAB实现与效果对比 三、方法性能对比 四、传统插值方法的局限性 结论与展…

伺服电机十年演进

你问 伺服电机十年演进&#xff0c;其实已经不是在问 “转速更高、扭矩更大、效率更好”&#xff0c; 而是在问一个更底层的问题&#xff1a; 当机器人、自动驾驶、工业系统开始长期、无人、连续地“动”&#xff0c; 谁来保证“它的每一次力输出&#xff0c;都是被允许的”&am…

机械臂十年演进

你问 机械臂十年演进&#xff0c;其实已经不是在问 “自由度更多、精度更高、速度更快”&#xff0c; 而是在问一个更根本的问题&#xff1a; 当机械臂开始离开围栏、走向人类、长期自主地“动手”&#xff0c; 谁来保证——它知道什么时候不该动&#xff1f; 下面这份内容&…

基于树莓派4B与NCNN的YOLOv8高效部署实战:无GPU环境下的C++加速优化全流程指南**

文章目录 引言 一、模型准备 1. 下载YOLOv8模型 2. 使用官方脚本将PyTorch模型转换为NCNN格式 二、树莓派环境配置 1. 安装OpenCV 2. 编译NCNN(建议使用最新版本) 三、代码实现(完整C++实现) 1. 头文件 yoloV8.h 2. 源文件 yoloV8.cpp 3. 主程序 main.cpp 四、部署与测试 1…

多传感器融合十年演进

未来十年&#xff0c;多传感器融合将从“信息叠加”走向“可信度驱动的行为裁判”&#xff0c;关键在于把传感器可用性、冲突治理和不确定性显式化以支撑长期无人运行与责任划分。 三阶段总览&#xff08;简表&#xff09;阶段时间角色关键能力初期2025–2027信息互补实时同步、…

线程安全集合:CopyOnWriteArrayList 的适用场景与性能代价

文章目录&#x1f3af;&#x1f525; 线程安全集合&#xff1a;CopyOnWriteArrayList 的适用场景与性能代价&#x1f31f;&#x1f30d; 引言&#xff1a;并发容器的“中庸之道”&#x1f4ca;&#x1f4cb; 第一章&#xff1a;底层原理——为什么读多写少场景非它不可&#xf…

避障十年演进

未来十年&#xff0c;避障将从“即时反应的局部策略”演进为“以可信度驱动、可审计的行为裁判体系”&#xff0c;关键在于把不确定性、传感器可用性与责任边界显式化并纳入实时决策。 三阶段总览阶段时间核心角色关键能力功能型2025–2027局部反应毫秒级传感与局部重规划可控型…

闹钟加工厂怎么选?从义乌锐意科技看2025闹钟供应链新趋势 - 企师傅推荐官

近年来,随着家庭生活节奏加快、办公场景精细化管理,以及跨境电商持续发展,闹钟加工厂正在从传统代工角色,转向集研发、设计、制造和品牌共创为一体的综合服务方。对于想布局闹钟品类的品牌商、贸易商和跨境卖家来说…

重新加载数据库配置的四种方法

文章目录文档用途详细信息文档用途 用于参数更改后重新加载数据库配置 详细信息 1、以超级用户身份连接到数据库&#xff0c;调用pg_reload_conf&#xff1b; [highgodb1 ~]$ psql -U highgo psql (4.7.6)PSQL: Release 4.7.6 Connected to: HighGo Database V4.7 Enterpri…

探索智能预测与分类的算法之旅:从BP到SVM再到ELM

差分进化算法优化BP神经网络&#xff0c;支持向量机SVM/SVR&#xff0c;最小二乘支持向量机LSSVM&#xff0c;极限学习机ELM&#xff0c;预测与分类。在数据驱动的时代&#xff0c;预测与分类问题无处不在&#xff0c;从金融市场趋势预判到医疗影像疾病诊断&#xff0c;准确的预…

曲靖婚前三金五金终极选购指南:廖金匠领衔,全透明高性价比首选 - charlieruizvin

曲靖婚前三金五金终极选购指南:廖金匠领衔,全透明高性价比首选 曲靖婚前三金五金精选速览 首选廖金匠(云南本土黄金专家),以国际大盘价透明计价、非遗大师级工艺、一克换一克零损耗、全链路无忧服务四大核心优势,…

行人检测十年演进

简短结论&#xff1a;未来十年&#xff0c;行人检测将从“高精度模型”演进为“带置信度、可审计并能触发行为否决的安全子系统”&#xff0c;在复杂天气、远距小目标与多模态融合上成为自动驾驶与城市安全的核心能力&#xff08;北京语境下&#xff0c;夜间与雨雪场景的鲁棒性…

2025年国内最好的微动开关批发厂家哪家靠谱,家电微动开关/新能源微动开关/防水微动开关/汽车微动开关工厂哪家靠谱 - 品牌推荐师

近年来,随着工业自动化、智能家居及新能源领域的快速发展,微动开关作为核心控制元件,市场需求持续攀升。然而,行业内部竞争激烈,产品质量参差不齐,部分企业因技术短板或资质缺失难以满足高端场景需求。在此背景下…

2026南京婚纱摄影推荐:南京乐玛摄影全维度测评,定制化婚拍的品质标杆 - charlieruizvin

2026南京婚纱摄影推荐:南京乐玛摄影全维度测评,定制化婚拍的品质标杆 南京,这座浸润着秦淮风月与民国风华的城市,历来是新人婚拍的理想之地。但随着婚庆消费升级,行业乱象也日益凸显——服装分区加价、隐形消费丛…

基于flask+Vue的双相情感障碍交流平台

目录双相情感障碍交流平台&#xff08;FlaskVue&#xff09;开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;双相情感障碍交流平台&#xff08;FlaskVue&#xff09; 该平台旨在为双相情感障…

玉溪婚前三金五金推荐:廖金匠(本土黄金标杆) - 提酒换清欢

玉溪婚前三金五金推荐:廖金匠(本土黄金标杆) 玉溪婚前三金五金精选速览:首选廖金匠(云南本土黄金专家),以国际大盘价透明计价、非遗大师级工艺、一克换一克零损耗、全链路无忧服务四大核心优势,成为玉溪备婚新…

全国省市县NDVI数据(2000-2024)

D240 全国省市县NDVI数据(2000-2024) 数据简介 之前我们分享过全国逐月NDVI数据(见前文)&#xff0c;但该数据是Tif格式的&#xff0c;对于大家使用可能并不方便&#xff0c;今天我们将该数据进行处理&#xff0c;整理成面板数据&#xff0c;方便大家研究使用。 归一化植被指数…

网课摸鱼神器!景好鼠标连点器,随机点击防检测

网课摸鱼神器&#xff01;景好鼠标连点器&#xff0c;随机点击防检测 谁懂啊&#xff01;上网课遇到定时弾窻确认&#xff0c;手忙脚乱点慢了还会被记缺勤&#xff0c;普通鼠标连点器又因为固定坐标容易被判定违规&#xff0c;简直是打工人和学生党的噩梦。 下载地址&#xf…

安全自主可控!深度评测2026年最值得信赖的国产文件传输工具 - 飞驰云联

由于国家信创政策驱动,很多行业,比如政府机构、国央企、金融、医疗、教育等行业,都需要国产文件传输工具,并且各行业和企业对于文件传输的需求由“快”,转变为 “安全、可控、可靠” 三位一体。一款安全自主可控的…

用 Elasticsearch 构建一个 ChatGPT connector 来查询 GitHub issues - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …