【CANN训练营进阶智囊团】
收藏回复举报
【CANN训练营进阶智囊团】
发表于2023-05-03 22:42:02
0 查看

Atlas 500智能小站 软件部分-应用部署和开发

    Atlas500智能小站是华为面向广泛边缘应用场景的轻量边缘设备,具有超强计算性能、大容量存储、配置灵活、体积小、支持温度范围宽、环境适应性强、易于维护管理等特点。A500-3000主要应用在智能视频监控、分析、数据存储等应用场景,可以广泛部署在各类边缘、中心机房,满足在社区、园区、商场、超市等复杂环境区域的应用。

    操作系统采用剪裁版的欧拉系统(非开源版本),支持docker部署方式,不支持更新源和直接安装CANN开发包作为开发环境;所以开发部署方式和采用Atlas200DK等设备的不一样。本文记录主要软件安装操作步骤,有以下四部分内容:

1)登录Atlas500小站,从初始版本(20.3.0)升级到最新版本(22.04)

2)在宿主服务器上部署运行推理程序

3)在docker容器里运行推理程序

4)在docker容器里部署开发环境

一:登录Atlas500小站,从初始版本(20.3.0)升级到最新版本(22.04)

    Atlas500开箱通电后第一个步骤是登陆到设备,Atlas500有两种方式可以登陆到主机:Atlas IES WebUI方式和命令行方式。使用浏览器输入https://192.168.2.111,系统会提示输入初始用户名(admin)和口令(Huawei12#$)。登入后系统要求修改用户和口令。

cke_37179.png

    登入后可以看到设备基本情况

cke_42068.png

cke_42969.jpg

    命令行使用新建管理员Administrator身份登录:ssh Administrator@192.168.2.111,输入口令可登录到服务器。

cke_79554.png继续输入:develop后系统提示输入密码。输入初始密码(Huawei@SYS3),就以root身份登入系统了。

    登陆后,把在Atlas200DK开发的“resnet50_imagenet_classification”整目录拷贝到root目录后测试: 运行到模型加载提示提示145006错误。

cke_229950.png

    我在Atlas200DK采用的是cann6.0版开发,版本比Atlas500内的新,所以决定先把Atlas500升级到最新版试试。这次的升级过程颇为坎坷:官网有三个版本20.3.0、21.04.9、22.04。在维护->固件升级后选择21.04.9版本,解压上传后系统提示“文件无效”。

cke_47993.png

cke_38092.jpg

    通过联系400-822-9999,建立升级需求工单。通过邮件,电话沟通,华为工程师确定是eMMC存储驱动问题,提供了一个特殊的20.3.0过渡版本。由于是非标版本,升级不是很顺利,通过华为工程师远程WeLink远程指导,最后一步步升级到了22.04。

cke_121230.png

cke_303817.png

cke_312001.png

cke_161599.png

二:在宿主服务器上部署运行推理程序

    再次登陆到服务器上以,develop模式运行“resnet50_imagenet_classification”这次可以正常运行了。

cke_23655.png

三:在docker容器里运行推理程序

    华为官方推荐的方式是把用户程序部署在docker里运行,按照用户指南一步步操作。

cke_80161.png

    Atlas500小站的eMMC只有32G,在制作镜像时可以使用把外部存储,我使用的是外置硬盘,加载到/home/test目录下:

cke_216236.png

    除了推理应用程序外,还需要准备Dockerfile,install.sh,和run.sh这三个文件。

cke_303598.png

cke_307746.png

    配置好Atlas500上网环境后,运行  docker build -t resnet50:v1.0  --build-arg NNRT_PKG=Ascend-cann-nnrt_6.0.1_linux-aarch64.run --build-arg DIST_PKG=resnet50_imagenet_classification.tar.gz .

    5分钟左右生成了resnet50:v1.0的docker image。然后运行docker run -it --device /dev/davinci0 -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi:ro -v /home/data/miniD/driver/lib64:/home/data/miniD/driver/lib64:ro -v /home/data/miniD/driver/version.info:/home/data/miniD/driver/version.info resnet50:v1.0 /bin/bash

cke_401102.png

    再次进入container,运行docker exec -it xxxxxxx /bin/bash。可以看到完成了docke化运行部署。

cke_438875.png

cke_579897.png

四:在docker容器里部署开发环境

    完成docker的推理部署后,还可以在这个container继续部署开发环境,需要装openssh-server,c++开发环境等。
cke_4536.png

    最后,还需要把docker内开发容器的远程登录的端口开放到小站上,以便外部访问。iptables -t nat -A  DOCKER -p tcp --dport 22222 -j DNAT --to-destination 172.17.0.2:22  。这样就可以通过 ssh -p 22222 root@192.168.2.111访问开发环境了。

本帖最后由 匿名用户2023/05/04 08:25:55 编辑

我要发帖子