文章目录
- 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 清华源:
直接新建并编辑pip.conf:cd ~ mkdir .pip
改为以下内容(这里用的清华源,也可以试一下阿里、豆瓣等源):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 服务,因此首先在终端中运行以下命令,执行安装操作:
安装完后,使用systemctl启动SSH服务sudo apt install openssh-server -y
sudo systemctl enable --now ssh
- 然后检查SSH服务运行状态,确保服务正常运行并且没有错误输出(显示active running表示服务正常):
sudo systemctl status ssh
按 q 退出预览。 - SSH 默认使用 22 端口,检查防火墙状态:
之后就可以通过 XShell 等工具远程连接服务器。sudo ufw enable # 打开防火墙 sudo ufw status
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:
重新打开一个命令行直接就进入了 conda 的 base 环境。bash Anaconda3-2023.07-1-Linux-x86_64.sh
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"