赞
踩
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 /https://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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。