在Atlas上做推理(1)-基本概念与开发流程

转载自我的知乎专栏

之前买了一个Atlas200DK,花了一些业余时间写了一个多路推理的端到端的demo。在这个过程中踩了很多坑,也学习到不少新知识。最近准备写一些文章,总结一下使用atlas推理的经验。

我的demo代码仓库icon-default.png?t=M1H3https://github.com/lenLRX/Atlas_ACL_E2E_Demo

首先介绍一些基本概念:

  • 官网:atlas相关的软件包和文档可以在这个网址上找到,网站上还有官方论坛,遇到问题可以在上面提问,有官方人员回答。
  • CANN:Atlas主要的软件包, 里面包括runtime,编译器等开发必要的软件包
  • ACL:异构编程的接口,跑神经网络要用它
  • atc: 模型转换工具,将caffe,tensorflow,onnx等框架的模型编译成NPU上运行的离线模型。
  • MindStudio: 集成开发环境(非必须)
  • 开发环境:编译代码和转换模型的环境,通常是一个Linux环境
  • 运行环境:atlas硬件所在的环境,如Atlas200DK

我开发的这个demo兼容Atlas300I和Atlas200DK. Atlas200和Atlas500应该也兼容,但是我没有硬件:(. 这一系列文章将以Atlas200DK为主。

Atlas200DK

Atlas200DK的硬件参数参考这个文档。简单来说就是1个Ascend310的NPU+8个A55的CPU+8G内存,其中4个CPU是用户可以用的,另外四个系统保留。Atlas200DK上安装的是Ubuntu系统,所以我们可以把它当作一个普通的电脑使用,在上面编程或部署服务。

需要注意的一点是,在Atlas200DK上不区分Host和Device内存。

开发流程

当我们说要开发一个AI应用的时候,主要分为两个部分:

  1. NPU上运行的离线模型: *.om
  2. 通过ACL接口调用NPU的host程序(C++/Python)

以开发C++应用为例,首先需要一个使用atc转换模型的环境,这个环境通常是一个x86的Linux机器或虚拟机(理论上Atlas200DK上安装toolkit之后也可以转)。这个om转换成功以后可以一直使用,兼容不同的软件版本。所以我一般在华为云租一个小时机器,转换模型后就可以释放机器了,因为配置atc环境太复杂了。

然后是开发调用NPU的程序,这里有两种方案:

  1. 在一个x86的Linux环境上安装arm的toolkit,编写代码后时候交叉编译生成arm可执行文件,最后拷贝到Atlas200DK上运行。
  2. 直接在Atlas200DK上编写代码,编译,运行。

我一般使用方案2,在Windows上使用vscode remote直接ssh到Atlas200DK上开发,这样就不需要配置开发环境,节省大量时间。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值