Ubuntu22.04 安装深度学习服务器全纪录

news2024/11/24 6:55:59

文章目录

    • Ubuntu 22.04 安装深度学习服务器全纪录
      • 1. 制作启动盘
      • 2. 安装 Ubuntu 22.04
      • 3.配置国内镜像软件源
      • 4. Python 相关设置
      • 5. 配置 SSH
      • 6. 配置远程桌面
      • 6. 安装 CUDA
      • 7. 安装 docker
      • 8. 安装 Anaconda
      • 9. 安装 ChatGLM2
      • 10. 使用 fastllm 推理加速

Ubuntu 22.04 安装深度学习服务器全纪录

1. 制作启动盘

  • 参考链接:https://blog.csdn.net/lyx_ok/article/details/129308753

2. 安装 Ubuntu 22.04

  • 将U盘插到服务器上,开机按F11键(具体什么键跟主板型号有关)选择启动项进入临时的 Ubuntu 系统,在图形界面中选择 Install Ubuntu ,所有配置都可以使用默认的,改一下用户名和密码即可。

  • 进入系统后设置一下root账户密码:

    sudo passwd root
    

    同时为了避免每次sudo都要输入密码,这里配置一下visudo:

    sudo visudo
    

    在文件最后加上一句( name 改为自己的用户名):

    name ALL=(ALL) NOPASSWD: ALL
    

3.配置国内镜像软件源

  • 备份原来的源:
    cp /etc/apt/sources.list /etc/apt/sources.list.bak
    
  • 将源的内容设置为清华镜像:
    sudo apt install vim
    sudo rm /etc/apt/sources.list
    sudo vim /etc/apt/sources.list
    
    将其中内容改为:
    # 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
    
    # 预发布软件源,不建议启用
    # deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse 作者:贝拉的海 https://www.bilibili.com/read/cv17891624?spm_id_from=333.999.0.0 出处:bilibili
    
    此处强烈建议使用清华源,阿里源的包不全,之后有一个安装问题折腾我好久,换了清华源就好了!!!
  • 更新软件列表:
    sudo apt update
    sudo apt upgrade
    

4. Python 相关设置

  • Ubuntu 22.04 系统默认自带 Python3.10 ,有版本需求的话也可以自己安装一下,此处不再自己安装。
  • 更换 pip 清华源:
    cd ~
    mkdir .pip
    
    直接新建并编辑pip.conf:
    sudo vim ~/.pip/pip.conf
    
    改为以下内容(这里用的清华源,也可以试一下阿里、豆瓣等源):
    [global]
    index-url = https://pypi.tuna.tsinghua.edu.cn/simple/ 
    [install]
    trusted-host = pypi.tuna.tsinghua.edu.cn
    
  • 更改默认 python 版本,python 目录默认链接的是 python2 ,而现在基本都是用 python3 开发了,每次都输入 python3 很麻烦所以这里直接更换默认的 python 命令链接。

5. 配置 SSH

  • 在安装完新系统后,先执行更新操作确保在当前Ubuntu系统上安装和启用SSH不会发生冲突,使用sudo来执行更新操作
    sudo apt update && sudo apt upgrade -y
    
  • 最新的 Ubuntu 22.04 LTS 系统默认没有安装和启用 SSH 服务,因此首先在终端中运行以下命令,执行安装操作:
    sudo apt install openssh-server -y
    
    安装完后,使用systemctl启动SSH服务
    sudo systemctl enable --now ssh
    
  • 然后检查SSH服务运行状态,确保服务正常运行并且没有错误输出(显示active running表示服务正常):
    sudo systemctl status ssh
    
    在这里插入图片描述
    按 q 退出预览。
  • SSH 默认使用 22 端口,检查防火墙状态:
    sudo ufw enable  # 打开防火墙
    sudo ufw status
    
    之后就可以通过 XShell 等工具远程连接服务器。

6. 配置远程桌面

  • 安装xfce4
    sudo apt-get install xfce4
    
  • 安装 xrdp 和协议,依次执行:
    sudo apt-get install xrdp 
    sudo apt-get install vnc4server tightvncserver
    
  • 启动 xrdp :
    sudo /etc/init.d/xrdp restart
    
    配置文件:
    echo xfce4-session >~/.xsession
    
  • 开启 Ubuntu 的共享功能:
    设置——共享——开启远程桌面。
    在这里插入图片描述
    在这里插入图片描述
    认证栏下方的用户名和密码是远程登录时需要填写的用户名和密码,可以和 Ubuntu 系统登录的用户名和密码不一致。但是这里的密码初始时是随机生成,第一次使用时需要修改。
  • 防火墙允许 xrdp 端口:
    sudo ufw allow from any to any port 3389 proto tcp
    
  • 此时,可以通过 win10 自带的远程连接工具连接服务器了:
    在这里插入图片描述
    此处使用 Xorg 服务。
  • 按理来说,此时应该能够正确远程连接了,但这个过程本人处理了太久,笔记难免不全,附上一些解决方案:
    https://blog.csdn.net/beiergelaide/article/details/126370209
    https://blog.csdn.net/a171232886/article/details/108298774

6. 安装 CUDA

  • 进入系统的图形桌面,打开 Software & Updates 软件,可以看到标签栏有一个 Additional Drivers ,选择第一个安装 Nvidia 官方驱动(第二个是开源驱动)即可,安装完重启服务器:
    在这里插入图片描述

  • 重启完之后更新一下软件:

    sudo apt update
    sudo apt upgrade
    
  • 通过nvidia-smi查看当前显卡驱动版本:
    在这里插入图片描述

  • 通过https://docs.nvidia.cn/cuda/cuda-toolkit-release-notes/index.html找到与之对应的 CUDA 版本:
    在这里插入图片描述

  • 再通过https://developer.nvidia.cn/cuda-toolkit-archive下载该版本的 CUDA :
    在这里插入图片描述

    wget https://developer.download.nvidia.com/compute/cuda/12.0.1/local_installers/cuda_12.0.1_525.85.12_linux.run
    sudo sh cuda_12.0.1_525.85.12_linux.run --override
    

    报的警告选择 continue :
    在这里插入图片描述

    根据提示选择安装选项,注意不要勾选第一个安装显卡驱动( driver )的,因为之前已经安装过了:
    在这里插入图片描述
    安装完成后提示:
    在这里插入图片描述

  • 根据上图提示需要配置环境变量:

    nano  ~/.bashrc
    

    再文件最后加入以下语句(加入的具体内容请将上述输出):

    export CUDA_HOME=/usr/local/cuda-12.0
    export LD_LIBRARY_PATH=${CUDA_HOME}/lib64
    export PATH=${CUDA_HOME}/bin:${PATH}
    

    然后使其生效:

    source ~/.bashrc
    
  • 可以使用命令nvcc -V查看安装的版本信息:
    在这里插入图片描述

  • 进入https://developer.nvidia.cn/rdp/cudnn-archive下载对应 CUDA 的 cuDNN :
    在这里插入图片描述

  • 下载好解压:

    tar xvf cudnn-linux-x86_64-8.9.2.26_cuda12-archive.tar.xz
    
  • 进入解压后的目录运行以下命令:

    sudo cp include/cudnn*.h  /usr/local/cuda/include
    sudo cp lib/libcudnn* /usr/local/cuda/lib64
    sudo chmod a+r /usr/local/cuda/include/cudnn*.h 
    sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
    
  • 拷贝完成之后,可以使用以下命令查看CUDNN的版本信息:

    cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
    

    在这里插入图片描述
    表示版本信息为8.9.2。

7. 安装 docker

sudo apt-get update
# 安装证书
sudo apt-get install \
   ca-certificates \
   curl \
   gnupg \
   lsb-release
   
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

echo \
 "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
 $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
# 验证是否安装成功
sudo docker -v

docker run hello-world
sudo groupadd docker
# 增加当前用户入docker组中
sudo groupadd docker
sudo gpasswd -a $USER docker
newgrp docker
# 再次验证
$ docker ps
$ docker run hello-world

8. 安装 Anaconda

  • 前往官网下载:https://www.anaconda.com/download#downloads
  • 安装 Anaconda3:
    bash Anaconda3-2023.07-1-Linux-x86_64.sh
    
    重新打开一个命令行直接就进入了 conda 的 base 环境。

9. 安装 ChatGLM2

git clone https://github.com/THUDM/ChatGLM2-6B
cd ChatGLM2-6B
pip install -r requirements.txt

10. 使用 fastllm 推理加速

sudo apt install make
sudo apt-get install g++

git clone https://github.com/ztxz16/fastllm.git
cd fastllm
mkdir build
cd build
cmake .. -DUSE_CUDA=ON # 如果不使用GPU编译,那么使用 cmake .. -DUSE_CUDA=OFF
make -j
cd tools && python setup.py install

然后只需要在原本的推理程序中加入两行即可使用 fastllm 加速:

# 这是原来的程序,通过huggingface接口创建模型
from transformers import AutoTokenizer, AutoModel
tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm2-6b", trust_remote_code = True)
model = AutoModel.from_pretrained("THUDM/chatglm2-6b", trust_remote_code = True)

# 加入下面这两行,将huggingface模型转换成fastllm模型
from fastllm_pytools import llm
model = llm.from_hf(model, tokenizer, dtype = "float16") # dtype支持 "float16", "int8", "int4"

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

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

相关文章

【100天精通python】Day8:数据结构_元组Tuple的创建、删除、访问、修改、推导系列操作

目录 1 创建元组 2 删除元组 3 访问元组元素 4 多个值的同时赋值和交换 5 修改元组元素 6 元组推导式 7 元组运算符 8 元组常用场景 9 元组(Tuple)和列表(List)的区别 元组(tuple)是 Python 中的…

Codeforces Round 886 (Div. 4)

目录 A. To My Critics B. Ten Words of Wisdom C. Word on the Paper D. Balanced Round E. Cardboard for Pictures F. We Were Both Children G. The Morning Star A. To My Critics time limit per test1 second m…

《qt quick核心编程》笔记一

1.基础HelloWorld代码 import QtQuick 2.15 import QtQuick.Window 2.15 import QtQuick.Controls 2.15Window {width: 400height: 300visible: truetitle: qsTr("Hello 1World")Rectangle {width: parent.widthheight: parent.heightcolor: "gray"Text {…

RabbitMQ惰性队列使用

说明:惰性队列是为了解决消息堆积问题,当生产者生产消息的速度远高于消费者消费消息的速度时,消息会大量的堆积在队列中,而队列中存放的消息数量是有限的,当超出数量时,会造成消息的丢失。而扩容队列&#…

Homography单应性矩阵

1. Homography 单应性概念 考虑 同一个平面(比如书皮)的两张图片,红点表示同一个物理坐标点在两张图片上的各自位置。在 CV 术语中,我们称之为对应点。 Homography 就是将一张图像上的点映射到另一张图像上对应点的3x3变换矩阵. 因为 Homography 是一个 …

AtcoderABC237场

A - Not OverflowA - Not Overflow 题目大意 题目要求判断给定的整数N是否在范围[-231, 231-1]内,如果是则输出"Yes",否则输出"No"。 思路分析 位运算:由于题目中的范围是2的幂次方,可以使用位运算来进行快…

Elasticsearch/Enterprise Search/Kibana安装记录

目录 Elasticsearch的安装导入 elasticsearch PGP密钥 安装使用APT安装手动下载安装 启动elasticsearch安全功能重新配置节点以加入现有集群启用系统索引的自动创建功能运行Elasticsearch(在systemd下)检查Elasticsearch是否正在运行Elasticsearch配置外网访问 第三方包安装ela…

flex局部的知识总结

一、Flex布局的基本概念。 (1)Flex布局: 任何一个容器都可以指定为Flex布局。 注意:设为Flex布局以后,子元素的float、clear和vertical-align属性将失效。 (2)Flex容器:采用Flex布局…

Linux环境下Elasticsearch相关软件安装

Linux环境下Elasticsearch相关软件安装 本文将介绍在linux(Centos7)环境下安装Elasticsearch相关的软件。 1、安装Elasticsearch 1.1 Elasticsearch下载 首先去Elasticsearch官网下载相应版本的安装包,下载之后传输到linux服务器上。 官网地址:http…

Sony索尼CMOS图像传感器SubLVDS与SLVS-EC接口FPGA开发方案

索尼Sony公司的工业CMOS图像传感器主要有3种接口:Sub-LVDS、SLVS、SLVS-EC。 Sub-LVDS接口的CMOS主要是IMX2XX系列和IMX3XX系列的一部分型号,例如IMX250,IMX252、IMX255、IMX392、IMX304等。 SLVS与SLVS-EC接口的CMOS主要是IMX3XX系列的一部分…

ReviewTools-iOS混淆工具

ReviewTools-iOS混淆工具 下载 一键混淆 拖拽或点击上传项目,然后选择一个代码库即可开始对项目混淆。 一键混淆默认开启了所有的混淆选项,开启字符串加密功能需要手动选择一种加密方式。混淆单词以及垃圾代码均来自于大量Github项目,完美解决…

使用css给图片添加酷炫标题的几种方式

使用css给图片添加酷炫标题的几种方式 在本文章中,将会向大家展示如何使用 CSS3 创建具有各种过渡动画的图像标题。 浏览器支持情况 这些方式将在很大程度上依赖于css3的transform和transition属性,这些属性是相对较新的功能,因此&#xf…

设计模式原则

1、设计模式七大原则 1.1 设计模式的目的 编写软件过程中,程序员面临着来自 耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性 等多方面的挑战,设计模式是为了让程序(软件),具有更好 代码重…

抖音短视频seo矩阵系统源码解析与技术实现

抖音短视频SEO矩阵系统源码解析与技术实现涉及到多个方面的技术,包括算法、网络爬虫、数据挖掘、自然语言处理、数据库设计等。 一、 以下是一些实现此系统的技术要点和步骤: 数据采集和处理 首先,需要对抖音短视频进行数据采集。这可以通过编…

【Linux进程】进程控制(上) {进程创建:fork的用法,fork的工作流程,写时拷贝;进程终止:3种退出情况,退出码,常见的退出方法}

一、进程创建 1.1 fork的初步认识和基本使用 在linux中fork函数是非常重要的函数&#xff0c;它从已存在进程中创建一个新进程。新进程为子进程&#xff0c;而原进程为父进程。 #include <unistd.h> pid_t fork(void);返回值&#xff1a;子进程中返回0&#xff0c;父进…

批量AI智剪:让您的短视频制作更加轻松有趣!

在如今的社交媒体时代&#xff0c;短视频已经成为了人们表达创意和分享生活的重要方式。然而&#xff0c;对于许多人来说&#xff0c;短视频制作却是一项繁琐且技术要求较高的任务。幸运的是&#xff0c;现在有了AI智剪&#xff0c;让您的短视频制作变得更加轻松有趣&#xff0…

java小区物业管理系统

java小区物业管理系统 计算机小区物业管理系统 ssh小区物业管理系统 基于javasshmysql小区物业管理系统的设计与实现 运行环境&#xff1a; JAVA版本&#xff1a;JDK1.8 IDE类型&#xff1a;IDEA、Eclipse都可运行 数据库类型&#xff1a;MySql&#xff08;8.x版本都可&a…

3.18 Bootstrap 列表组(List Group)

文章目录 Bootstrap 列表组&#xff08;List Group&#xff09;向列表组添加徽章向列表组添加链接向列表组添加自定义内容 Bootstrap 列表组&#xff08;List Group&#xff09; 本章我们将讲解列表组。列表组件用于以列表形式呈现复杂的和自定义的内容。创建一个基本的列表组的…

使用 Solon Cloud 的 Jaeger 做请求链路跟踪

<dependency><groupId>org.noear</groupId><artifactId>jaeger-solon-cloud-plugin</artifactId> </dependency>1、描述 分布式扩展插件。基于 jaeger 适配的 solon cloud 插件。基于 opentracing 开放接口提供链路跟踪支持。 2、配置示…

vulnhub打靶--raven

目录 vulnhub--raven1.nmap扫描端口服务2.点击主页service发现wordpress目录&#xff0c;识别为wordpress3.使用wpscan扫描4.扫描网站发现两个用户5.简单尝试下发现michael用户名和密码一致6.提权7.总结 vulnhub–raven 下载地址&#xff1a;raven 1.nmap扫描端口服务 2.点击…