Ubuntu 18.04 + Python3.6 + CUDA-10.0 + CUDNN-7.5.0 + tensorflow-gpu-1.13.1
转自:https://blog.csdn.net/ycfn97/article/details/100084641
Install nvidia driver
首先卸载原有驱动
sudo apt-get purge nvidia
添加图形驱动程序到源列表:
sudo add-apt-repository ppa:graphics-drivers/ppasudo apt updatesudo apt upgrade
检查将安装什么驱动程序:
ubuntu-drivers devices
root@boss-To-be-filled-by-O-E-M:/home/boss# ubuntu-drivers devices
== /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 ==
modalias : pci:v000010DEd00001E04sv00007377sd00001730bc03sc00i00
vendor : NVIDIA Corporation
driver : nvidia-driver-430 - third-party free recommended
driver : nvidia-driver-410 - third-party free
driver : nvidia-driver-415 - third-party free
driver : xserver-xorg-video-nouveau - distro free builtin
注意!!!虚拟机无法安装NVIDIA显卡驱动程序,虚拟机中只有虚拟显卡没有NVIDIA显卡,不能安装NVIDIA驱动,无论是在NVIDIA官网下载NVIDIA-Linux-x86_64-430.40.run
还是ppa
下载都是没用的,也无法安装TensorFlow-gpu,虚拟机只能用cpu版本的TensorFlow。如果是考虑“虚拟一个系统”来使用显卡的话,考虑容器化技术——Docker大家可以参考这位大佬的文章虚拟机上无法安装tensorflow-GPU版本
虚拟机驱动程序是VM,,,
== /sys/devices/pci0000:00/0000:00:0f.0 ==
modalias : pci:v000015ADd00000405sv000015ADsd00000405bc03sc00i00
vendor : VMware
model : SVGA II Adapter
driver : open-vm-tools-desktop - distro free
自动安装最新的驱动程序
sudo ubuntu-drivers autoinstall
显示
This system doesn't support Secure Boot
Secure Boot not enabled on this system.
Done.nvidia:
Running module version sanity check.- Original module- No original module exists within this kernel
- Installation- Installing to /lib/modules/5.0.0-25-generic/updates/dkms/nvidia-modeset.ko:
Running module version sanity check.- Original module- No original module exists within this kernel
- Installation- Installing to /lib/modules/5.0.0-25-generic/updates/dkms/nvidia-drm.ko:
Running module version sanity check.- Original module- No original module exists within this kernel
- Installation- Installing to /lib/modules/5.0.0-25-generic/updates/dkms/nvidia-uvm.ko:
Running module version sanity check.- Original module- No original module exists within this kernel
- Installation- Installing to /lib/modules/5.0.0-25-generic/updates/dkms/depmod...DKMS: install completed.
表示安装成功
然后重启机器:
sudo reboot
检查正确的安装驱动程序:
nvidia-smi
显示 说明NVIDIA驱动安装成功
root@boss-To-be-filled-by-O-E-M:/usr/local/cuda-10.0/samples/1_Utilities/bandwidthTest# nvidia-smi
Tue Aug 27 20:03:00 2019
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 430.40 Driver Version: 430.40 CUDA Version: 10.1 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce RTX 208... Off | 00000000:01:00.0 On | N/A |
| 26% 32C P8 9W / 250W | 302MiB / 11016MiB | 1% Default |
+-------------------------------+----------------------+----------------------++-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 1135 G /usr/lib/xorg/Xorg 16MiB |
| 0 1186 G /usr/bin/gnome-shell 58MiB |
| 0 1422 G /usr/lib/xorg/Xorg 98MiB |
| 0 1566 G /usr/bin/gnome-shell 127MiB |
+-----------------------------------------------------------------------------+
这里也可以下载并安装 Cuda 和 Nvidia 驱动一起执行,分开安装的筒子们请略过下面的部分直接跳到 install cuda&cudnn部分
卸载所有原驱动
$ sudo apt-get purge nvidia*
禁用nouveau
新建-blacklist-nouveau.conf 输⼊指令:
$ sudo vim /etc/modprobe.d/blacklist-nouveau.conf
往 blacklist-nouveau.conf 文件中写⼊:
blacklist nouveau
options nouveau modeset=0
禁 Ubuntu 自带开源驱动nouveau,写入后保存重启
$ sudo reboot
重启后在终端执行行命令:
$ lsmod | grep nouveau
查看nouveau模块是否被加载,若无输出
,则执行下一步
禁⽤X服务
$ sudo service lightdm stop
注意!!!在Ubuntu禁用X进入tty1终端后登陆用户输入密码时不能用小键盘,系统不识别,别问我怎么知道的 )逃…
确定下载的 cuda 版本后执行指令
$ sudo chmod 777 cuda_9.0.176_384.81_linux.run
$ sudo ./cuda_9.0.176_384.81_linux.run --no-opengl-libs
进入 CUDA 安装中同意安装 Nvidia 驱动
[accept] #同意安装
[y] #安装Driver,将自动安装CUDA版本相匹配的Nvidia驱动
[y] #安装CUDA Toolkit install
#安装到默认目录
[y] #创建安装目录的软链接
[n] #不复制Samples,因为在安装目录下有/samples
安装完成后会显示 CUDA 和 Nvidia 驱动成功安装
后面vim 打开.bashrc 在末行加⼊命令详见install cuda&cudnn部分
Install cuda&cudnn
各个版本cuda下载地址
cd 下载目录
sudo sh cuda_10.0.130_410.48_linux.run --override --silent --toolkit
各个版本cudnn下载地址
cd 下载目录
tar -xzvf cudnn-10.0-linux-x64-v7.5.0.56.solitairetheme8
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*
现在必须为/.bashrc添加一些路径:
gedit ~/.bashrc
在/.bashrc后面加上
export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export CUDA_HOME=/usr/local/cuda
现在重新加载你的终端配置:
source ~/.bashrcsudo ldconfig
检查路径是否正确安装:
echo $CUDA_HOME
测试版本号
查看 CUDA 版本:
cat /usr/local/cuda/version.txt
查看 CUDNN 版本:
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
也可以这样测试cuda安装情况
编译并测试设备 deviceQuery:
root@boss-To-be-filled-by-O-E-M:/home/boss/download# nvcc -V
输出如下
root@boss-To-be-filled-by-O-E-M:/home/boss/download# nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2018 NVIDIA Corporation
Built on Sat_Aug_25_21:08:01_CDT_2018
Cuda compilation tools, release 10.0, V10.0.130
编译并测试带宽 bandwidthTest:
$ cd /usr/local/cuda-9.0/samples/1_Utilities/deviceQuery
$ sudo make
$ ./deviceQuery
输出如下
root@boss-To-be-filled-by-O-E-M:/home/boss/download# cd /usr/local/cuda-10.0/samples/1_Utilities/deviceQuery
root@boss-To-be-filled-by-O-E-M:/usr/local/cuda-10.0/samples/1_Utilities/deviceQuery# sudo make
"/usr/local/cuda-10.0"/bin/nvcc -ccbin g++ -I../../common/inc -m64 -gencode arch=compute_30,code=sm_30 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_75,code=compute_75 -o deviceQuery.o -c deviceQuery.cpp
"/usr/local/cuda-10.0"/bin/nvcc -ccbin g++ -m64 -gencode arch=compute_30,code=sm_30 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_75,code=compute_75 -o deviceQuery deviceQuery.o
mkdir -p ../../bin/x86_64/linux/release
root@boss-To-be-filled-by-O-E-M:/usr/local/cuda-10.0/samples/1_Utilities/deviceQuery# ./deviceQuery
./deviceQuery Starting...CUDA Device Query (Runtime API) version (CUDART static linking)Detected 1 CUDA Capable device(s)Device 0: "GeForce RTX 2080 Ti"CUDA Driver Version / Runtime Version 10.1 / 10.0CUDA Capability Major/Minor version number: 7.5Total amount of global memory: 11017 MBytes (11552096256 bytes)(68) Multiprocessors, ( 64) CUDA Cores/MP: 4352 CUDA CoresGPU Max Clock rate: 1545 MHz (1.54 GHz)Memory Clock rate: 7000 MhzMemory Bus Width: 352-bitL2 Cache Size: 5767168 bytesMaximum Texture Dimension Size (x,y,z) 1D=(131072), 2D=(131072, 65536), 3D=(16384, 16384, 16384)Maximum Layered 1D Texture Size, (num) layers 1D=(32768), 2048 layersMaximum Layered 2D Texture Size, (num) layers 2D=(32768, 32768), 2048 layersTotal amount of constant memory: 65536 bytesTotal amount of shared memory per block: 49152 bytesTotal number of registers available per block: 65536Warp size: 32Maximum number of threads per multiprocessor: 1024Maximum number of threads per block: 1024Max dimension size of a thread block (x,y,z): (1024, 1024, 64)Max dimension size of a grid size (x,y,z): (2147483647, 65535, 65535)Maximum memory pitch: 2147483647 bytesTexture alignment: 512 bytesConcurrent copy and kernel execution: Yes with 3 copy engine(s)Run time limit on kernels: YesIntegrated GPU sharing Host Memory: NoSupport host page-locked memory mapping: YesAlignment requirement for Surfaces: YesDevice has ECC support: DisabledDevice supports Unified Addressing (UVA): YesDevice supports Compute Preemption: YesSupports Cooperative Kernel Launch: YesSupports MultiDevice Co-op Kernel Launch: YesDevice PCI Domain ID / Bus ID / location ID: 0 / 1 / 0Compute Mode:< Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 10.1, CUDA Runtime Version = 10.0, NumDevs = 1
Result = PASS
编译并测试带宽 bandwidthTest:
$ cd ../bandwidthTest
$ sudo make
$ ./bandwidthTest
输出如下
root@boss-To-be-filled-by-O-E-M:/usr/local/cuda-10.0/samples/1_Utilities/deviceQuery# cd ../bandwidthTest
root@boss-To-be-filled-by-O-E-M:/usr/local/cuda-10.0/samples/1_Utilities/bandwidthTest# sudo make
"/usr/local/cuda-10.0"/bin/nvcc -ccbin g++ -I../../common/inc -m64 -gencode arch=compute_30,code=sm_30 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_75,code=compute_75 -o bandwidthTest.o -c bandwidthTest.cu
"/usr/local/cuda-10.0"/bin/nvcc -ccbin g++ -m64 -gencode arch=compute_30,code=sm_30 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_75,code=compute_75 -o bandwidthTest bandwidthTest.o
mkdir -p ../../bin/x86_64/linux/release
cp bandwidthTest ../../bin/x86_64/linux/release
root@boss-To-be-filled-by-O-E-M:/usr/local/cuda-10.0/samples/1_Utilities/bandwidthTest# ./bandwidthTest
[CUDA Bandwidth Test] - Starting...
Running on...Device 0: GeForce RTX 2080 TiQuick ModeHost to Device Bandwidth, 1 Device(s)PINNED Memory TransfersTransfer Size (Bytes) Bandwidth(MB/s)33554432 12162.1Device to Host Bandwidth, 1 Device(s)PINNED Memory TransfersTransfer Size (Bytes) Bandwidth(MB/s)33554432 12451.7Device to Device Bandwidth, 1 Device(s)PINNED Memory TransfersTransfer Size (Bytes) Bandwidth(MB/s)33554432 513231.8Result = PASS
如果两个测试的结果都是 Result = PASS CUDA
,说明安装成功
安装TensorFlow-gpu
这里我选择了清华大学的开源镜像以提高下载速度,提示出现pip not found ,不要直接复制提示安装pip,要根据Python版本下载你想要的pip,否则会下载Python2.7
root@sunqi-To-be-filled-by-O-E-M:/# pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pip -U
Command 'pip' not found, but can be installed with:
apt install python-pip
root@sunqi-To-be-filled-by-O-E-M:/# apt install python-pip
直接复制提示就会变成下面这样要修改Python默认版本,不要这样
root@sunqi-To-be-filled-by-O-E-M:/# pip -V
pip 9.0.1 from /usr/lib/python2.7/dist-packages (python 2.7)
修改Python默认版本
详见我的另一篇博客linux修改Python默认版本
修改完Python默认版本如果还不改,那么依然会是Python2.7的pip
root@sunqi-To-be-filled-by-O-E-M:/# apt install python-pip
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
python-pip 已经是最新版 (9.0.1-2.3~ubuntu1.18.04.1)。
pip -V还是no module named pip
root@sunqi-To-be-filled-by-O-E-M:/# pip -V
Traceback (most recent call last):File "/usr/bin/pip", line 9, in <module>from pip import main
ModuleNotFoundError: No module named 'pip'
必须这样安装
root@sunqi-To-be-filled-by-O-E-M:/# apt install python3-pip
然后再查看pip版本是否符合要求
pip -v
如果pip -v出现报错:bash: /usr/bin/pip: 没有那个文件或目录
可参考pip -v报错:bash: /usr/bin/pip: 没有那个文件或目录
更新pip
sudo pip install --upgrade pip
安装Tensorflow-gpu
pip install --user tensorflow-gpu
这里还有一种方法用bazel编译,需要下载一些依赖库,就不赘述了,感性趣的筒子们自行百度
在此,TensorFlow-gpu环境就已经安装完成,下面进行测试
import tensorflow as tf
hello=tf.constant("Hello,Tensorflow!")
sees=tf.Session()
print(sees.run(hello))
如果得到了输出hello,TensorFlow!
那么恭喜你完成了DeepLearning基本环境的配置
如果出错,请检查NVIDIA驱动版本和cuda以及cudnn版本是否正确匹配
常见问题
I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Could not dlopen library 'libcudart.so.10.0'; dlerror: libcudart.so.10.0: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: :/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64
详见cuda程序执行出错: libcudart.so.10.0: cannot open shared object file: No such file or directory
听说看完了会点赞的都是美女帅哥
Ubuntu 18.04 + Python3.6 + CUDA-10.0 + CUDNN-7.5.0 + tensorflow-gpu-1.13.1相关推荐
- Ubuntu 16.04 LTS 在anaconda环境下安装pytorch和tensorflow gpu,cuda10.0
文章目录 准备 更新笔记本的显卡驱动到较新的,最好是倒数第二新的版本 安装cuda和cudnn: 安装conda: 安装tensorflow-gpu: 安装pytorch: 安装jupyter not ...
- Ubuntu 18.04 安装显卡驱动+CUDA10+多版本CUDA+Tensorflow gpu1.13.1
废话不多说,直奔主题! 一.安装驱动 1.去官网下载驱动,这个根据自己的显卡去搜索,比如我的卡是RTX2070: 然后点击"搜索"按钮,出现界面: 这里提示对应的驱动版本,点击下载 ...
- Julia的安装与配置详解(包含在Ubuntu 18.04和Windows 10系统上Julia的安装)
Julia的安装与配置详解((包含在Ubuntu 18.04和Windows 10系统上Julia的安装) Julia的安装 使用二进制文件安装Julia 在Ubuntu上安装Julia 在Windo ...
- 如何在Ubuntu 18.04上安装ERPNext堆栈
The author selected Software in the Public Interest to receive a donation as part of the Write for D ...
- Ubuntu 18.04下autoware 1.12 安装日志(含花屏解决方法)
Ubuntu 18.04下autoware 1.12 安装日志 安装Autoware 1.12 Autoware官网信息 下载相关依赖项 新建文件夹下载autoware 1.12 编译autoware ...
- MIT Mini Cheetah Ubuntu 18.04 环境配置
VMware 16 : Ubuntu 18.04 LTS : qt5.10.0: 链接:https://pan.baidu.com/s/1fpUK77fc_sDT1qdNiuqEZA 提取码:vr5 ...
- linux笔记本装载 戴尔,第七代戴尔XPS 13开发版笔记本电脑装载Ubuntu 18.04系统
据可靠消息称开发Ubuntu桌面工程总监Will Cooke表示旗下Ubuntu 18.04 LTS系统将被装载在第七代戴尔XPS 13开发版笔记本电脑中,该款笔记本电脑起步价为1049.99美元.同 ...
- Ubuntu 18.04 + CUDA 11.3.0 + CUDNN 8.2.1 + Anaconda + Pytorch 1.10
Xshell远程连接进行Ubuntu的Pytorch配置 写在最前面 参考 Xshell常用命令 Ubantu 检查系统的各项配置 查看ubuntu系统的版本信息和gcc版本 查看Linux的内核版本 ...
- Ubuntu 18.04安装CUDA(版本10.2)和cuDNN
1.系统要求 2.安装前的要求 3.runfile安装(不支持跨平台) 4.后续安装操作 5.安装cuDNN 6.汇总问题 本文基于Ubuntu 18.04.3 LTS 64位安装CUDA 10.2和 ...
最新文章
- LeetCode 42. Trapping Rain Water--算法题--c++解法
- 面试题6:输入一个链表,按链表值从尾到头的顺序返回一个ArrayList
- Script that build Dual Stack route
- socket的半包,粘包与分包的问题
- openssl 64位编译_海思hi3516dv300开发--live555交叉编译
- Linux挂载多个文件夹读不出,FTP不显示Linux挂载文件夹怎么办?-处理FTP不显示Linux挂载文件夹的方案 - 河东软件园...
- 前端学习(547):node的系统模块fs
- 一条语句复制整个目录《转》
- 马云终于露面了!发表千字演讲
- Linux的使用注意事项
- HFSS喇叭天线仿真
- 智能交通中的若干科学和技术问题
- 解决“虚拟机使用的是此版本 VMware Workstation 不支持的硬件版本”
- tp摄像头的默认地址_TPLINK默认IP地址是什么?
- 如何在PC,Mac或iPhone上启用iTunes家长限制
- UWP使用必应每日壁纸(二)
- ZJOI2019Round#1
- SpringBoot入门学习(六)之云收藏项目
- 一段时间有几个星期几
- 【Android定制】修改BUILD_AGO_GMS = no 和 BUILD_GMS=no属性
热门文章
- matlab fmincon误差值,Fmincon函数求助,数值回带以后根本不在约束的范围内
- 智能合约被忽视的一面
- 400亿的业务决策智能市场,何时诞生千亿AI公司 | 爱分析调研
- PTA - 按层次遍历二叉树
- 软件生命周期各个阶段漫谈(软件危机应对,生命周期过程详述)
- 写给大忙人看的jQuery动画效果
- 中科院系统内计算机相关方向研究实力点评
- java毕业设计——基于SSM+SpringBoot+VUE实现的电影院会员积分管理系统(源代码+论文+开题报告)
- 教你快速入门ElasticSearch,超详细简单~
- C++ 卷影复制服务信息,无法启动...问题解决办法