IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> CUDA和Tensorflow安装问题,包括如何在一台机器上配置多个CUDA环境和Tensorflow版本 -> 正文阅读

[人工智能]CUDA和Tensorflow安装问题,包括如何在一台机器上配置多个CUDA环境和Tensorflow版本


之前在其他服务器上配置项目环境,遇到许多许多问题,研究许久觉得已经明白CUDA和Tensorflow安装,在此总结梳理一下。
我需要安装的是GPU版本的tensorflow-1.11、环境是CUDA 9.0;(我项目本身只需要tensorflow1.x即可跑起来)
我尝试的三个服务器本身环境是:

类别A (原本的服务器)B(待安装服务器1)C(待安装服务器2)
显卡GeForce RTX 2080 TiGeForce RTX 2080 Tia10
Cudacuda 10.2cuda 11.2cuda 10.1
cudatoolkitcudatoolkit=9.0=h13b8566_0-----
cudnncudnn=7.6.5=cuda9.0_0-----
tensorflowtensorflow-1.11tensorflow-2.0

最后运行起来的服务器是A、B

类别A (原本的服务器)B
显卡GeForce RTX 2080 TiGeForce RTX 2080 Ti
Cudacuda 10.2cuda 9.0(多cuda切换)
cudatoolkitcudatoolkit=9.0=h13b8566_0cudatoolkit=10.2=h8f6ccaa_9
cudnncudnn=7.6.5=cuda9.0_0cudnn=7.6.5=cuda10.2
tensorflowtensorflow-1.11tensorflow-1.11

安装CUDA和Tensorflow一般流程

1. 查看显卡可安装的CUDA版本

如果没有安装显卡驱动 Linux下Nvidia驱动的安装需要先安装
安装完成后,使用下面命令查看显卡情况

nvidia-smi

不是NVIDIA显卡:Linux(Ubuntu)系统查看显卡型号

命令行结果如下:
在这里插入图片描述
最上面一行显示当前显卡可支持的CUDA最大版本是 11.4;
接下来查看需要安装什么Tensorflow和CUDA以及cuDNN

注:以上概念的区别
显卡,显卡驱动,nvcc, cuda driver,cudatoolkit,cudnn到底是什么?
一文讲清楚CUDA、CUDA toolkit、CUDNN、NVCC关系

Nvidia Driver决定着系统最高可以支持什么版本的cuda和cudatoolkit
Nvidia Driver是向下兼容的

cuda和cudatoolkit不同,前者说的是系统安装的cuda,它是由Nvidia官方提供的(/usr/local/cuda就是系统安装的cuda的软链接)。后者是anaconda官方提供的用来build 的一个工具包,它是Nvidia所提供的cuda的一个子集。

cudnn:为深度学习计算设计的软件库。
CUDA Toolkit (nvidia): CUDA完整的工具安装包,其中提供了 Nvidia 驱动程序、开发 CUDA 程序相关的开发工具包等可供安装的选项。包括 CUDA 程序的编译器、IDE、调试器等,CUDA 程序所对应的各式库文件以及它们的头文件。

2. Tensorflow版本以及对应CUDA、cuDNN版本如何查看

匹配规则的网站:https://tensorflow.google.cn/install/source_windows?hl=en#gpu
点开可以看到:tensorflow-1.11需要python 3.5~3.6;cuDNN 7 CUDA 9.0
在这里插入图片描述

Python安装

使用conda环境安装,创建新环境的时候一起安装了
conda create -n tf1 python=3.6

Tensorflow安装

pip install tensorflow-gpu==1.11

Cuda相关安装

cuda安装:其实cuda不一定需要匹配

我需要安装的tensorflow-gpu=1.11,需要安装的cuda是9.0;cuDNN是7
在这里插入图片描述
但是我能够运行的服务器

  1. 服务器A是cuda 10.2不匹配,但是 cudatoolkit安装的是 cudatoolkit=9.0=h13b8566_0;对应9.0即可以运行
  2. 服务器B是cuda 9.0,cudatoolkit 安装的是10.2;也可以运行;

相对来说cuda安装更麻烦一点,所以可以不安装对应的cuda,不过我当时遇见一个问题是cudatoolkit在服务器B上的源中搜索不到9.0的版本,所以我安装了cuda9.0

在服务器B上原本存在cuda 11.2,一个服务器可以有多个cuda版本只需要做好多版本cuda管理即可

具体的安装流程可以看:Linux下安装cuda和对应版本的cudnn 比较详细
总结就是:官网下载安装包,安装,选择好安装地址和安装配置,等待安装完成

最终安装好会显示如下信息:
在这里插入图片描述

cuDnn和cudatoolkit 安装

conda install cudatoolkit=10.2
conda install cudnn=7.6

我是因为安装源只能搜到10.2的cudatoolkit所以安装的10.2对应的cudatoolkit

多Cuda环境切换

两个链接

(yolov3) [xxhu@459475 ~]$ export PATH=/home/……/cuda/cuda-9.0/bin${PATH:+:${PATH}}
(yolov3) [xxhu@459475 ~]$ export LD_LIBRARY_PATH=/home/……/cuda/cuda-9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

可以用nvcc -V查看当前cuda链接上的版本

遇到的问题

Cuda版本问题

1. 驱动版本过高,报错:cublasSgemm_v2:CUBLAS_STATUS_EXECUTION_FAILED #332

很坑,我安装的一个服务器上,是A10的显卡,算力过高,导致不能使用匹配 CUDA10 或更低的 tensorflow1.x

这个问题我是在链 https://github.com/qqwweee/keras-yolo3/issues/332.看到的解答,这个解答里给出的解决方案是:使用 nvidia-tensorflow1.x 并可以使用 CUDA11.x 来加速
https://github.com/NVIDIA/tensorflow#install

我并没有尝试。

2. Could not dlopen library ‘libcudart.so.9.0’

没有安装对应版本的cudatoolkit、cuda。
需要cuda9.0的共享库:cuda、cudatoolkit有一个的包能提供对应tensorflow类别的共享库即可;

  1. 服务器A是cuda 10.2,但是 cudatoolkit安装的是 cudatoolkit=9.0=h13b8566_0;就可以找到对应的共享库;
  2. 服务器B是cuda 9.0,cudatoolkit 安装的是10.2,也可以找到对应的共享库

多cuda可以看看cuda是否链接到9.0的版本
或者看看cudatoolkit版本对不对
就是确保:1. 电脑里有这个共享库,没有就下载 2. 有这个库,要能找到,找不到就链接上去

项目移植问题

使用conda.yaml导出库存在conda Solving environment: failed ResolvePackageNotFound问题

用服务器A中的环境导出Conda.yaml,在服务器B中安装conda env create -f envname.yml,存在conda Solving environment: failed ResolvePackageNotFound的项目移植问题:导出的时候会把包的详细信息包括机器配置信息也导出来造成其他机器使用不了
解决方法:删去后面包的信息
例如: cudatoolkit=9.0=h13b8566_0,修改为 cudatoolkit=9.0或者 cudatoolkit
具体可看:conda Solving environment: failed ResolvePackageNotFound:

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-02-09 20:42:12  更:2022-02-09 20:42:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 19:50:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码