tensorflow2.x+ubuntu20.04+CUDA10.1+cudnn7.6踩坑日记

本文详细介绍了在Ubuntu 20.04上安装TensorFlow 2.1+所需的CUDA 10.1、cuDNN 7.6.5及GCC 7.5的过程,并解决了版本不兼容的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前面写了一篇ubuntu上cuda11.1的安装

后来要用tensorflow时傻了。。

这个里面的版本对应真的搞死人。

TF要对应不同版本的cuda和cudnn,而不版本的cuda对应不同版本的Nvidia驱动。

不同版本的cudnn需要对应版本的cuda

不同版本的cuda又以来于相应版本的gcc和g++。

想要让这几个都能完美适配,真的有点难。

而且还有一点,是ubuntu和Nvidia都在向前跑,ubuntu18.04每天都提醒你更新20.04

Nvidia的cuda更新到11.1了都,cudnn也都主推8.0+了。

pytorch都是跟的很紧,但是TF还只能用cuda10.1

0、为什么这么搭配

Tensorflow2.1+都只能使用Cuda10.1,对应的gcc/g++版本也都是7.x

所以如果要使用Tensorflow2.1+,就只能选择cuda10.1,cudnn只能选择7.6.5

 

1、gcc和g++

ubuntu20.04默认是gcc g++ 9.x版本的

TF(Tensorflow)2.1+要求gcc7.3.1,坑爹的是,在nvidia官网查cuda10.1的依赖要求时,只有10.1update2的。gcc要求7.4.0

更坑爹的是,在ubuntu20.04上,apt-get 安装gcc7.3.1或者安装7.4.0都是找不到这个包的。。。

经过几次重装系统后,亲测直接装7.5就好。

1.1、 卸载旧的gcc/g++

cd /usr/bin
sudo rm gcc
sudo rm g++

1.2、 安装gcc/g++ 7.5

sudo apt-get install gcc-7
sudo apt-get install g++-7

1.3、重建软连接

cd /usr/bin
sudo ln -s gcc-7 gcc
sudo ln -s g++-7 g++

1.4、验证版本

gcc --version
g++ --version

2、 安装驱动+cuda+cudnn

参照之前的博客:https://blog.csdn.net/Raink_LH/article/details/109595717

cudnn7.6.5需要在历史版本中找:https://developer.nvidia.com/rdp/cudnn-archive

安装驱动,安装cuda和cudnn之后。使用如下验证

nvidia-smi
nvcc -V

nvcc -V可能会报错提示执行apt-get install nvidia-cuda-toolkit安装

按照提示再装一遍(什么鬼啊!)

3、安装TF

安装Anaconda

创建python3.7虚拟环境

安装tensorflow

使用如下方式进行测试是否一切正常。

import tensorflow as tf

tf.test.is_gpu_available()

4、其他参考与踩坑

4.1、tensorflow与gcc、cuda、cudnn的对照关系

查看官方文档:https://tensorflow.google.cn/install/source?hl=zh-cn#linux

4.2、旧版本cuda的安装手册(对应gcc版本说明)

1、10.0:https://docs.nvidia.com/cuda/archive/10.0/cuda-installation-guide-linux/index.html

2、10.1 update2: https://docs.nvidia.com/cuda/archive/10.1/cuda-installation-guide-linux/index.html

3、9.0 :https://docs.nvidia.com/cuda/archive/9.0/cuda-installation-guide-linux/index.html

4、8.0:https://docs.nvidia.com/cuda/archive/9.0/cuda-installation-guide-linux/index.html

4.3、 旧版本cudnn下载

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

4.4、出现 ***is not a symbolic link

例如:/sbin/ldconfig.real: /usr/local/cuda-10.1/targets/x86_64-linux/lib/libcudnn.so.7 is not a symbolic link

按照该路劲找到文件夹,查看确切的文件后缀,例如是libcudnn.so.7.6.5

然后执行

sudo ln -sf /usr/······/libcudnn.so.7.6.5 /usr/······/libcudnn.so.7

4.5、查看所有软连接

sudo ldconfig -v

 

<think>我们正在回答用户的问题:判断Ubuntu 20.04是否支持安装CUDA 10.1版本。 根据引用[2]中提供的信息,用户已经运行了命令来验证系统信息,显示系统是Ubuntu 20.04(x86_64架构)。 而引用[1]和[3]中提供了安装CUDA 12.0和11.6的示例,但我们需要确认CUDA 10.1是否支持。 根据NVIDIA官方文档,CUDA 10.1的发布早于Ubuntu 20.04Ubuntu 20.042020年4月发布,而CUDA 10.12019年2月发布)。因此,官方可能没有为Ubuntu 20.04提供预编译的CUDA 10.1包。但是,这并不意味着无法安装,只是可能需要一些额外的步骤或注意事项。 我们可以参考官方安装指南(引用[4]中提供的链接)来确认。根据历史经验,CUDA 10.1的官方文档中列出的支持系统包括Ubuntu 16.0418.04,但不包括20.04。 然而,实际上许多用户在Ubuntu 20.04上成功安装了CUDA 10.1,但可能会遇到依赖库版本不兼容的问题,尤其是gcc和内核版本问题。因为Ubuntu 20.04默认的gcc版本是9.x,而CUDA 10.1要求gcc版本不能超过7(具体可能要求gcc<=7)。 因此,结论是:Ubuntu 20.04可以安装CUDA 10.1,但需要满足以下条件: 1. 安装兼容的gcc版本(例如gcc-7)并设置为默认。 2. 可能需要安装较低版本的依赖库(如libstdc++等)。 3. 注意内核版本,如果内核版本过高,可能需要安装旧内核或者使用其他规避方法。 步骤概要: 1. 安装gcc-7和g++-7: ```bash sudo apt install gcc-7 g++-7 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 7 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 7 ``` 2. 下载CUDA 10.1的安装包(使用runfile方式,因为这种方式可以绕过一些包依赖问题): ```bash wget https://developer.download.nvidia.com/compute/cuda/10.1/Prod/local_installers/cuda_10.1.243_418.87.00_linux.run ``` 3. 运行安装程序,并注意在安装过程中不安装驱动(如果已经安装了较新的驱动,可能需要跳过驱动安装): ```bash sudo sh cuda_10.1.243_418.87.00_linux.run ``` 在安装过程中,取消勾选驱动(因为可能已经安装了更新的驱动,而CUDA 10.1自带的驱动可能不支持新显卡或新系统),并确保安装Toolkit。 4. 安装后设置环境变量。 但是,请注意,这种安装方式可能会遇到问题,特别是如果系统已经安装了较新的驱动和工具。因此,如果可能,建议使用更高版本的CUDA(如11.x或12.x),因为Ubuntu 20.04对这些版本有更好的支持。 如果用户必须使用CUDA 10.1(例如,为了兼容某些旧项目),则可以尝试上述方法。 因此,回答用户的问题:Ubuntu 20.04支持安装CUDA 10.1,但需要额外步骤解决依赖问题。 同时,我们生成几个相关问题供用户参考。</think>### Ubuntu 20.04CUDA 10.1 的支持情况 根据提供的系统信息(引用[2]): ```bash DISTRIB_RELEASE=20.04 DISTRIB_DESCRIPTION="Ubuntu 20.04.1 LTS" VERSION_ID="20.04" ``` **Ubuntu 20.04 可以安装 CUDA 10.1,但需满足特定条件**: #### ✅ 支持情况说明 1. **架构兼容性** Ubuntu 20.04 的 `x86_64` 架构(引用[2])完全支持 CUDA 10.1,这是官方支持的架构类型。 2. **依赖要求** - 需要 **GCC 7.x** 或更低版本(CUDA 10.1 不支持 Ubuntu 20.04 默认的 GCC 9+) - 需要 **Linux 内核 ≤ 5.4**(Ubuntu 20.04 默认内核 5.4-5.8 需降级) - 需要 **NVIDIA 驱动 ≥ 418.39** #### ⚠️ 安装限制 1. **APT 安装不可用** CUDA 10.1 官方未提供 Ubuntu 20.04 的 APT 源(引用[3]),必须使用 **runfile 安装方式**: ```bash wget https://developer.download.nvidia.com/compute/cuda/10.1/Prod/local_installers/cuda_10.1.243_418.87.00_linux.run sudo sh cuda_10.1.243_418.87.00_linux.run ``` 2. **必须手动降级依赖** 安装前需执行: ```bash # 安装 GCC 7 sudo apt install gcc-7 g++-7 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 7 # 降级内核(可选) sudo apt install linux-image-5.4.0-42-generic ``` #### 🔧 推荐解决方案 1. **优先考虑新版 CUDA** Ubuntu 20.04 官方支持 CUDA 11.x+(引用[1][3]),建议使用: ```bash wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run sudo sh cuda_11.8.0_520.61.05_linux.run ``` 2. **如需强制安装 CUDA 10.1** 步骤: ```bash # 1. 禁用 Nouveau 驱动 sudo nano /etc/modprobe.d/blacklist-nouveau.conf # 添加: blacklist nouveau; options nouveau modeset=0 # 2. 安装旧版依赖 sudo apt install gcc-7 g++-7 build-essential linux-headers-5.4.0-42-generic # 3. 运行安装程序(跳过驱动安装!) sudo sh cuda_10.1.243_418.87.00_linux.run --override --no-opengl-libs ``` > **关键提示**:CUDA 10.1Ubuntu 20.04 上存在已知兼容性问题[^4],特别是与新版驱动和内核的冲突。生产环境建议使用 CUDA 11+ 或降级到 Ubuntu 18.04。 --- ### 相关问题 1. 如何检查当前系统是否满足 CUDA 10.1 要求? 2. Ubuntu 20.04 安装 CUDA 11.x 有哪些注意事项? 3. 如何解决 CUDA 安装过程中的 GCC 版本冲突? 4. 是否可以在同一系统安装多个 CUDA 版本? 5. CUDA 10.1 支持哪些型号的 NVIDIA 显卡?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值