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

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

前言:

       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两种架构的软件包,需要根据实际的硬件架构选择对应的版本。

三、搭建环境

      首先需要先在启智注册,可以点这个链接【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 -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仓: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方式调用

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

bash run.sh

五、结语:

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

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。