Jetson Nanoで遊んでみる(準備編)

MLの話題が続きますが、Jetson Nanoを買ったので、遊んでみます。

とりあえずはTF1.5 + Kerasが動かせるとこまで目指していきます。

SDカードを書いて初期セットアップするところまでは割愛です。公式を見ればさして嵌るところは無いと思います。セットアップはJetPack4.6で行いました。

まずはpython2がデフォルトは気に入らないので3をデフォルトにします。

$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100
$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150
$ python --version
Python 3.6.9

次に必要そうなツールを入れていきます。

$ sudo apt-get install libhdf5-serial-dev hdf5-tools libhdf5-dev zlib1g-dev zip libjpeg8-dev liblapack-dev libblas-dev gfortran
$ sudo apt-get install python3-pip
$ sudo pip3 install -U pip testresources setuptools==49.6.0 
$ sudo apt-get install libfreetype6-dev pkg-config
$ sudo apt-get install graphviz graphviz-dev
$ sudo pip3 install jetson-stats

次に仮想環境を作ってTensorFlowとKerasをセットアップします。

$ python -m venv .venv
$ source .venv/bin/activate
(.venv) $ pip3 install -U --no-deps numpy==1.19.4 future==0.18.2 mock==3.0.5 keras_preprocessing==1.1.2 keras_applications==1.0.8 gast==0.4.0 protobuf pybind11 cython pkgconfig
(.venv) $ pip3 install --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v46 tensorflow==1.15.5
(.venv) $ pip3 install keras==2.3.1
(.venv) $ pip3 install matplotlib==2.2.5 opencv-python pydot
(.venv) $ deactivate

これで概ね使えるようになったはずです。

あとはスクリプトを動かすときは、仮想環境の立ち上げと、変数のセットが必要です。以下でやります。

$ source .venv/bin/activate
(.venv) $ export OPENBLAS_CORETYPE=ARMV8

とりあえずこれで1.15.5で書いたのコードは動くようになりました。

ただメモリはシステム共有で4GBしかないので、バッチサイズを下げたりする必要はありました。

P106(1280 CUDA Core)でバッチサイズ=32が0.4秒程度のモデルをJetson(128 CUDA Core)ではバッチサイズ=1で0.6秒ぐらいなので、まあこんなもんかなぁって言ったところです。GPUクロックやメモリの帯域も全然しょぼいので仕方ないです。

ただモデルは小さければ動くのがわかったので、小規模な実験はJetsonでやれそうです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)