前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >简述CUDA镜像构建

简述CUDA镜像构建

原创
作者头像
Aelous
发布2022-07-26 16:24:33
1.2K0
发布2022-07-26 16:24:33
举报
文章被收录于专栏:DL

镜像需求

cuda-10.2

python-3.8

构建步骤

  • base 镜像
代码语言:txt
复制
可以随便找一个grpc的官法docker镜像
  • cuda 安装
代码语言:txt
复制
在虚拟机上安装cuda会需要人为输入操作指令,而在docker上安装则可以直接通过yum,具体可参照Nvidia的[dockerfile](https://gitlab.com/nvidia/container-images/cuda/-/tree/master/dist/10.2/centos7), 注意repo中有三个镜像 `base`, `run`, `devel`, 这三个镜像是顺序依赖关系,如果想在一个dockerfile里搞定,就需要合并一下

Dockerfile

代码语言:txt
复制
FROM mirrors.****.com/grpc-python-compile\_linux3.1:0.1.7 as base



FROM base as base-amd64



ENV NVARCH x86\_64

ENV NVIDIA\_REQUIRE\_CUDA cuda>=10.2 brand=tesla,driver>=396,driver<397 brand=tesla,driver>=410,driver<411 brand=tesla,driver>=418,driver<419 brand=tesla,driver>=440,driver<441

ENV NV\_CUDA\_CUDART\_VERSION 10.2.89-1





RUN echo -e "[cuda]\nname=cuda\nbaseurl=https://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86\_64\nenabled=1\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-NVIDIA" > /etc/yum.repos.d/cuda.repo

RUN echo -e "[nvidia-ml]\nname=nvidia-ml\nbaseurl=https://developer.download.nvidia.com/compute/machine-learning/repos/rhel7/x86\_64\nenabled=1\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-NVIDIA" >  /etc/yum.repos.d/nvidia-ml.repo







RUN NVIDIA\_GPGKEY\_SUM=d1be581509378368edeec8c1eb2958702feedf3bc3d17011adbf24efacce4ab5 && \

    curl -fsSL https://developer.download.nvidia.com/compute/cuda/repos/rhel7/${NVARCH}/7fa2af80.pub | sed '/^Version/d' > /etc/pki/rpm-gpg/RPM-GPG-KEY-NVIDIA && \

    echo "$NVIDIA\_GPGKEY\_SUM  /etc/pki/rpm-gpg/RPM-GPG-KEY-NVIDIA" | sha256sum -c --strict  -



ENV CUDA\_VERSION 10.2





RUN yum upgrade -y 

RUN yum install -y \

    cuda-cudart-10-2-${NV\_CUDA\_CUDART\_VERSION} \

    cuda-compat-10-2 \

    && ln -s cuda-10.2 /usr/local/cuda \

    && yum clean all \

    && rm -rf /var/cache/yum/\*



# nvidia-docker 1.0

RUN echo "/usr/local/nvidia/lib" >> /etc/ld.so.conf.d/nvidia.conf && \

    echo "/usr/local/nvidia/lib64" >> /etc/ld.so.conf.d/nvidia.conf



ENV PATH /usr/local/nvidia/bin:/usr/local/cuda/bin:${PATH}

ENV LD\_LIBRARY\_PATH /usr/local/nvidia/lib:/usr/local/nvidia/lib64



# nvidia-container-runtime

ENV NVIDIA\_VISIBLE\_DEVICES all

ENV NVIDIA\_DRIVER\_CAPABILITIES compute,utility



ENV NV\_CUDA\_LIB\_VERSION 10.2.89-1

ENV NV\_NVTX\_VERSION 10.2.89-1

ENV NV\_LIBNPP\_VERSION 10.2.89-1



ENV NV\_LIBCUBLAS\_PACKAGE\_NAME libcublas10

ENV NV\_LIBCUBLAS\_VERSION 10.2.2.89-1

ENV NV\_LIBCUBLAS\_PACKAGE ${NV\_LIBCUBLAS\_PACKAGE\_NAME}-${NV\_LIBCUBLAS\_VERSION}



ENV NV\_LIBNCCL\_PACKAGE\_NAME libnccl

ENV NV\_LIBNCCL\_PACKAGE\_VERSION 2.11.4-1

ENV NCCL\_VERSION 2.11.4

ENV NV\_LIBNCCL\_PACKAGE ${NV\_LIBNCCL\_PACKAGE\_NAME}-${NV\_LIBNCCL\_PACKAGE\_VERSION}+cuda10.2

RUN yum install -y \

    cuda-libraries-10-2-${NV\_CUDA\_LIB\_VERSION} \

    cuda-nvtx-10-2-${NV\_NVTX\_VERSION} \

    cuda-npp-10-2-${NV\_LIBNPP\_VERSION} \

    ${NV\_LIBCUBLAS\_PACKAGE} \

    ${NV\_LIBNCCL\_PACKAGE} 



ENV NV\_CUDA\_LIB\_VERSION 10.2.89-1

ENV NV\_NVPROF\_VERSION 10.2.89-1

ENV NV\_CUDA\_CUDART\_DEV\_VERSION 10.2.89-1

ENV NV\_NVML\_DEV\_VERSION 10.2.89-1



ENV NV\_LIBNPP\_DEV\_VERSION 10.2.89-1



ENV NV\_LIBCUBLAS\_DEV\_PACKAGE\_NAME libcublas-devel

ENV NV\_LIBCUBLAS\_DEV\_VERSION 10.2.2.89-1

ENV NV\_LIBCUBLAS\_DEV\_PACKAGE ${NV\_LIBCUBLAS\_DEV\_PACKAGE\_NAME}-${NV\_LIBCUBLAS\_DEV\_VERSION}



ENV NV\_LIBNCCL\_DEV\_PACKAGE\_NAME libnccl-devel

ENV NV\_LIBNCCL\_DEV\_PACKAGE\_VERSION 2.11.4-1

ENV NCCL\_VERSION 2.11.4

ENV NV\_LIBNCCL\_DEV\_PACKAGE ${NV\_LIBNCCL\_DEV\_PACKAGE\_NAME}-${NV\_LIBNCCL\_DEV\_PACKAGE\_VERSION}+cuda10.2



RUN yum install -y \

    make \

    cuda-nvml-dev-10-2-${NV\_NVML\_DEV\_VERSION} \

    cuda-command-line-tools-10-2-${NV\_CUDA\_LIB\_VERSION} \

    cuda-cudart-dev-10-2-${NV\_CUDA\_CUDART\_DEV\_VERSION} \

    cuda-libraries-dev-10-2-${NV\_CUDA\_LIB\_VERSION} \

    cuda-minimal-build-10-2-${NV\_CUDA\_LIB\_VERSION} \

    cuda-nvprof-10-2-${NV\_NVPROF\_VERSION} \

    cuda-npp-dev-10-2-${NV\_LIBNPP\_DEV\_VERSION} \

    ${NV\_LIBCUBLAS\_DEV\_PACKAGE} \

    ${NV\_LIBNCCL\_DEV\_PACKAGE} \

    && yum clean all \

    && rm -rf /var/cache/yum/\*





#RUN 执行以下命令

RUN yum install -y wget  && yum clean all





#WORKDIR 相当于cd

WORKDIR /usr/local/app

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 镜像需求
  • 构建步骤
  • Dockerfile
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档