投稿

Ubuntu 18.04 で NVIDIA RTX2070 のGPGPU機械学習環境を作る

イメージ
Ubuntu 18.04 で NVIDIA RTX2070 のGPGPU機械学習環境を作る 環境構築しかブログに書けないのは何故なのか。。。 他の作業やってる時って、色々やるすぎてまとめられない。 という言い訳。。。 今年はちゃんとアウトプットしたいと思います。 環境 OS : Ubuntu 18.04 Desctop GPU : NVIDIA RTX 2070 やること NVIDIAドライバのインストール 以下の項目は、以前書いたことがあるので、 こちらの記事 を見てください。 Dockerのインストール NVIDIA Dockerのインストール Dockerイメージを使用してtensorflow-gpuが動くことを確認 はじめに GPGPU環境を作りますが、Dockerを使うことを前提としています。 経験上、今までTensorFlow、Kerasを使用する場合、Dockerイメージを使用すれば、マシン本体に入れるNVIDIA DRIVERのバージョン、CUDAのバージョン等は最新で問題なく動きました。 なので、今回は最新のNVIDIA DRIVERをインストールして、DockerでTensorFlow等にバージョンを合わせた環境を作っていく、という考えで作業していきます。 映像出力をオンボードへ 機械学習でGPUを使用するマシンという前提なので、映像出力をGPUからオンボードへ切り替えましょう。 そうすることで、画面描画等の無駄なリソースを使わなくて済みます。 各マザーボードによって設定方法は違うので、各メーカーの説明を参考にしてください。 ちなみに、ASUSは こんな感じ です。 CUIから作業をする あとで書きますが、ドライバインストールの際にCUIに移行します。 そのため、最初からCUI環境で作業をオススメします。 ※Ubuntu18とそれ以前の切り替え操作は若干違っているので注意! 私の環境では「Ctrl + Alt + F3」でした。 NVIDIAドライバのインストール こちら の記事を参考にしながらインストールしていきたいと思います。 インストールする方法はいくつかあるようで、大きくは下記3つのようです。 Ubuntuの公式リポジト...

Kaggleカーネル環境再現

Kaggleカーネル環境再現 概要 KaggleカーネルのDockerイメージ を、ただ使っただけだとGPUを認識してくれなかったので、メモ 環境 OS : Ubuntu 18.04 bionic Kernel : x86_64 Linux 4.15.0-47-generic GPU : GeForce RTX 2070 Docker : 18.09.5, build e8ff056 やること KaggleカーネルのDockerイメージの作成 コンテナ作成 コンテナ内からGPUが認識できているか確認 やらないこと NVIDIA Docker 環境の構築など 過去記事 を参考にしてみてください カーネル環境構築 とても簡単です。 やることは以下3点 GitHubリポジトリのクローン build 環境変数変更 README.md にも書いてありましたが、最後の環境変数の変更がないと、GPUを認識してくれないようです。 (自分は見落として、色々と時間を無駄にしました…) git clone https://github.com/Kaggle/docker-python.git cd docker-python/ # 実行 ./build --gpu # コンテナ作成 docker run --runtime nvidia --rm -it kaggle/python-gpu-build /bin/bash しばらく時間はかかりますが、これだけでカーネル環境が手元にできます! が、下記にあるように、環境変数を変更しないと、うまくGPUを認識したくれませんでした。 To ensure your container can access the GPU, follow the instructions posted here . 対処法は簡単で、変数を以下のように変更するだけ。 ( container ) $ export LD_LIBRARY_PATH = /usr/local/cuda/lib64 備考 もともと変数には以下の文字列が入ってると思います。 それを変更するので、もしかしたら不具合がどこかで生じるカモしれません。 LD_LIBRARY...

Jupyter notebook で ROS を動かす

Jupyter notebook で ROS を動かす ついにROSがjupyter notebook上で動くようになったらしい! https://blog.jupyter.org/ros-jupyter-b7e82b5e1202 ロボットからしばらく離れていたけど、何かやりたいなと燻っていたので、これをキッカケにもう一度ロボットに触れたいという思いで飛びつきたいと思います。(素人感) 機械学習とロボットを結びつけたいとも思ってたので、これで少し結びつけやすそう? 使用環境 OS : Ubuntu 18.04 bionic Kernel : x86_64 Linux 4.15.0-46-generic CPU : Intel Core i7-9700K @ 8x 4.9GHz GPU : GeForce RTX 2070 RAM : 944MiB / 32034MiB Docker : 18.09.3, build 774a1f4 ROSでGPUを使用できるかわかりませんが、一応GPUを積んでいるので、記載しています。 概要 やること 基本的な環境はDockerで構築します。 Dockerfileから環境の構築 コンテナの作成 jupyter-rosの実行 やらないこと Dockerのインストール、使用方法 python等の基本的操作 今回は上記のような、各ツールの基本的な部分には触れません。 Docker、python、jupyterの基本的な使用ができて、環境構築経験のある方向けの内容になります。 Dockerや環境構築系は少し書いたこともありますが( コチラ )、他の内容が濃いので、見てもわかりにくいかもしれません。 環境構築 公式リポジトリ を参考にしながら進めていきます。 1. Dockerfileから環境の構築 昔ははコマンドを打ってセットアップしていましたが、ROSもDockerで簡単にセットアップできるようです! 最新のmelodicから melodic-robot イメージを使用します。 その他TAGは docker hub を参照して下さい。 公式リポジトリ に必要ライブラリが書いてあるので、まとめてDockerfileにしてしまいます。...

Tensorflow Object Detection APIの実行環境を作る

Tensorflow Object Detection APIの実行環境を作る 概要 超便利なGoogle製物体検知API Tensorflowがわからなくてもすぐに使えてしまうお手軽物体検知の導入のメモです。 構成 GCP ゾーン : us-west1-b マシンタイプ : n1-standard-8 OS : Ubuntu 18.04 LTS GPU : NVIDIA Tesla K80 x 2 Driver Version: 410.72 CUDA Version: 10.0 python 3.5.2 tensorflow-gpu 1.11.0 環境構築 Tensorflow Object Detection APIのクローン ソースのクローンですが、 少しコツがあります 。 そのままクローンしてしまうと、Object Detection APIと関係ないソースまでクローンしてしまいます。 そこで、 Sparse Checkout というテクニックを使って、指定のディレクトリだけをクローン、Git管理できるようにします。 # cloneしないので.gitが直下にできてしまうため # 予めディレクトリを作成 cd < path > mkdir TensorflowObjectDetectionAPI cd TensorflowObjectDetectionAPI # Sparse Checkoutの設定 git init git config core.sparsecheckout true git remote add origin https://github.com/tensorflow/models.git echo -e "research/object_detection\nresearch/slim" > .git/info/sparse-checkout git pull origin master Tensorflowのインストール installationには以下のようにありますが、個人的にオススメはDocker HubのTensorflowイメージを使ったDocker環境の作成です。 ...

Ubuntu18.04のCPU、GPU 温度を、Zabbix4.0から監視する

イメージ
Ubuntu18.04のCPU、GPU 温度を、Zabbix4.0から監視する 外から自宅のGPU環境を使用する場合、いつの間にかマシンの温度が上がりすぎ、死亡、最悪火事、なんて事にはしたくないので、温度を監視したいと思います。 やはり、皆考えることは同じようで、 先駆者の方々 を参考にさせてもらいながら、最新の手法に則って導入したいと思います。 環境 OS: Ubuntu 18.04 CPU: インテル GPU: NVIDIA やること Ubuntuサーバの温度監視をZabbixを使って行う。 できればアラートも上げたい。 Zabbixインストール Zabbix監視設定 Zabbix4.0のインストール Zabbix公式 のドキュメントを参考にしていきます。 Zabbixリポジトリの追加 # この先rootユーザーでの実行なので、rootに切り替えます $ sudo su # wget https://repo.zabbix.com/zabbix/4.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.0-2+bionic_all.deb # dpkg -i zabbix-release_4.0-2+bionic_all.deb # apt update サーバー/プロキシ/フロントエンドのインストール # apt install zabbix-server-mysql # apt install zabbix-proxy-mysql # apt install zabbix-frontend-php データベースを作成 ZabbixサーバーとZabbix proxyには別々のデータベースが必要です。同じデータベースを使用することはできません。したがって、それらが同じホストにインストールされている場合、それらのデータベースは異なる名前で作成する必要があります。 と、注意書きがありますが、Zabbix proxyは使用しないので、特に気にしません。 shell > mysql -uroot -p < password > mysql > create database z...

Ubuntu 18.04 セットアップ(SSH編)

Ubuntu 18.04 セットアップ(SSH編) Ubuntu 18.04 インストール後のSSH設定 Ubuntuマシンを組むので、せっかくだしセットアップ手順を忘れないようにメモしておきます。 環境 Ubuntu 18.04 Desktop インストール後のPC 同じネットワーク内にクライアントPC 無線LANルータを使用している場合など、2重ルータになっていないよう確認してください。 ネット接続に問題は無いと思いますが、SSHを使用する場合、正しくつながらない場合があります。 その場合はルーターのブリッジ機能等の設定をしてください。 Ubuntuマシンのip固定 外部から接続する場合、必要なIP、ポートが開放されたルーター GUIで出来る事は、できるだけGUIで済ませます。 やること 今回は外からの接続設定もするので、セキュリティ、ポート周り等の設定を行います。 家庭内LANだけで使用する場合はあまり設定の必要はないと思います。 sshd_configの設定 ポート変更 rootログインの無効 パスワード認証の無効 家庭内LANの別端末からのSSH接続 ファイアウォールの設定 外部ネットワークからのSSH接続 やらないこと Ubuntuのインストール ルーターの設定 コマンドの細かい解説 あくまでUbuntuの設定を記録するつもりなので、ルーターの開放等はここには書きません。 まずは SSHで接続できるよう、openssh-servreを入れます。 sudo apt install openssh-server ※外部からSSH、もしくはパスワード認証を無効にしてSSHをする場合は、 公開鍵を下記ファイルに登録してから作業してください。接続できなくなってしまいます .ssh/authorized_keys 詳しいやり方は こちら が参考になると思います。 sshd_configの設定 家庭内LANだけで使用する場合、セキュリティ的に特に設定が必要無い場合は 読み飛ばしてください。 # ポートの変更 #Port 22 Port 1234 #好きなポート番号 # rootログインの無効 #PermitRo...

GCE(Google Compute Engine)にGCS(Google Cloud Storage)をマウントする

GCE(Google Compute Engine)にGCS(Google Cloud Storage)をマウントする 環境 GCP ゾーン : us-west1-b マシンタイプ : n1-standard-8 OS : Ubuntu 18.04 LTS Cloud Storage FUSEを使う Cloud Storage FUSEとは? Cloud Storage FUSE は、オープンソースの Fuse アダプタです。これにより、Cloud Storage バケットを、Linux または OS X システム上でファイル システムとしてマウントできます。 https://cloud.google.com/storage/docs/gcs-fuse インストール 公式Github を参考にしながら、下記コマンドを実行します。 export GCSFUSE_REPO = gcsfuse- ` lsb_release -c -s ` echo "deb http://packages.cloud.google.com/apt $GCSFUSE_REPO main" | sudo tee /etc/apt/sources.list.d/gcsfuse.list echo "deb http://packages.cloud.google.com/apt $GCSFUSE_REPO main" | tee /etc/apt/sources.list.d/gcsfuse.list curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - sudo apt update apt update apt install gcsfuse マウントする こちらも公式 README を参考にしながら。 Google Cloud Storage JSON API is enabled が有効になっていないとダメのようなので、わからない場合は最初に確認しておいたほうが良さそうです。 mnt_bucket というバケットを /path/to...