Ubuntu18.04+CUDA9.0+cuDNN7.1.3+TensorFlow1.8 安装总结
Ubuntu18.04发行已经有一段时间了,正好最近Tensorflow也发布了1.8版本,于是决定两个一起装上,以下是安装总结,大致可
以分为5个步骤
- 确认当前软件和硬件环境、版本
- 更新显卡驱动,软件版本准备
- CUDA 9.0 ToolKit安装
- cuDNN7.1.3 for CUDA9.0安装
- TensorFlow GPU 安装
- Test it!
1.确认硬件软件环境、版本
系统版本,Ubuntu18.04 自然没什么好说的, 使用指令sudo lsb_release -a
,得到以下输出结果
GCC和G++ 版本,18.04的ubuntu默认的是7.0,同时也有附带安装6.0,不过我们这次安装需要更低版本的GCC以及G++
gcc --version #查看GCC版本号 gcc (Ubuntu 7.0 -4ubuntu8) 7.0
g++ --version #查看G++版本号 g++ (Ubuntu 7.0-4ubuntu8) 7.0
我选择采用的是4.8版本gcc和g++,后面给出降级方法。
英伟达显卡驱动版本, 使用nvidia-smi
可以得到相关信息,我使用的是GTX1080显卡,驱动已经更新到390.48版本。
表头释义:
Fan:显示风扇转速,数值在0到100%之间,是计算机的期望转速,如果计算机不是通过风扇冷却或者风扇坏了,显示出来就是N/A;
Temp:显卡内部的温度,单位是摄氏度;
Perf:表征性能状态,从P0到P12,P0表示最大性能,P12表示状态最小性能;
Pwr:能耗表示;
Bus-Id:涉及GPU总线的相关信息;
Disp.A:是Display Active的意思,表示GPU的显示是否初始化;
Memory Usage:显存的使用率;
Volatile GPU-Util:浮动的GPU利用率;
Compute M:计算模式;
Python 版本, 使用python -V
查看相关信息。
2.更新显卡驱动,软件版本准备
主要是更新显卡驱动,以及降级默认GCC/G++版本.
如果是已经装过NVIDIA显卡驱动,通过以下指令升级
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
sudo apt install nvidia-390
如果有NVIDIA显卡,但是没有安装过显卡相应驱动,CUDA Toolkit中会有集成的384版本驱动,需要关闭图形界面到指令行界面
安装,相关方法请上网查找。
GCC降级
sudo apt-get install gcc-4.8
sudo apt-get install g++-4.8
装完后进入到/usr/bin目录下
ls -l gcc*
会显示以下结果
lrwxrwxrwx 1 root root 7th May 16 18:16 /usr/bin/gcc -> gcc-7.0
发现gcc链接到gcc-7.0, 需要将它改为链接到gcc-4.8,方法如下:
sudo mv gcc gcc.bak #备份
sudo ln -s gcc-4.8 gcc #重新链接
同理,对g++也做同样的修改:
ls -l g++*
lrwxrwxrwx 1 root root 7th May 15:17 g++ -> g++-7.0
需要将g++链接改为g++-4.8:
sudo mv g++ g++.bak
sudo ln -s g++-4.8 g++
再查看gcc和g++版本号:
gcc -v
g++ -v
均显示gcc version 4.8 ,说明gcc 48.8安装成功。
3.CUDA ToolKit 安装
CUDA 到CUDA9.0 下载页面下载runfile(最近NVIDIA官网被停)安装,Tensorflow官网给的暂时还是9.0版本,新版本可以尝试一下
稳妥起见,这里选择9.0。
下载9.0安装包和2个补丁包之后,
~/下载 文件夹应该有 以下三个文件
ls |grep cuda_9.0
cuda_9.0.176.1_linux.run
cuda_9.0.176.2_linux.run
cuda_9.0.176_384.81_linux.run
在确认GCC版本在4.8后, 直接输入以下指令
sh cuda_9.0.176_384.81_linux.run --override
执行,如果有安装了显卡驱动的,注意在提问是否安装显卡驱动时选择no,其他 选择默认路径或者yes即可。 如果没有安装显卡
驱动,需要退出图形界面,到命令行终端安装,这里不再赘述。
安装完成后,可能会得到提示,CUDA 安装不完整,这是因为显卡驱动没有安装,这里忽略掉。同样的方法安装两个补丁包.
sh cuda_9.0.176.1_linux.run
sh cuda_9.0.176.2_linux.run
安装完毕之后,将以下两条加入.bashrc
文件中
echo 'export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}' >> ~/.bashrc
source ~/.bashrc
4.cuDNN7.1.3安装
cuDNN 到 cuDNN 官网页面下载即可,这里注意要选择对应CUDA9.0的软件包, 下载完毕后,切到默认的Downloads文件夹,
可以看到 cudnn-9.0-linux-x64-v7.1.tgz 压缩包
先解压,后复制到CUDA安装文件夹里面
tar zxvf cudnn-9.0-linux-x64-v7.1.tgz
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
完成后,可以到~/NVIDIA_CUDA-9.0_Samples/文件夹下测试CUDA功能完整性
cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery
5.Tensorflow 安装
这里选择的是在本机上安装Tensorflow,其他安装方式可以参照官网介绍。
pip install tensorflow-gpu
默认安装最新版本1.8,如果要安装教老版本, 上述指令后面加上==$版本号
即可。
6.验证测试
在python3 中输入以下代码
# -*- coding: utf-8 -*-
import tensorflow as tf
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
a = tf.constant([1.0,2.0],shape=[2],name='a')
b = tf.constant([2.0,3.0],shape=[2],name='b')
result = a+b
print(result)
print(a.graph is tf.get_default_graph)
sess = tf.Session()
print(sess.run(result))
print(result)
g = tf.Graph()
with g.device('gpu:0'):
result = a+b
print(sess.run(result))
输出结果应该是 :
并且附带上GPU相关信息。
至此安装过程全部完成。
在终端执行程序时指定GPU
CUDA_VISIBLE_DEVICES=1 python your_file.py
这样在跑你的网络之前,告诉程序只能看到1号GPU,其他的GPU它不可见
可用的形式如下:
CUDA_VISIBLE_DEVICES=1 Only device 1 will be seen
CUDA_VISIBLE_DEVICES=0,1 Devices 0 and 1 will be visible
CUDA_VISIBLE_DEVICES="0,1" Same as above, quotation marks are optional
CUDA_VISIBLE_DEVICES=0,2,3 Devices 0, 2, 3 will be visible; device 1 is masked
CUDA_VISIBLE_DEVICES="" No GPU will be visible
在Python代码中指定GPU
import os
os.environ["CUDA_VISIBLE_DEVICES"] = "0"
设置定量的GPU使用量
config = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.9 # 占用GPU90%的显存
session = tf.Session(config=config)
设置最小的GPU使用量
config = tf.ConfigProto()
config.gpu_options.allow_growth = True
session = tf.Session(config=config)
Ubuntu18.04+CUDA9.0+cuDNN7.1.3+TensorFlow1.8 安装总结的更多相关文章
- Ubuntu18.04+CUDA9.0+cuDNN7.1.3+openface安装总结
目录 前言 编译工具CMake C++标准库安装 下载OpenFace代码 OpenCV安装 luarocks-Lua 包管理器,提供一个命令行的方式来管理 Lua 包依赖.安装第三方 Lua 包等功 ...
- Ubuntu18.04 + CUDA9.0 + cuDNN7.3 + Tensorflow-gpu-1.12 + Jupyter Notebook深度学习环境配置
目录 一.Ubuntu18.04 LTS系统的安装 1. 安装文件下载 2. 制作U盘安装镜像文件 3. 开始安装 二.设置软件源的国内镜像 1. 设置方法 2.关于ubuntu镜像的小知识 三.Nv ...
- Ubuntu18.04 + cuda9.0+cudnn7.0
1 cannot find Toolkit in /usr/local/cuda-8.0 2017年05月27日 17:37:33 阅读数:2754 对于新版本ubuntukylin17.04安装C ...
- y7000笔记本 darknet-yolo安装与测试(Ubuntu18.04+Cuda9.0+Cudnn7.1)
环境配置看上一贴 https://www.cnblogs.com/clemente/p/10386479.html 1 安装darknet 1-1 克隆darknet repo git clone h ...
- ubuntu18.04+ cuda9.0+opencv3.1+caffe-ssd安装
详细Ubuntu18.04,CUDA9.0,OpenCV3.1,Tensorflow完全配置指南 问题1:使用Cmake编译opencv源码 CMake Error: The following va ...
- Ubuntu16.04 + cuda9.0 +cudnn7.1(转载)
转载一个详细可用的ubuntu16.04+cuda9.0+cudnn7.1教程. 0 - 参考材料 https://blog.csdn.net/Umi_you/article/details/8026 ...
- ubuntun16.04+cuda9.0+cudnn7+anaconda3+pytorch+anaconda3下py2安装pytorch
一.电脑配置 说明: 电脑配置: LEGION笔记本CPU Inter Core i7 8代GPU NVIDIA GeForce GTX1060Windows10 所需的环境: Anaconda3(6 ...
- Ubuntu16.04 + CUDA9.0 + cuDNN7.3 + Tensorflow-gpu-1.12 + Jupyter Notebook 深度学习环境配置
目录 一.Ubuntu16.04 LTS系统的安装 二.设置软件源的国内镜像 1. 设置方法 2.关于ubuntu镜像的小知识 三.Nvidia显卡驱动的安装 1. 首先查看显卡型号和推荐的显卡驱动 ...
- 问题记录 | 配置ubuntu18.04+cuda9.0+cudnn服务器tensorflow-gpu深度学习环境
因为实验室服务器资源有限,我被分配的服务器经常变化,但是常常就分到连显卡驱动以及cuda都没有装的服务器,真的很头疼,我已经配了四五台了,特此记录一下,以便以后直接照版本安装. Install nvi ...
随机推荐
- 树形dp专栏
前言 自己树形dp太菜了,要重点搞 219D Choosing Capital for Treeland 终于自己做了一道不算那么毒瘤的换根dp 令 \(f[u]\) 表示以 \(u\) 为根,子树内 ...
- 解决nginx proxy_pass反向代理cookie,session丢失的问题
参考地址:https://www.jianshu.com/p/34abe7eb6f0b 为什么cookie 会丢失? 比如说一个没有经过代理的地址 : http://127.0.0.1/project ...
- Bugku 杂项 签到题
签到题 加微信公众号会发现
- div页面布局基本布局知识
页面代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...
- ReactNative的学习笔记
一.安装nodejs 查看是否安装:npm -v 二.安装react-native命令工具 npm install -g react-native-cli 三.查看 react-native --he ...
- css 实现div内显示两行或三行,超出部分用省略号显示
一.div内显示一行,超出部分用省略号显示 white-space: nowrap; overflow: hidden; text-overflow: ellipsis; 二.div内显示 ...
- php面试专题---20、MySQL的安全性考点
php面试专题---20.MySQL的安全性考点 一.总结 一句话总结: 还是得多看视频,教程看的浮光掠影,容易get不到重点:比如预处理防sql注入之前是挺熟,后面就忘记了,而且看文章get不到点 ...
- Step1 - How to: Define a Windows Communication Foundation Service Contract
https://msdn.microsoft.com/en-us/library/ms731835.aspx This is the first of six tasks required to cr ...
- day35—JavaScript操作元素(创建、删除)
转行学开发,代码100天——2018-04-20 JavaScript对DOM元素的创建.删除操作. 1.创建DOM元素 appendChild方法 createElement(ochild); op ...
- shell脚本一一项目3
主题:批量创建100个用户并设置密码 脚本内容 user_list=$@user_file=./user.infofor USER in ${user_list};do if ! id $USER & ...