构建docker环境能够运行自己的GPU服务,能够极快适应不同宿主机的GPU型号、操作系统和驱动。linux版本、nvidia驱动、cuda、cudnn,docker+conda安装深度学习环境
针对深度学习模型配置环境不方便的问题,通常会在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 显示镜像列表
-
docker images
-
-
2 通过镜像生成容器
-
docker run -it image_id
-
nvidia-docker run -it image_id
-
-
3 通过镜像生成容器,并将宿主机目录挂载到容器目录中
-
docker run -it -v 宿主机文件夹:容器中的文件夹 image_id
-
nvidia-docker run -it image_id
(4)在容器中创建新的conda环境,并在环境中构建自己想要的深度学习框架版本和相应的cuda、cudnn版本。可以通过conda search cuda、 conda search cudnn查询conda源目前支持的版本。
-
conda search cuda
-
conda search cudnn
5、容器生成镜像
可以通过docker ps -a 查询在运行的容器ID。
通过docker commit 容器ID tag(你想给新的镜像取的名字)
可以通过 docker tag 镜像ID tag 给镜像打上自己想取得名字
通过docker push可以上传到自己的dockerhub上面
-
1 显示docker容器状态
-
docker ps -a
-
-
2 容器生成新的镜像,container_id是容器ID tag是自己修改的镜像名字
-
docker commit container_id tag
-
-
3 修改镜像名字 tagname是修改后的名字
-
docker tag container_id tag tagname
-
-
4 将做好的镜像上传自己的dockerhub
-
docker push dockerhub中的镜像名
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhfijcba
-
构建docker环境能够运行自己的GPU服务,能够极快适应不同宿主机的GPU型号、操作系统和驱动。linux版本、nvidia驱动、cuda、cudnn,docker+conda安装深度学习环境
-
的Anaconda虚拟环境操作和Python常用命令 (持续更新---)
-
WSLwindow10 安装WSL2配置conda环境和深度学习环境搭建
-
A reportable application error has occurred. Conda has prepared the above report......
-
colab上conda管理环境
-
Anaconda和conda、pip和conda的区别
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
excel下划线不显示怎么办
PHP中文网 06-23 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
photoshop蒙版画笔没反应怎么办
PHP中文网 06-24