#JETSON nanoのBuild時間を短縮したい
参考にさせていただくのはこちらの記事。
Jetson 上で Docker イメージをビルドするのが辛かったので EC2 上にビルド環境を作った
nanoでも同じでいけるのではないか?
おそらく誰でもやっていると思いますが、勉強がてら自分でも調べながらやってみます。
AWSもAZUREも全然使っていないので練習練習。
※
一連の作業後、上の記事を書いた方が、もっと簡単にできる情報をアップされていらっしゃいました。
64bit ARM チップを積んだ Edge device 用に Docker image をビルドする
練習とかの必要がなければ、こちらを参考にするべきですね。
直前までAzureでRaspberryPiのBuildが出来ないかやってみたのですが、QEMUが安定動作するところまで持っていけなかったので、AWSに変更してUbuntu16マシン(xlarge)を使用します。
#仮想マシンはいいやつを使う
AWSのUbuntu 16マシンを選択しました。(参考にしたページで16.0.4を使用していた為)
無課金のものでできれば一番いいのですが、試したところコアが少ないとmake -j4でのBuildでマシンが固まって停止しました。
Jetson nanoでネイティブビルドした時と症状が同じだったので、なるほど・・・という感じです。
多少課金されても、「快適にBuildしたい」という今回の趣旨を優先しました。
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install curl
curl -sSL https://get.docker.com/ | sh
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt update
sudo apt install docker-ce
sudo usermod -aG docker ubuntu
docker run --rm --privileged multiarch/qemu-user-static:register
以上で準備完了。
Dockerfileを用意する。
FROM multiarch/ubuntu-core:arm64-xenial
RUN apt-get update && \
apt-get install -y vim
buildして実行する。
docker build -t arm64-xenial-vim -f Dockerfile .
docker run -it --rm arm64-xenial-vim:latest bash
#sudo docker run --rm --privileged multiarch/qemu-user-static:register
dockerに入ったら、以下のコマンドで確認
uname -m
file /bin/bash
#重量級のBuildを試してみる
問題なさそうなので、2019/5にビルドで大変苦労した、産総研のOpenVSRAMをDockerでBuildします。
※無課金のマシンを使うと、CPUコアを複数使ったBuild(make -j4)で止まってしまったので、有償のxlargeマシンを使っています
git clone https://github.com/xdspacelab/openvslam
nano Dockerfile.desktop
同梱のDockerfile.desktopを編集して、仮想マシンを追加します。
追加したのは先頭のみで、ubuntu:18:04は従来通り。
FROM multiarch/ubuntu-core:arm64-xenial
FROM ubuntu:18.04
ENV DEBIAN_FRONTEND noninteractive
<続く>
build実行します。
この時、make -j4でのbuildがあちらこちらに記載されていた為、貧弱なマシン構成では12%くらいまでの進捗で固まってしまい、マシンを落とすこととなりました。
十分な数のコアとメモリを用意します。(8コア32GBで実施)
手動であちこち書き換えてBuildを通すのは辛いです。
docker build -t openvslam-desktop -f Dockerfile.desktop . --build-arg NUM_THREADS=4
Jetson nanoで、通してbuildするのに2日以上、作業の手間(やり直し)などを含めて10日くらいかかったのですが、今回、Buildにかかった時間はわずかに20分でした。
あとは、これが実機に移動させて動けば良いのですが・・・
(実施中)