当前位置: 首页 > article >正文

使用docker切换任意版本cuda使用GPU

1.现存问题

在主机上运行很多下载来的机器学习代码时,这些大都运行在不同版本的tensorflow-gpu或者pytorch等的包下的。但是,运行代码的过程中,存在匹配的问题:

1.不同的版本的tensorflow-gpu或pytorch对cuda版本的适配也不一样。

2.不同的版本的tensorflow-gpu或pytorch对python版本的适配也不一样。

3.cuda对主机操作系统的版本也有限定。

2.需求

1.以window11操作系统为载体(其他操作系统,供参考),要能在当前主机下运行不同版本的tensorflow(pytorch)或者cuda下的代码。

2.运行时,不重复安装cuda,不重复设置环境变量。

3.解决方案

win11下,使用docker(wsl2)运行不同的容器。

4.具体步骤

1.安装好docker后,需要做一些必要的适配——安装docker-ctk,具体可以请按照Nvidia的官方教程按步骤执行即可:Installing the NVIDIA Container Toolkit — NVIDIA Container Toolkit 1.14.3 documentation

2.在制作镜像时,可以选择一步到位,直接pull Nvidia的官方镜像,或者pull其他满足要求且制备好的镜像。也可以自己pull一个纯净的操作系统,然后自行配置安装需要的cuda等。

3.准备好镜像后,执行类似的代码即可运行一个匹配了特定版本cuda的容器:

docker run -it -p  10022:22 --runtime=nvidia --gpus all  镜像名:版本号 /bin/bash

其中映射容器的22端口,供主机通过ssh访问(可能需要自行在容器里配置一些ssh), 

指定了 runtime 为 nvidia,并把所有的gpu分配给容器。你也可以再添加其他参数,比如容器名,以特权执行等

4.结果

成功。

5.拓展

1.迁移docker,释放C盘空间

如果是windows里安装docker-desktop,那么它默认的位置会在C盘,然后每次下载镜像等等,都会很吃C盘的空间,所以这里提供我所写的迁移docke的技术方案:

WSL2模式下,将Ubuntu、Docker迁移出C盘并解除Ubuntu、Docker对C盘的空间占用-CSDN博客

2.压缩docker在主机的虚拟磁盘容量

我们在windows里使用docker时会发现,即使我们已经删除了无用的镜像和容器,主机里挂在docker虚拟磁盘的那个盘,可用空间也没有增加,这是因为虚拟磁盘不会自动缩小,这里就需要我们亲自操作一下,所以这里提供我所写的压缩docker在主机的虚拟磁盘容量的技术方案:

压缩docker在主机的虚拟磁盘容量-CSDN博客


http://www.kler.cn/news/155161.html

相关文章:

  • wvp如果确认音频udp端口开放成功
  • 中断方式的数据接收2
  • 在 AlmaLinux9 上安装Oracle Database 23c
  • 回归预测 | MATLAB实现基于LightGBM算法的数据回归预测(多指标,多图)
  • 壹财基金杨振骏:资本如何做好Web3布局?
  • 整数转罗马数字算法(leetcode第12题)
  • 单片机第三季-第六课:STM32标准库
  • sql27(Leetcode1729求关注者的数量)
  • 国家数据局首次国考招聘12人
  • vue面试题整理(1.0)
  • 深入理解 Vue 中的指针操作(二)
  • .net framwork4.6操作MySQL报错Character set ‘utf8mb3‘ is not supported 解决方法
  • 跟我学c++高级篇——动态反射之一遍历
  • 代码浅析DLIO(四)---位姿更新
  • LeetCode(49)用最少数量的箭引爆气球【区间】【中等】
  • 基本计算器[困难]
  • 【日常踩坑】Debug 从入门到入土
  • 完美解决:wget命令下载时遇到“错误 308:Permanent Redirect。”
  • 大数据Hadoop-HDFS_架构、读写流程
  • 【小沐学Python】Python实现Web服务器(Flask+celery,生产者-消费者)
  • LeetCode每日一题 | LeetCode-1094.拼车
  • 栈实现队列,力扣
  • ESP32-Web-Server 实战编程-通过网页控制设备的 GPIO
  • MVCC-
  • 【.NET全栈】.net的微软API接口与.NET框架源码
  • LLM推理部署(三):一个强大的LLM生态系统GPT4All
  • AI - FlowField(流场寻路)
  • 2023年第十二届数学建模国际赛小美赛B题工业表面缺陷检测求解分析
  • 外包干了2年,技术退步明显。。。
  • solidity案例详解(五)能源电力竞拍合约