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#$)。登入后系统要求修改用户和口令。
登入后可以看到设备基本情况
命令行使用新建管理员Administrator身份登录:ssh Administrator@192.168.2.111,输入口令可登录到服务器。
继续输入:develop后系统提示输入密码。输入初始密码(Huawei@SYS3),就以root身份登入系统了。
登陆后,把在Atlas200DK开发的“resnet50_imagenet_classification”整目录拷贝到root目录后测试: 运行到模型加载提示提示145006错误。
我在Atlas200DK采用的是cann6.0版开发,版本比Atlas500内的新,所以决定先把Atlas500升级到最新版试试。这次的升级过程颇为坎坷:官网有三个版本20.3.0、21.04.9、22.04。在维护->固件升级后选择21.04.9版本,解压上传后系统提示“文件无效”。
联系400-822-9999,建立升级需求工单。通过邮件,电话沟通,华为工程师确定是eMMC存储驱动问题,提供了一个特殊的20.3.0过渡版本。由于是非标版本,升级不是很顺利,通过华为工程师远程WeLink远程指导,最后一步步升级到了22.04。
二:在宿主服务器上部署运行推理程序
再次登陆到服务器上以,develop模式运行“resnet50_imagenet_classification”这次可以正常运行了。
三:在docker容器里运行推理程序
华为官方推荐的方式是把用户程序部署在docker里运行,按照用户指南一步步操作。
Atlas500小站的eMMC只有32G,在制作镜像时可以使用把外部存储,我使用的是外置硬盘,加载到/home/test目录下:
除了推理应用程序外,还需要准备Dockerfile,install.sh,和run.sh这三个文件。
配置好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
再次进入container,运行docker exec -it xxxxxxx /bin/bash。可以看到完成了docke化运行部署。
四:在docker容器里部署开发环境
完成docker的推理部署后,还可以在这个container继续部署开发环境,需要装openssh-server,c++开发环境等。
最后,还需要把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访问开发环境了。