pytorch cuda gpu版本与detectron2、jupyter notebook安装

发布时间 2023-03-27 19:32:32作者: 钟子期

任意版本的pytorch、cuda的gpu版本与detectron2、jupyter notebook安装

1. 简介

本文主要介绍pytorch cuda gpu版本与detectron2、jupyter notebook安装, 主要是基于docker构建AI开发/预测用的环境.

优势与不足

  1. 优势

    • 一键安装, 无需手动安装pytorch/cuda/detectron2/jupyter notebook等,尤其是在Windows系统下安装detectron2, 安装过程中会遇到各种问题, 本文避免了这些问题.
    • docker运行GPU任务与直接在宿主机器上运行GPU任务性能相当,方便后续移植交付.
  2. 不足

    • 目前只支持NVIDIA的cuda以及x86/amd64架构处理器,缺乏arm架构版本,也未找到opencl版本的base镜像, 后续找到后会更新.

2. 快速启动

主要思路为启动时挂载工程目录, 启动jupyter notebook, 然后在宿主机器上通过浏览器访问jupyter notebook, 从而实现在宿主机器上开发代码, 在容器内运行代码.

  1. 下载镜像 docker pull zzc932/pytorch:1.13.0-py3.9.12-cuda11.7.1-ubuntu20.04

  2. 检查GPU是否正常使用

docker run --rm --gpus all -it zzc932/pytorch:1.13.0-py3.9.12-cuda11.7.1-ubuntu20.04 nvidia-smi

参数说明:

  • --rm: 容器退出后自动删除
  • --gpus all: 使用所有GPU,如果只使用部分GPU,可以使用--gpus device=0,1
  • -it: 交互式运行
  • zzc932/pytorch:1.13.0-py3.9.12-cuda11.7.1-ubuntu20.04: 镜像名称
  • nvidia-smi: 检查Nvidia GPU是否正常使用
  1. 使用前初始化jupyter密码, 输入两遍新密码
# 初始化jupyter密码
mkdir ~/.jupyter
# 执行后输入两遍新密码
docker run --rm -it -v ~/.jupyter:/root/.jupyter zzc932/pytorch:1.13.0-py3.9.12-cuda11.7.1-ubuntu20.04 bash -c "jupyter notebook password"
Enter password:
Verify password:
  1. 正式启动jupyter notebook
# 警告: --ip=0.0.0.0 --allow-root 会导致jupyter notebook不安全, 在生产环境使用时请去掉
docker run --name myjupyter -d -v ~/.jupyter:/root/.jupyter -p 8888:8888 zzc932/pytorch:1.13.0-py3.9.12-cuda11.7.1-ubuntu20.04 \
bash -c "jupyter notebook --ip=0.0.0.0 --allow-root"
  1. 在宿主机器上访问jupyter notebook
    宿主机指运行这个docker容器的机器, 一般是本机(http://127.0.0.1:8888), 也可以是远程机器(http://hostname -i:8888).

3. dockerfile内容

本章节给出dockerfile, 有需要修改特定CPU架构/GPU驱动的需求,可以修改对应命令.

FROM cnstark/pytorch:1.13.0-py3.9.12-cuda11.7.1-ubuntu20.04
# gcc & g++ ≥ 5.4 are required. ninja 
RUN pip install ninja
RUN cd /tmp && apt-get update && apt-get install -y git && \
git clone https://github.com/facebookresearch/detectron2.git && \
python -m pip install -e detectron2 jupyter

4. 如何构建任意版本的镜像

python、pytorch、cuda一直在更新, 本文只是给出了一个常用的版本pytorch:1.13.0-py3.9.12-cuda11.7.1-ubuntu20.04,
如果需要构建其他版本的镜像, 则更换base镜像重新构建即可.

以Ubuntu20.04-Python3.9.10-CUDA11.3-Pytorch1.10.2为例,Dockerfile文件如下:

# CUDA基础镜像
FROM nvidia/cuda:11.3.1-cudnn8-runtime-ubuntu20.04
# CPU版本
# FROM ubuntu:20.04

# 安装基础包
RUN apt update && \
    apt install -y \
        wget build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev \
        libreadline-dev libffi-dev libsqlite3-dev libbz2-dev liblzma-dev && \
    apt clean && \
    rm -rf /var/lib/apt/lists/*

WORKDIR /temp

# 下载python
RUN wget https://www.python.org/ftp/python/3.9.10/Python-3.9.10.tgz && \
    tar -xvf Python-3.9.10.tgz

# 编译&安装python
RUN cd Python-3.9.10 && \
    ./configure --enable-optimizations && \
    make && \
    make install

WORKDIR /workspace

RUN rm -r /temp && \
    ln -s /usr/local/bin/python3 /usr/local/bin/python && \
    ln -s /usr/local/bin/pip3 /usr/local/bin/pip

# 安装pytorch
# https://pytorch.org/get-started/locally/
RUN pip3 install torch==1.10.2+cu113 torchvision==0.11.3+cu113 torchaudio==0.10.2+cu113 -f https://download.pytorch.org/whl/cu113/torch_stable.html && \
    rm -r /root/.cache/pip

5. 参考