
ubuntu20.04+cuda11.0+cudnn8.0安装tensorflow2.4(gpu)
ubuntu20.04 安装NVIDIA驱动很容易,只需要打开系统设置->软件和更新->附加驱动->选择NVIDIA驱动->应用更改。该界面会自动根据电脑上的GPU显示推荐的NVIDIA显卡驱动。NVIDIA(英伟达)显卡驱动安装完成后,在终端输入nvidia-smi输出如下图所示的结果就表示安装成功了。下图中绿色框内表明,安装的驱动支持的CUDA最高版本为11.4(注意这里需要重新启动电脑)。
一、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博客
更多推荐
所有评论(0)