Ububtu18.04下载cuda9.0

下载好后得到:

CUDA 9.0仅支持GCC 6.0及以下版本,而Ubuntu 18.04预装GCC版本为7.3,需要安装gcc-6与g++-6

查看当前版本:

$gcc --version  $g++ --version

可以不卸载当前gcc 和g++直接下载gcc-6 g++-6,

$sudo apt-get install gcc-6 g++-6

然后更改软连接修改gcc-6为默认版本:

$sudo mv gcc gcc.bak

$ sudo ln -s gcc-6 gcc

$ sudo mv g++ g++.bak

$ sudo ln -s g++-6 g++

也可以直接卸载当前版本

$sudo apt-get --purge remove gcc g++

到/usr/bin下,可查看gcc g++的详情,找不到位置可以使用$wheris gcc

下载好cuda runfile文件后,运行

$sudo sh cuda_9.0.176_384.81_linux.run

若当前目录有多个.run文件很难tab出名字,可以将其转为可执行文件再运行

$chmod 755 cuda_9.0.176_384.81_linux.run

$sudo ./cuda_9.0.176_384.81_linux.run

安装中出现多个选项,显卡驱动不选,其他选yes敲回车或者自己设置路径。

已经有驱动,安装时没有选择驱动,安装驱动需要关闭图形界面到root下进行设置,有时间补

查看安装完后的提示:

提示需要设置环境变量软链接等

新下载安装cuda 目录/usr/local/下cuda软链接文件为当前安装的cuda版本

查看cuda链接指向

$ls -l

$ cd /etc/ld.so.conf.d/

将当前目录下的cuda-10.0.conf文件复制到/root下备份

$ sudo cp cuda-10-0.conf  /root

更改当前文件名为cuda-9-0.conf

$ sudo mv cuda-10-0.conf  cuda-9-0.conf

打开配置文件

$ gedit cuda-9-0.conf

将/usr/local/cuda/lib64写入配置文本

如果有多个CUDA版本切换,按如下方式设置。

移除/usr/local/下的cuda软链接文件,创建新的链接

$rm -rf cuda

$sudo ln -s /usr/local/cuda-10.0 /usr/local/cuda

然后再设置 /etc/ld.so.conf.d/下文件,此时cuda是可以使用并安装好的,如果使用nvcc命令需要将当前的cuda路径写入环境变量,设置如下:

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

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

此时即可使用$nvcc -V 查看当前驱动和cuda版本

Cuda安装完后reboot下。

安装cudnn7.4.2

选择的7.4.2for.CUDA9.0

得到文件:

解压,cd到解压目录

将/cudnn-9.0-linux-x64-v7.4.2.24/cuda/include 下cudnn.h 文件拷贝到cuda-9.0的include下

$sudo cp cudnn.h /usr/local/cuda-9.0/include

将/cudnn-9.0-linux-x64-v7.4.2.24/cuda/lib64 下libcudnn.so libcudnn_static.a 拷贝到cuda-9.0的lib64下

$sudo cp libcudnn.so libcudnn_static.a  /usr/local/cuda-9.0/lib64

安装tensorflow-gpu 1.8.0

本来有1.13版本,现在换成1.8.0

$sudo -H python3 -m pip install tensorflow-gpu==1.8.0

成功下载显示如下:

查看pip下安装的包

$pip3 list

找到tensorflow相关的包,若想卸载,可用以下命令批量卸载

$sudo pip3 uninstall tensorflow tensorboard tensorflow-estimator tensorflow-gpu

有些卸载时需要带版本号

$sudo pip3 uninstall tensorboard==1.8.0

下载最新的tensorflow-gpu

$sudo -H python3 -m pip install --upgrade tensorflow-gpu

=====================================

CUDA是NVIDIA推出的用于自家GPU的并行计算框架,也就是说CUDA只能在NVIDIA的GPU上运行,而且只有当要解决的计算问题是可以大量并行计算的时候才能发挥CUDA的作用

Cuda和cudnn版本查看方法

cat /usr/local/cuda/version.txt

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

Cuda及显卡驱动版本查看fagnf(使用前提cuda路径加入环境变量)

$nvcc -V

驱动版本及显卡使用状态查看

$nvidia-smi

实时查看并刷新状态

$watch nvidia-smi

===================

nvidia-smi 显示信息解释:

第一栏的Fan:N/A是风扇转速,从0到100%之间变动,这个速度是计算机期望的风扇转速,实际情况下如果风扇堵转,可能打不到显示的转速。有的设备不会返回转速,因为它不依赖风扇冷却而是通过其他外设保持低温(比如我们实验室的服务器是常年放在空调房间里的)。
第二栏的Temp:是温度,单位摄氏度。
第三栏的Perf:是性能状态,从P0到P12,P0表示最大性能,P12表示状态最小性能。
第四栏下方的Pwr:是能耗,上方的Persistence-M:是持续模式的状态,持续模式虽然耗能大,但是在新的GPU应用启动时,花费的时间更少,这里显示的是off的状态。
第五栏的Bus-Id是涉及GPU总线的东西,domain:bus:device.function
第六栏的Disp.A是Display Active,表示GPU的显示是否初始化。
第五第六栏下方的Memory Usage是显存使用率。
第七栏是浮动的GPU利用率。
第八栏上方是关于ECC的东西。
第八栏下方Compute M是计算模式。
下面一张表示每个进程占用的显存使用率。

显存占用和GPU占用是两个不一样的东西,显卡是由GPU和显存等组成的,显存和GPU的关系有点类似于内存和CPU的关系。跑caffe代码的时候显存占得少,GPU占得多,跑TensorFlow代码的时候,显存占得多,GPU占得少。

cuda cudnn tensorflow-gpu安装的更多相关文章

  1. tensorflow -gpu安装,史上最新最简单的途径(不用自己装cuda,cdnn)

    tensorflow -gpu安装首先,安装Anoconda1. 官网下载点我: 2.安装 点击 python 3.6 version自动下载x64版,下载好之后,然后安装. 如图,打上勾之后,一路n ...

  2. TensorFlow DeepLab教程初稿-tensorflow gpu安装教程

    TensorFlow DeepLab教程初稿-tensorflow gpu安装教程 商务合作,科技咨询,版权转让:向日葵,135-4855__4328,xiexiaokui#qq.com Summar ...

  3. Ubuntu系统---“NVIDIA 驱动+CUDA+cuDNN ”之后 OpenCV安装

    Ubuntu系统---“NVIDIA 驱动+CUDA+cuDNN ”之后 OpenCV安装 目录: 一.OpenCV安装包下载 二.cmake安装 三.OpenCV安装 正文 一.OpenCV安装包下 ...

  4. window10上安装python+CUDA+CuDNN+TensorFlow

    软件 版本 Window10 X64 python 3.6.4(64位) CUDA CUDA Toolkit 9.0 (Sept 2017) CuDNN cuDNN v7.0.5 (Dec 5, 20 ...

  5. win10家庭中文版CUDA+CUDNN+显卡GPU使用tensorflow-gpu训练模型安装过程(精华帖汇总+重新修改多次复现)

    查看安装包 pip list 本帖提供操作过程,具体操作网上有好多了,不赘述.红色字体为后来复现出现的问题以及批注 题外话: (1)python 的环境尽量保持干净,尽量单一,否则容易把自己搞晕,不知 ...

  6. [ubuntu 18.04 + RTX 2070] Anaconda3 - 5.2.0 + CUDA10.0 + cuDNN 7.4.1 + bazel 0.17 + tensorRT 5 + Tensorflow(GPU)

    (RTX 2070 同样可以在 ubuntu 16.04 + cuda 9.0中使用.Ubuntu18.04可能只支持cuda10.0,在跑开源代码时可能会报一些奇怪的错误,所以建议大家配置 ubun ...

  7. Win10 Anaconda下TensorFlow-GPU环境搭建详细教程(包含CUDA+cuDNN安装过程)(转载)

    win7(win10也适用)系统安装GPU/CPU版tensorflow Win10 Anaconda下TensorFlow-GPU环境搭建详细教程(包含CUDA+cuDNN安装过程) 目录 2.配置 ...

  8. ubuntu 16.04安装nVidia显卡驱动和cuda/cudnn踩坑过程

    安装深度学习框架需要使用cuda/cudnn(GPU)来加速计算,而安装cuda/cudnn,首先需要安装nvidia的显卡驱动. 我在安装的整个过程中碰到了驱动冲突,循环登录两个问题,以至于最后不得 ...

  9. Ubuntu 16.04 + CUDA 8.0 + cuDNN v5.1 + TensorFlow(GPU support)安装配置详解

    随着图像识别和深度学习领域的迅猛发展,GPU时代即将来临.由于GPU处理深度学习算法的高效性,使得配置一台搭载有GPU的服务器变得尤为必要. 本文主要介绍在Ubuntu 16.04环境下如何配置Ten ...

  10. Ubuntu 16.04安装N卡驱动、cuda、cudnn和tensorflow GPU版

    安装驱动 最开始在英伟达官网下载了官方驱动,安装之后无法登录系统,在登录界面反复循环,用cuda里的驱动也出现了同样的问题.最后解决办法是把驱动卸载之后,通过命令行在线安装驱动. 卸载驱动: sudo ...

随机推荐

  1. 软件开发项目组各职能介绍 & 测试人员在团队中的定位

    前言     接触了许多非测试和新入行的测试从业者,听到最多的问题就是:“测试是否被需要?“   团队职能介绍     <暗黑者1>中有句台词,“专案组有五个职能角色构成,侦探.网警.痕迹 ...

  2. weblogic8控制台禁止(允许)访问配置方法

    由于现网上对外网开放,而weblogic控制台的信息和管理比较敏感,如果weblogic控制台被破解账户和密码登录, 面临的风险将是非常的大,所以一般现网部署时,要禁用掉weblogic控制台的访问. ...

  3. Linux 磁盘介绍(磁盘、分区、MBR、GPT)

    原文:https://www.linuxidc.com/Linux/2013-06/85717.htm 1. CHS(Cylinder-Head-Sector): was an early metho ...

  4. 骑士(树形dp)

    题意:给你一个基环树森林,每个点有一个权值,一条边上的两个节点不能同时选择.选取任意个节点,求最大权值和 对于每颗基环树:找环→断边→树形dp(没有上司的舞会) #include<iostrea ...

  5. mysql统计库下所有表数据行数

    一.执行下面sql select concat( 'select "', TABLE_name, '", count(*) from ', TABLE_SCHEMA, '.', T ...

  6. Java8(1)之Lambda表达式初步与函数式接口

    Lambda表达式初步 介绍 什么是Lambda表达式? 在如 Lisp.Python.Ruby 编程语言中,Lambda 是一个用于表示匿名函数或闭包的运算符 为何需要lambda表达式? 在 Ja ...

  7. java 写一个JSON解析的工具类

    上面是一个标准的json的响应内容截图,第一个红圈”per_page”是一个json对象,我们可以根据”per_page”来找到对应值是3,而第二个红圈“data”是一个JSON数组,而不是对象,不能 ...

  8. 接口自动化测试持续集成--Soapui接口功能测试参数化

    按照自动化测试分层实现的原理,每一层的脚本实现都要进行参数化,自动化的目标就是要实现脚本代码与测试数据分离. 当测试数据进行调整的时候不会对脚本的实现带来震荡,从而提高脚本的稳定性与灵活度,降低脚本的 ...

  9. 【转】Oracle EBS中查询Profile的各种SQL

    参考 http://blog.csdn.net/pan_tian/article/details/7652968#t0 Using API FND_PROFILE.save to update pro ...

  10. Java基础语法-Lambda表达式

    1.Lambda表达式主要用于简写接口的操作等出现匿名内部类的地方,如下:我这里先定义一个Swim接口,以及它所定义的swim()方法 interface Swim{ void swim(); } 2 ...