Linux服务器配置Python+PyTorch+CUDA深度学习环境

前言

远程链接Linux服务器 - Windows:详见本人另一篇文章,链接
本地配置Python+PyCharm+PyTorch+CUDA深度学习环境:详见本人另一篇文章,链接
Python安装第三方库:详见本人另一篇文章,链接
pip常用命令:详见本人另一篇文章,链接

本篇文章介绍如何在Linux服务器上配置Python+PyTorch+CUDA深度学习环境。包含安装Anaconda、Python虚拟环境、配置PyTorch+CUDA环境、服务器使用教程、conda命令、等内容。

配置前需要通过Xshell软件连接到Linux服务器,连接方法详见我的另一篇文章,链接

安装Anaconda

详情可见本人的另一篇文章:Linux系统安装Anaconda
此处仅简略介绍。

下载

Anaconda官网:链接
个人版下载网址:链接
早期版本下载网址:链接

安装

使用Xftp软件将Linux版安装包(一般为Linux-x86_64架构的sh文件)传到服务器端,并使用Xshell软件连接到服务器命令行,cd到安装包所在文件夹,使用bash命令进行安装,命令如下:

bash [package.sh]

输入命令anaconda -V可以查看Anaconda的版本。

更新

输入如下命令可更新Anaconda:

conda update anaconda

或将新的Linux版安装包传输到服务器上,cd到安装包所在文件夹,使用如下命令可以进行Anaconda的更新:

bash -u [package.sh]

Python虚拟环境

详情可查看本人的另一篇文章:创建Python虚拟环境
此处仅简略介绍。

创建Python虚拟环境

安装好Anaconda后,可以通过命令创建Python虚拟环境,命令如下:

conda create -n [venvName] python=[version]

# 示例:
# 创建一个Python版本为3.6的名为py36的虚拟环境
conda create -n py36 python=3.6

查看虚拟环境

若忘记虚拟环境的名称,则可以查看所有虚拟环境名称,找到要进入的虚拟环境名称,命令如下:

conda env list

进入虚拟环境

要使用虚拟环境,需要先激活它,即进入虚拟环境,命令如下:

conda activate [venvName]
# 或
source activate [venvName]

退出虚拟环境

命令如下:

conda deactivate

删除虚拟环境

命令如下:

conda remove -n [venvName] --all

配置PyTorch+CUDA环境

安装显卡驱动

若Linux服务器已经安装好显卡驱动,则无需重复安装,可以通过命令nvidia-smi查看是否安装显卡驱动,若安装,则效果如下图:
在这里插入图片描述
若未安装显卡驱动,则需安装显卡驱动。

NVIDIA官网:链接

简要流程:在NVIDIA官网搜索指定显卡型号(如,RTX3090)的驱动下载并安装,驱动的版本越新,支持的最高CUDA版本越新(新版本的CUDA要求新版本的驱动,新版本的驱动可以兼容旧版本的CUDA)。

具体安装过程在这里不在详细介绍,因为不是本文的重点,读者可以自行查看其他教程进行驱动安装。

安装CUDA驱动

检测CUDA驱动是否安装,在服务器命令行中输入命令:

nvcc -V

若提示找不到命令,则表示没有安装CUDA驱动,需要安装CUDA驱动。
安装CUDA驱动可查看本人的另一篇文章:Ubuntu安装CUDA驱动

查看服务器CUDA版本

在服务器命令行中输入命令:

nvcc -V

此命令可以查看当前CUDA版本.

另外,补充如下命令:

nvidia-smi

此命令可以查看当前显卡驱动允许的最高CUDA版本,效果如下图:
在这里插入图片描述

安装PyTorch

PyTorch官网:链接
早期版本的安装命令:链接

一定要安装对应CUDA版本的PyTorch,安装命令点击官网的Get started查看。

服务器使用教程

查看GPU使用状态

通过nvidia命令查看
系统已安装Nvidia显卡驱动后,可使用以下命令查看GPU状态:

nvidia-smi

输出效果如下:

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 525.147.05   Driver Version: 525.147.05   CUDA Version: 12.0     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA GeForce ...  Off  | 00000000:01:00.0 Off |                  N/A |
|  0%   38C    P8    18W / 320W |    160MiB / 16376MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

补充:若想更简洁的查看GPU状态,可使用gpustat命令,介绍如下。

通过gpustat命令查看
首先安装gpustat:
作为系统包进行安装(推荐)

sudo apt install gpustat

作为Python库进行安装

pip install gpustat

pip安装需要添加环境变量

# 编辑bashrc文件
vim ~/.bashrc
# or
gedit ~/.bashrc

# bashrc文件添加环境变量,[user]为当前用户名
export PATH=/home/[user]/.local/bin/:$PATH
# or
export PATH="/home/[user]/.local/bin/:$PATH"

# 重新加载bashrc文件
source ~/.bashrc

查看GPU使用状态:

gpustat

实时查看GPU使用状态,[time]的单位为秒:

gpustat -i
或
gpustat -i [time]

输出效果如下:

admin1-COM-NAME             Tue Jan  2 14:57:15 2024  525.147.05
[0] NVIDIA GeForce RTX 4080 | 42°C,   0 % |   322 / 16376 MB | nsjim(220M) nsjim(99M)

运行Python代码

命令如下:

python path/filename.py

cd到代码文件夹,输入如下命令:

python filename.py

为代码指定显卡

在服务器终端指定GPU

CUDA_VISIBLE_DEVICES=0    python  your_file.py  # 指定GPU集群中第一块GPU使用,其他的屏蔽掉

CUDA_VISIBLE_DEVICES=1           Only device 1 will be seen
CUDA_VISIBLE_DEVICES=0,1         Devices 0 and 1 will be visible
CUDA_VISIBLE_DEVICES="0,1"       Same as above, quotation marks are optional 多GPU一起使用
CUDA_VISIBLE_DEVICES=0,2,3       Devices 0, 2, 3 will be visible; device 1 is masked
CUDA_VISIBLE_DEVICES=""          No GPU will be visible

在python代码中指定

import os
os.environ["CUDA_VISIBLE_DEVICES"] = "0"   #指定第一块gpu

为GPU设置使用量

config = tf.ConfigProto() 
config.gpu_options.per_process_gpu_memory_fraction = 0.9 # 占用GPU90%的显存 
session = tf.Session(config=config)

使GPU的使用量可持续增长

config = tf.ConfigProto() 
config.gpu_options.allow_growth = True 
session = tf.Session(config=config)

Tmux会话管理

Tmux简介
Tmux 是一个终端复用器(terminal multiplexer),功能强大方便。当我们使用SSH连接远程服务器时,若关闭窗口(包含网络断线),则与服务器的会话也会断开,会话内部的进程也会随之终止,不管进程是否运行完毕。

使用Tmux可以解决避免这种问题的发生,它可以将会话与窗口解绑。窗口关闭时,会话并不终止,而是继续运行,等到以后需要的时候,再让会话绑定其他窗口。

Tmux作用
Tmux 是会话与窗口解绑的工具,将它们彻底分离。

  1. 它允许在单个窗口中,同时访问多个会话。这对于同时运行多个命令行程序很有用。
  2. 它可以让新窗口"接入"已经存在的会话。
  3. 它允许每个会话有多个连接窗口,因此可以多人实时共享会话。
  4. 它还支持窗口任意的垂直和水平拆分。

基础用法
安装:

# Ubuntu 或 Debian
$ sudo apt-get install tmux

# CentOS 或 Fedora
$ sudo yum install tmux

# Mac
$ brew install tmux

使用流程:

  1. 新建会话tmux new -s my_session
  2. Tmux 窗口运行所需的程序。
  3. 按下快捷键Ctrl+b d或使用命令tmux detach将会话分离。
  4. 下次使用时,重新连接到会话tmux attach-session -t my_session

具体使用方法:
详见我的另一篇博客:Tmux使用教程

附录:conda命令

详细命令

请查看这篇文章:链接

常用命令如下

conda update conda #更新 conda
conda update anaconda #更新 anaconda 
conda activate xxxx #开启xxxx环境
conda deactivate  #关闭环境
conda remove -n xxxx --all  #删除xxxx环境
conda env list #显示所有的虚拟环境
conda info --envs #显示所有的虚拟环境

conda list         #查看已经安装的文件包
conda list -n xxxx       #指定查看xxxx虚拟环境下安装的package
conda update xxxx   #更新xxxx文件包
conda uninstall xxxx   #卸载xxxx文件包

数据源

若国外的数据源导致下载缓慢,则可以更换为国内的数据源:

#显示目前conda的数据源有哪些
conda config --show channels
#添加数据源:例如, 添加清华anaconda镜像:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
#删除数据源
conda config --remove channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
  • 26
    点赞
  • 201
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 16
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NSJim

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值