ubuntu + pytorch + cuda(オプション)
この画像を使用するには、Dockerエンジンをインストールする必要があります。 Dockerエンジンをセットアップするための手順は、Docker Webサイトで入手できます。
CUDA互換のNVIDIAグラフィックスカードをお持ちの場合は、CUDA対応バージョンのPytorchイメージを使用して、ハードウェアアクセラレーションを有効にすることができます。 Ubuntu Linuxでこれをテストしました。
まず、適切なNVIDIAドライバーをインストールしてください。 Ubuntuでは、ドライバーの適切なバージョンを設定する最も簡単な方法は、公式のNvidia Cudaダウンロードページを介して使用する画像と同じくらい新しいバージョンのバージョンをインストールすることであることがわかりました。例として、 cuda-10.1画像を使用する場合は、CUDA 10.1またはCUDA 10.2をセットアップする場合は、正しいグラフィックスドライバーがあることを確認する必要があります。
また、Dockerコンテナ内のGPUデバイスアクセスを有効にするために、NVIDIAコンテナツールキットをインストールする必要があります。これは、nvidia/nvidia-dockerで見つけることができます。
事前に構築された画像は、Anibali/Pytorchという名前でDocker Hubで入手できます。
たとえば、Pytorch 2.0.1およびCuda 11.8を使用して画像を引くことができます。
$ docker pull anibali/pytorch:2.0.1-cuda11.8python3コマンドを使用して、コンテナ内でPytorchプログラムを実行することができます。たとえば、EntryPoint main.pyを備えたPytorchプロジェクトを含むディレクトリ内にいる場合、次のコマンドで実行できます。
docker run --rm -it --init
--gpus=all
--ipc=host
--user= " $( id -u ) : $( id -g ) "
--volume= " $PWD :/app "
anibali/pytorch python3 main.py上記のDockerコマンドラインオプションの説明は次のとおりです。
--gpus=all :cudaを使用する場合は必要です。グラフィックカードをホストからコンテナに渡します。また、このオプションを使用してどのグラフィックカードを公開するかをより正確に制御することもできます(https://github.com/nvidia/nvidia-dockerのドキュメントを参照)。--ipc=host :https://github.com/pytorch/pytorch#docker-imageで説明されているように、マルチプロセッシングを使用する場合は必要です。--user="$(id -u):$(id -g)" :ユーザーとグループIDに一致するように、コンテナ内のユーザーを設定します。オプションですが、正しい所有権を持つファイルを書き込むのに役立ちます。--volume="$PWD:/app" :現在の作業ディレクトリをコンテナにマウントします。コンテナ内のデフォルトの作業ディレクトリは/appです。オプション。Linuxホストで実行されている場合、Dockerコンテナ内でコードを実行してホストXサーバーを使用してグラフィックを表示できます(これにより、OpenCVのimshowを使用できます)。ここでは、これを行うための迅速な(しかし不安定な)方法について説明します。 GUIとDockerのより包括的なガイドについては、http://wiki.ros.org/docker/tutorials/guiをご覧ください。
ホストラン:
sudo xhost +local:rootこれらのアクセス権限を後でsudo xhost -local:rootで取り消すことができます。コンテナを実行するときは、オプション-e "DISPLAY"と--volume="/tmp/.X11-unix:/tmp/.X11-unix:rw"追加してください。これにより、コンテナに通信用のX11ソケットと表示IDが提供されます。これが例です:
docker run --rm -it --init
--gpus=all
-e " DISPLAY " --volume= " /tmp/.X11-unix:/tmp/.X11-unix:rw "
anibali/pytorch python3 -c " import tkinter; tkinter.Tk().mainloop() "画像に追加の依存関係を追加する推奨方法は、このプロジェクトのPytorch画像の1つをベースとして使用して独自のDockerFileを作成することです。
たとえば、OpenCVが必要であり、Pytorch 2.0.1を使用して作業したいとしましょう。 anibali/pytorch:2.0.1-cuda11.8-ubuntu22.04は、追加のビルドステップを使用してOpenCVをインストールし、インストールします。
FROM anibali/pytorch:2.0.1-cuda11.8-ubuntu22.04
# Set up time zone.
ENV TZ=UTC
RUN sudo ln -snf /usr/share/zoneinfo/$TZ /etc/localtime
# Install system libraries required by OpenCV.
RUN sudo apt-get update
&& sudo apt-get install -y libgl1-mesa-glx libgtk2.0-0 libsm6 libxext6
&& sudo rm -rf /var/lib/apt/lists/*
# Install OpenCV from PyPI.
RUN pip install opencv-python==4.5.1.48dockerfiles/ directoryのDockerfilesは、 manager.pyスクリプトによって自動的に生成されますimages.ymlとtemplates/のテンプレートを使用して。
新しいDockerFileの作成方法を示すワークフローの例を示します。
templates/既存のファイルがいずれも適切でない場合。images.ymlに新しいエントリを作成します(例については既存のエントリを参照)。python manager.pyを実行して、DockerFileを生成します。 dockerfileを含む新しいディレクトリは、 dockerfiles/に作成されます。