您的位置:首页 > 其它

ubuntu14.04+GTX1080 部署tensorflow+cuda8.0

2016-10-06 03:06 549 查看
台式机ubuntu14.04+GTX1080 部署tensorflow开发环境,是个理想的平台。部署不宜,遇到坑,且填且珍惜。1、安装系统主流的都是u盘用ultrISO刻录好系统14.04的iso文件安装。不知为啥,最新版的16.04装上就不能用,一开启就在登录后卡死机,提示有internel error.后来电脑故障,又重装一次系统,14.04.5版本兼容性较好,而且这个版本已经自带e1000e有线网卡驱动。分区的时候注意单独分个efi启动区(UEFI安装),别选成bios预留了,不然启动项找不到系统。这次系统装好后直接装cuda8.0连带显卡驱动也装了。用了一段时间,发现swap分区太小了,只留了2G(内存32g,一般情况下内存使用都会超过2G),电脑休眠的时候数据会存到这个分区,太小了不够存放,休眠后重新唤醒,显示界面有大片花点区域,估计是数据丢失一部分导致的。以后swap多分些。2、系统驱动安装2.1 先装有线网卡驱动,lspci查看有线网卡型号,我的是intel:15b8, 下载官网对应驱动文件 e1000e.3.3.4,$cd  e1000e.3.3.4/src/$make //可能要重启才能联网,参考: http://www.intel.cn/content/www/cn/zh/support/network-and-i-o/ethernet-products/000005480.html#build_e1e 2.2 装显卡驱动,官网下载对呀驱动.run文件,不要用网络文件在线装,有bug。 $ctrl+alt+F1                         //进入字符界面 $sudo service lightdm stop   //关图形界面 $chmod +x .run文件 $sudo sh .run文件   //运行驱动安装,基本都是yes( x-config 也是yes) $sudo  reboot3、 装cuda8.0这一步需要注意点比较多,直接参考官网文档(官网,官网,官网。重要的事情说三遍,官网才算权威,别瞎折腾看别人博客)cuda官网安装文档链接[1] http://docs.nvidia.com/cuda/cuda-installation-guide-linux/#axzz4HIBXnwyt,通过官网指导运行.run文件。 但是,官网也不全完整。运行完 .run 文件,看============ Summary ============下面的运行结果提示,有missing的包,找到手动安装。接下来就是环境变量,[2]中也有详细介绍。添加用户环境变量,并将其写入到 ~/.bashrc 的尾部:$ sudo gedit ~/.bashrcexport PATH=/usr/local/cuda-8.0/bin:$PATHexport LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH添加系统环境变量,写到/etc/profile的尾部$ sudo gedit /etc/profileexport PATH = /usr/local/cuda/bin:$PATH按照.run文件结果提示要创建如下文件并写入/usr/local/cuda/lib64保存sudo gedit /etc/ld.so.conf.d/cuda.conf/usr/local/cuda/lib64执行sudo ldconfig使以上修改生效4、 检测cuda是否正常$ nvcc -V //查看是否为8.0的nvcc版本$ cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery$ make$ sudo ./deviceQuery //查看是否有cuda8.0 的gpu内容上面这一步,可能会报错could not insert 'nvidia_340_uvm'(跳过这一步检测,后面可能会继续报相同错误,或者提示gpu0不能用)。如下:./deviceQuery Starting... CUDA Device Query (Runtime API) version (CUDART static linking)modprobe: ERROR: could not insert 'nvidia_340_uvm': Invalid argumentcudaGetDeviceCount returned 30-> unknown errorResult = FAIL解决参考[3]中所述: sudo apt-get remove nvidia-340 。然后继续检测sudo ./deviceQuery 看是否正常。5、装cudnn,[4]和[2]都有详述,以[2]为主要参考, 目前不支持cudnn6吧,我试了下失败。选择对应你cuda版本的cudnn下载。这里我下载的是cudnn5.1,解压后复制到相应位置,授权,增加链接关系。如下:$ cd cudnn/include/ (解压后的cudnn目录,目录文件有可能叫cudn)$ sudo cp cudnn.h /usr/local/cuda/include/   #复制头文件$ cd cudnn/lib64/$ sudo cp lib*  /usr/local/cuda/lib64/   #复制动态链接库$ cd /usr/local/cuda/lib64/sudo rm -rf libcudnn.so libcudnn.so.5   #删除原有动态文件$ sudo ln -s libcudnn.so.5.0.5 libcudnn.so.5 #生成软衔接$ sudo ln -s libcudnn.so.5 libcudnn.so     #生成软链接6、各种依赖项安装,详细看[4]。6.1  装bazel,看[4],也可参考bazel官网。6.2  装jdk8,看[4],这个也可以百度,就复制+环境变量操作而已。6.3  装其他python 依赖:# For Python 2.7:$ sudo apt-get install python-numpy swig python-dev python-wheel# For Python 3.x:$ sudo apt-get install python3-numpy swig python3-dev python3-wheel 7、编译tensorflow 这一步要一气呵成,中途出错回到7的起点继续往后装。下载好的tensorflow编译文件备份,出错就删掉之前用过的,再用备份的。别问为什么,填过的坑,没必要再填。7.1 从tensorflow的github仓库下载代码
$ git clone https://github.com/tensorflow/tensorflow[/code] $ cd tensorflow根目录$ ./configure 出现error或者没有successful,退回到7的起点。7.2 配置GPU支持,这一步耗费时间比较长$ bazel build -c opt --config=cuda //tensorflow/cc:tutorials_example_trainer$ bazel-bin/tensorflow/cc/tutorials_example_trainer --use_gpu(这步有可能出现4中错误)# Lots of output. This tutorial iteratively calculates the major eigenvalue of# a 2x2 matrix, on GPU. The last few lines look like this.000009/000005 lambda =2.000000 x = [0.894427 -0.447214]y = [1.788854 -0.894427]7.3 创建pip包并安装它$ bazel build -c opt //tensorflow/tools/pip_package:build_pip_package# To build with GPU support:$ bazel build -c opt --config=cuda //tensorflow/tools/pip_package:build_pip_package$ bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg#The name of the .whl file will depend on your platform.#这一步之前,你要进入/te//tensorflow_pkg目录查看具体生成的whl文件的名称#进入anaconda的bin目录,执行
./pip install /tmp/tensorflow_pkg/tensorflow-0.11.0rc0-py2-none-any.w
到这里算是修道飞升成功!
8 、reference
[1] http://docs.nvidia.com/cuda/cuda-installation-guide-linux/#axzz4HIBXnwyt [2] http://www.th7.cn/system/lin/201608/176823.shtml [3] https://github.com/fchollet/keras/issues/3043 [4] http://blog.csdn.net/u010900574/article/details/52201808 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: