使用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.mzph.cn/news/193118.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Upsert 及冲突(GORM)

GORM支持了数据库的upsert操作 upsert操作对于插入一条数据而言的,如果插入数据之前,没有这条数据,则会插入该条数据;如果插入数据之前就存在这条数据(索引值),就更新这条记录。 创建结构体 …

html电子签名

html电子签名 html5实现手写签名板&#xff0c;点击保存即可生成base64格式的图片 使用H5自带的canvas&#xff0c;无需引入js无需引入别的js 效果图 html代码 <!DOCTYPE html> <html> <head><meta http-equiv"Content-Type" content"…

VisionPro---PatMaxTool工具使用

CogPMAlignTool PatMax是一种图案位置搜索技术&#xff08;识别定位&#xff09;&#xff0c;PatMax图案不依赖于像素格栅&#xff0c;是基于边缘特征的模板匹配而不是基于像素的模板匹配&#xff0c;支持图像中特征的旋转与缩放&#xff0c;边缘特征表示图像中不同区域间界限…

zookeeper+kafka+ELK+filebeat集群

目录 一、zookeeper概述&#xff1a; 1、zookeeper工作机制&#xff1a; 2、zookeeper主要作用&#xff1a; 3、zookeeper特性&#xff1a; 4、zookeeper的应用场景&#xff1a; 5、领导者和追随者&#xff1a;zookeeper的选举机制 二、zookeeper安装部署&#xff1a; 三…

基于SSH的员工管理系统(一)——包结构

基于SSH的员工管理系统&#xff08;一&#xff09;——包结构 包结构 1、整体包结构 2、action包 3、domain实体包 4、service层 5、dao层 6、util工具包 7、页面层

音视频的功耗优化

前言 在应用中&#xff0c;录制与音视频模块往往是高耗能的模块&#xff0c;设备容易发热&#xff0c;影响体验。 什么是功耗优化 手机有多个耗电模块&#xff0c; SOC(CPU&#xff0c;GPU&#xff0c;DDR)&#xff0c;Display&#xff0c;Audio&#xff0c;Video&#xff0…

CSS3 修改滚动条样式

上图&#xff1a; 上代码&#xff1a; /* 修改垂直滚动条 */ .right-list::-webkit-scrollbar {width: 2px; /* 修改宽度 */height: 5px; /* 修改高度 */ } /* 修改滚动条轨道背景色 */ .right-list::-webkit-scrollbar-track {background-color: #f1f1f1; } /* 修改滚动条滑块…

AD使用交互式BOM插件时应该注意到的一个问题

交互式BOM脚本 插件下载&#xff1a;GitHub - lianlian33/InteractiveHtmlBomForAD 或&#xff1a;GitHub - yukaichao/InteractiveHtmlBom-plugin-for-AD 或&#xff1a;InteractiveHtmlBomForAD-master.zip - 蓝奏云 问题&#xff1a;当PCB文件中出现MARK点时&#xff0c;…

【ArcGIS Pro微课1000例】0043:深度学习--框架库安装

ArcGIS Pro 中的所有深度学习地理处理工具都要求安装支持的深度学习框架库。 文章目录 深度学习框架库下载深度学习框架库安装注意事项深度学习框架库下载 由于是python开发,可以采用安装包与Pip两种方式安装,本文讲解采用安装包安装。 点击深度学习框架库下载,打开网站,…

常见的线程安全问题及解决

1. 什么是线程安全 线程安全指的是当多个线程同时访问一个共享的资源时&#xff0c;不会出现不确定的结果。这意味着无论并发线程的调度顺序如何&#xff0c;程序都能够按照设计的预期来运行&#xff0c;而不会产生竞态条件&#xff08;race condition&#xff09;或其他并发问…

绘制颜色矩的直方图

# 代码5-2 绘制颜色矩的直方图 def color_moments(img, trans_hsvFalse):if trans_hsv True:img cv2.cvtColor(img, cv2.COLOR_BGR2HSV)# 颜色分割f, s, t cv2.split(img)# 创建特征存放列表color_feature []# 一阶f_mean np.mean(f)s_mean np.mean(s)t_mean np.mean(t)…

wordpress路径怎么优化?wordpress伪静态怎么做?

Wordpress这个程序是动态的&#xff0c;在后台中设置链接的格式为朴素&#xff0c;就可以了&#xff0c;这样简单又方便&#xff0c;因为百度对于路径的都是一样对待的&#xff0c;静态路径和动态路径&#xff0c;都是一样的对待。 有的时候&#xff0c;有的人会认为动态路径不…

vue+less+style-resources-loader 配置全局颜色变量

全局统一样式后&#xff0c;可配置vue.config.js实现全局颜色变量&#xff0c;方便在编写时使用统一风格的色彩 一、新建global.less 二、下载安装style-resources-loader npm i style-resources-loader --save-dev三、在vue.config.js中进行配置 module.exports {pluginOpt…

Python Locals:引领代码风潮,变量管理新尝试

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 在Python中&#xff0c;locals()函数是一个强大的工具&#xff0c;它使程序员能够访问和操作当前作用域内的局部变量。本文将深入探讨locals()函数的功能、应用和重要性。 动态变量赋值和操作 locals()函数让我…

算法通关村第七关—理解二叉树的遍历(白银)

深入理解前中后序遍历 给定一棵二叉树 二叉树前序遍历 public void preorder(TreeNode root,List<Integer>res){if&#xff08;rootnull){return;}res.add(root.val);preorder(root.left,res);preorder(root.right,res); }递归的过程如下图所示 从图中可以看到&#x…

JavaScript编程基础 – For循环

JavaScript编程基础 – For循环 JavaScript Programming Essentials – For Loop By JacksonML 循环可以多次执行代码块&#xff0c;而不用反复重写相同的语句。这无疑对提升代码质量、减少错误大有脾益。本文将简要介绍for循环的几种案例&#xff0c;希望对读者有所帮助。 …

【Python篇】文件概述 | 读文件 | 写文件 | 追加文件操作

文章目录 &#x1f339;什么是文件&#x1f6f8;读 操作 — r⭐打开文件⭐读取文件&#x1f388;循环读取&#x1f388;读取文件中某一个词语的个数 ⭐关闭文件 &#x1f33a;小结&#x1f6f8;写 操作 — w&#x1f6f8;追加 操作 — a &#x1f339;什么是文件 文件是计算机…

『亚马逊云科技产品测评』活动征文|基于亚马逊云EC2搭建OA系统

授权声明&#xff1a;本篇文章授权活动官方亚马逊云科技文章转发、改写权&#xff0c;包括不限于在 Developer Centre, 知乎&#xff0c;自媒体平台&#xff0c;第三方开发者媒体等亚马逊云科技官方渠道 亚马逊EC2云服务器&#xff08;Elastic Compute Cloud&#xff09;是亚马…

2023年AI报告:首个投研GPTs测评重塑AI竞争格局

今天分享的是AI系列深度研究报告&#xff1a;《2023年AI报告&#xff1a;首个投研GPTs测评重塑AI竞争格局》。 &#xff08;报告出品方&#xff1a;国盛证券&#xff09; 报告共计&#xff1a;10页 1.一键创建 GPTs 助力行业研究 GPTs 目前仅对企业用户和 ChatGPT Plus 会员…

右值引用和移动语句(C++11)

左值引用和右值引用 回顾引用 我们之前就了解到了左值引用&#xff0c;首先我们要了解引用在编译器底层其实就是指针。具体来说&#xff0c;当声明引用时&#xff0c;编译器会在底层生成一个指针来表示引用&#xff0c;但在代码编写和使用时&#xff0c;我们可以像使用变量类…