在Ascend 昇腾310P3推理卡上的镜像环境搭建

1. 搭建之前先查看宿主机和卡的信息

// 使用uname -m或者uname -a查看服务器的处理器架构,比如x86-64或者arm64

// 使用 cat /etc/os-release查看服务器的操作系统,比如centos或者ubuntu,本人使用的服务器是华为的openEuler

// 首先得确保宿主机上安装了驱动,然后使用npu-smi info查看推理卡的信息

// 使用id HwHiAiUser 查看宿主机的HwHiAiUser的gid

// 接下来的目标是搭建docker,然后在容器上进行推理,同时需要将npu挂载到容器上。

2. 搭建一个ubuntu的镜像

docker pull ubuntu:22.04

// 可以给一个tag命名,也可以没有

docker tag ubuntu22.04 ubuntu/22.04:v0

// 这样就搭建好了docker,接下来创建container,并且需要将宿主机目录挂载上去

docker run -it --device=/dev/davinci0 --device=/dev/davinci_manager --device=/dev/devmm_svm --device=/dev/hisi_hdc \

           -v /usr/local/dcmi:/usr/local/dcmi \

           -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \

           -v /usr/local/Ascend/driver/lib64/common:/usr/local/Ascend/driver/lib64/common \

           -v /usr/local/Ascend/driver/lib64/driver:/usr/local/Ascend/driver/lib64/driver \

           -v /etc/ascend_install.info:/etc/ascend_install.info \

           -v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info \

           --name atlas \

           arm64v8/ubuntu

// 之后就进入了容器,然后查看容器中可以使用的davinci设备

// 使用ls /dev/ | grep davinci*

//也是因为在创建容器的时候我挂载了davinci0

3. 容器内创建HwHiAiUser用户,gid就是上面查询的宿主机gid号

groupadd -g gid HwHiAiUser && useradd -g HwHiAiUser -d /home/HwHiAiUser -m HwHiAiUser && echo ok

4. 设置npu-smi的环境变量

// 使用vim ~/.bashrc打开文件,加载驱动so,添加以下内容

export LD_LIBRARY_PATH=/usr/local/Ascend/driver/lib64/common:/usr/local/Ascend/driver/lib64/driver:${LD_LIBRARY_PATH}

// 然后退出文件,使用source ~/.bashrc进行保存

// 这样就可以使用npu-smi info 查看挂载情况

5. 安装anaconda

// 可以去官网或者Index of /icon-default.png?t=N7T8https://repo.anaconda.com/archive/// 在pc端下载安装文件(也可以使用wget等工具或镜像网站直接下载)

// 接着打开本地cmd进行文件传输,并拷贝到容器里

scp cp C:\Users\Administrator\Downloads\ Anaconda3-2023.09-0-Linux-aarch64.sh root@xxx.xx.xx.xx:/root/path/to/your/filedir

// 然后可以使用ctrl + p + q来退出容器,并且维持容器运行

// 使用docker ps来查看容器情况,容器id前4位可以表示创建的容器

docker cp /root/path/Anaconda3-2023.09-0-Linux-aarch64.sh f4c9:/root/path

// 接着再进入容器中

docker exec -it f4c9 /bin/bash 或者 docker attach atlas_infer

// 进入文件放置的文件夹后,进行安装

chmod +x ./Anaconda3-2023.09-0-Linux-aarch64.sh

./Anaconda3-2023.09-0-Linux-aarch64.sh

// 安装完成之后输入conda会显示

// 还需要配置环境变量

vim ~/.bashrc

// 添加以下内容

export PATH="$HOME/anaconda3/bin:$PATH"

// 保存之后就可以使用conda命令了

6. 创建python虚拟环境及依赖项

// 因为ascend系列好像需要python3.7-3.8版本

conda create -n atlas_test python=3.7.5

// 可能会显示找不到3.7.5版本,可以使用以下代码进行版本的添加

conda config --add channels conda-forge

//之后使用conda search python就可以看到可以创建3.7.5版本的虚拟环境

// 创建之后进行激活

conda activate atlas_test 或 source activate atlas_test

//接下来安装依赖项

pip install -i https://pypi.douban.com/simple attrs psutil decorator numpy protobuf==3.11.3 scipy sympy cffi grpcio grpcio-tools requests

// 安装SDK的依赖项

// 先进性apt的更新

apt update 或 apt -y update

apt install -y gcc g++ make cmake zlib1g zlib1g-dev libsqlite3-dev openssl libssl-dev libffi-dev unzip pciutils net-tools dkms

7. 安装SDK

// 网站资源下载中心-昇腾社区

// 根据需求下载,并拷贝到服务器的容器里,操作和之前安装anaconda一样

// 软链python 和 pip

ln -s /root/anaconda3/envs/atlas_test/bin/python /usr/bin

ln -s /root/anaconda3/envs/atlas_test/bin/python /usr/bin/python3.7

ln -s /root/anaconda3/envs/atlas_test/bin/pip /usr/bin

ln -s /root/anaconda3/envs/atlas_test/bin/pip3 /usr/bin

// 接下来安装SDK,因为我只需要离线推理,所以不需要安装nnae

chmod +x ./Ascend-cann-nnrt_7.0.0_linux-aarch64.run.run

./Ascend-cann-nnrt_7.0.0_linux-aarch64.run.run --install

chmod +x ./Ascend-cann-toolkit_7.0.0_linux-aarch64.run.run

./Ascend-cann-toolkit_7.0.0_linux-aarch64.run.run --install

// 然后配置环境变量,加上以下内容并保存

source /usr/local/Ascend/ascend-toolkit/set_env.sh

// 暂时就配置完成

// 可以输入atc进行测试

// 上图显示run failed 是因为没提供参数,但这样就安装成功了

// atc 可以实现oonx、om等模型文件的转换,后续使用310P3进行推理

参考文章:

极智开发 | 从基础镜像开始构建昇腾atlas docker开发环境 - 知乎

https://support.huawei.com/enterprise/zh/doc/EDOC1100288556/25832de7

昇腾社区-官网丨昇腾万里 让智能无所不及

如何在Linux服务器上安装Anaconda(超详细)_linux安装anconda-CSDN博客

学习向导-ATC模型转换-推理开发-...-文档首页-昇腾社区 (hiascend.com)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值