はじめに
機械学習周りは得に利用ライブラリのバージョンが大切になってくると考えている。
実環境にPythonやその他利用ライブラリをインストールしても良いが、既存のライブラリ等とバージョンが干渉する恐れがあり、仮想環境を用いるのが望ましい。
pyenv等の仮想環境を用いても良いが、今回はDockerを用いた仮想コンテナで環境構築を行う。
開発環境
環境 | 詳細 |
---|---|
OS | ArchLinux |
Docker | 24.0.5 |
DockerCompose | 2.20.3 |
本記事ではArchLinuxを用いて解説を進める。パッケージの取得方法などは利用するOSに依存する為異なるが、大まかな流れは同じとなる。
また、Dockerは既にインストール済みであることを前提とし、取得方法は省略する。
環境構築
nvidia container toolsのインストール
はじめに、Gitからnvidea container toolsのインストールを行う。AURに載っているGit Clone URLからコードを取得しインストールする。
$ git clone https://aur.archlinux.org/libnvidia-container.git
$ cd libnvidia-container
$ makepkg -si
なお、インストール中に依存パッケージの取得に失敗した場合はpackmanをアップデートする必要がある。
$ sudo pacman -Syu
ubuntuなどArchLinux以外のOSを利用している場合、NVIDEA公式にインストール方法が載っているため参照。
また、GPUを利用する場合ドライバが必要になる。nvidia-smi
コマンドでレスポンスがあればインストールされている。
JupyterNotebookの立ち上げ
Dockerコンテナを用いてJupyterNotebookを立ち上げる。TensorFlow公式を参考にDockerfileとdocker-compose.ymlファイルを作成する。
FROM tensorflow/tensorflow:latest-gpu-jupyter
RUN apt update && apt -y install tzdata
ENV TZ=Asia/Tokyo
RUN pip3 install $PACKAGE # 必要なパッケージがある場合はインストール
CMD ["jupyter", "notebook", "--ip=0.0.0.0","--port=8888", "--no-browser", "--allow-root", "--NotebookApp.token="]
version: "3.6"
services:
main:
build: .
volumes:
- .:/main
working_dir: /main
ports:
- 8888:8888
# ここからGPUの設定
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: [gpu]
これでDockerを立ち上げるとJupyterNotebook起動する。localhost:8888にアクセスすることでJupyterNotebookにアクセスできる。
$ docker-compose up
GPUの確認
最後に、コンテナ内でGPUを認識しているか確認する。
$ docker-compose exec main bash
上記コマンドでコンテナ内に入り、ドライバーがインストールされているか確認したコマンドで認識しているか確認する。
root$ nvidia-smi
おわりに
以上でDockerを用いたJupyterNotebook上のTensorFlowでNVIDEA GPUを利用する環境構築が完了となる。では、良い深層学習ライフを。