• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

构建docker环境能够运行自己的GPU服务,能够极快适应不同宿主机的GPU型号、操作系统和驱动。linux版本、nvidia驱动、cuda、cudnn,docker+conda安装深度学习环境

武飞扬头像
沉睡的小卡比兽
帮助1

针对深度学习模型配置环境不方便的问题,通常会在K8s集群上采用docker方式运行深度学习相关的服务,由于GPU型号的换代以及nvidia驱动、cuda版本的升级,快速构建一个能够让自己深度学习模型或服务跑起来的docker镜像,能够提升生产效率。文中附有nvidia驱动、cuda、cudnn的版本依赖文档,便于查看资料。

本文介绍比较简单无脑的方式,利于新手上路。同时帮助在校学生能够快速构建镜像,利用学校的K8s集群开始自己的深度学习之旅。


1、前置准备

(1)需要安装好docker和nvidia-docker(如果需要使用GPU设备的话)

(2)熟悉一下dockerhub的网站和资源,注册一个账号

(3)需要了解一下深度学习环境配置的一些依赖关系。最重要的:

1)linux版本与nvidia驱动的版本依赖

2)nvidia驱动 与 cuda版本之间的依赖,cuda版本与cudnn版本之间的依赖

   cuda官方文档中的依赖说明,可见链接:   Release Notes :: CUDA Toolkit Documentation

学新通

   在不同版本的cuda文档中,可以查看linux内核版本和一些系统组件版本的对应关系。可选择相应cuda版本文档,链接和图以cuda11.5为例:Installation Guide Linux :: CUDA Toolkit Documentation

学新通

3)深度学习框架(如tensorflow、pytorch、paddle)版本 与 cuda、cudnn版本之间的依赖

   pytorch安装环境依赖:         https://pytorch.org/get-started/previous-versions/

   tensorflow安装环境依赖:     从源代码构建  |  TensorFlow

   paddle安装环境依赖:          开始使用_飞桨-源于产业实践的开源深度学习平台

若以上链接失效,可在评论区留言,有时间的话会更新。

如果自己从头安装,安装顺序:nvidia驱动-cuda&cudnn-深度学习框架,cuda和cudnn可以装宿主机也可以装conda的虚拟环境中。

然而,实际学习和工作的过程中,希望复现人家开源的代码或者使用开源提供的模型,就需要考虑3)里面的内容了。一般来说如果采用docker,平台的宿主机内核与驱动能够支持想用cuda版本。


2、简易制作镜像的思路

采用dockerhub中已经装好nvidia驱动、cuda、cudnn、conda(minconda)的镜像源为基础镜像,然后通过conda构建虚拟环境可以创建虚拟环境,构建其他cuda、cudnn版本,以适应不同的深度学习框架版本的依赖。

注意:这样做能够快速上手构建镜像,但是如果你觉得用别人的base镜像不保险的话,可自行构建一个nvidia驱动、cuda、cudnn、conda(minconda)的镜像


3、采用dockerhub中较好的base镜像

文本在这里推荐dockerhub上面 gpuci/miniconda-cuda 的镜像作为base镜像,这里有各种版本的linux系统版本和cuda版本构建的基础镜像,并且已经安装好miniconda工具。

docker pull 镜像地址

4、拉取base镜像构建自己的环境

(1)通过docker pull 获取和自己操作系统和基础cuda版本相适应的镜像

(2)docker images 查询镜像ID

(3)通过镜像构建容器:

1)nvidia-docker run -it 镜像ID

2)或者nvidia-docker run -it -v 宿主机文件夹:容器中的文件夹 镜像ID

  1.  
    1 显示镜像列表
  2.  
    docker images
  3.  
     
  4.  
    2 通过镜像生成容器
  5.  
    docker run -it image_id
  6.  
    nvidia-docker run -it image_id
  7.  
     
  8.  
    3 通过镜像生成容器,并将宿主机目录挂载到容器目录中
  9.  
    docker run -it -v 宿主机文件夹:容器中的文件夹 image_id
  10.  
    nvidia-docker run -it image_id

(4)在容器中创建新的conda环境,并在环境中构建自己想要的深度学习框架版本和相应的cuda、cudnn版本。可以通过conda search cuda、 conda search cudnn查询conda源目前支持的版本。

  1.  
    conda search cuda
  2.  
    conda search cudnn

5、容器生成镜像

可以通过docker ps -a 查询在运行的容器ID。

通过docker commit 容器ID tag(你想给新的镜像取的名字)

可以通过 docker tag 镜像ID tag 给镜像打上自己想取得名字

通过docker push可以上传到自己的dockerhub上面

  1.  
    1 显示docker容器状态
  2.  
    docker ps -a
  3.  
     
  4.  
    2 容器生成新的镜像,container_id是容器ID tag是自己修改的镜像名字
  5.  
    docker commit container_id tag
  6.  
     
  7.  
    3 修改镜像名字 tagname是修改后的名字
  8.  
    docker tag container_id tag tagname
  9.  
     
  10.  
    4 将做好的镜像上传自己的dockerhub
  11.  
    docker push dockerhub中的镜像名

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhfijcba
系列文章
更多 icon
同类精品
更多 icon
继续加载