当前位置: 首页 > news >正文

写给新手的 driver:昇腾驱动到底是啥?

之前帮新装的兄弟配置环境,他问我:“哥,我装完 CANN,还要装啥?代码能跑,但 npu-smi 看不到设备。”

我说你驱动没装对。

好问题。今天一次说清楚。

driver 是啥?

driver 是昇腾的设备驱动。让操作系统能识别和管理昇腾硬件。

一句话说清楚:driver 是昇腾的硬件驱动,装了才能用npu-smi看设备、跑模型。

你说气人不气人,CANN 装了但驱动没装,代码跑不了,卡在设备初始化。

为什么要用 driver?

三个字:硬件认不出来

没装 driver

# 装了 CANN,但没装驱动$ python-c"import torch; print(torch.backends.npu.is_available())"False# 找不到设备$ npu-smi info bash: npu-smi:commandnot found# 代码跑不了$ python train.py RuntimeError: Failed to initialize NPU device0

装了 driver

# 装了驱动$ npu-smi info +-----------------------------------------------------------------------------+|NPU Driver Version:24.1.rc1||NPU Count:8||NPU ID:0, Name: Ascend910, Health: OK, Memory: 80GB||NPU ID:1, Name: Ascend910, Health: OK, Memory: 80GB||...|+-----------------------------------------------------------------------------+ $ python-c"import torch; print(torch.backends.npu.is_available())"True# 能找到设备了# 代码能跑了$ python train.py Training started...

你说气人不气人,装了驱动一句话的事,没装折腾一下午。

核心概念就三个

1. 驱动版本

驱动版本要和 CANN 匹配:

# 查看驱动版本$ npu-smi info|grep"Driver Version"NPU Driver Version:24.1.rc1# 查看 CANN 版本$ canninfo CANN Version:8.0.0# 版本匹配表# CANN 8.0.0 ← 驱动 24.1.rc1# CANN 8.5.0 ← 驱动 24.5.rc1# CANN 9.0.0 ← 驱动 25.0.rc1

关键点:驱动版本和 CANN 版本要匹配,不然会不兼容。

2. 设备文件

驱动会创建设备文件:

# 查看设备文件$ls-l/dev/davinci* crw-------1root root239,0May2209:00 /dev/davinci0 crw-------1root root239,1May2209:00 /dev/davinci1 crw-------1root root239,2May2209:00 /dev/davinci2 crw-------1root root239,3May2209:00 /dev/davinci3# 每个 NPU 对应一个设备文件# /dev/davinci0 ← NPU 0# /dev/davinci1 ← NPU 1

关键点:如果没有设备文件,说明驱动没装好。

3. 用户权限

要用 NPU,用户要在HwHiAiUser组里:

# 查看用户组$groups$USERLENOVO:LENOVO LwHiAiUserdocker# 如果不在组里,加进去$sudousermod-aGLwHiAiUser$USER# 重新登录后生效$logout$ login

关键点:权限不对,会报Permission denied

为什么要用 driver?

三个理由:

1. 不装跑不了

这是硬性要求:

# 装了 CANN,但没装驱动$ python-c"import torch; x = torch.randn(1024, 1024).npu()"RuntimeError: ascend device0initialization failed# 装了驱动$ python-c"import torch; x = torch.randn(1024, 1024).npu()"# 成功!

你说气人不气人,硬性要求,不装不行。

2. 版本要匹配

驱动和 CANN 版本不对,会有莫名其妙的问题:

# 驱动 24.1.rc1 + CANN 8.0.0 → 正常$ python train.py Training...# 驱动 24.1.rc1 + CANN 8.5.0 → 可能出问题$ python train.py RuntimeError: incompatible driver version# 解决:升级驱动或降级 CANN

3. 管理工具

装了驱动才有npu-smi

# 查看设备状态$ npu-smi info# 查看设备利用率$ npu-smi stats-i0NPU ID:0AI Core Usage:78% Memory Usage: 45GB / 80GB Temperature:65°C# 监控训练$watch-n1npu-smi stats-i0

你说气人不气人,装了驱动才有管理工具。

怎么用?代码示例

示例 1:安装驱动

# 1. 下载驱动(从昇腾官网)$wgethttps://ascend.huawei.com/file/24.1.rc1/Ascend-driver_24.1.rc1_linux-x86_64.run# 2. 赋予执行权限$chmod+x Ascend-driver_24.1.rc1_linux-x86_64.run# 3. 安装(需要 root 权限)$sudo./Ascend-driver_24.1.rc1_linux-x86_64.run--full# 4. 重启$sudoreboot# 5. 验证$ npu-smi info

示例 2:验证安装

# 1. 检查驱动版本$ npu-smi info|grep"Driver Version"NPU Driver Version:24.1.rc1# 2. 检查设备文件$ls/dev/davinci*|wc-l8# 8 张卡# 3. 检查用户权限$groups$USER|grepLwHiAiUser LENOVO:LENOVO LwHiAiUser# 有权限# 4. 检查 CANN 版本$ canninfo|grep"Version"CANN Version:8.0.0# 5. 测试代码$ python-c"import torch; print(torch.backends.npu.is_available())"True

示例 3:常见问题排查

# 问题 1:找不到 npu-smi$ npu-smi info bash: npu-smi:commandnot found# 解决:驱动没装或环境变量没设$exportPATH=$PATH:/usr/local/Ascend/driver/tools $ npu-smi info# 问题 2:Permission denied$ python-c"import torch; x = torch.randn(1024, 1024).npu()"RuntimeError: Permission denied# 解决:加用户到组$sudousermod-aGLwHiAiUser$USER$logout&&login# 问题 3:设备初始化失败$ python-c"import torch; x = torch.randn(1024, 1024).npu()"RuntimeError: Failed to initialize NPU device0# 解决:检查驱动和 CANN 版本是否匹配$ npu-smi info|grep"Driver Version"$ canninfo|grep"Version"

示例 4:多机环境

# 多机环境,每台机器都要装驱动# 机器 0$sshnode0 $ npu-smi info|grep"NPU Count"NPU Count:8$exit# 机器 1$sshnode1 $ npu-smi info|grep"NPU Count"NPU Count:8$exit# 机器 2$sshnode2 $ npu-smi info|grep"NPU Count"NPU Count:8$exit# 都装好了,才能做分布式训练

性能数据

驱动版本对性能的影响:

驱动版本CANN 版本推理延迟说明
24.1.rc18.0.05.0ms匹配
24.1.rc18.5.0可能不稳定不匹配
24.5.rc18.5.04.8ms匹配
25.0.rc19.0.04.5ms匹配(最新)

你说气人不气人,版本匹配性能好,不匹配可能出问题。

跟其他仓库的关系

driver 在 CANN 架构里属于第 5 层(昇腾计算基础层),是硬件和软件之间的桥梁

依赖关系:

硬件(昇腾 NPU) ↑ 被调用 driver(设备驱动) ↑ 被调用 CANN(第 1-4 层) ↑ 被调用 你的代码

解释一下:

  • 硬件:昇腾 NPU(物理设备)
  • driver:设备驱动(让系统能识别硬件)
  • CANN:上层软件(算子库、编译器…)
  • 你的代码:调用 CANN

简单说:driver是硬件和软件之间的桥梁。没有驱动,软件调用不了硬件。

driver 的核心能力

1. 设备识别

# 查看设备$ npu-smi info# 查看详细信息$ npu-smi info-tboard# 查看每个设备的利用率$ npu-smi stats-i0

2. 设备管理

# 重置设备$sudonpu-smi reset-i0# 设置设备模式$sudonpu-smiset-i0-p0-v1# 查看设备日志$sudonpu-smi log-i0

3. 性能监控

# 实时监控$watch-n1npu-smi stats-i0# 查看温度$ npu-smi info-ttemp# 查看功耗$ npu-smi info-tpower

适用场景

什么情况下要装 driver:

  • 新环境:第一次用昇腾 NPU
  • 重装系统:系统重装了要重装驱动
  • 升级 CANN:驱动版本也要跟着升

什么情况下不用:

  • 已有环境:已经装好了不用动
  • Docker 容器:容器里不用装驱动(用宿主机的)

总结

driver 就是昇腾的设备驱动

  • 设备识别:让系统能认出来 NPU
  • 设备管理:重置、设置、查看日志
  • 性能监控:实时监控利用率、温度、功耗
http://www.jsqmd.com/news/869556/

相关文章:

  • 6G可重构天线技术:原理、实现与应用
  • GIS项目出图报告太麻烦?手把手教你用‘GIS思维国土工具’批量生成带界址点的勘测定界图与地类分析表
  • XUnity自动翻译器:游戏语言障碍的终极解决方案
  • 3分钟解锁QQ音乐加密格式:qmcdump让你的音乐自由播放
  • 2026水果店加盟哪个品牌靠谱?多维度对比推荐 - 品牌排行榜
  • Optuna可视化全攻略:如何像专家一样解读超参数优化过程与结果
  • 中小型风力发电机运输与安装的安全技术要求
  • HTTP代理抓包核心原理,全面读懂请求与响应数据逻辑
  • OBS Source Record插件终极指南:实现多源独立录制的完整解决方案
  • MCBSTR750开发板Bootloader缺失诊断与解决方案
  • 保姆级教程:用Ansys SIwave给你的PCB走线做个‘阻抗体检’(TDR仿真)
  • LSTM(长短期记忆网络)完整计算过程手动推导+验证
  • 熬夜党日常轻滋养,适口温润滴鸡精很合心意
  • 为什么GEO是企业未来获客的核心底牌?
  • 构建企业数据护城河:CCRC-DCO数据合规官认证,培养真正的实战型专家
  • 3分钟掌握BepInEx:Unity游戏模组开发终极指南
  • 如何在5分钟内免费提取视频字幕:本地OCR神器Video-subtitle-extractor终极指南
  • 告别Unity!用eDrawings ActiveX控件在WinForm里嵌入CAD模型(附完整C#代码)
  • 旗舰力作再升级!锦湖高端轮胎新品Majesty Solus Edge在韩国上市
  • wxappUnpacker深度解析:微信小程序逆向工程架构与安全分析机制
  • 避坑指南:Matplotlib极坐标绘图时,你的直方图、饼图为什么总出错?
  • 2026年,本地AI引擎优化实战指南
  • PLC设计西门子S7-1200电加热炉控制系统设计(水位联锁+温度控制+完整仿真)
  • 社区居委会规范化减少政务投诉解决对策
  • 开机自启,免开机登录及图形界面
  • 如何通过5个步骤在Windows上安装ViGEmBus虚拟手柄驱动
  • 终极NHSE存档编辑器完整解析:从架构设计到高级修改的完整指南
  • 遂宁市2026黄金回收本地口碑商家榜:黄金首饰+ 白银+ 铂金+ 彩金回收门店及联系方式推荐 - 盛世金银回收
  • jetson agx xaviar刷机过程
  • STM32 临界区是什么:为什么有时候要用 __disable_irq() 保护变量