CUDA 9.0 + cuDNN 7.0 + Tensorflow源码编译
来源:互联网 发布:李强强 php 编辑:程序博客网 时间:2024/06/05 06:48
手欠把CUDA
升级到了9.0
,然后发现cuDNN
必须升级到7.0
才支持。于是顺手把cuDNN
升级到了7.0
。然后发现在Python中导入Tensorflow报错。一查才知道tensorflow 1.3
只支持CUDA8.0
和cuDNN6.0
.想把CUDA和cuDNN降级回去,却发现Nvidia官网6.0版本的cuDNN下载不下来了。悲催。
这时候终于理解了为何会有源码编译安装这种麻烦的方式–就是为了给我这种手欠的人一条活路。
没有查到官方编译安装的教程。从网上搜到了一些,我参考的是TensorFlow学习一:源码安装。
克隆tensorflow源码
git clone --recurse-submodules https://github.com/tensorflow/tensorflow
安装Bazel
按照官方教程安装
我的CUDA和cuDNN是装好的,因此安装好Bazel就可以开始配置和编译tensorflow了。
配置tensorflow
下面是我配置tensorflow的log。
shengchun@wangsc-asus:~tensorflow$ ./configure
You have bazel 0.6.1 installed.
Please specify the location of python. [Default is /usr/bin/python]:/usr/bin/python3
Found possible Python library paths:
/home/shengchun/tensorflow/models/
/bin
/usr/local/cuda/bin
/sbin
/home/shengchun/tensorflow/models/slim
/usr/bin
/usr/local/sbin
/usr/local/games
/usr/lib/python3/dist-packages
/usr/games
/home/shengchun/mxnet-ssd/mxnet/python
/usr/sbin
/usr/local/bin
/usr/local/lib/python3.5/dist-packages
Please input the desired Python library path to use. Default is [/home/shengchun/tensorflow/models/]/usr/local/lib/python3.5/dist-packages
Do you wish to build TensorFlow with jemalloc as malloc support? [Y/n]:[Enter]
jemalloc as malloc support will be enabled for TensorFlow.
Do you wish to build TensorFlow with Google Cloud Platform support? [Y/n]:[Enter]
Google Cloud Platform support will be enabled for TensorFlow.
Do you wish to build TensorFlow with Hadoop File System support? [Y/n]:[Enter]
Hadoop File System support will be enabled for TensorFlow.
Do you wish to build TensorFlow with XLA JIT support? [y/N]:[Enter]
No XLA JIT support will be enabled for TensorFlow.
Do you wish to build TensorFlow with GDR support? [y/N]:[Enter]
No GDR support will be enabled for TensorFlow.
Do you wish to build TensorFlow with VERBS support? [y/N]:[Enter]
No VERBS support will be enabled for TensorFlow.
Do you wish to build TensorFlow with OpenCL support? [y/N]:[Enter]
No OpenCL support will be enabled for TensorFlow.
Do you wish to build TensorFlow with CUDA support? [y/N]:y
CUDA support will be enabled for TensorFlow.
Please specify the CUDA SDK version you want to use, e.g. 7.0. [Leave empty to default to CUDA 8.0]:9.0
Please specify the location where CUDA 9.0 toolkit is installed. Refer to README.md for more details. [Default is /usr/local/cuda]:[Enter]
Please specify the cuDNN version you want to use. [Leave empty to default to cuDNN 6.0]:7.0.3
Please specify the location where cuDNN 7.0.3 library is installed. Refer to README.md for more details. [Default is /usr/local/cuda]:[Enter]
**Please specify a list of comma-separated Cuda compute capabilities you want to build with.
You can find the compute capability of your device at: https://developer.nvidia.com/cuda-gpus.
Please note that each additional compute capability significantly increases your build time and binary size. [Default is: 5.0]**[Enter]
Do you want to use clang as CUDA compiler? [y/N]:[Enter]
nvcc will be used as CUDA compiler.
Please specify which gcc should be used by nvcc as the host compiler. [Default is /usr/bin/gcc]:
Do you wish to build TensorFlow with MPI support? [y/N]:[Enter]
No MPI support will be enabled for TensorFlow.
Please specify optimization flags to use during compilation when bazel option “–config=opt” is specified [Default is -march=native]:[Enter]
Add “–config=mkl” to your bazel command to build with MKL support.
Please note that MKL on MacOS or windows is still not supported.
If you would like to use a local MKL instead of downloading, please set the environment variable “TF_MKL_ROOT” every time before build.
Configuration finished
编译tensorflow, 开启 GPU 支持:
bazel build --config=opt --config=cuda //tensorflow/tools/pip_package:build_pip_package
整个过程还是比较顺利的,只是编译时间有点儿长。
生成whl文件
bazel编译命令建立了一个名为build_pip_package的脚本。运行如下的命令将会在 /tmp/tensorflow_pkg路径下生成一个.whl文件:
bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
pip安装tensorflow
sudo pip3 install /tmp/tensorflow_pkg/tensorflow-1.3.0-cp35-cp35m-linux_x86_64.whl
验证安装
打开任意一个新的终端,注意不要在tensorflow的安装路径下,运行
python3
输入以下代码
import tensorflow as tf
hello = tf.constant(‘Hello, TensorFlow!’)
sess = tf.Session()
print(sess.run(hello))
至此,tensorflow 1.3从源码编译安装成功,世界恢复了正常。
- CUDA 9.0 + cuDNN 7.0 + Tensorflow源码编译
- 安装TensorFlow(Ubuntu+CUDA+Cudnn)
- ubuntu16.04 cuda cudnn tensorflow
- Win10+cuda+cudnn+tensorflow安装
- 【TensorFlow】Win10+TensorFlow+Anaconda+CUDA+cuDNN
- cudnn版本问题导致tensorflow GPU源码编译失败
- 最新的Tensorflow + CUDA 8.0 +Cudnn 5.1
- GPU之cuda+cudnn+tensorflow-gpu
- Ubuntu16.04 安装 TensorFlow GPU--cuda,cudnn
- 【tensorflow】查看cuda,cudnn版本命令
- win10下Tensorflow +CUDA+CUDNN 安装过程
- Tensorflow Cuda 8.0 CuDNN 6.0 Python 3.5
- Linux下CUDA+CUDNN+TensorFlow安装笔记
- Tensorflow+cuda+cudnn+window+Python之window下安装TensorFlow
- 从头开始安装Ubuntu,cuda,cudnn,caffe,tensorflow,ROS
- 从头开始安装Ubuntu,cuda,cudnn,caffe,tensorflow,ROS
- 从头开始安装Ubuntu,cuda,cudnn,caffe,tensorflow,ROS
- CUDA 7.5 & cuDNN v4 & tensorflow on Ubuntu 14.04 LTS
- 第五周项目二
- leetcode 382. Linked List Random Node 蓄水池算法
- 【java基础】双引号""内使用双引号必须在里面的双引号前加转义字符"\"
- Docker、LXC、虚拟机异同
- 已经解决:Refusing to start with libssl version OpenSSL &libssl version mismatch(通用freeradis下载)
- CUDA 9.0 + cuDNN 7.0 + Tensorflow源码编译
- Java接口回调
- 缓存淘汰算法--LRU算法
- C/C++逐行读取文本文件的数据
- Java面试(解答题一)
- 面试题
- Java面试(解答题二)
- H5 3D动画实现
- EEPROM和flash的区别