Nvidia Jetson AGX Orin 初体验(四)安装MindSpore

举报
张辉 发表于 2022/04/27 20:30:41 2022/04/27
【摘要】 本文介绍了Jetson AGX Orin的深思过程。

把一切边缘设备都装上MindSpore可能是张小白的梦想。

打开MindSpore官网:

一如既往地没有aarch64 Linux的版本。


1、安装Anaconda

首先登陆orin:

去Anaconda官网下载aarch64的安装包:

将其传到orin:

安装: bash ./Anaconda3-2021.11-Linux-aarch64.sh

 ..

回答yes:

回车继续:

耐心等待安装结束:

yes初始化一下吧:

source ~/.bashrc

这就已经进入了conda环境了。


2、创建python 3.7.5的conda环境

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/peterjc123/

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/

conda config --set show_channel_urls yes

conda create -n py375 python=3.7.5

按Y继续:

进入Python 3.7.5环境:

对比 https://zhuanlan.zhihu.com/p/473273579 Nvidia Jetson Nano B01初体验 一文,张小白居然安装成功了Anaconda环境,深感欣慰!


3、安装gmp 6.1.2

wget https://gmplib.org/download/gmp/gmp-6.1.2.tar.xz

xz -d gmp-6.1.2.tar.xz

tar -xvf gmp-6.1.2.tar

cd gmp-6.1.2

./configure

make -j8

sudo make install

4、升级pip

python -m pip install --upgrade pip

5、安装系统依赖包:

sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python3-openssl

...

6、安装cmake 3.23

打开 https://github.com/Kitware/CMake/releases/

wget https://github.com/Kitware/CMake/releases/download/v3.23.1/cmake-3.23.1-linux-aarch64.sh

试着装一下:

bash ./cmake-3.23.1-linux-aarch64.sh

 。。

回答Y

再回答y

好像只是解压了一下。。

export PATH=~/cmake-3.23.1-linux-aarch64/bin:$PATH

并将其加入到.bashrc中。

cmake --version


7、patch 2.5.4

wget http://ftp.gnu.org/gnu/patch/patch-2.5.4.tar.gz


tar zxvf patch-2.5.4.tar.gz

cd  patch-2.5.4
./configure


make -j8

sudo make install -j8

patch --version


8、Flex 2.6.4

sudo apt-get install flex

flex --version

已经装好了。


9、wheel 0.37.1

pip install wheel 

也已经有了。


10、openssl 1.1.1

wget https://github.com/openssl/openssl/archive/OpenSSL_1_1_1g.tar.gz

tar -zxvf OpenSSL_1_1_1g.tar.gz

cd openssl-OpenSSL_1_1_1g/

./config --prefix=/usr/local/openssl

make -j8

sudo make install -j8

执行:

export OPENSSL_ROOT_DIR=/usr/local/openssl

并将其加入~/.bashrc


11、NUMA 2.0.12-1

sudo apt-get install libnuma-dev


12、gcc 7.3.0

sudo apt-get install -y build-essential m4 libgmp-dev libmpfr-dev libmpc-dev

wget http://ftp.gnu.org/gnu/gcc/gcc-7.3.0/gcc-7.3.0.tar.gz

tar -xzf gcc-7.3.0.tar.gz

cd gcc-7.3.0
./configure --enable-checking=release --enable-languages=c,c++ --disable-multilib

make -j8

报错了!

查询解决方案:https://blog.csdn.net/weixin_46584887/article/details/122538399

根据解决方案来处理一下:

修改 libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc

157行注释掉:

250行左右修改如下:

重新make -j8

编译成功。


sudo make install -j8

编译后的处理:

cd /usr/bin
sudo mv gcc gcc9.4
sudo mv g++ g++9.4
sudo ln -s /usr/local/bin/gcc gcc
sudo ln -s /usr/local/bin/g++ g++
gcc --version
g++ --version

13、安装autoconf、libtool、automake

检查autoconf:

已有。

wget https://ftpmirror.gnu.org/libtool/libtool-2.4.6.tar.gz

cd libtool-2.4.6/

tar -xzf libtool-2.4.6.tar.gz

make -j8
sudo make install

libtool --version

检查automake

没有。

wget http://ftp.gnu.org/gnu/automake/automake-1.16.tar.gz

tar -xzf automake-1.16.tar.gz

cd automake-1.16

./configure

make -j8
sudo make install

automake --version 

14、源码编译mindspore 1.6.1

git clone https://gitee.com/mindspore/mindspore.git -b r1.6

cd mindspore

照例修改 scripts/build/build_mindspore.sh

将第111行改为:

开始编译:

cd mindspore

./build.sh -e gpu -j8

耐心等待编译结束:

。。。

。。。

检查build/package下的编译结果:

可见:

mindspore_gpu-1.6.1-cp37-cp37m-linux_aarch64.whl 已生成。


15、安装mindspore 1.6.1 aarch64 GPU版

pip install ./mindspore_gpu-1.6.1-cp37-cp37m-linux_aarch64.whl -i https://pypi.tuna.tsinghua.edu.cn/simple

16、验证mindspore 1.6.1 aarch64 GPU版

python -c "import mindspore;mindspore.run_check()"

结果能出来,但是时间比较长。看输出好像是orin的CUDA版本为11.4,而MindSpore建议的CUDA版本是11.1。

编辑文件 test.py:

import numpy as np
from mindspore import Tensor
import mindspore.ops as ops
import mindspore.context as context

context.set_context(device_target="GPU")
x = Tensor(np.ones([1,3,3,4]).astype(np.float32))
y = Tensor(np.ones([1,3,3,4]).astype(np.float32))
print(ops.add(x, y))

python test.py

这个倒是验证得很快,几乎一秒钟就出来了。。

终于,MindSpore漫游世界,又多了一环。

17、使用MindSpore自制版跑通LeNet网络

张小白本来想结束本文,后来想一想,前面刚试完 MindSpore for Atlas 200DK,虽然跑应用比较折腾(需要在开发环境训练,再到运行环境推理),但是至少能试出来结果。那么,MindSpore aarch64 的GPU版本能否顺利完成呢?

 (1)下载MindSpore的models代码仓:

(2)下载MNIST数据集

cd models/official/cv/lenet

mkdir MNIST

mkdir ckpt

cd MNIST

wget http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz

wget http://yann.lecun.com/exdb/mnist/train-labels-idx1-ubyte.gz

wget http://yann.lecun.com/exdb/mnist/t10k-images-idx3-ubyte.gz

wget http://yann.lecun.com/exdb/mnist/t10k-labels-idx1-ubyte.gz

gzip -d *.gz

mkdir train

mkdir test

mv train*ubyte train/

mv t10k* test/

sudo apt install tree

tree

cd ..

(3)安装必要的依赖包

pip install pyyaml

sudo apt install python*-decorator

pip install decorator  -i https://pypi.tuna.tsinghua.edu.cn/simple

(4)训练

python train.py --data_path=./MNIST/ --device_target="GPU" --ckpt_path=./ckpt

成功完成训练,貌似速度还挺快的。是不是真像说的那样赶上了3050卡的速度?

ckpt下生成了ckpt文件:

(5)评估

下面开始评估:

cd ~/models/official/cv/lenet$

python eval.py --data_path ./MNIST --ckpt_path ./ckpt/checkpoint_lenet-1_1875.ckpt --device_target="GPU"

精度为 0.97,还挺高的。

(全文完,谢谢阅读)

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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