Ubuntu编译Tensorflow源码支持CUDA

6 篇文章 0 订阅
3 篇文章 0 订阅


配置:显卡GTX980M,64bit,安装方式:

  • Anaconda+Tensorflor-GPU+手动安装对应版本的cuda,使用过程中出现cudnn版本问题,按照提示安装对应的cudnn版本
  • 手动编译源码支持自己硬件的所有能支持的环境。

方法1:最简单的安装方式

该方法简单,但是后续升级麻烦,而且cudnncuda版本升级也非常麻烦而且通常不支持TensorRT

安装Anaconda3-4.4.0-Linux-x86_64.sh

  1. 下载Anaconda3-4.4.0-Linux-x86_64.sh
  2. 安装Anaconda。
bash Anaconda3-4.4.0-Linux-x86_64.sh 
source ~/.bashrc

安装过程很简单一路回车,碰到Yes/No选择一律Yes。让环境变量立即生效。

conda安装tensorflow-gpu

  1. 启动终端输入
conda install tensorflow-gpu

安装完成后如下面带吗测试是否正确安装:

ipython
import tensorflow as tf

更新tensorflow的版本。
通常conda安装的版本并不是最新的,如果你想更新最新的tensorflow可以输入下面的命令:

pip install --upgrade tensorflow-gpu

如果没有任何提示表示安装成功,但是对于GPU版本通常会报错。
这里写图片描述
当提示缺少什么so文件的时候安装对应的cuda即可。当前通常都是大版本9或者10。此方法无法开启TensorFlow全部功能。

安装Cuda

  1. 下载CUDA。
    下載地址

  2. dpkg安裝CUDA

sudo dpkg -i cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64.deb
sudo apt-get update
sudo apt-get install cuda

当前不建议通过deb安装cuda。原因在于当且在cuda的时候会很麻烦。我在后续支持Tensorflow更新版本的时候重新编译Tensorflow源码的时候Tensorflow对CUDA支持更高,于是且在cuda的时候很容易卸载一些其他和cuda相关的库导致无法进入图形界面。当然个问题现在很容易解决,但是对于linux小白还是不建议折腾,因为你对着网上教程找答案的时候网上那些东西都是别人复制粘贴来的,博主自己都不知道为什么这么弄,而且多半没有自己试验过所以经常看到修改什么grub的,改了这个出错了系统就很难进去了,修复起来非常麻烦。

  • 强烈建议安装.run文件、强烈建议安装.run、强烈建议安装.run
  • 强烈建议安装runcuda文件的时候不安装显卡驱动,强烈建议不安装显卡驱动。原因是nvidia显卡驱动安装一般要傻吊桌面管理器,ubuntu16 unityubuntu mate(16,18)测试均为lightdm,所以比较容易安装显卡驱动。这样更新显卡驱动的时候会很方便。如果你是用的是Ubuntu18,没有任何桌面版通常桌面环境是gnome3,桌面管理器一般是gdm3

安裝完成後即可,特別是需要有DKMS: install completed,因爲有一次在Centos下安裝DKMS就沒有安裝,導入Tensorflow就不會報錯了。
一段小代碼測試

import tensorflow as tf
a = tf.constant(5,name = 'v_a')
b = tf.constant(6,name = 'v_b')
c = tf.add(a,b,name = 'v_c')
with tf.Session().as_default():
    print(c.eval())

这里写图片描述

至此安裝完成,如果你緊緊想寫一些簡單的tensorflow程序,至此已經結束,如果你需要加速運算需要安裝一個cudnn的加速計算庫。

安装CUDNN

下载对应的CUDNN
下载cudnn
解压cudnn

sudo tar -xzvf cudnn-8.0-linux-x64-v6.0.tgz
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo  chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

再次运行上面的程序
这里写图片描述
然而好像并没有什么区别!

方法2编译源码支持所有功能

这里假设你已经安装了(Ubuntu16或者18均可,但是切记安装对应版本的TensorRTcuDNN,CUDA):

  • TensorRT
  • cuDNN
  • CUDA
  • bazel
  • protobuf
    详细安装过程查看这里
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值