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、シード付き乱数関数、タグ付きデータスペースの重要性が強調されています。

一般的な使用ワークフロー

  1. 事前要件の確認 – NVIDIA GPU、ドライバ、CUDA、Docker、NVIDIA Container Toolkit。docker run --rm --gpus all nvidia/cuda:13.0.3-cudnn-runtime-ubuntu24.04 nvidia-smi で確認。
  2. 取得と実行 – 例:
    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-only
    
    出力されたトークンURL(または http://localhost:8848)を開いてコードを開始。
  3. 開発 – マウントされた data/ ディレクトリを使ってノートブック、スクリプト、データセットを保存。ノートブック内で nvidia-smi を実行してGPUの可視性を確認。
  4. 追加パッケージの追加 – 実行中のコンテナ内で apt install … を実行するか、カスタムDockerfileでイメージを拡張(READMEの例を参照)。
  5. 共有 – カスタムイメージを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研究と教育のための堅実な基盤となっています。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト