Linux服务器下虚拟环境中配置深度学习环境及注意事项
总结Linux服务器下,通过conda创建虚拟环境及配置深度学习gpu加速的方法和注意事项
1. 环境配置及安装
可以参考该篇完成虚拟环境创建及镜像源添加
# 安装指定版本torch cuda 利用设置的镜像源
conda install pytorch==1.1.0 torchvision==0.3.0 cudatoolkit==10.0
# 创建环境,同时指定tensorflow cuda 版本
conda create -n py39tf28 python==3.9 tensorflow-gpu==2.8 cudatoolkit==11.6
# 指定通道库安装
# CUDA 11.6
conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.6 -c pytorch -c conda-forge
上述torch cuda安装成功后,可以进行测试验证
# cuda 测试
import torch
x = torch.Tensor([1.0])
xx = x.cuda()
print(xx)
# cuDNN test
from torch.backends import cudnn
print(cudnn.is_acceptable(xx)) # True
###########
import torch
torch.cuda.is_available()
# True
torch.cuda.current_device()
# 0
torch.cuda.device(0)
# <torch.cuda.device object at 0x0000023034332438>
torch.cuda.device_count()
# 1
torch.cuda.get_device_name(0)
# 'GeForce GTX 1660'

2. 注意事项
实际上,服务器上配备着固定一型号的显卡,即对应着特定的GPU算力。而实际项目要求的环境千差万别,可能和服务器给定的算力是不兼容的,即不是所有的要求GPU加速的环境都可以布置在该服务器上。
比如现有的Ubuntu系统的服务器上配有3090显卡,其GPU算力为8.6。如果在其上通过conda创建虚拟环境后安装torch cuda的版本分别为:
conda install pytorch==1.1.0 torchvision==0.3.0 cudatoolkit==10.0
即使可以通过上述的测试验证,但实际运行项目还是会出错:

这是因为pytorch1.1和cuda10.0对应的算力均在8.0一下,与服务器硬件算力不兼容。笔者后来又装了cuda10.2及对应的torch,则出现如下错误:
GeForce RTX 3090 with CUDA capability sm_86 is not compatible with the current PyTorch installation.
The current PyTorch install supports CUDA capabilities sm_37 sm_50 sm_60 sm_70.
If you want to use the GeForce RTX 3060 GPU with PyTorch, please check the instructions at https://pytorch.org/get-started/locally/
即直接指出了算力不兼容的问题。参考该篇文章,通过查找torch cuda算力表,
通过安装cuda11+的版本即可实现GPU的加速运算。
# CUDA 11.6
conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.6 -c pytorch -c conda-forge

可以发现,GPU加速成功,因为第一次cuda需要加载,所以时间比CPU还慢,但第二次就提速100多倍了。其他安装过程中遇到问题可以参考该篇。
当需要卸载cuda cudnn时,可以执行如下指令:
# 卸载
conda uninstall cudatoolkit --force
conda uninstall cudnn --force
# 单独安装时,指令为:
conda install cudatoolkit=10.0 # 可以进一步指定镜像源 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/linux-64/
conda install cudnn=7.5.1
3. 其他问题
conda install VS pip install
关于CUDNN_STATUS_EXECUTION_FAILED错误的其他解释
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)