linux 配置pytorch_RTX 3080深度学习环境配置

找资料的时候感觉现在写30XX系显卡深度学习环境配置的文章还不太完善,所以记录了自己的采坑经历。

Why?

下面这张图非常直观,TITAN性能比2080ti强,3080的CUDA核心数差不多是TITAN的两倍,内存少一些。目前3080显卡7000出头可以拿下,性价比非常不错。

bdc1b5082b94e4971140a62c7f20d05f.png

1 准备工作

上半年配了台支持4GPU的机器,原计划下半年训练任务上来以后再加卡。但是30XX显卡出来以后,2个3080理论上和4个2080ti性能差不多,现在再加2080ti就非常不理智了。所以拆了2080ti,买了两个技嘉GeForce RTX™ 3080 GAMING OC 10G。

机器的硬件配置:

cpu:i9 10900x

主板:华硕PRIME X299-DELUXE Ⅱ

内存:16G * 4

电源:1600w

显卡:技嘉3080 GAMING O10G * 2

这套配置换3080有很多问题,性价比极低,不太推荐大家按照这个配置来买,有很多更合理的配置单可以参考。

2 环境配置

深度学习环境配置要多花点时间了解自己机器的情况,免得踩太多的坑。先去github上看看别人采的坑https://github.com/pytorch/pytorch/issues?q=is%3Aissue+is%3Aopen+30。

机器的环境:

  • 操作系统:Ubuntu18.04

  • Nvidia Driver:455

  • Python:3.7

  • Pytorch:>=  1.7.0

  • cuda:11.1.1

  • cudnn:8.0.5

版本号很重要,一定要看清楚,选不对小版本就是在瞎折腾。

2.1 Nvidia驱动安装

2.1.1 下载驱动

驱动用官方推荐的455,对GTX3080、GTX3090做了适配。

官网地址:https://www.nvidia.com/download/driverResults.aspx/163522/en-us

85e738ee605ed1bea8b4b71f1d16e5af.png

# 查看GPUlspci -vnn | grep VGA# 安装官方推荐的驱动sudo ./NVIDIA-Linux-x86_64-455.23.04.run --no-x-check -no-nouveau-check -no-opengl-files

驱动安装这里no-x、no-opengl很重要。

安装好驱动以后reboot,查看驱动情况。

watch nvidia-smi

d516121092e3e3da1295cc924254cc0f.png

2.1.2 Tips

给Ubuntu装Nvidia的驱动每次都会把我制得服服帖帖的,记录显卡驱动的安装这里踩过的几个坑:

(1)ubuntu-drivers devices没有输出

以前安装2080ti驱动的时候很简单,更新系统,然后用ubuntu-drivers devices很简单就装上了。但是,3080插上以后,ubuntu-drivers devices没有输出。

开始我还以为是显卡没有插好,检查了很多次。后来用下面这个命令是可以看到显卡的。我想了一下应该是ubuntu还没有更新对30XX显卡的检测。所以官方直接下载驱动安装就好了。

lspci -vnn | grep VGA> 1a:00.0 VGA compatible controller [0300]: NVIDIA Corporation Device [10de:2206] (rev a1) (prog-if 00 [VGA controller])> 68:00.0 VGA compatible controller [0300]: NVIDIA Corporation Device [10de:2206] (rev a1) (prog-if 00 [VGA controller])

(2)没有关闭x、opengl

第一次安装驱动没有关闭x和opengl,安装失败。

sudo ./NVIDIA-Linux-x86_64-455.23.04.runs

2.2 cuda、cudnn安装

conda一键搞定

自己编译的cuda性能会好一些,不想折腾的话可以用conda安装。

conda install pytorch torchvision torchaudio cudatoolkit=11.0 -c pytorch-nightly

conda会自动给我们安装cuda和依赖库,等一会(这里等的时间和网速有比较大关系,我等了20分钟)就好了。

安装失败的话检查你的网络,速度太慢就去挂个VP*。

这里的cuda是11.0,和推荐的不一样,但是我运行挺正常的。如果有问题,欢迎大家指出来,我修正。

2.2.1 cuda 11.1
wget https://developer.download.nvidia.com/compute/cuda/11.1.0/local_installers/cuda_11.1.0_455.23.05_linux.runsudo sh cuda_11.1.0_455.23.05_linux.run
2.2.2 cudnn 8.0.5

这里我并没有看到有8.0.5版本的cudnn,只有8.0.4。很多人说8.0.4会安装失败,所以我用的是conda的一键安装。

https://developer.nvidia.com/rdp/cudnn-archive

2.3 Pytorch安装

pytorch一定要安装nightly版本。

pip install numpypip install --pre torch torchvision torchaudio -f https://download.pytorch.org/whl/nightly/cu110/torch_nightly.html

2.4 测试

放别人的一小段测试代码,看看有没有正常调用显卡进行训练。

import torchimport torch.nn as nnimport torch.optim as optimsize = 128class PayloadModel(nn.Module):  def __init__(self):    super().__init__()    self.layers = nn.Sequential( \      *[nn.Conv1d(size, size, 1, 1, 0) for i in range(10)])    def forward(self, X):    return self.layers(X)device = "cuda:0"model = PayloadModel().to(device)optimizer = optim.Adam(model.parameters(), lr = 5e-4)inputs  = torch.randn(32, size, 256, device = device)targets = torch.randn(32, size, 256, device = device)loss = nn.MSELoss()for step in range(10000000):  predicted = model(inputs)  L = loss(predicted, targets)    optimizer.zero_grad()  L.backward()  optimizer.step()  print("%d steps, loss = %f" % (step, L.item()), end = "\r")

结束语

30XX显卡性能提升很多,性价比也不错,现阶段想配机器的同学这里不推荐买20系列。但是torch和tensorflow稳定版支持30XX显卡可能还需要一点时间,需要动手能力稍微强一点,网上写30xx的文章还不多,遇到问题先看看github,留言讨论也可以。

Reference

  • https://pytorch.org/

  • https://github.com/pytorch/pytorch/issues/47669

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值