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 命令啟動,提供一個可重現、可共享的JupyterLab伺服器,可直接使用主機的NVIDIA GPU。

為何重要 – 在GPU上執行深度學習程式通常需要滿足以下條件:

  • 匹配CUDA驅動版本,
  • 安裝正確的Python套件,
  • 在不同機器間保持環境可重現。 GPU‑Jupyter透過將所有內容打包進版本控制的Docker映像來解決這些問題。同一映像可從Docker Hub拉取,或透過自訂層在本機重建,確保實驗在任何地方執行時都完全一致。

主要特性(README中描述)

  • 開箱即用的GPU支援 – 使用 --gpus all 可讓容器完全存取主機GPU。
  • 多種預建構版本 – 提供完整版、python‑onlyslim 變體,以滿足不同大小/功能需求。
  • 版本化映像 – 如 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 和一篇Medium文章,介紹驅動、CUDA和NVIDIA Container Toolkit的設定。
  • 版本列表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研究與教學的堅實基礎。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案