Linux安装NVIDIA显卡驱动并配置pytorch和tensorflow环境

一、系统环境:Ubuntu18.04+显卡3090

双系统安装:Win10安装Ubuntu18.04双系统

二、安装NVIDIA显卡驱动:

1.进入BIOS禁用secure boot。

2.卸载原有的英伟达驱动:sudo apt-get remove --purge nvidia*或者sudo ./NVIDIA-Linux-x86_64-384.59.run --uninstall

3.更新库:

sudo add-apt-repository ppa:graphics-drivers/ppa

sudo apt-get update

sudo apt-get upgrade

4.安装英伟达驱动:

自动安装:

sudo ubuntu-drivers devices

sudo ubuntu-drivers autoinstall

指定版本:

sudo apt-get install nvidia-driver-510

安装依赖:

sudo apt-get install mesa-common-dev(没有这个好像重启后nvidia-smi命令不能用)

5.设置更改

sudo gedit /etc/default/grub

Linux安装NVIDIA显卡驱动并配置pytorch和tensorflow环境_第1张图片

将原来的"quiet splash"或者你已经改过的名称,改为"quiet splash acpi_osi=linux"

sudo update-grub

6.重启电脑nvidai-smi

可能遇到的问题:系统内核与显卡驱动不匹配报错:NVIDIA-SMI has failed because it couldn’t communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running

解决办法:
# 执行命令
sudo apt-get install dkms
sudo dkms install -m nvidia -v 510.47.03(510.47.03表示的是驱动版本号)
# 利用命令 ll /usr/src/ 可查看下面有一个nvidia-510.47.03/文件夹,版本号因电脑而异

参考链接:

Ubuntu18.04——正确安装英伟达(NVIDIA)显卡驱动

ubuntu pytorch 深度学习环境配置

三、安装cuda和cudnn:

1.安装在系统环境:Linux安装cuda、cudnn

首先到NVIDIA官网找到显卡对应版本的cuda,执行命令安装。

cuda下载:CUDA Toolkit Archive | NVIDIA Developer

cudnn下载:cuDNN Archive | NVIDIA Developer

可能遇到的问题:如果电脑已经安装了显卡驱动Driver CUDA则需要去掉Driver选项,详见:ubuntu18.4解决问题: Installation failed.

2.安装在conda虚拟环境:可以使用conda命令在虚拟环境中安装所需的cuda和cudnn,一台电脑可安装多个cuda和cudnn,详见链接:

Win10配置YOLO目标检测Pytorch环境

四、安装Anaconda:

官网或清华镜像下载Anaconda

bash Anaconda3-2021.05-Linux-x86_64.sh 
source ~/.bashrc
conda -V

五、安装Pytorch:

添加源和安装过程与win10相似,详见:

Win10配置YOLO目标检测Pytorch环境

六、安装tensorflow-gpu:

RTX3090利用conda安装tensorflow2.6:因为3090只支持cuda11以上,所以需要选择安装支持cuda11以上的tensorlfow2版本,也就是tensorflow2.4.x。当前阶段,直接使用conda install tensorflow-gpu的话即使成功安装,也无法正常调用gpu,所以需要通过以下方法安装:

conda创建相关虚拟环境

conda install cudatoolkit=11.2 cudnn=8.1

pip install tensorflow-gpu==2.6

参考链接:RTX3090利用conda安装tensorflow2.4

验证:tensorflow-gpu

import tensorflow as tf
a=tf.test.is_built_with_cuda()
b=tf.test.is_gpu_available(cuda_only=False,min_cuda_compute_capability=None)
print(a)
print(b)

你可能感兴趣的:(tensorflow,linux,pytorch,ubuntu,conda)