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

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

文章目录

平台硬件配置基本指令1. 显卡npu相关1.1 显示npu1.2 指定使用的npu1.3 显示0卡的利用率2. cpu相关3. python相关4. 其他指令4.1 网卡

操作记录1. 长时间保持SSH会话连接不断开2. 环境检查3. 驱动和固件安装4. docker安装5. docker获取6. 镜像使用7. 容器内安装第三方依赖8. 容器内安装miniconda及依赖环境9. vscode连接华为服务器

平台硬件配置

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

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

基本指令

1. 显卡npu相关

1.1 显示npu

npu-smi info

显示npu类型为910ProB。

1.2 指定使用的npu

export ASCEND_RT_VISIBLE_DEVICES=0

1.3 显示0卡的利用率

npu-smi info -t usages -i 0

2. cpu相关

cat /proc/cpuinfo

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

3. python相关

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

4. 其他指令

4.1 网卡

ip addr

查看网卡的IP地址和路由

hccn_tool -i 3 -ip -g

操作记录

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

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

ClientAliveInterval 60

ClientAliveCountMax 10

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

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

2. 环境检查

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

uname -m && cat /etc/*release

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

3. 驱动和固件安装

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

./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

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

docker version

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

5. docker获取

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

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的设备。

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环境进行环境搭建。

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

容器内是Linux系统

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

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

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

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环境变量没有设置。 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版本。 下载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连接华为服务器,可能会出现一直连接不上的问题。 原因是vscode更新到1.86版本后要求远程连接服务器的内核版本和库版本需要符合下面条件。 因此,将vscode版本更换为1.85版本最高效。更换后,可以正常使用。

相关推荐

纯干货:我常用的十个投资工具 文章首发:公号 闲画财经作者:一图君(wx:backlight001)经常有人问我 ,某某数据去哪里查,或有什么辅助投资...
东莞鞋子批发市场大全
365bet足球即时比分网

东莞鞋子批发市场大全

🌍 07-31 👁️ 8723
吉利博瑞底盘怎么样,自主品牌的底盘功力到家了吗?
365商城官网下载

吉利博瑞底盘怎么样,自主品牌的底盘功力到家了吗?

🌍 07-23 👁️ 5824