2023·CANN训练营第二季——高阶班——使用启智NPU资源搭建成功搭建AscendC算子NPU开发调试环境

2023年 10月 11日 75.7k 0

前言:

       Ascend C算子开发支持孪生调试技术,可以在CPU侧模拟NPU侧的行为,因此可以先在CPU侧开发和调试。但进行单算子API方式和模型方式调用等操作时,还是需要真实NPU环境的,本文介绍如何在启智平台成功搭建AscendC算子开发和调试环境。在此,致谢CANN训练营的小伙伴“豆豆”大神,在我向他求教的时候,他给我推荐了启智和思路。

一、概述:

从上篇的坑里,以及其它资料,我知道搭建AscendC开发环境,需要注意下列事项:

1、CANN的toolkit版本和算子开发包版本:本次开发使用的是“7.0.RC1.alpha002”。

2、使用云环境时,CANN的toolkit版本与驱动的版本需要兼容。

3、CMake的版本不低于3.16。

二、准备软件

      软件包括CANN的toolkit、算子开发包和cmake。选择软件包的时候,需要根据host的硬件架构和操作系统选择合适的版本。硬件架构一般分为X86_64,或者ARM,对应的操作系统是Linux和Euler。对应的软件版本如下表所示:

      具体软件按下图所示步骤去查找:

1、从昇腾社区首页进去,产品页,选择CANN

2、选择社区版

    3、选择对应的版本下载toolkit和算子开发包。页面提供了X86_64和ARM两种架构的软件包,需要根据实际的硬件架构选择对应的版本。

三、搭建环境

      首先需要先在启智注册,可以点这个链接【openi.pcl.ac.cn/user/sign_u…】进行注册,注册完成后,绑定微信后会送50个积分点,可以用50个小时的昇腾910,太香了。

1、完成注册后,先创建项目,然后再项目里选择创建“调试任务”,在弹出的页面里,按下图参数进行选择,特别需要注意的是镜像选择,选择目前启智提供的最新版本的“mindspore_2.1.0-cann_6.3.2-py_3.7-euler_2.10.7-aarch64-d910b”,尽管镜像CANN的版本是6.3.2,但与7.0比较接近,这样镜像的驱动会大概率可以兼容7.0(祈祷一定要兼容呀)

2、等待创建完成,然后进入环境。

3、检查下驱动版本和cmake版本

4、下载并安装toolkit、算子开发包、CMake(需要时)

       从镜像名称可以看出,我们选择的是arm架构,910B芯片的开发环境。所以软件包,选择aarch64的版本。

1)下载并安装CANN的toolkit

wget https://ascend-repo.obs.cn-east-2.myhuaweicloud.com/Milan-ASL/Milan-ASL%20V100R001C13SPC702/Ascend-cann-toolkit_7.0.RC1.alpha002_linux-aarch64.run -O Ascend-cann-toolkit_7.0.RC1.alpha002_linux-aarch64.run
chmod +x Ascend-cann-toolkit_7.0.RC1.alpha002_linux-aarch64.run
./Ascend-cann-toolkit_7.0.RC1.alpha002_linux-aarch64.run --install --force

2)下载并安装算子开发包

wget https://ascend-repo.obs.cn-east-2.myhuaweicloud.com/Milan-ASL/Milan-ASL%20V100R001C13SPC702/Ascend-cann-communitysdk_7.0.RC1.alpha002_linux-aarch64.tar.gz -O Ascend-cann-communitysdk_7.0.RC1.alpha002_linux-aarch64.tar.gz

tar -xf Ascend-cann-communitysdk_7.0.RC1.alpha002_linux-aarch64.tar.gz -C ~/Ascend/ascend-toolkit/latest

3)镜像的CMake版本是3.16,不用再额外下载CMake的新版本。如果下载的话,可以用这个版本。

wget https://github.com/Kitware/CMake/releases/download/v3.26.4/cmake-3.26.4-linux-aarch64.tar.gz

tar -xf cmake-3.26.4-linux-aarch64.tar.gz

5、配置环境变量

source /home/ma-user/Ascend/ascend-toolkit/set_env.sh
export ASCEND_CUSTOM_PATH=$HOME/Ascend/ascend-toolkit/latest
export ASCEND_HOME_DIR=$HOME/Ascend/ascend-toolkit/latest
如果新安装了CMake,执行下一句:
export PATH=/home/ma-user/work/cmake-3.26.4-linux-x86_64/bin:$PATH

四、验证:

1、下载CANN训练营提供的例程——Ascend的开源Sample仓:gitee.com/ascend/samp…

git clone https://gitee.com/ascend/samples.git

       由于git速度较慢,我选择将sample包下载到本地,然后在上传到云环境中,

并解压缩。

unzip samples-master.zip

2、验证Add_Custom

1)验证NPU模式下,简单的核函数调用方式:

       进入samples-masteroperatorAddCustomSamplekernel_direct_call 目录(采用git方式 用sample 替换 sample-master),运行:

bash run.sh ascend910B1 npu_onboard

2)验证单算子API方式调用

      进入samples-masteroperatorAddCustomSampleaclnn_online_model目录(采用git方式 用sample 替换 sample-master),运行:

bash run.sh

五、结语:

       至此,AscendC算子开发的NPU环境已经成功搭建完成,下面就可以开始神奇算子开发旅程了,希望大家都能学会先进的AscendC算子开发方法,同时赢得大奖。

相关文章

服务器端口转发,带你了解服务器端口转发
服务器开放端口,服务器开放端口的步骤
产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
如何使用 WinGet 下载 Microsoft Store 应用
百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

发布评论