华为昇腾Ascend系列之02ModelZoo训练环境搭建避坑指南

1. 镜像选择与容器创建:别在第一步就踩坑

很多朋友一上来就直奔主题,想赶紧把ModelZoo跑起来,结果在第一步选镜像和建容器的时候就栽了跟头。我刚开始用昇腾的时候也这样,总觉得镜像嘛,找个最新的、名字里带“modelzoo”的准没错。结果发现,昇腾镜像仓库里那些标着“pytorch-modelzoo”的镜像,状态基本都是“停止维护”。这就好比你想装个最新的Windows系统,结果找了个十年前的安装盘,驱动和软件兼容性肯定一堆问题。

这里有个关键概念得先搞清楚:CANN版本。你可以把它理解为昇腾NPU的“CUDA”。它决定了底层计算库的能力和兼容性。如果镜像里的CANN版本太老,你后续安装新版的torch_npu适配库时,大概率会碰壁。所以,我们的策略是:找一个CANN版本较新、且仍在持续更新的基础镜像,然后自己动手在里面搭建PyTorch环境。

目前看来,ascend-mindspore这个镜像系列更新比较勤快。比如,我写这篇文章的时候,它已经更新到了CANN 8.0.RC3。为了稳妥起见,我选择了24.0.RC2-A1-ubuntu20.04这个版本。这里的“A1”对应你的NPU卡型号,如果你的卡是A2,那就选对应的A2镜像,千万别搞错,否则驱动挂载会出问题。

选好了镜像,拉取命令很简单:

docker pull swr.cn-south-1.myhuaweicloud.com/ascendhub/ascend-mindspore:24.0.RC2-A1-ubuntu20.04

接下来是创建容器,这一步的命令参数有点长,但每个都很有讲究,漏了可能后面就报各种莫名奇妙的错:

docker run -it -u root --name train_env --shm-size=256g \
  --device=/dev/davinci2 \
  --device=/dev/davinci3 \
  --device=/dev/davinci_manager \
  --device=/dev/devmm_svm \
  --device=/dev/hisi_hdc \
  -v /usr/local/Ascend/driver:/usr/local/Ascend/driver \
  -v /usr/local/Ascend/add-ons/:/usr/local/Ascend/add-ons/ \
  -v /usr/local/sbin/:/usr/local/sbin/ \
  -v /var/log/npu/conf/slog/slog.conf:/var/log/npu/conf/slog/slog.conf \
  -v /var/log/npu/slog/:/var/log/npu/slog \
  -v /var/log/npu/profiling/:/var/log/npu/profiling \
  -v /var/log/npu/dump/:/var/log/npu/dump \
  -v /var/log/npu/:/usr/slog \
  -v /media/:/media/ \
  <你的IMAGE_ID> /bin/bash

我解释几个容易忽略的点:

  • --shm-size=256g:共享内存设大点,很多并行编译和数据处理需要大内存,默认值太小容易导致进程崩溃。
  • --device:这里把几个关键的NPU设备文件映射到容器里,这是容器能调用NPU算力的基础。
  • -v挂载:这一串挂载操作,是把宿主机上已经安装好的NPU驱动、固件、日志目录等全部映射进去。核心思想是“容器只提供运行环境,硬件驱动和底层工具集用宿主机现成的”。这样能保证环境的一致性,也省去了在容器内重复安装复杂驱动
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值