环境介绍
NPU:Ascend910B2
环境准备
创建Notebook
华为云选择:【控制台】-【ModelArts】
ModelArts主页选择【开发生产】-【开发空间】-【Notebook】
页面右上角选择【创建Notebook】
选择资源
主要参数
规格:Ascend: 1*ascend-snt9b2|ARM: 24核 192GB
镜像:pytorch_2.1.0-cann_8.0.rc1-py_3.9-euler_2.10.7-aarch64-snt9b
存储空间:100 GB
全都填写完成后点提交即可
注意一下华为云的费用,是否有足够的代金券或者余额扣分,不然欠费是一个很麻烦的事情
创建完成等待状态显示为【运行中】,点右面的【打开】就可以开始体验了
使用npu-smi info
命令查看NPU信息
开始体验(以曾经写的SinhCustom为例)
克隆代码仓
git clone https://gitee.com/ascend/samples
创建工作目录work_dir
mkdir work_dir
cd work_dir
复制文件到work_dir
cp -r ../samples/operator/AddCustomSample/ ./
cd AddCustomSample
目录下面有两个文件夹
FrameworkLaunch
:使用框架调用Add自定义算子。
按照工程创建->算子实现->编译部署>算子调用的流程完成算子开发。整个过程都依赖于算子工程:基于工程代码框架完成算子核函数的开发和Tiling实现,通过工程编译脚本完成算子的编译部署,继而实现单算子调用或第三方框架中的算子调用。
KernelLaunch
:使用核函数直调Add自定义算子。
核函数的基础调用(Kernel Launch)方式,开发者完成算子核函数的开发和Tiling实现后,即可通过AscendCL运行时接口,完成算子的调用。
体验FrameworkLaunch调用自定义算子
进入文件夹
cd FrameworkLaunch/AddCustom
执行编译算子
bash build.sh
部署算子
cd build_out
./custom_opp_euleros_aarch64.run
aclnn调用算子
cd ../../AclNNInvocation
bash run.sh
成功运行的截图
体验KernelLaunch调用自定义算子
进入文件夹
cd KernelLaunch/AddKernelInvocationNeo
执行CPU调试
bash run.sh -r cpu -v Ascend910B2
执行NPU调试
bash run.sh -r npu -v Ascend910B2
如果遇到报错的话,安装一下CANN最新版的试试
安装方法:
设置环境变量
export no_proxy=127.0.0.1,localhost,172.16.*,iam.cn-southwest-2.huaweicloud.com,pip.modelarts.private.com
export NO_PROXY=127.0.0.1,localhost,172.16.*,iam.cn-southwest-2.huaweicloud.com,pip.modelarts.private.com
下载
wget 'https://ascend-repo.obs.cn-east-2.myhuaweicloud.com/Milan-ASL/Milan-ASL V100R001C19SPC703/Ascend-cann-toolkit_8.0.RC3.alpha003_linux-aarch64.run'
安装
bash Ascend-cann-toolkit_8.0.RC3.alpha003_linux-aarch64.run --full
设置环境变量
source /home/ma-user/Ascend/ascend-toolkit/set_env.sh
然后就可以运行了