iot-salzburg/gpu-jupyter
GPU-Jupyter: Your GPU-accelerated JupyterLab with a rich data science toolstack, TensorFlow and PyTorch for your reproducible deep learning experiments.
GPU‑Jupyter – インストール不要、GPU対応のJupyterLab環境
何であるか – NVIDIAのCUDAランタイム、公式の Jupyter Docker Stacks、およびフルなデータサイエンスツールチェーン(Python、PyTorch、TensorFlow、Julia、Rなど)をバンドルしたDockerイメージ(およびサポートスクリプト)。Ubuntu上で構築され、単一の docker run コマンドで起動可能。ホストのNVIDIA GPUを直接利用できる再現性があり、共有可能なJupyterLabサーバーを提供します。
なぜ重要か – GPU上でディープラーニングコードを実行するには通常、以下の点を満たす必要があります:
- CUDAドライバのバージョンを一致させること、
- 適切なPythonパッケージをインストールすること、
- マシン間で環境を再現可能に保つこと。 GPU‑Jupyterは、すべてをバージョン管理されたDockerイメージにパッケージ化することで、これらすべての課題を解決します。同じイメージはDocker Hubから取得可能であり、カスタムレイヤーでローカルに再ビルドすることもでき、実験がどこで実行されても完全に同一の状態を保証します。
主な機能(READMEに記載)
- GPUサポートは標準装備 –
--gpus allを使用すると、コンテナがホストのGPUに完全アクセス可能になります。 - 複数の事前ビルド済みバリアント – サイズや機能のニーズに応じて、フルイメージ、python‑only、およびslimバージョンが用意されています。
- バージョン管理済みイメージ –
v1.11_cuda-13.0_ubuntu-24.04のようなタグは、ジェネレータバージョン、CUDAバージョン、Ubuntuベースを符号化しており、実験の再現性を確保します。 - 組み込みのディープラーニングライブラリ – PyTorch、TensorFlowに加え、オプションでJuliaとRのサポートも提供。
- JupyterLab UI – 自動起動。
JUPYTER_TOKENを設定することで、トークンログインを静的にすることができます。 - 簡単なカスタマイズ –
FROM cschranz/gpu-jupyter:…を使用し、カスタムDockerfileで追加のaptパッケージやpip要件を追加可能。 - Docker‑Compose対応 – より複雑な展開用にサンプル
docker‑compose.ymlが提供されています。 - TensorBoard統合 – ポートフォワーディング(
-p 6006:6006)が可能で、--bind_allフラグの使用方法もドキュメント化されています。 - 再現性重視 – READMEではバージョン管理されたDockerfile、シード付き乱数関数、タグ付きデータスペースの重要性が強調されています。
一般的な使用ワークフロー
- 事前要件の確認 – NVIDIA GPU、ドライバ、CUDA、Docker、NVIDIA Container Toolkit。
docker run --rm --gpus all nvidia/cuda:13.0.3-cudnn-runtime-ubuntu24.04 nvidia-smiで確認。 - 取得と実行 – 例:
出力されたトークンURL(またはmkdir -p data docker run --gpus all -it -p 8848:8888 \ -v "$(pwd)/data:/home/jovyan/work" \ -e GRANT_SUDO=yes -e JUPYTER_ENABLE_LAB=yes \ --user root cschranz/gpu-jupyter:v1.11_cuda-13.0_ubuntu-24.04_python-onlyhttp://localhost:8848)を開いてコードを開始。 - 開発 – マウントされた
data/ディレクトリを使ってノートブック、スクリプト、データセットを保存。ノートブック内でnvidia-smiを実行してGPUの可視性を確認。 - 追加パッケージの追加 – 実行中のコンテナ内で
apt install …を実行するか、カスタムDockerfileでイメージを拡張(READMEの例を参照)。 - 共有 – カスタムイメージをDocker Hubにプッシュし、Docker実行コマンド(または
docker‑compose.yml)を共有することで、共同作業者が正確な環境を再現可能にします。
クイックスタートリソース
- クイックスタートセクション – ステップバイステップのコマンドライン手順。
- サンプルプロジェクト –
github.com/iot-salzburg/reproducible-research-with-gpu-jupyterは完全な再現可能な実験の例を示します。 - インストールガイド –
extra/README‑installations.mdと、ドライバ、CUDA、NVIDIA Container Toolkitの設定に関するMedium記事。 - バージョン一覧 –
extra/README‑versions.mdは、各タグに含まれるPython、PyTorch、TensorFlow、Julia、Rの正確なバージョンを列挙しています。 - チュートリアル動画 – JupyterLab入門用のYouTube動画へのリンク。
どのような人にとって有用か?
- 研究者・学生 – システム全体のCUDAインストールを気にせず、ポータブルで再現可能なディープラーニング環境が必要な人。
- チーム – すべてのメンバーが同じライブラリバージョンで実行できる単一のDockerイメージを共有したい人。
- 教育者 – GPU加速ラボ用の即時利用可能なJupyterLabセットアップを探している人。
- DevOps / MLOpsエンジニア – ノートブックのDockerベースデプロイを好む人で、CIパイプラインと統合したい人(リポジトリにはGitHub Actionsバッジも含まれています)。
指摘された制限事項
- NVIDIA GPU(またはそのGPUを提供するクラウドプロバイダ)が必要。
- 正しいCUDAバージョンがホストドライバと互換性がある必要がある。そうでない場合は、イメージを再ビルドする必要がある。
- デフォルトのコンテナは
rootとして実行される。ホストのUID/GIDに変更可能だが、ボリュームマウント時の権限処理には注意が必要。
結論
GPU‑Jupyterは、ドキュメントが充実し、積極的にメンテナンスされているDockerベースの配布物であり、NVIDIA GPUを搭載したホストマシンを、最も一般的なディープラーニングライブラリが事前にインストールされた完全なJupyterLabワークステーションに変えることができます。バージョン管理されたイメージと簡単なカスタマイズの強調により、再現可能なAI研究と教育のための堅実な基盤となっています。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト