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研究与教学的坚实基础。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目