寒武纪AI服务器上安装驱动并跑通推理的配置步骤
在寒武纪AI服务器上跑模型,配置的核心不是先装框架,而是先让系统正确识别MLU加速卡。
卡认不到、驱动版本和固件对不上,后面装PyTorch或推理工具都会白费。
下面按裸机环境讲清楚从核对硬件到跑通一个推理示例的完整链路,适用于常见Linux服务器场景,具体版本号以你机器上厂商提供的安装包为准。
先核对卡型号、系统版本和内核
动手前先确认三件事,避免装到一半发现系统不在支持列表里。
- 查看加速卡型号和数量:
lspci | grep -i cambricon,正常应能看到对应MLU设备条目。 - 确认操作系统版本:
cat /etc/os-release,记录发行版和主版本号。 - 确认内核版本:
uname -r,驱动通常对内核版本有要求,升级内核后可能需要重装驱动。
同时准备好厂商提供的驱动包、固件包和工具包,放在本地目录,不要依赖来源不明的第三方镜像。
如果服务器是租用的,先确认是否允许自行安装驱动,部分云厂商只提供预装镜像。
安装驱动、固件和工具包
寒武纪的软件栈一般分三层:驱动负责内核态设备管理,固件运行在卡上,工具包提供cnmon等管理命令。
安装顺序建议按驱动、固件、工具包来。
以常见的.run安装包为例,进入存放目录后执行:
sudo sh ./cambricon_driver_*.run
安装过程中留意终端输出,出现内核模块编译失败时不要跳过。
固件包通常也是独立安装包,按厂商文档执行对应安装命令。
工具包安装完成后,cnmon命令才可用。
安装完成后建议重启一次,让内核模块和固件状态干净加载:
sudo reboot
重启会影响业务,生产环境先确认维护窗口。
用cnmon确认设备真的可用
重启后先跑设备检查,这是判断配置是否成功的第一道关口:
cnmon
预期能看到每张MLU卡的编号、温度、功耗和显存占用。
如果命令不存在,说明工具包没装好或环境变量未生效;
如果命令存在但列表为空,优先检查驱动模块是否加载、卡是否被系统识别。
也可以结合lsmod | grep cambricon查看内核模块状态。
设备识别正常后,再继续装AI框架,否则先解决驱动问题。
跑通一个最小推理示例
设备可见不代表框架能用。
装好厂商适配的PyTorch或推理工具包后,用官方自带示例做一次最小验证,比直接上业务模型更容易定位问题。
验证时重点看两点:程序是否成功把张量或模型放到MLU设备上,以及输出结果是否正常。
如果框架报找不到设备,回到cnmon检查;
如果框架能识别设备但推理报错,优先核对框架版本与驱动、工具包版本是否匹配。
容器环境要额外注意:容器默认看不到宿主机设备,需要按厂商文档映射设备节点和驱动目录,不能只装一个框架镜像就期望直接调用加速卡。
容易踩的几个坑
- 驱动版本和工具包版本混搭:不同版本之间的接口可能不一致,尽量使用同一批次发布的软件包。
- 升级内核后未重装驱动:内核变化会导致模块加载失败,表现为
cnmon突然不可用。 - 只装框架不装工具包:没有
cnmon就少了最直接的排查手段。 - 容器里直接跑:未做设备映射时框架报无可用设备,先检查容器启动参数。
配置完成后,建议记录驱动、固件和工具包版本,后续升级或排错时能快速对照。
涉及驱动重装和重启的操作,提前做好配置备份和回滚准备。
常见疑问
装完驱动后cnmon提示找不到命令怎么办?
先确认工具包是否安装成功,再检查命令所在目录是否在PATH中,必要时用绝对路径执行。
lspci能看到卡但cnmon列表为空,问题出在哪?
多半是驱动内核模块未加载或固件状态异常,查看系统日志中与cambricon相关的报错,再决定重装驱动还是更新固件。
能不能在Docker里直接调用MLU?
可以,但需要按厂商文档映射设备节点和驱动路径,仅安装框架镜像不够。
升级系统内核后需要做什么?
内核变化后驱动模块通常需要重新编译安装,升级前先确认目标内核在驱动支持范围内。