Ubuntu16.04 源码安装GPU版tensorflow

6 篇文章 0 订阅
3 篇文章 0 订阅
2017年2月16日更新:
tensoflow 1.0 发布了,索性更新一下cuda和cudnn
结果就找不到设备了,显示无法加载 libcuda.so.1!!!
后来,运行cuda的deviceQuery例程,显示找不到cuda设备!!!原因是显卡驱动不兼容。。。。(我是通过系统设置更新的,降回到之前的驱动再重启就没问题了)
至于cuda的更新,官网下个.run安装包,运行“sudo sh cuda_8.0.61_375.26_linux.run”即可(More 页面可以通过+2200直接跳到最后)。

tensorflow1.0的编译很顺利,按照官网的命令顺序即可,只是,需要注意的是,bazel必须更新到0.4.4, 否则刚开始config就会有第三方依赖找不到之类的错误


[size=x-large]这里只说一下[color=blue][b]遇到的坑[/b][/color]:[/size]
1、装完cuda后,运行测试示例,提示显卡驱动版本不对,找不到cuda设备,,重启就行了

2、装完了别忘了设置环境变量,
编辑或创建 ~/.bash_profile 文件,添加如下两行:(注意自行核对cuda安装目录)
[quote]export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64"
export CUDA_HOME=/usr/local/cuda[/quote]
不知道添加到 ~/.bash_profile 文件是不是只在命令行下有效?
在eclipse中运行时提示能够加载cuda,但是无法找到cudnn,最后[color=red]将这两行也添加到了/etc/profile文件末尾[/color],并重启后,,可以加载cudnn了

3、bazel的安装 可以采用apt-get方式,很简单
具体参见[url]http://bazel.io/docs/install.html[/url]的 [color=gray]Using Bazel custom API repository (recommended)[/color] 一节中的2、3步

bazel是google打类似make的构建工具,,说是速度快,,还真没看出来。。。。


4、由于众所周知的网络原因,,涉及github源码的安装可能需要多次重试
tensorflow也只能通过git clone下载,直接网页上下载.zip文件会缺少依赖的项目

5、编译中各种warning,忽略即可;编译时间很长。。。。

6、安装完成的tensorflow不在 python/dist-packages下,,这个和CPU版不同!!
可以通过which tensorboard查看tensorboard安装目录,,但是tensorflow安装到哪儿了还真不知道。。。。


7、cuda8和cudnn4 良好兼容 (gtx960m可以,但在gtx 1080上计算结果有问题)
[color=red]注意: [/color]cudnn只在计算卷积时被调用!!! 计算全连接网络时根本不会调用cuDNN,也就不用管这部分是否正确安装了!!(但是必须安装)


8、提示找不到cuda头文件时
症状:undeclared inclusion(s) in rule '//tensorflow/core/kernels:depth_space_ops_gpu'
在tensorflow/third_party/gpus/crosstool中编辑CROSSTOOL.tpl,增加一行明确指定cuda位置的配置(估计时自动设置cuda版本时没设置对)
  cxx_builtin_include_directory: "/usr/local/cuda%{cuda_version}/include"
cxx_builtin_include_directory: "/usr/local/cuda-8.0/include"


9、_objs/batchtospace_op_gpu/tensorflow/core/kernels/batchtospace_op_gpu.cu.pic.d (No such file or directory)
解决方案:
修改tensorflow/third_party/gpus/crosstool/CROSSTOOL
在每个cxx_flag: "-std=c++11"后增加一行:
cxx_flag: "-D_MWAITXINTRIN_H_INCLUDED"

参见:[url]https://github.com/tensorflow/tensorflow/issues/2143[/url]


10、nvcc不支持gcc 5.4
症状:error -- unsupported GNU version! gcc versions later than 5.3 are not supported!

解决方案:直接用双斜杠注释掉/usr/local/cuda/include/host_config.h中的对应行

参见(此教程还有theano,caffe配置):[url]http://blog.csdn.net/hjimce/article/details/51999566[/url]


11、运行测试用例时结果出现NaN
bazel-bin/tensorflow/cc/tutorials_example_trainer --use_gpu

据说可以不用管,可能只运行一个session时就没问题了

[url]https://github.com/tensorflow/tensorflow/issues/2037[/url]

[quote]Please try "--num_concurrent_sessi and "--num_concurrent_steps=1" for your experiments. If you don't see any exceptions with those, then everything is good.[/quote]


12、No GPU kernel for XXX
这个不是bug,在自己的代码中去掉with tf.device('/gpu:0'): 这种显式指定gpu设备的语句即可(或者只对某些语句,比如卷积,显式指定gpu运行)。 原因时某些操作只能在CPU上执行。
参见:[url]http://stackoverflow.com/questions/37439299/no-gpu-kernel-for-an-int32-variable-op[/url]

13、重新安装tensorflow
先卸载原来的:
sudo pip uninstall tensorflow


[size=x-large][color=blue]具体可以参考以下几篇文章:[/color][/size]
深度学习主机环境配置: Ubuntu16.04+Nvidia GTX 1080+CUDA8.0:[url]http://www.tuicool.com/articles/JvUvQjZ[/url]

Ubuntu 16.04下安装Tensorflow(GPU)[url]http://blog.sina.com.cn/s/blog_672f698e0102wavp.html[/url]


Nvidia GTX 1080 on Ubuntu 16.04 for Deep Learning [url]http://yangcha.github.io/GTX-1080/[/url]

注意其中在安装cuda8时的 --override 选项
http://cn.soulmachine.me/2016-08-17-deep-learning-cuda-development-environment/

官方安装文档:[url]https://www.tensorflow.org/versions/master/get_started/os_setup.html[/url]


此教程还有theano,caffe配置:[url]http://blog.csdn.net/hjimce/article/details/51999566[/url]

别人编译好的GPU版的tensorflow:[url]https://github.com/tensorflow/tensorflow/issues/4030[/url]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值