Ubantu从0开始配置深度学习RTX 4090+3090显卡的服务器

news2024/11/19 5:38:00

文章目录

    • 1. 基础
    • 2. 用户访问
    • 3. Pytorch环境的问题
    • 4. 显卡调度问题
          • 方法一:在shell命令前强制指定显卡
          • 方法二:在代码中强制指定显卡
    • 5. 各种各样的小BUG
      • 5.1 Liunx创建新用户登录异常:/usr/bin/xauth: error/timeout in locking authority file /home/user/.Xauthority
      • 5.2 服务器更换了地方连不上网,只有IPV6地址,ping不通

实验室刚到一台Dell服务器主机,里面配置一张RTX 4090和RTX 3090显卡,弄了好久终于能成功运行PyTorch深度学习模型,现在将过程描述如下:

1. 基础

首先是系统,选择的是Ubantu 18.02版本,这个直接下载安装就不说了,直接下一步下一步,没什么问题

然后是显卡驱动,这个由于我们的主机是4090,所以下载的最新的显卡驱动525

下载后出现第一个坑:如果你和我们一样,有两张不平衡的显卡,那么下载显卡驱动极有可能会下载的低等级的那个驱动,导致开机异常,表现为开不了机,屏幕一直闪

解决方法:只留高的显卡,我们只留了4090,然后成功可以开机,安装好4090的驱动后,再将3090插入,依然可以启动

解决完举动之后,安装conda和CUDA,conda没什么好说的,直接anaconda3官网下载安装,至于CUDA,这里我们选择的是最新的CUDA 12.0,在官网搜索下载即可,下载安装后需要更新bashrc文件:

使用vim ~/.bashrc打开文件,没有vim就按照提示安装vim或使用gedit。随后在文件底部添加:

export PATH="/usr/local/anaconda3/bin:$PATH"
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda12.0/lib64
export PATH=$PATH:/usr/local/cuda-12.0/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-12.0

第一句是conda的命令,后三句是cuda的命令,记得改成自己的相应路径

2. 用户访问

首先需要将该主机设置为可以用ssh访问的状态,这个自行百度即可,但千万注意端口号的修改,我们当时就是因为端口号没有修改成可用状态搁置了很久。

设置完后创建用户,这里出现第二个坑,创建用户后出现无法登陆的BUG,经检查后发现是useradd -d命令没有生成对应的目录导致无法登陆,解决方法是在后面加上一句-m,但加上-m后会出现第三个坑,登陆后没有用户名,只有一个$,解决方法是在useradd 后面加上 -s /bin/bash,最后使用的添加用户的命令为:

useradd 用户名 -d /home/user_1/用户名 -m -s /bin/bash

随后设置相应的密码:

 passwd 用户名

创建用户后登录,需要设置bashrc文件以运行显卡

输入代码

vim ~/.bashrc

在尾部添加代码:

export PATH="/usr/local/anaconda3/bin:$PATH"
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-12.0/lib64
export PATH=$PATH:/usr/local/cuda-12.0/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-12.0

更新bashrc:

source ~/.bashrc

初始化conda:

conda init

如果提示没有conda就关闭连接重新ssh接入,再输入

再次连接ssh即可使用conda

3. Pytorch环境的问题

这个是最麻烦的,你或许尝试过conda,尝试过pip,尝试过反复复制Pytorch官网的下载命令,但最后总得到 torch.cuda.is_available()的结果为False

那么这个时候就不要妄想通过PyTorch官网的命令来安好了,什么去掉-c之类的,多半是没有用的,解决办法就是去PyTorch官网去找自己的whl文件下载来安装。具体如下:

首先看到pip命令下面的下载链接:

请添加图片描述

点进去之后会有下载选项,一般需要下载以下三个依赖包:

请添加图片描述

这里以PyTorch为例子,点进去之后选择想要的版本,cp指的是python版本,cu指的是cuda版本,一定不能下错,这里以python3.7,cuda11.7为例:

请添加图片描述

下载后通过winscp传输到服务器中,或者使用U盘传送到服务器中,使用pip install xx.whl安装即可

如果出现报错那么极有可能是:1,python版本问题,下载的时候看仔细;2,文件传输损坏了,重新下载即可。

最后记得验证一下 torch.cuda.is_available(),如果为False则继续重复上述步骤

4. 显卡调度问题

由于我们的服务器配置的显卡型号不一致,使用过程会出现很多问题,显卡不一致不支持双卡并行

我们的是一块4090和一块30-90,尤其是使用4090显卡,若不强制指定会导致3090显卡莫名占用显存,需要设定环境变量,具体如下:

使用4090显卡运行程序示例:

方法一:在shell命令前强制指定显卡
CUDA_VISIBLE_DEVICES="0" python main.py
方法二:在代码中强制指定显卡

在主程序中加入如下代码:

import os
os.environ['CUDA_VISIBLE_DEVICES'] = "0"

然后直接运行:python main.py即可

如需使用另一块3090显卡则将 “0”改为 “1”

显卡型号不一致极有可能和我们这个情况一样

若运行中出现如下警告:

`UserWarning: 
    There is an imbalance between your GPUs. You may want to exclude GPU 1 which
    has less than 75% of the memory or cores of GPU 0. You can do so by setting
    the device_ids argument to DataParallel, or by setting the CUDA_VISIBLE_DEVICES
    environment variable.
  warnings.warn(imbalance_warn.format(device_ids[min_pos], device_ids[max_pos]))`

说明显卡没有配置正确,需要ctrl+c停止代码后指定显卡

建议运行代码后,使用 nvidia-smi检查一下显存,如果两张显卡显存同时升高,则显卡指定有误,需要重新指定

5. 各种各样的小BUG

5.1 Liunx创建新用户登录异常:/usr/bin/xauth: error/timeout in locking authority file /home/user/.Xauthority

先使用su创建文件

sudo mkdir /home/user_1/用户名

赋予权限:

chown 用户名:用户名 -R /home/user_1/用户名
usermod -s /bin/bash 用户名

重置bashrc:

cp  /etc/skel/.bashrc   ~/

重新添加bashrc文件中的conda等环境变量

5.2 服务器更换了地方连不上网,只有IPV6地址,ping不通

解决方法:

首先进入以太网端口,手动设置IPV4的IP地址,这里因人而异,自行咨询网络管理员吧

然后进入etc/network文件(此时应使用su账号)

cd /etc/network

使用vim打开 interfaces文件

vim interfaces

在文件尾端添加你手动输入的IP地址,网关,子网掩码等:

iface 你的网口名称(ipconfig可以看到,一般是enp0) inet static
address 你的IP地址
gatway 你的网关
netmask 你的子网掩码

然后更新网络即可:

 service network-manager restart

先写到这里,后续有什么BUG继续更新

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

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

相关文章

Unity之向量计算

文章目录前言向量加法向量减法向量乘法/除法向量点乘(内积)向量叉乘(外积)向量归一化向量小结前言 讲讲Unity中的向量有关知识,一些概念在初高中就学过,就不解释了。向量只能与自己相同维度进行计算&#…

Zookeeper3.5.7版本——选举机制(第一次启动时)

目录一、第一次启动服务时Zookeeper的选举机制1.1、服务器1启动1.2、服务器2启动1.3、服务器3启动1.4、服务器4启动1.5、服务器5启动二、Zookeeper中的一些概念了解2.1、SID2.2、ZXID2.3、Epoch一、第一次启动服务时Zookeeper的选举机制 1.1、服务器1启动 服务器1启动&#x…

嵌入式学习笔记——STM32硬件基础知识

STM32开发硬件知识前言STM32最小系统电源电路晶振电路复位电路BOOT选择电路调试接口电路其他电路本文重点本文参考博客链接前言 上一篇中我们重点是讲了一下怎么搭建开发环境以及怎么下载烧录的过程,这都是解决的电脑端的开发环境问题,还没有到实际的开…

【数据结构】邻接矩阵和邻接图的遍历

写在前面 本篇文章开始学习数据结构的图的相关知识,涉及的基本概念还是很多的。本文的行文思路:学习图的基本概念学习图的存储结构——本文主要介绍邻接矩阵和邻接表对每种结构进行深度优先遍历和广度优先遍历先识概念话不多说,狠活献上学习思想等等&…

C++ Stack栈学习

1. stack的介绍和使用1.1 stack的介绍1. stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行元素的插入与提取操作。2. stack是作为容器适配器被实现的,容器适配器即是对特定类封装作为其底层的容器&…

sync map思考

sync map 作为解决 map 并发读写问题的补充,用法上其实不复杂,有些惋惜的是,不支持 len 统计数量的方法。map 并发读写算得上一个非常严重的问题,会导致服务宕机,为了避免 map 的并发读写,一种解决办法是直…

华为机试题:HJ108 求最小公倍数(python)

文章目录(1)题目描述(2)Python3实现(3)知识点详解1、input():获取控制台(任意形式)的输入。输出均为字符串类型。1.1、input() 与 list(input()) 的区别、及其相互转换方…

软件工程知识-软件测试

1、软件测试是发现软件错误(缺陷)的主要手段: 从是否关系软件内部结构和具体实现的角度对软件测试进行分类 2.静态测试:以检查为主(桌前检查、代码走查、代码审查) 动态测试:实际运行程序&am…

Leetcode刷题一

目录序言树「结构」「遍历」「经验」「跨父节点」「题型」序言 笔记根据labuladong进行总结,极力推荐labuladong算法进行学习!! 树 0、算法一开始就应该刷树,了解递归的思想。 1、C语言中定义了一个结构体,然后申明…

通过指针引用数组的几种方法的原理和差异;以及利用指针引用数组元素的技巧

关于地址,指针,指针变量可以参考这篇文章: 地址,指针,指针变量是什么?他们的区别?符号(*)在不同位置的解释?_juechen333的博客-CSDN博客https://blog.csdn.n…

nginx http模块

模块依赖2. 模块的初始化2.1 location的定义location的定义包含以下几种location [ | ~ | ~* | ^~ ] uri { ... } location name { ... }:表示精确匹配,只有请求的url路径与后面的字符串完全相等时,才会命中,不支持location嵌套~&#xff1a…

有免费的PDF转Word吗?值得收藏的7个免费 PDF转Word工具请收好

PDF 和 DOC 是人们在工作中广泛使用的两种最流行的文档格式。PDF 是 Adobe 的便携式文档格式,DOC 是 Microsoft 的 Word 文档格式。PDF 是一种更安全可靠的文件格式,因为它很难编辑 PDF 文件,但是有一些称为 PDF 编辑器的工具可用于编辑 PDF …

【Linux】工具(4)——make/Makefile

本期博客我们的任务就是搞懂自动化构建工具——make/Makefile一、什么是make/Makefile📌make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数的IDE都有这个命令,比如:Delphi的make&…

设计模式之创建型模式

一、设计模式分类二、创建型模式1、单例模式1.1 饿汉式(静态变量)1.2 饿汉模式(静态代码块)1.3 懒汉式(线程不安全)1.4 懒汉式(线程安全,同步方法)1.5懒汉式(…

PHP语言

一、PHP简介 什么是 PHP? PHP 是强有力的服务器端脚本语言 PHP 是免费的,并且使用广泛 PHP能够包含文本、HTML、CSS以及PHP代码,在服务器上执行,结果以纯文本返回浏览器。PHP是从C和Perl发展而来的一种非常简单的语言&#xff…

考研流程,可以进来转一转(考研你不知道的事情)(详细版)

之前有听过好多人说要考研,那么,考研的信息,如何获取呢,考研都有哪些流程呢。 初试开始到考试:↓ 1、了解考研信息。 2、确定自己要报考的专业。(本专业or跨考) 3、选择地区 4、选择要报考的学…

TAURI初体验

TAURI初体验 - 一个聊天机器人demo前言一、搭建Tauri apps二、引入库相关vue库三、 业务逻辑1.页面布局2. openai的初始化3. text-davinci-003模型4.gpt-3.5-turbo模型总结前言 一直使用Electron开发桌面应用,时间长了也就腻了。很早之前就关注了Tauri,趁…

尚硅谷SpringCloud Alibaba

1. Cloud Alibaba简介2.Nacos简介和下载3.Nacos安装4.Nacos之服务提供者注册5.Nacos之服务消费者注册和负载6.Nacos服务注册中心对比提升7.Nacos之服务配置中心8.Nacos之命名空间分组和DataID三者关系9.Nacos之DataID配置10.Nacos之Group分组方案11.Nacos之Namespace空间方案12…

基于支持向量机SVM的分类预测,基于SVM的雷击故障识别

目录 支持向量机SVM的详细原理 SVM的定义 SVM理论 Libsvm工具箱详解 简介 参数说明 易错及常见问题 SVM应用实例,基于SVM的雷击故障分类预测 支持向量机SVM的详细原理 SVM的定义 支持向量机(support vector machines, SVM)是一种二分类模型,它的基本模型是定义在特征空…

主流机器学习平台调研与对比分析

梗概 本报告主要调研目前主流的机器学习平台,包括但不限于Amazon的Sage maker,Alibaba的PAI,Baidu的PaddlePaddle。对产品的定位、功能、实践、定价四个方面进行详细解析,并通过标杆对比分析提出一套机器学习平台评价体系&#x…