【基于docker的深度学习训练环境】关键步骤记录

news2024/11/29 16:26:59

最近给公司搭建了一个小型的深度学习环境,实现了多人通过SSH对GPU资源的利用,下面对一些关键架构和易用性部分进行记录。

一、整体软硬件框架
1、硬件配置,采用的双GPU的方案,两块消费级显卡。
整体框架
2、应用层架构
宿主机系统为ubuntu22 采用ssh+docker+路径映射的形式,docker的容器主要提供训练相关环境,实际的代码保存在训练服务器的硬盘上,通过服务器本身的网络与Gitlab同步,数据部分也挂载到训练服务硬盘上。数据和代码路径一同映射到容器中。
数据服务器是只读的,做存档之用,需要copy到训练服务器上,进行处理和训练加载。

二、GPU框架
这里套用Nvidia的图
nvidia图
在宿主机中安装gpu的driver,nvidia-container-toolkit。在容器中安装cuda-toolkit。

三、docker的几个易用性
1、初始环境获取。
我使用的是阿里云提供的初始镜像。https://cr.console.aliyun.com/cn-hangzhou/instances/artifact 按需选择即可,我这里选用了ubuntu22+py310+pytorch23+cu12的镜像
2、镜像的保存与导入。

#1、导出
docker export container_id > /path/to/save/container.tar
#2、导入
docker import - newImage <  /path/to/save/container.tar

3、完成初始环境后有几个易用性可进行配置
1)、ssh开机启动
2)、宿主机与容器之间的路径映射
3)、ssh的端口映射
4)、容器中的时间配置成和宿主机一样(非实时同步)

其中1)需要在容器内配置完再保存成镜像后,重新载入。
2)和3)需要在创建容器时执行。
4)可以在容器运行时执行。
2)3)4)相关指令如下:

docker run -p 2024:22 -it --gpus all -v /home/user/workspace:/home/workspace imageName /bin/bash
# 将ssh的端口映射到2024
# 在该容器中使用全部的gpu资源
# 将宿主机user的workspace映射到容器中的workspace
docker cp /usr/share/zoneinfo/Asia/Shanghai ContainerID:/usr/share/zoneinfo/Asia/Shanghai
docker cp /etc/localtime ContainerID:/etc/localtime
# 将宿主机的时区信息copy到容器中
# 将宿主机的当前时间信息copy到容器中

三、总结
硬件虚拟化的基本步骤是一样的,一层是基本硬件驱动,一层是虚拟化管理。
对于深度学习环境而言,有两大部分需要完成上述管理,简单划分为CPU和GPU,其中CPU又包含了内存和硬盘等。
两者都有其对应的工具,简单画图示意下:
硬件虚拟化

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2215737.html

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

相关文章

猎板PCB:军工武器系统中的PCB线路板技术要求

PCB线路板在军工武器系统中的应用非常广泛&#xff0c;它们是现代军事装备中不可或缺的组成部分。军工级PCB因其在极端环境下的稳定性和可靠性而受到重视&#xff0c;这些环境可能包括高温、低温、高湿度、强辐射、高震动等条件。以下是一些关键点&#xff0c;概述了PCB线路板在…

基于华为云智慧生活生态链设计的智能鱼缸

一. 引言 1.1 项目背景 随着智能家居技术的发展和人们对高品质生活的追求日益增长&#xff0c;智能鱼缸作为一种结合了科技与自然美的家居装饰品&#xff0c;正逐渐成为智能家居领域的新宠。本项目旨在设计一款基于华为云智慧生活生态链的智能鱼缸&#xff0c;它不仅能够提供…

vue3播放m3u8格式hls监控流

1. 摄像头的hls监控流不同于普通m3u8的视频&#xff0c;video标签&#xff0c;iframe&#xff0c;videojs&#xff0c;vue-video-player无法解析 2. 解决办法 更换LivePlayer插件 官网https://www.liveqing.com/docs/manuals/LivePlayer.html#%E5%B1%9E%E6%80%A7-property 3…

kubernets(二)

集群操作 查看集群信息 kubectl get查看各组件信息 格式&#xff1a;kubectl get 资源类型 【资源名】 【选项】 events #查看集群中的所有日志信息 -o wide # 显示资源详细信息&#xff0c;包括节点、地址... -o yaml/json #将当前资源对象输出至 yaml/json 格式文…

windows安装VMware虚拟机 在虚拟机中安装Centos系统

文章目录 安装虚拟机Centos7.5 软硬件安装安装Centos所需的硬件配置处理器与内核 安装虚拟机 Centos7.5 软硬件安装 安装Centos所需的硬件 配置处理器与内核 一个CPU可以有多个内核 此处可以看出该电脑一个处理器&#xff0c;四个内核。配置虚拟器的原则是不能超过总数的一半…

Mybatis全局配置介绍

【mybatis全局配置介绍】 mybatis-config.xml&#xff0c;是MyBatis的全局配置文件&#xff0c;包含全局配置信息&#xff0c;如数据库连接参数、插件等。整个框架中只需要一个即可。 1、mybatis全局配置文件是mybatis框架的核心配置&#xff0c;整个框架只需一个&#xff1b…

BFS处理最短路问题

BFS与最短路问题小结 - AcWing 题目 这题就可以BFS&#xff08;边权值相同&#xff09;&#xff08;g[i][j]也可以为inf&#xff0c;g[i][i]还能为0&#xff09; 代码 #include <bits/stdc.h> using namespace std; const int N 510; const int inf 0x3f3f3f3f; int n…

【火山引擎】AIGC图像风格化 | 风格实践 | PYTHON

目录 1 准备工作 2 实践 代码 效果图 1 准备工作 ① 服务开通 确保已开通需要访问的服务。您可前往火山引擎控制台,在左侧菜单中选择或在顶部搜索栏中搜索需要使用的服务,进入服务控制台内完成开通流程。

大话C++:第18篇 类继承与派生

1 类继承的概述 类继承&#xff08;Class Inheritance&#xff09;是面向对象编程&#xff08;Object-Oriented Programming&#xff0c;OOP&#xff09;中的一个核心概念。它允许我们创建一个新的类&#xff08;子类或派生类&#xff09;&#xff0c;该类继承了另一个已存在的…

深度学习模型量化方法-【文末含实战】主流深度学习框架

目录 一&#xff0c;深度学习模型量化概述 1.1 模型量化定义 1.2 模型量化的方案 1.3&#xff0c;量化的分类 1.4 模型量化好处 总结&#xff1a; 二&#xff0c;常用量化框架 2.1 OpenVINO NCCF OpenVINO NCCF量化流程 OpenVINO NCCF量化优势 2.2 TensorRT量化框架…

如何向两个不同 MySQL 数据源的相同数据库与表写入数据

个人名片 &#x1f393;作者简介&#xff1a;java领域优质创作者 &#x1f310;个人主页&#xff1a;码农阿豪 &#x1f4de;工作室&#xff1a;新空间代码工作室&#xff08;提供各种软件服务&#xff09; &#x1f48c;个人邮箱&#xff1a;[2435024119qq.com] &#x1f4f1…

AcWing 3188:Manacher 算法 → 最长回文子串

【题目来源】https://www.acwing.com/problem/content/3190/【题目描述】 给定一个长度为 n 的由小写字母构成的字符串&#xff0c;求它的最长回文子串的长度是多少。【输入格式】 一个由小写字母构成的字符串。【输出格式】 输出一个整数&#xff0c;表示最长回文子串的长度。…

VSCode创建插件HelloWorld找不到指令解决办法

按照网上的教程执行yo code并且生成成功 但是F5打开调试新窗口后&#xff0c;ctrl shift P&#xff0c;输入helloworld并没有指令提示 原因&#xff1a;当前电脑安装的VSCode版本过低&#xff0c;不支持当前插件的使用&#xff08;因为自动生成的插件总是默认使用最新版VSC…

00 springboot项目创建

我们创建SpringBoot项目有两种方式: Spring Initializr spring initerzie 方式创建: 启动类, 依赖 生成,但是需要网络maven的方式 maven方式创建: 启动类, 依赖, 这些都需要手动编写,但是不需要网络 如果你觉得我分享的内容或者我的努力对你有帮助&#xff0c;或者你只是想表…

可看见车辆行人的高清实时视频第5辑

我们在《看见车辆行人的高清实时视频第4辑》分享了10处可看见车辆行人的实时动态高清视频。 现在我们又整理10处为你分享可看见车辆行人的实时动态高清视频&#xff0c;一共有50个摄像头数据&#xff0c;这些视频来自公开的高清摄像头实时直播画面。 我们在文末为你分享了这些…

制造业如何从0-1实现信息化建设?

深度长文&#xff0c;4000 字&#xff0c;融合了众多企业的实践经验和行业观点&#xff0c;一文讲清制造业信息化建设的路径&#xff0c;心急的小伙伴可以先看目录&#xff1a; 关于定义 —— 制造业信息化建设是什么&#xff1f;关于价值 —— 为什么制造业要进行信息化建设…

【C++】精妙的哈希算法

&#x1f680;个人主页&#xff1a;小羊 &#x1f680;所属专栏&#xff1a;C 很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~ 目录 一、哈希结构1、哈希概念2、哈希函数3、哈希冲突3.1 闭散列3.2 开散列 4、完整代码 一、哈希结构 1、哈希概念 A…

漏扫工具Appscan使用(非常详细)从零基础入门到精通,看完这一篇就够了。

1、简介 AppScan是一款商业化的web安全扫描工具&#xff0c;web扫描领域十分受欢迎 2、具体使用规则 1、常用界面 新建扫描文件 选择扫描 对于第一种扫描方式&#xff1a; 设置url和服务器 登录管理&#xff1a;对于需要登陆的页面&#xff08;这种方法不允许有验证码&#…

人工智能AI与机器学习ML基础入门

小学生都能看懂的人工智能入门书籍 第一章 入门简介 TensorFlow 入门 如果你想入门人工智能&#xff08;AI&#xff09;&#xff1f;机器学习&#xff08;ML&#xff09;和深度学习是很好的起点。不过&#xff0c;一开始接触这些概念时&#xff0c;可能会被各种选项和新术语搞…