非ROOT用户配置远程CUDA服务器的深度学习环境,下面以Pytorch为例。
CUDA驱动#
查看服务器已经安装的CUDA版本:
我这里显示11.4版本,但这并不重要。接下来查看驱动版本,这关系着我们在conda虚拟环境所能够安装的最新CUDA版本。
1
2
3
4
| nvidia-smi
### Output
### Driver Version: 535.129.03 CUDA Version: 12.2
|
提示:
这里的 CUDA Version 显示12.2,其实是服务器安装的CUDA驱动支持安装的最新的CUDA版本,也就是说我们接下来可以安装的CUDA版本最高为12.2,本机已经安装的CUDA版本为11.4。
因为我们是非ROOT用户,使用不能改变已安装驱动版本,但是可以通过Conda虚拟环境安装新的CUDA版本。
Conda#
非root用户配置python相关环境时,我极其推荐使用conda包管理器来实现依赖管理(其实使用R语言的用户也推荐使用)。
我这里安装的是miniconda版本(最小化版本),也可以安装anaconda(完整版)。
博客里以前也写过相关内容。
1
2
3
| # 我安装环境时选择的是3.10版本python
conda create -n torch python=3.10
conda activate torch
|
Pytorch#
可以在 Pytorch History Release 查询Pytorch历史发布版本,结合自己的需求(例如Colossal-AI需要PyTorch >= 1.11 并且 PyTorch <= 2.1)。最终我选择的就是pytorch==2.1.0 并且 CUDA==11.8 。
1
2
3
4
5
6
7
8
9
| # CUDA 11.8
# 小于驱动最高支持版本 12.2 但是大于已安装CUDA版本 11.4
# 尽量不要跳大版本安装
# 比如我本机安装的是11.4 那我就选择cuda=11.8安装 安装12.1似乎有点问题?
conda install pytorch==2.1.0 torchvision==0.16.0 torchaudio==2.1.0 pytorch-cuda=11.8 -c pytorch -c nvidia
#### 使用pip镜像源
#### 链接最后的cu121按需更改
pip3 install torch torchvision torchaudio --index-url https://mirror.sjtu.edu.cn/pytorch-wheels/cu121
|
题外话:
至于为什么pytorch针对有些cuda版本不会重新发布,在这个issue中pytorch的一位开发者解释到pytorch-cuda113能够在cuda114版本使用,简单来说就是没有必要重新发布,114版本直接使用113的就可以了。
检查CUDA可用性
1
2
3
4
5
6
7
8
9
10
11
| # 方法一:
python -c "import torch; print(torch.cuda.is_available())"
# 方法二:
(torch) [username/pwd]$ python
Python 3.10.13 (main, Sep 11 2023, 13:44:35) [GCC 11.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> torch.cuda.is_available()
True
>>> exit()
|
CUDA#
在 Nvidia-Cuda 查找已安装的Pytorch对应的CUDA版本,我这里是11.8。
1
2
3
4
5
6
7
8
9
| # 在nvidia官方channel下载包不会显示进度条 下载速度慢
# 国内推荐使用镜像站 编辑 .condarc 文件 或者执行下面的 conda config --set 命令
# nvidia: https://mirrors.sustech.edu.cn/anaconda-extra/cloud
conda config --set custom_channels.nvidia https://mirrors.sustech.edu.cn/anaconda-extra/cloud
# 官方命令:conda install nvidia/label/cuda-11.8.0::cuda
# 上述命令经过测试 可能会导致cuda版本错误匹配 感谢评论区老哥
conda install cuda -c nvidia/label/cuda-11.8.0
|
此时输入 nvcc -V
命令可以发现已安装版本已经是11.8了。
使用conda安装的cuda#
1
2
| # 可以避免一些程序找不到conda安装的CUDA(11.8) 而去使用系统自带的CUDA(11.4)
export CUDA_HOME=$CONDA_PREFIX
|
zsh#
参考Unix终端安装配置Oh My Zsh教程中非root用户编译安装部分。
如果在编译过程中遇到报错,可以尝试升级gcc等编译组件再尝试安装。
点击查看进一步安装Oh My Zsh教程。
gcc clang g++ clang++#
1
2
| # 服务器自带gcc版本太低 甚至不支持g++ 使用conda安装后直接生效
conda install -c conda-forge cxx-compiler cmake clang
|
1
2
3
4
5
6
7
| # 官方仓库建议命令
conda install xformers -c xformers
# 确认安装之前一定要仔细核对包变更记录
# 存在替换已安装pytorch版本的可能 此时一定不要安装
# 尝试加上 -c nvidia -c pytorch 应该就没问题了
conda install xformers -c xformers -c nvidia -c pytorch
|
1
2
| # 使用conda安装可能不会是最新版本 pip最好
pip install transformers datasets accelerate -U
|
查看显卡计算能力#
1
| nvidia-smi --query-gpu=compute_cap --format=csv
|
Nvidia-Cuda
Pytorch History Release
Pytorch Github Issue
无Root配置科研环境:zsh插件、conda/python环境等