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, 그리고 완전한 데이터사이언스 툴체인(파이썬, PyTorch, TensorFlow, Julia, R 등)을 통합한 Docker 이미지(및 지원 스크립트). Ubuntu 기반으로 구축되어 단일 docker run 명령어로 실행 가능하며, 호스트의 NVIDIA GPU를 직접 사용할 수 있는 재현 가능하고 공유 가능한 JupyterLab 서버를 제공합니다.

왜 중요한가요 – GPU에서 딥러닝 코드를 실행하려면 일반적으로 다음을 충족해야 합니다:

  • CUDA 드라이버 버전을 일치시켜야 하고,
  • 적절한 파이썬 패키지를 설치해야 하며,
  • 다양한 머신 간에 환경을 재현 가능하게 유지해야 합니다. 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 연구 및 교육의 견고한 기반을 제공합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트