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版本时没设置对)
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
据说可以不用管,可能只运行一个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
先卸载原来的:
[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]
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]