华为昇腾Ascend系列之01基础操作

平台硬件配置

  • NPU: 8 × Ascend 910ProB 32G
  • aarch64 (uname -m, ARM64位架构,ARMv8-a)

昇腾910B,对标NVDIA A100/A800 64G
Atlas 300系列, 对标NVDIA T4

基本指令

1. 显卡npu相关

1.1 显示npu

npu-smi info

image.png
显示npu类型为910ProB。

1.2 指定使用的npu

export ASCEND_RT_VISIBLE_DEVICES=0

1.3 显示0卡的利用率

npu-smi info -t usages -i 0

image.png

2. cpu相关

cat /proc/cpuinfo

image.png
CPU implementer 是 CPU 厂商,其中 0x48 对应的是华为海思。

3. python相关

服务器内支持一些python的基本指令,包含3.7的系统默认python。
image.png

4. 其他指令

4.1 网卡
ip addr

查看网卡的IP地址和路由

hccn_tool -i 3 -ip -g

image.png

操作记录

1. 长时间保持SSH会话连接不断开

使用SSH方式登录操作服务器,过一段时间不操作就会自动断开连接,比较麻烦。
操作方式
编辑/etc/ssh/sshd_config文件设置心跳,保持连接。添加配置项:

ClientAliveInterval 60      
ClientAliveCountMax 10
  • ClientAliveInterval 60 表示每60秒发送一次请求, 从而保持连接。
  • ClientAliveCountMax 10 表示服务器发出请求后客户端没有响应的次数达到10次,就自动断开连接。则无响应的SSH客户端将在大约60x10=600秒后断开连接。
    直接在配置文件中改就可以,不需要重新添加。默认为300和0。
    image.png
    按照上述设置,时间稍长也会断开,213服务器上的设置,可以按照这个值进行修改。
    image.png

参考链接:https://support.huaweicloud.com/trouble-ecs/ecs_trouble_0306.html
image.png

2. 环境检查

检查NPU是否正常在位可执行lspci | grep d801命令
image.png
系统版本查看

uname -m && cat /etc/*release

aarch64的ARM架构,EulerOS系统与CentOS的操作相似,使用yum。
image.png

3. 驱动和固件安装

由于服务器执行npu-smi info命令可以正常显示npu信息,故不需要安装驱动和固件。
image.png
如果不能正常显示,需要再昇腾社区的“固件与驱动”下载页面下载配套产品的固件驱动软件。
驱动安装方式如下

./Ascend-hdk-910-npu-driver_23.0.rc1_linux-x86-64.run --full --install-for-all

默认的安装路径在/usr/local/Ascend,安装成功后会提示这样的回显信息

Driver package installed successfully!

4. docker安装

参考链接:https://www.hiascend.com/document/detail/zh/quick-installation/23.0.RC2/quickinstg/800_9010/quickinstg_800_9010_0035.html
由于服务器是EulerOS系统,安装使用yum而不是apt
安装docker

yum install -y docker

image.png
执行上述操作后,可以使用docker的命令。
image.png
如果没有启动,执行命令systemctl start docker启动Docker。

docker version

执行docker version可以看到相应的版本信息。
image.png

5. docker获取

AscendHub中的训练镜像选择pytorch-modelzoo。训练镜像中也包含基于TensorFlow和MX等框架的训练镜像,以及MindSpore镜像。
image.png
根据版本配套,选择最新的23.0.RC2-1.11.0,Pytorch版本1.11.0,CANN版本6.3.RC2。
image.png
在对应的镜像版本中,选择对应的版本进行下载,需要登录,登录后出现如下弹框进行镜像的拉取和构建。
image.png
通过登录、密码的输入后,便可docker pull进行镜像的拉取。
image.png
拉取成功后,获得一个12.6G的镜像。
image.png

6. 镜像使用

参考链接:https://www.hiascend.com/document/detail/zh/ModelZoo/Documentation/dit/dit_0004.html

由于使用的是npu,而非NVDIA的GPU,在容器的建立上,不能再使用--gpus all的指令把显卡添加至镜像中,需要使用–device=/dev/davinci0 … 把每个训练卡添加至创建的容器内。指引中要手动输入每一张卡,不知道有没有类似all的方式直接全部加入。
/dev/下确实存在davincic0-7的设备。
image.png

docker run -it -u root --name train_env_smw --shm-size=256g --device=/dev/davinci0 --device=/dev/davinci1 --device=/dev/davinci2 --device=/dev/davinci3 --device=/dev/davinci4 --device=/dev/davinci5 --device=/dev/davinci6 --device=/dev/davinci7 --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 /root:/home/data swr.cn-south-1.myhuaweicloud.com/ascendhub/pytorch-modelzoo:23.0.RC2-1.11.0 /bin/bash

容器内,默认/usr/local/python3.7.5/bin/pippython环境使用python3.7.5,并且安装有torch、opencv等环境,但现有开源项目大多依赖于python3.8及以上,不考虑使用默认python环境进行环境搭建。
image.png

7. 容器内安装第三方依赖

容器内是Linux系统
image.png

apt-get update
apt-get install -y gcc g++ make cmake zlib1g zlib1g-dev openssl libsqlite3-dev libssl-dev libffi-dev unzip pciutils net-tools libblas-dev gfortran libblas3

8. 容器内安装miniconda及依赖环境

由于服务器的CPU是aarch64的架构,镜像内需要安装miniconda。【Anaconda只适用于X86的架构,而且一般在容器内也是优先安装miniconda】
https://docs.anaconda.com/miniconda/
miniconda包含支持aarch64架构的软件。
a. 获取Miniconda安装包,并进行安装

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-aarch64.sh
# 防止环境变量冲突 
unset PYTHONPATH 
unset PYTHONHOME
rm -rf ~/.condarc  # 如需重新安装 
bash Miniconda3-latest-Linux-aarch64.sh -b -u -p /miniconda

image.png
image.png
b. Pytorch安装
https://repo.huaweicloud.com/kunpeng/archive/Ascend/PyTorch/
b.1 选择对应python版本的pytorch(aarch64),并进行安装

 wget https://download.pytorch.org/whl/torch-1.11.0-cp38-cp38-manylinux2014_aarch64.whl
pip install torch-1.11.0-cp38-cp38-manylinux2014_aarch64.whl

image.png
b.2 安装昇腾提供的PyTorch适配插件torch_npu

参考链接https://www.hiascend.com/document/detail/zh/Pytorch/60RC1/configandinstg/instg/insg_0007.html#ZH-CN_TOPIC_0000001889768593__zh-cn_topic_0000001800921750_zh-cn_topic_0000001731730474_table32764194379

下载并安装对应版本的torch_npu

wget https://gitee.com/ascend/pytorch/releases/download/v6.0.rc1-pytorch1.11.0/torch_npu-1.11.0.post11-cp38-cp38-linux_aarch64.whl
pip install torch_npu-1.11.0.post11-cp38-cp38-linux_aarch64.whl

image.png
b.3 安装torchvision

pip install torchvision==0.12.0

b.4 验证Pytorch安装是否成功

python3 -c "import torch;import torch_npu;print(torch_npu.npu.is_available())"

返回True说明安装成功。显示ASCEND_HOME_PATH环境变量没有设置。
image.png
c. APEX混合精度模块安装(可选)
APEX混合精度模块是一个集优化性能、精度收敛于一身的综合优化库,可以提供不同场景下的混合精度训练支持。

apt-get install -y patch build-essential libbz2-dev libreadline-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev liblzma-dev m4 dos2unix libopenblas-dev git

gcc版本需要7.50以上,cmake版本需要3.12.0以上。容器内gcc版本满足要求,但cmake版本不满足要求,需要升级cmake版本。
image.png
下载cmake,解压,软链接,环境变量一气呵成。

wget https://cmake.org/files/v3.26/cmake-3.26.6-linux-aarch64.tar.gz
tar zxvf cmake-3.26.6-linux-aarch64.tar.gz

cd cmake-3.26.6-linux-aarch64/bin
ln cmake /usr/bin/cmake

vi ~/.bashrc
PATH=/opt/cmake-3.26.6-linux-aarch64/bin:$PATH
source ~/.bashrc

确保已安装PyTorch框架且setuptools版本小于等于65.7.0

pip install setuptools==65.7.0

获取昇腾适配的APEX源码,并进行编译。

git clone -b master https://gitee.com/ascend/apex.git

cd apex
bash scripts/build.sh --python=3.8
cd apex/dist/
pip install apex-0.1+ascend-cp38-cp38-linux_aarch64.whl 

9. vscode连接华为服务器

使用最新高版本的vscode连接华为服务器,会出现你已连接到不受Visual Studio Code支持的OS 版本,较低版本的vscode连接华为服务器,可能会出现一直连接不上的问题。
image.png
原因是vscode更新到1.86版本后要求远程连接服务器的内核版本和库版本需要符合下面条件。
image.png
因此,将vscode版本更换为1.85版本最高效。更换后,可以正常使用。
image.png

### 华为昇腾310B 用户权限设置与管理 对于华为昇腾310B的用户权限设置与管理,主要涉及几个方面: #### 一、创建专用用户组和用户 为了安全性和资源隔离,在使用Ascend 310B之前应该创建专门用于运行AI应用和服务的Linux用户和用户组。这可以通过`groupadd` 和 `useradd` 命令实现。 ```bash sudo groupadd aiusers sudo useradd -m -g aiusers aiadmin ``` 上述命令会建立名为aiusers的新群组以及属于该群组下的新成员aiadmin[^4]。 #### 二、配置文件权限 确保只有授权人员能够访问重要的系统目录和文件。通常情况下,/etc/atlas目录下包含了多个配置项,这些都应被严格保护起来不让普通用户随意更改。通过调整相应路径上的读写属性来达到目的: ```bash sudo chown root:root /etc/atlas/ sudo chmod og-rwx /etc/atlas/* ``` 此操作将使/etc/atlas及其内部所有条目仅限超级管理员可编辑。 #### 三、设定环境变量 为了让特定用户的shell session自动加载必要的库函数和其他辅助程序,可以在其个人home folder中的.bashrc或者其他初始化脚本里加入export语句指向Ascend SDK的位置。 ```bash echo 'export ASCEND_HOME=/usr/local/Ascend' >> ~/.bashrc source ~/.bashrc ``` 这样每次登录时都会把ASCEND_HOME设成指定值以便后续调用SDK接口时不需重复输入完整路径。 #### 四、授予执行权限给安装包 当从官方渠道获得预编译好的工具链压缩包后(如ascend-cann-toolkit),可能需要赋予它们+x标志才能顺利启动安装流程。 ```bash chmod +x ascend-cann-toolkit*.run ./ascend-cann-toolkit*.run ``` 以上步骤有助于顺利完成软件部署过程而不受权限不足的影响[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木棉知行者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值