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

前言:

       Ascend C算子开发支持孪生调试技术,可以在CPU侧模拟NPU侧的行为,因此可以先在CPU侧开发和调试。但进行单算子API方式和模型方式调用等操作时,还是需要真实NPU环境的,本文介绍如何在启智平台成功搭建AscendC算子开发和调试环境。

在此,致谢CANN训练营的小伙伴“豆豆”大神,在我向他求教的时候,他给我推荐了启智和思路。

一、概述:

        我曾试图在华为云Modelarts采用自定义镜像的方法构造NPU开发调试环境,但最终失败告终,但总结了经验,并结合其它资料,知道搭建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两种架构的软件包,需要根据实际的硬件架构选择对应的版本。


三、搭建环境

        首先需要先在启智注册,可以点这个链接【https://openi.pcl.ac.cn/user/sign_up?sharedUser=CallMeDayao】进行注册,注册完成后,绑定微信后会送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-OAscend-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-OAscend-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

exportASCEND_CUSTOM_PATH=$HOME/Ascend/ascend-toolkit/latest

exportASCEND_HOME_DIR=$HOME/Ascend/ascend-toolkit/latest

如果新安装了CMake,执行下一句:

exportPATH=/home/ma-user/work/cmake-3.26.4-linux-x86_64/bin:$PATH

四、验证:

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

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

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


并解压缩。

unzip samples-master.zip

2、验证Add_Custom

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

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

        bash run.sh ascend910B1 npu_onboard

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

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

        bash run.sh

五、结语:

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容