当前位置: 首页 > news >正文

【2024CANN训练营第二季】使用华为云体验AscendC_Sample仓算子运行

环境介绍

NPU:Ascend910B2

环境准备

创建Notebook

华为云选择:【控制台】-【ModelArts】
image.png
ModelArts主页选择【开发生产】-【开发空间】-【Notebook】
image.png
页面右上角选择【创建Notebook】
image.png
选择资源
image.png
image.png
image.png
主要参数
规格: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

全都填写完成后点提交即可
注意一下华为云的费用,是否有足够的代金券或者余额扣分,不然欠费是一个很麻烦的事情

1729469610740(1).png
创建完成等待状态显示为【运行中】,点右面的【打开】就可以开始体验了
image.png

使用npu-smi info命令查看NPU信息
1729469672730.png

开始体验(以曾经写的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

成功运行的截图
1729470110866.png

体验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

然后就可以运行了

http://www.lryc.cn/news/468800.html

相关文章:

  • 使用 NumPy 和 Matplotlib 实现交互式数据可视化
  • TCP 攻击为何在 DDoS 攻击中如此常见
  • 未来汽车驾驶还会有趣吗?车辆动力学系统简史
  • LCD手机屏幕高精度贴合
  • 15_卸载操作
  • ONLYOFFICE 文档8.2版本已发布:PDF 协作编辑、改进界面、性能优化等更新
  • redis的string是怎么实现的
  • 基于STM32设计的智能婴儿床(华为云IOT)(244)
  • html+css+js实现Notification 通知
  • 【Linux】拆分详解 - 常见指令和权限理解
  • UniHttp 框架,请求http接口
  • C++20中头文件ranges的使用
  • 设计一个html+css+js的注册页,对于注册信息进行合法性检测
  • 语音识别——使用Vosk进行语音识别
  • element ui中el-image组件查看图片的坑
  • LabVIEW水质监测系统
  • SpringMVC之 文件上传和下载
  • LeetCode Hot 100:二分查找
  • 打包方式-jar和war的区别
  • 【论文+源码】基于spring boot的垃圾分类网站
  • 【C++ STL 模板类】pair 键值对
  • paddleocr使用FastDeploy 部署工具部署 rknn 模型
  • Apple Vision Pro市场表现分析:IDC最新数据揭示的真相
  • Mybatis-04.入门-JDBC
  • 拥抱云开发的未来:腾讯云数据库、云模板与AI智能化的应用场景探索
  • 新手铲屎官求推荐,噪音低的宠物空气净化器应该用哪款
  • 玄机平台-应急响应-webshell查杀
  • LeetCode Hot 100:图论
  • tracert和ping的区别
  • 回归、分类模型的评估指标