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‑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和一篇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研究與教學的堅實基礎。
相關
- 專案
- 專案
- 專案
- 專案
- 專案