ubuntu nvidia卡 下安装cuda8+cudnn6.0+tensorflow1.4

ubuntu安装gpu版tensorflow(注意所安装的版本)

1.安装nvidia显卡驱动

  首先安装nvidia驱动,很多教程都说要卸载原来的驱动,安装官方最新的,经博主实际测试发现完全没必要,如果卸载重装还可能导致图形界面无法启动的情况,经验不足的话甚至无法修复,只能重装系统。因此完全没必要,直接利用ubuntu的软件更新器选择nvidia驱动即可。

  如下图所示,打开software & updates→ Additional Drivers ,初次打开经过几分钟的等待会显示系统推荐的驱动,选择其推荐的进行安装即可。

然后命令行执行:

nvidia-smi

看到以上信息表示安装成功。


2.安装cuda8.0

   去官方下载cuda8.0,https://developer.nvidia.com/cuda-downloads?target_os=Linux,官方的是9.1最新版,历史版本在Legacy Releases下,点击进入选择CUDA Toolkit 8.0 GA1下载。

  然后执行:

sudo ./cuda_8.0.44_linux.run

  前面会显示大量的协议,按住enter不放直到跳过协议,然后按照提示选是或否即可。

  注意:在遇到Install NVIDIA Accelerated Graphics Driver for xxx时,一定要选no,因为已经安装了显卡,就无需再安装了。其他都选默认即可,没有默认就选yes 

  安装结束后,修改环境变量/etc/profile文件,追加如下内容:

export PATH=$PATH:/usr/local/cuda/bin
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

  然后进入cuda 8.0 sample目录(默认在~目录下),然后依次执行:

cd 1_Utilities/deviceQuery
./deviceQuery

  没有问题出现如下信息:

  

  可以看到Detected 1 CUDA Capable device,即安装成功。

3.安装cudnn6.0

  去https://developer.nvidia.com/rdp/cudnn-archive 下载cudnn v6.0 for CUDA8.0,如图所示选择cuDNN v6.0 Library for Linux

  

  解压后执行:(cp -a 会保存软连接,否则还要手动创建)

sudo cp -a cuda/include/cudnn.h /usr/local/cuda/include/
sudo cp -a cuda/lib64/libcudnn* /usr/local/cuda/lib64/
sudo chmod a+r /usr/local/cuda/include/cudnn.h
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*

  注:这里一定要选择6.0版本,否则后面会出现版本不匹配的问题,报错:ImportError: libcudnn.so.6: cannot open shared object file: No such file or directory(即tensorflow1.3以上版本要求使用cudnn6.0版本)

4.安装tensorflow1.4

  下载tensorflow-gpu==1.4,https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.4.0-cp27-none-linux_x86_64.whl,将链接最后的版本号1.4.0换成对应的版本可下载指定的版本。

  注:tensorflow1.5以上仅支持cuda9,因此只能安装1.4版本的,否则报错:ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory 

  下载完毕之后执行:

sudo pip install tensorflow_gpu-1.4.0-cp27-none-linux_x86_64.whl  

5.验证

  写个简单的python脚本,只要import tensorflow不报错即安装成功。然后就可以将之前写的deep learning训练代码用支持gpu的tf运行,可以感觉明显的提速。

  

猜你喜欢

转载自www.cnblogs.com/deepllz/p/8920420.html