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