一、NVIDIA驱动安装

ubuntu20.04 安装NVIDIA驱动很容易,只需要打开系统设置->软件和更新->附加驱动->选择NVIDIA驱动->应用更改。该界面会自动根据电脑上的GPU显示推荐的NVIDIA显卡驱动。

 NVIDIA(英伟达)显卡驱动安装完成后,在终端输入nvidia-smi输出如下图所示的结果就表示安装成功了。下图中绿色框内表明,安装的驱动支持的CUDA最高版本为11.7(注意这里需要重新启动电脑)。

 二、安装CUDA

2.1 下载与安装CUDA

从官网下载对应的CUDA,这里对新人最不友好的就是什么是“对应的CUDA”???除了GPU支持最大CUDA版本外,还需要考虑Tensorflow对应的CUDA版本,从这里可以查到:

https://www.tensorflow.org/install/source_windows

如下图所示,这里以CUDA11.0.2为例,介绍ubuntu20.04系统上CUDA的安装。我们可以从NVIDIA官网CUDA下载页面,网址为https://developer.nvidia.com/cuda-toolkit-archive,点击CUDA Toolkit 11.0.2下载相应版本的CUDA11.0.2。

 在如下图所示的界面,以此选择Linux → \to →x86_64 → \to →Ubuntu → \to →20.04。然后弹出三种安装方法,根据安装经验这里推荐采用runfile(local)方法,即选择如下图中的红圈中的选项。这是由于CUDA的安装过程需要很多依赖库文件,CUDA的run文件虽然比另外两种安装方法的文件大,但是它包含了所有的依赖库文件,所以采用相对来说很容易安装成功。

 在安装CUDA11.0之前需要首先安装一些相互依赖的库文件:

sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev

 下面为安装CUDA11.0.2的Ubuntu安装指令:

wget https://developer.download.nvidia.com/compute/cuda/11.0.2/local_installers/cuda_11.0.2_450.51.05_linux.run

sudo sh cuda_11.0.2_450.51.05_linux.run

运行上面指令后,会弹出如下界面,点击Continue,然后再输入accept。

 接着,如下图所示,在弹出的界面中通过Enter键,取消Driver和450.51.05的安装,然后点击Install,等待

 2.2. 配置CUDA的环境变量

CUDA安装完成后,需要配置变量环境才能正常使用。首先在终端输入sudo gedit ~/.bashrc打开如下图所示的.bashrc文件。 然后,如下图所示在.bashrc文件的最后添加以下CUDA环境变量配置信息(我从不同的文章中看到这里添加的信息不仅相同,目前还不太清楚具体含义,所以这里仅仅罗列出它们):  

export PATH=$PATH:/usr/local/cuda/bin

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64

export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda/lib64

最后,在终端输入source ~/.bashrc或者重新启终端使之生效。这时,我们就可以在终端输入nvcc -V查看CUDA的安装信息,如下图所示,至此CUDA安装成功。

 检查一下CUDA是否安装正确:(注意文件夹路径一定要存在,需要跟上面设置环境变量的路径保持一致)

cat /usr/local/cuda/version.txt

这里特别注意:

一开始的时候,我对CUDA不是很了解,执行这句话没有任何反应,我以为是该方法失效了。我使用nvidia-smi或nvcc --version指令都看到了CUDA版本号。但是CUDA环境没有配置好,这两个也是能拿到版本号的,所以不准确。还是应该用上面的方法检查CUDA版本。

三、安装cuDNN

从NVIDIA官网的cudnn下载页面上下载与安装CUDA对应的cudnn,网址为https://developer.nvidia.com/rdp/cudnn-download。选择Ubuntu20.04系统下,CUDA11.0.2对应的cuDNN v8.0.5版本,如下图所示:

 对下载的cudnn-11.0-linux-x64-v8.0.5.39.tgz进行解压操作,得到一个文件夹cuda,命令为:

tar -zxvf cudnn-11.0-linux-x64-v8.0.5.39.tgz

然后,使用下面两条指令复制cuda文件夹下的文件到/usr/local/cuda-11.0/lib64/和/usr/local/cuda-11.0/include/中。

cp cuda/lib64/* /usr/local/cuda-11.0/lib64/

cp cuda/include/* /usr/local/cuda-11.0/include/

拷贝完成后,我们可以使用如下的命令查看cuDNN的信息:

cat /usr/local/cuda-11.0/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

四、安装Tensorflow2.4(gpu)

pip install tensorflow-gpu==2.4.0 -i https://pypi.tuna.tsinghua.edu.cn/simple

 安装报错:

ERROR: launchpadlib 1.10.13 requires testresources, which is not installed. ERROR: tensorboard 2.13.0 has requirement grpcio>=1.48.2, but you'll have grpcio 1.32.0 which is incompatible.

 报错解决:

 注意:在解决报错时走了一些弯路,想直接解决问题的直接看最后就行了。

 对于第一个报错,解决方法是:

python3 -m pip install launchpadlib

但可能会存在网络问题,

 解决方法是换一个源:

python3 -m pip install launchpadlib -i https://pypi.tuna.tsinghua.edu.cn/simple

对于第二个报错,解决方法是升级grpcio:

ip install --upgrade grpcio -i https://pypi.tuna.tsinghua.edu.cn/simple

  但是新的问题出现了:

ERROR: tensorflow-gpu 2.4.0 has requirement grpcio~=1.32.0, but you'll have grpcio 1.54.0 which is incompatible.

和着白升级了?

那最后怎么解决的?

原来是要更新pip

python3 -m pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple

 更新完pip后,在重新执行安装命令,安装正常,不再报错。

 大无语,最后通过import tensorflow  as tf在检验是否安装成功时,发现还有问题。

 说的是 must be regenerated with protoc >= 3.19.0

出现这个问题的主要原因是protobuf版本不匹配。因此,按照错误提示,用pip安装对应版本的protobuf即可,如上述问题中对应的 3.20.1版本。安装命令为:

pip install protobuf==3.20.1 -i https://pypi.tuna.tsinghua.edu.cn/simple

最后验证,终于成功了!

 参考文献

 Ubuntu20.04下CUDA、cuDNN的详细安装与配置过程(图文)_ubuntu20.04安装cuda_嵌入式技术的博客-CSDN博客

 Ubuntu 20.04安装CUDA & CUDNN 手把手带你撸_ubuntu20.04 anzhaung cudacudnn_哈希Map的博客-CSDN博客

ubuntu20.04+cuda11.1+cudnn8.0安装tensorflow2.4(gpu)_YAN1221__的博客-CSDN博客

 Ubuntu20.04环境下 安装Tensorflow_1900_的博客-CSDN博客

Descriptors cannot not be created directly_descriptors cannot not be created directly._Coding的叶子的博客-CSDN博客

参考阅读

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。