张小白带你玩转Atlas 200DK+CANN 5.0.4+MindStudio 3.0.4(四)MindStudio安装配置
四、MindStudio 3.0.4的安装与配置
以下操作,如非特别说明,都是在开发环境——ubuntu x86的虚拟机上操作。
在安装MindStudio 3.0.4之前,可以看一下昇腾论坛置顶的安装视频:https://bbs.huaweicloud.cn/forum/thread-183030-1-1.html
1、下载MindStudio安装包
下载MindStudio 3.0.4安装包:
2、安装必要的系统依赖包
(1)cmake 3.5.2
cmake 3.5.2 是MindStudio进行C++工程进行编译的cmake的最小版本:
获取源码包:
wget https://cmake.org/files/v3.5/cmake-3.5.2.tar.gz --no-check-certificate
解压:
tar -zxvf cmake-3.5.2.tar.gz
cd cmake-3.5.2
./bootstrap --prefix=/usr
make -j8
sudo make install -j8
cmake -version
(2)gcc 7.3.0
wget https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-7.3.0/gcc-7.3.0.tar.gz
./configure --enable-languages=c,c++ --disable-multilib --with-system-zlib --prefix=/usr/local/gcc7.3.0
...
make -j8
...
sudo make install -j8
将gcc 7.3.0的PATH和LD_LIBRARY_PATH加入环境变量:
source ~/.bashrc使得环境变量生效
然后检查gcc,g++的版本:
(3)git
sudo apt-get install git
(4)Python 3.7.5源码安装
可参见 Ubuntu 18.04 Python 3.7.5 安装 https://bbs.huaweicloud.cn/blogs/195227 (搜索 python的源码包) https://bbs.huaweicloud.cn/blogs/198324 (Part Three)
检查安装结果:
3、安装必要的PIP依赖包
python3 -m pip install numpy decorator sympy cffi pyyaml pathlib2 psutil protobuf scipy requests grpcio pylint absl-py --user -i https://pypi.tuna.tsinghua.edu.cn/simple
有些依赖有冲突,所以有些包没装起来,比如te 0.4.0需要attrs., schedule-search 0.0.1需要tensorflow>=1.10.0 ,但是张小白感觉应该问题不大。
4、下载samples代码仓
将samples代码仓下载到本地:
5、解压并启动MindStudio
解压
tar -zxvf MindStudio_3.0.4_linux.tar.gz
cd MindStudio/bin
执行 ./MindStudio.sh 启动MindStudio
在MobaXterm弹出的MindStudio窗口,选择Do not import settings
进入MindStudio主界面:
6、使用MindStudio打开venc样例工程
(1)配置CANN Toolkit
打开samples下的venc项目:
可参考 https://gitee.com/ascend/samples/tree/master/cplusplus/level2_simple_inference/0_data_process/venc
系统会弹出警告信息:没装CANN:
点击OK
弹出以上的窗口,点击install按钮:
选择CANN的目录:
选到$HOME/Ascend/ascend-toolkit/5.0.4alpha005 这层,点击OK。
点击Finish
点击OK,系统就进入了MindStudio的IDE开发界面:
第一次选择了CANN之后,以后打开别的工程,仅需确认这个CANN的版本即可,无需反复安装。
(2)配置Deployment
MindStudio的Deployment配置是在建立位于开发环境的MindStudio跟位于运行环境的200DK之间的联系。
打开MindStudio工具栏上的Tools,依次选择Deployment->Configuration..
会弹出以下菜单:
点击+,输入server名称:Atlas200DK
弹出以下菜单:
点击SSH configuration右边的...
点击+,在弹出的界面中输入 200DK 的IP地址 192.168.199.204,用户名HwHiAiUser,密码Mind@123,然后测试连接:
弹出的菜单中点击OK
系统显示连接成功:
点击连续几个OK后,返回Setting的Tools->Deployment界面:
点击apply和OK,关闭窗口。
这里需要注意的是,每打开一个新的工程,都要配置一个deployment。
(3)编译尝试
点击Build->Build Configurations:
咦,这里选不了aarch64,怎么回事?
打开 Ascend-》CANN Manager:
有个奇怪的现象,aarch环境的Host OS居然是Euler OS,而不是ubuntu。
经过咨询 @刘鹏程 老师,社区版的CANN用的是一样的交叉编译器。所以选择如下方式:
点击Build:
报src/CMakeLists.txt文件的第20行有问题。查了一下,指的是缺INSTALL_DIR这个环境变量。
仔细看了下这个CMakeLists文件,下面还有THIRDPART_PATH、CPU_ARCH好几个变量没有值。这是怎么回事呢?
张小白才想起,在做CANN训练营大作业的过程中,执行的 scripts/sample_build.sh 这个脚本,先是做了 target_kernel,再做了build的。
那么,我们在200DK的环境上执行target_kernel,看看这三个变量是什么值呢?
我们将这三个环境变量都放在Build Configuration的Enviroment Variabes里面:
OK
点击Save后再Build
报找不到acl.h
试图把 这三个环境变量写在 ~/.bashrc下,
source ~/.bashrc后打开MindStudio:
把Enviroment Variables清空:
再重新Build:
这回报了找不到 opencv的错。
opencv的安装比较复杂,所以在本章我们先暂时不解决这个问题。
7、使用MindStudio打开resnet50_imagenet_classification样例工程
我们打开一个不使用opencv的样例工程吧!
张小白记得CANN训练营新手班的作业——samples/cplusplus/level2_simple_inference/1_classification/resnet50_imagenet_classification 这个案例没用到 opencv,那就用这个练练手吧!
(1)下载CANN 5.0.4alpha005对应的sample代码仓
根据 https://gitee.com/ascend/samples 首页的提示:
在下载sample仓的时候,需要tag=v0.6.0
新建一个tag目录
mkdir tag
cd tag
git clone -b v0.6.0 https://gitee.com/ascend/samples.git
(2)编译尝试
照例打开 样例工程:
编译Build:
报-lascendcl不对,看日志,确实是使用了x86进行了交叉编译,这显然不对。应该用arm才对。
经过 @刘鹏程 老师的提示,设置以下环境变量:
NPU_HOST_LIB=/home/ascend/Ascend/ascend-toolkit/5.0.4.alpha005/arm64-linux/runtime/lib64/stub
这个可以设置在.bashrc中,也可以设置在 Build的Enviroment Variabes中:
设置完后,Build:
编译成功了。
(3)运行尝试
运行试试看:
先需要到Tools-Deployment设置 Mappings,也就是x86上的工程目录与Atlas 200DK上工程目录的映射关系:
点击加号,会出现默认值,点击确认即可:
点击OK。
点击Run菜单:
点击Edit Configurations:
选择远程执行 (Remote Run),以及可执行代码:out/main
点击apply,或者Run:
当然这个时候会报模型找不到的错。
因为张小白还没根据 readme的要求准备模型呢!
(4)模型转换
atc转换可以在MindStudio里面做,也可以在200DK的命令行做。我们为了方便,选择后一种方式。
登陆到200DK主机,下载resnet模型的caffe包:(请原谅目录写成了yolo),并进行atc模型转换,生成resnet50.om离线模型:
然后将下载的模型copy回x86工程的model目录:
(5)再次运行尝试
得到了跟在200DK执行同样的结果。撒花!
(未完待续)
- 点赞
- 收藏
- 关注作者
评论(0)