深度学习环境配置

安装miniconda

bash Miniconda3-latest-Linux-x86_64.sh
在.bashrc下增加环境变量
conda install --yes --file requirements.txt

显卡算力和torch的cuda版本问题

报错信息:
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 3090 GPU with PyTorch, please check the instructions at https://pytorch.org/get-started/locally/

到官网查看不同的显卡型号的算力,
深度学习环境配置_第1张图片

使用的RTX 3090的算力是8.6,这样报错信息能看懂了,当前的Pytorch对应的版本只能支持算力是7 的,而cuda支持的算力应当要高于显卡的算力。

原来,不仅有torch版本,torch还包含有对应的cuda版本,RTX30系列的显卡算力比较高,对应的cuda版本不能是10.x,只能是11.x.
而登录官网https://pytorch.org/get-started/locally/
深度学习环境配置_第2张图片

一开始默认的安装命令pip3 install torch torchvision torchaudio安装的就是cuda10.2,所以3090的显卡无法使用。

选择cuda版本11.3,pip3 install torch1.10.0+cu113 torchvision0.11.1+cu113 torchaudio==0.10.0+cu113 -f https://download.pytorch.org/whl/cu113/torch_stable.html

这样运行下面的命令就不会报错了。

import torch
a = torch.Tensor([1,2])
a= a.cuda()

显存爆了以及解决方案

RuntimeError: CUDA out of memory. Tried to allocate 20.00 MiB (GPU 0; 23.70 GiB total capacity; 8.93 GiB already allocated; 19.56 MiB free; 9.22 GiB reserved in total by PyTorch) If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF

这个错误也是经常会遇到的。
通常的解决方案有两个:

  1. 将batch_size减小
  2. 使用fp16

使用fp16以及安装apex

  1. git clone https://github.com/NVIDIA/apex
  2. cd apex
  3. pip install -v --no-cache-dir --global-option=“–cpp_ext” --global-option=“–cuda_ext” ./

输入第三个命令发现没有安装对应的cuda

cuda版本选择以及安装

首先要根据nvidia-smi看驱动的版本
深度学习环境配置_第3张图片
发现驱动的版本是460
深度学习环境配置_第4张图片
而根据这个对照表可以发现,这个驱动对应的cuda版本只能是11.3以下,而又因为上面提到的算力原因,安装的cuda版本选择只能是11.1或者11.2.

先安装11.2版本的cuda,
进入官网,输入对应的命令wget
然后sh下载下来的安装包,就会进入安装界面
由于没有管理员权限,需要设置安装路径,具体见下面链接
非管理员权限安装cuda
然后配置环境变量,source即可。
使用nvcc -V 验证版本

pytorch with cuda版本

为了安装apex,安装的cuda版本必须和pytorch with cuda的版本一致。但是现在安装的cuda版本是11.2,而pytorch with cuda的版本是11.3.

解决方案1:
安装11.3版本的cuda,但是前面提到服务器的驱动是460,不能支持cuda11.3。

解决方案2:
安装pytorch with cuda 11.2,但是在官网上只有稳定版本的11.3和10.2,
pip3 install torch1.10.0+cu113 torchvision0.11.1+cu113 torchaudio==0.10.0+cu113 -f https://download.pytorch.org/whl/cu113/torch_stable.html
根据这个下载命令,访问对应的网站

深度学习环境配置_第5张图片
发现10.2版本的cuda没有pytorch支持
深度学习环境配置_第6张图片
深度学习环境配置_第7张图片
解决方案3:
安装11.1的cuda,安装pytorch with cuda 11.1,终于成功安装了apex。

总结

显卡型号3090算力8.6 ---------> pytorch with cuda版本必须11.x
驱动是460 --------->cuda版本不能是11.3及以上
而官网只提供了11.3和10.2版本的with cuda,11.2版本的没有,所以最终选择的是11.1版本的cuda和11.1版本的pytorch with cuda.

你可能感兴趣的:(算法代码的运行,深度学习,pytorch)