华为昇腾Atlas 300I Pro 推理卡(型号:3010)CANN开发环境搭建
社区版-固件与驱动-昇腾社区。
一、硬件驱动下载地址:

二、华为CANN开发套件下载地址:
昇腾异构计算架构CANN-昇腾社区
https://www.hiascend.com/software/cann


三、安装驱动及固件、CANN开发套件
3.1安装驱动及固件
以root用户登录安装环境,将驱动和固件包上传至安装环境的任意目录。(如“/home/package”)
创建驱动运行用户HwHiAiUser:
groupadd HwHiAiUser
useradd -g HwHiAiUser -d /home/HwHiAiUser -m HwHiAiUser -s /bin/bash
增加对软件包的可执行权限:
chmod +x Ascend-hdk-<soc_version>-npu-driver_23.0.2_linux-x86-64.run
chmod +x Ascend-hdk-<soc_version>-npu-firmware_7.1.0.4.220.run
※注释:soc_version 软件包相关版本
执行如下命令,校验安装包的一致性和完整性:
./Ascend-hdk-<soc_version>-npu-driver_23.0.2_linux-x86-64.run --check
./Ascend-hdk-<soc_version>-npu-firmware_7.1.0.4.220.run --check
执行如下命令安装驱动:
./Ascend-hdk-<soc_version>-npu-driver_23.0.2_linux-x86-64.run --full --install-for-all
出现类似如下回显信息,说明安装成功 : Driver package installed successfully!
您还可以通过执行npu-smi info命令查看,出现类似如下信息,说明驱动加载成功。
执行如下命令安装固件:
./Ascend-hdk-<soc_version>-npu-firmware_7.1.0.4.220.run --full
出现类似如下回显信息,说明安装成功 :
Firmware package installed successfully! Reboot now or after driver installation for the installation/upgrade to take effect
驱动和固件安装完成后,重启系统:
reboot
3.2安装CANN开发工具套件
驱动固件安装完成后,就可以进行CANN软件包的安装了,本节以在昇腾AI处理器上安装开发套件包为例,介绍CANN软件安装的步骤。CANN开发套件包包含开发应用程序所需的库文件、开发辅助工具等,安装之后开发者可进行应用及自定义算子的开发。需要注意CANN开发套件包安装过程需要安装相关依赖,请确保安装环境能够连接外部网络,并已配置软件源,以下以root用户操作为例。
安装第三方依赖:
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
安装Python:
可执行如下命令检查系统是否安装满足要求的Python开发环境。(要求python3.7.5~3.7.11、python3.8.0~3.8.11、python3.9.0~3.9.7和python3.10.0~3.10.12)
python3 --version
pip3 --version
如果没有版本安装命令:
sudo apt install python3 python3-pip
安装pip3支持CANN开发套件的相关依赖:
pip3 install attrs numpy decorator sympy cffi pyyaml pathlib2 psutil protobuf scipy requests absl-py wheel typing_extensions
安装CANN开发套件包:
将CANN开发套件包上传至安装环境的任意目录,执行如下命令增加对软件包的可执行权限。
chmod +x Ascend-cann-toolkit_8.0.RC3.alpha001_linux-x86_64.run
执行如下命令校验软件包的一致性和完整性。
./Ascend-cann-toolkit_8.0.RC3.alpha001_linux-x86_64.run --check
执行如下命令安装CANN开发套件包。
./Ascend-cann-toolkit_8.0.RC3.alpha001_linux-x86_64.run --install
用户需签署华为企业业务最终用户许可协议(EULA)后进入安装流程,根据回显页面输入y或Y接受协议,输入其他任意字符为拒绝协议,确认接受协议后开始安装。安装完成后,若显示如下信息,则说明软件安装成功:[INFO] Ascend-cann-toolkit install success
配置CANN环境变量:
source /usr/local/Ascend/ascend-toolkit/set_env.sh
四、AsendCL应用开发样例测试
此样例测试为验证推理卡是否可以通过CANN开发套件进行适配。
4.1样例测试
下载样例:samples: CANN Samples
https://gitee.com/ascend/samples
samples仓右上角选择 【克隆/下载】 下拉框并选择 【下载ZIP】。
将ZIP包上传到开发环境中的普通用户家目录中。
【例如:${HOME}/ascend-samples-master.zip】


开发环境中,执行以下命令,解压zip包:
cd ${HOME}
unzip ascend-samples-master.zip
cd ascend-samples-master
※注:如果需要下载其它版本代码,请先请根据前置条件说明进行samples仓分支切换。
下载成功后,切换到根目录下
“cplusplus\level2_simple_inference\1_classification\resnet50_firstapp”目录下,查看该样例的目录结构,下文所有的操作步骤均需先切换到resnet50_firstapp目录:
resnet50_firstapp
├── data
│ ├── dog1_1024_683.jpg // 测试图片,需按下文的指导获取图片,放到该目录下
├── model
│ ├── resnet50.caffemodel // ResNet-50网络的预训练模型文件
// 需按下文的指导获取图片,放到该目录下
│ ├── resnet50.prototxt // ResNet-50网络的模型文件
// 需按下文的指导获取图片,放到该目录下
├── script
│ ├── transferPic.py // 将测试图片预处理为符合模型要求的图片 // 包括将*.jpg转换为*.bin,
// 同时将图片从1024*683的分辨率缩放为224*224
├── src
│ ├── CMakeLists.txt // 编译脚本
│ ├── main.cpp // 主函数,图片分类功能的实现文
准备模型
-
以运行用户登录开发环境。
-
执行模型转换。
执行以下命令(以昇腾310 AI处理器为例),将原始模型转换为昇腾AI处理器能识别的*.om模型文件。请注意,执行命令的用户需具有命令中相关路径的可读、可写权限。以下命令中的“<SAMPLE_DIR>”请根据实际样例包的存放目录替换、“<soc_version>”请根据实际昇腾AI处理器版本替换。
cd <SAMPLE_DIR>/cplusplus/level2_simple_inference/1_classification/resnet50_firstapp/model wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/003_Atc_Models/resnet50/resnet50.onnx atc --model=resnet50.onnx --framework=5 --output=resnet50 --input_shape="actual_input_1:1,3,224,224" --soc_version=<soc_version>- --model:ResNet-50网络的模型文件路径。
- --framework:原始框架类型。5表示ONNX。
- --output:resnet50.om模型文件的路径。若此处修改模型文件名及存储路径,则需要同步修改src/main.cpp中模型加载处的模型文件名及存储路径,即modelPath变量值,修改代码后需要重新编译。
- --soc_version:昇腾AI处理器的版本。
关于各参数的详细解释,请参见《ATC工具使用指南》。
准备测试图片
图片下载地址:
Link
https://gitee.com/link?target=https%3A%2F%2Fobs-9be7.obs.cn-east-2.myhuaweicloud.com%2Fmodels%2Faclsample%2Fdog1_1024_683.jpg获取测试图片dog1_1024_683.jpg,放到“resnet50_firstapp/data“目录下。若此处修改测试图片文件名,则需要同步修改src/main.cpp中读取图片处的文件名,即picturePath变量值,修改代码后需要重新编译。
此处获取的是一个*.jpg图片,与模型对图片的要求不符,为了不影响您学习入门知识,我们在该样例下提供了resnet50_firstapp/script/transferPic.py脚本用于将该测试图片转换为模型要求的图片(RGB格式、分辨率为224*224),该脚本被封装在编译脚本中,执行编译脚本时会自动执行图片转换操作。
编译及运行应用
-
编译代码。
以运行用户登录开发环境,切换到resnet50_firstapp目录下,执行以下命令。 如下为设置环境变量的示例,<SAMPLE_DIR>表示样例所在的目录,$HOME/Ascend/ascend-toolkit表示CANN软件包的安装目录,中的arch表示操作系统架构(需根据运行环境的架构选择),os表示操作系统(需根据运行环境的操作系统选择)。
export APP_SOURCE_PATH=<SAMPLE_DIR>/cplusplus/level2_simple_inference/1_classification/resnet50_firstapp export DDK_PATH=$HOME/Ascend/ascend-toolkit/latest export NPU_HOST_LIB=$HOME/Ascend/ascend-toolkit/latest/<arch-os>/devlib chmod +x sample_build.sh ./sample_build.sh说明: 如果执行脚本报错“ModuleNotFoundError: No module named 'PIL'”,则表示缺少Pillow库,请使用 pip3 install Pillow --user 命令安装Pillow库。
如果执行脚本报错“bash: ./sample_build.sh: /bin/bash^M: bad interpreter: No such file or directory”,是由于开发环境中没有安装dos2unix包,需使用sudo apt-get install dos2unix命令安装dos2unix包后,执行dos2unix sample_build.sh,然后再执行脚本。
-
运行应用。
以运行用户将resnet50_firstapp目录上传至运行环境,以运行用户登录运行环境,切换到resnet50_firstapp目录下,执行以下命令。
chmod +x sample_run.sh ./sample_run.sh终端上屏显的结果如下,index表示类别标识、value表示该分类的最大置信度:
top 1: index[162] value[0.954676] top 2: index[161] value[0.033442] top 3: index[166] value[0.006534] top 4: index[167] value[0.004561] top 5: index[163] value[0.000315]说明: 类别标签和类别的对应关系与训练模型时使用的数据集有关,本样例使用的模型是基于imagenet数据集进行训练的,您可以在互联网上查阅对应数据集的标签及类别的对应关系,例如,可单击Link查看。 当前屏显信息中的类别标识与类别的对应关系如下:
"162": ["beagle"]
"161": ["basset", "basset hound"]
"166": ["Walker hound", "Walker foxhound"]
"167": ["English foxhound"]
"163": ["bloodhound", "sleuthhound"]
更多推荐




所有评论(0)