Atlas初步配置与运行

举报
拓佑豪 发表于 2021/07/23 15:24:16 2021/07/23
【摘要】 Atlas-200DK初步配置,网线链接访问,以及实现om模型转换demo

/**写在前面:

·环境描述:Win10,VMware虚拟机

本文将向大家总结分享,我在atlas-200dk开发板配置的过程和踩坑经历

(说明:我根据昇腾社区的教学视频,提前完成了制卡(其版本号与视频教学内容相符),建议大家也去参考一下。https://education.huaweicloud.com/courses/course-v1:HuaweiX+CBUCNXA023+Self-paced/courseware/d25613362efc444ba24abe10c8fb2e3f/7063a866c2c040a9b79b451fa588043c/

以下是我重装开发环境的步骤说明,其实除了制卡以外其他步骤和从0开始配置的步骤一样。都是干货,可以参考使用。


/**实现目标:

1:能够操作使用Atlas-200DK

2:使用网线连接使用(也就是支持atlas上网。需要先用type-c先链接设置。

          注意:如果使用数据线访问,将不支持开发板上网)

3:自行配置om模型转换(也可以使用mindstdio,但本文将指出第二种转换方式)


下载一个Linux镜像,这里推荐使用Ubuntu18.04,不容易出问题

我们以一个虚拟机为例来安装系统,这里选用的是VMware,我使用的配置给大家参考使用:60g内存+4cpu然后就是漫长的Linux环境配置过程……

配置完过后,输入一开始设置虚拟机配置的密码,进入系统。

会有这种升级提醒等等一系列弹窗,不需要理会

会提示一系列软件包,根据需要下载即可

这个命令行很重要,可以选择add to favorites,以后在左侧菜单栏即可直接打开,十分方便(可以根据自己需要先设置一下菜单栏,应用程序都在左下角)


· 正文开始:

第一步,设置root密码,这个很重要
sudo passwd root
然后他会跳出一句
[sudo] password for pi: 
1:pi是我设置的账号名,往后教程都不再说明
2:在这里需要输入你一开始设置的账户密码,并且是不会显示在屏幕上,这点也只说一次
3:输入完毕你的账户密码,就设置root账户密码
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully
如以上显示则说明密码设置成功,请记住你的root密码

第二步,换源
1:备份原来的源
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
2:进入root账户
su
3:进入设置源的文件
>/etc/apt/sources.list
vi /etc/apt/sources.list
4:

(可以参照https://www.cnblogs.com/huang-y-x/p/11082168.html,可在里面选用不同的源)
粘贴以下内容,从这里开始(这里选用阿里的源):

#阿里云源 
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse 
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse 
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse 
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse 
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse 
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse 
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse 
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse 
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse


↑到以上结束(确保完整无误)
然后输入 :wq 回车,保存并退出
5:升级软件列表

apt-get update
apt-get upgrade


如果出现什么问题,可以试试 apt-get -f install,或者重复多跑几次
(过程会久一点,以后就会快很多。包括此过程在内的下载指令,如果速度较慢,建议可以选择在白天的时候运行,速度会快很多)

6:安装vim

apt-get install vim

第三步,配置虚拟机上开发环境

·几个重要网站放在这里



#配置atlas视频教学
https://education.huaweicloud.com/courses/course-v1:HuaweiX+CBUCNXA023+Self-paced/courseware/d25613362efc444ba24abe10c8fb2e3f/69410a8562514846a9fd6d030e5f1c94/
#环境部署官方文档
https://support.huaweicloud.com/environment-deployment-Atlas200DK1010/atlased_04_0001.html
#读卡器场景配置atlas
https://support.huaweicloud.com/environment-deployment-Atlas200DK1010/atlased_04_0012.html
#制卡操作系统 Ubuntu server arm,选18.04.4,下载如下图的包
https://releases.ubuntu.com/?_ga=2.35892448.1525631547.1620916708-1630382698.1620537185

#获取软件包
https://support.huaweicloud.com/environment-deployment-Atlas200DK202/atlased_04_0020.html
#ascend官网
https://www.hiascend.com/zh/
#200dk固件与驱动(教程选用3.0.0alpha001,我们选用3.2.0)
https://www.hiascend.com/hardware/firmware-drivers?tag=community
#网线连接atlas
https://bbs.huaweicloud.com/blogs/230123
#mindstdio 下载位置
https://www.hiascend.com/software/mindstudio/download


步骤一,下载包

1:下载制卡操作系统 Ubuntu server arm 64(具体内容参考网址)

2:下载cann的两个包 ,我们统一一下版本,选择历史版本->选择3.2.0->进入下图界面下载

3:去 #读卡器场景配置atlas 网址底下看教程
这里分享我的开发步骤
1)

wget https://gitee.com/ascend/tools/raw/master/makesd/for_1.0.10.alpha/make_sd_card.py
wget https://gitee.com/ascend/tools/raw/master/makesd/for_1.0.10.alpha/make_ubuntu_sd.sh
wget https://raw.githubusercontent.com/Huawei-Ascend/tools/master/configure_usb_ethernet/for_20.1/configure_usb_ethernet.sh
#第三个指令是usb连接Ubuntu服务器的脚本,我们后续使用网线连接,不使用usb方式连接,可以不用运行
wget https://www.python.org/ftp/python/3.7.5/Python-3.7.5.tgz
#下载Python开发包


2)制卡
(由于我已完成制卡,将没有实际操作的截图。制卡的小伙伴记得保证这十个文件都在。版本号会和下图有出入,下载的内容正确即可)

su #先进入root
apt-get update
apt-get install python3 python3-pip
pip3 install pyyaml
apt-get install qemu-user-static binfmt-support python3-yaml squashfs-tools gcc-aarch64-linux-gnu g++-aarch64-linux-gnu


fdisk -l #查找sd卡在哪个目录底下,比如我的是在sdb底下,
python3 make_sd_card.py local /dev/sdb   #注意选好路径

(看到make sd card successfully就成功了,将sd卡放在atlas上,通上电源,看到atlas上四个指示灯全为常亮,即为atlas初始化成功)

3)
配置开发环境
先安装依赖

sudo apt-get install -y gcc g++ make cmake zlib1g zlib1g-dev libbz2-dev libsqlite3-dev libssl-dev libxslt1-dev libffi-dev unzip pciutils net-tools libncursesw5-dev
su pi       #跳出root账户,已经无需再使用
cd mksd    #准备安装Python,我的Python包在mksd文件夹底下

tar xzvf Python-3.7.5.tgz  #解压
cd Python-3.7.5/
./configure --prefix=/usr/local/python3.7.5 --enable-loadable-sqlite-extensions --enable-shared
make -j8
sudo make install
sudo ln -s /usr/local/python3.7.5/bin/python3 /usr/local/python3.7.5/bin/python3.7.5
sudo ln -s /usr/local/python3.7.5/bin/pip3 /usr/local/python3.7.5/bin/pip3.7.5


vim ~/.bashrc
然后粘贴以下内容

#用于设置python3.7.5库文件路径
export LD_LIBRARY_PATH=/usr/local/python3.7.5/lib:$LD_LIBRARY_PATH
#如果用户环境存在多个python3版本,则指定使用python3.7.5版本
export PATH=/usr/local/python3.7.5/bin:$PATH


保存退出指令 :wq

source ~/.bashrc
pip3.7.5 install attrs psutil decorator numpy==1.17.2 protobuf scipy sympy cffi --user
cd ..
chmod +x *.run
./Ascend-cann-toolkit_20.2.alpha001_linux-x86_64.run --install

(运行完毕会显示类似下图这样的文字,请注意保存,这个是不同环境下使用的环境变量)

./Ascend-cann-toolkit_20.2.alpha001_linux-aarch64.run --install

4)网线连接(参考:https://bbs.huaweicloud.com/blogs/230123 

此过程建议提前将type-c先和网线一并连接好

进入 控制面板\网络和 Internet\网络连接

配置笔记本网卡的Ipv4IP地址:192.168.0.1(此地址是开发板网卡的网关地址,第4步讲如何配置开发板网卡网关),子网掩码:255.255.255.0

ifconfig

这个多出来的网卡是我们需要配置的

sudo bash configure_usb_ethernet.sh

会多个ip地址,是Ubuntu的。Atlas的usb网段是192.168.1.2,网线网段是192.168.0.2

ssh HwHiAiUser@192.168.1.2

passwd是:Mind@123
出现HwHiAiUser@davinci-mini:~$,即为成功登入atlas

我们登录到atlas开发板里面的root模式,配置开发板有线网卡:
1)切换到root用户,并打开网络配置文件。

su root #密码也是Mind@123
vi /etc/netplan/01-netcfg.yaml

具体内容参考下图

:wq 退出

netplan apply

开启一个新的终端
用网线连接电脑和开发板

ssh HwHiAiUser@192.168.0.2
Mind@123

#成功登入后
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install vim gcc g++


你能看到在连接atlas的过程中可以正常下载安装,即为连接成功。
(开发环境就装的差不多了,mindstdio我们不安装,需要的话可以参考“写在前面”里的链接)

  • 配置om模型转换

(参考网址:

https://gitee.com/ascend/samples/tree/master/cplusplus/level2_simple_inference/1_classification/resnet50_imagenet_classification )

*0,创建账户(此步可选,我的账户叫hw

sudo groupadd hw
sudo useradd -g hw -d /home/hw -m hw -s /bin/bash
sudo passwd hw #设置密码
cd /home/hw


su
chmod u+w /etc/sudoers
vi /etc/sudoers

hw ALL=(ALL:ALL) ALL  #在文件中添加此句,保存退出
#在命令行中运行下一句
chmod u-w /etc/sudoers

1:设置环境变量

 vi ~/.bashrc
#开发环境上,设置模型转换依赖的环境变量。
#${install_path}表示开发套件包Ascend-cann-toolkit所在的路径。

export install_path=/home/pi/Ascend/ascend-toolkit/latest
export PATH=${install_path}/atc/ccec_compiler/bin:${install_path}/atc/bin:$PATH
export ASCEND_OPP_PATH=${install_path}/opp


#补充:我在atlas里面额外添加了如下的环境变量,仅供参考:
#export LD_LIBRARY_PATH=/home/HwHiAiUser/Ascend/acllib/lib64:/usr/lib64
#export PYTHONPATH=/home/HwHiAiUser/Ascend/pyACL/python/site-packages/acl
#export ASCEND_AICPU_PATH=/home/HwHiAiUser/Ascend
#export LD_LIBRARY_PATH=$HOME/Ascend/acllib/lib64


#开发环境上,设置环境变量,编译脚本src/CMakeLists.txt通过环境变量所设置的头文件、库文件的路径来编译代码。
#如下为设置环境变量的示例,请将$HOME/Ascend/ascend-toolkit/latest/arm64-linux替换为开发套件包
#Ascend-cann-toolkit下Arm架构的ACLlib的路径。

export DDK_PATH=$HOME/Ascend/ascend-toolkit/latest/arm64-linux
export NPU_HOST_LIB=$HOME/Ascend/ascend-toolkit/latest/arm64-linux/acllib/lib64/stub
#保存退出
:wq
source ~/.bashrc

2:准备代码库

sudo apt-get install git geany                    #建议下一个geany,一会儿修改cpp文件更加方便
git clone https://gitee.com/ascend/samples.git
wget https://c7xcode.obs.cn-north-4.myhuaweicloud.com/models/aclsample/dog1_1024_683.jpg
wget https://c7xcode.obs.cn-north-4.myhuaweicloud.com/models/aclsample/dog2_1024_683.jpg


然后将照片手动放在 sample/cplusplus/level2 ....../1_classfication/resnet50_image....../data底下
并在这个目录底下打开终端

python3.7.5 -m pip install Pillow --user
python3.7.5 ../script/transferPic.py    #将jpg转bin
cd ..
mkdir -p build/intermediates/minirc
cd build/intermediates/minirc


在文件管理器打开 resnet50_image/src,用geany打开sample_process.cpp,在82行处修改模型路径

我修改的路径是

const char* omModelPath = "../caffe_model/resnet50.om";

原始模型权重下载地址 :
https://modelzoo-train-atc.obs.cn-north-4.myhuaweicloud.com/003_Atc_Models/AE/ATC%20Model/resnet50/resnet50.caffemodel 
原始模型网络下载地址 :
https://modelzoo-train-atc.obs.cn-north-4.myhuaweicloud.com/003_Atc_Models/AE/ATC%20Model/resnet50/resnet50.prototxt 
·先下载以上两个模型,并放在你刚刚修改的那个文件夹路径

wget https://c7xcode.obs.cn-north-4.myhuaweicloud.com/models/resnet50/insert_op.cfg

atc --model=resnet50.prototxt --weight=resnet50.caffemodel --framework=0 --output=model/resnet50 --soc_version=Ascend310 --input_format=NCHW --input_fp16_nodes=data -output_type=FP32 --out_nodes=prob:0

cmake ../../../src -DCMAKE_CXX_COMPILER=aarch64-linux-gnu-g++ -DCMAKE_SKIP_RPATH=TRUE 
#预编译
make

在1_classfication 文件夹里面打开终端

scp -r resnet50_imagenet_classification/ HwHiAiUser@192.168.0.2:/home/HwHiAiUser
#-r指文件夹


开个新的终端
ssh HwHiAiUser@192.168.0.2  #网线的ip
ls         #看看文件夹进去了没,使用 “ll” 指令也可以
在atlas的根目录底下
vi ~/.bashrc
然后大家根据实际情况调整路径
export LD_LIBRARY_PATH=$HOME/Ascend/acllib/lib64
:wq
source ~/.bashrc

cd resnet50_imagenet_classification/out/
ll #查看main是否有可执行权限,如果没有,chmod +x main 即可添加可执行权限
./main
即可运行完成demo


·踩坑分享:如果第一次om文件生成出现问题,
先在atlas上cd resnet50_imagenet_classification/caffe_model  ,然后rm resnet50.om
(具体看你的om模型在板子上的哪个位置)

scp resnet50_imagenet_classification/caffe_model/model/resnet50.om  
HwHiAiUser@192.168.0.2:/home/HwHiAiUser/resnet50_imagenet_classification/caffe_model


再单独传送个文件过去
最后返回 resnet50_imagenet_classification/out 底下,再运行 ./main ,即可运行

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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