源码编译安装tensorflow GPU版本过程

tensorflow-build

源码编译安装tensorflow GPU版本过程

硬件信息及版本

  • hw :
    • Intel® Core™ i7-6700HQ CPU @ 2.60GHz
    • NVIDIA GTX1060 6G GDDR5
    • 8GB DDR4内存
  • OS : Ubuntu 18.04.2 LTS
  • tensorflow branch : origin/r1.13
  • cuda : 10.0
  • cudnn: 7.4.2
  • nccl: 2.4.2
  • python :2.7
  • bazel: 0.19.2
+ 源码编译安装TensorFlow版本需要对应,不然可能会出现不可预期的错误!

查看GPU信息

命令

  • lspci | grep -i nvidia
  • sudo lshw -numeric -C display

输出

  • 06:00.0 VGA compatible controller: NVIDIA Corporation GK110B [GeForce GTX TITAN Z] (rev a1)
  • 06:00.1 Audio device: NVIDIA Corporation GK110 HDMI Audio (rev a1)
  • 07:00.0 3D controller: NVIDIA Corporation GK110B [GeForce GTX TITAN Z] (rev a1)

禁用nouveau驱动

  + 使用核显和独显,因为对NVIDIA显卡驱动支持不太好,很多在安装TensorFlow GPU版本时经常会遇到黑屏,进不到Linux系统中等问题; 因此在安装显卡驱动和CUDA前先禁用nouveau驱动

操作

  • sudo vim /etc/modprobe.d/blacklist-nouveau.conf
  • # 输入以下内容
  • blacklist nouveau
  • options nouveau modset=0

执行

  • sudo update-initramfs -u

重启电脑查看是否成功

  • sudo lspci | grep nouveau
    如果没有内容,则禁用成功。

安装cuda

执行以下命令

  • sudo /etc/init.d/lightdm stop    # 关闭X-server ctrl+alt+F1进入命令行
  • sudo init 3
  • chmod 777 cuda_10.0.130_410.48_linux.run
  • sudo ./cuda_10.0.130_410.48_linux.run
  • sudo vim ~/.bashrc
  • # 添加以下三行内容
  • export CUDA_HOME=/usr/local/cuda-10.0
  • export PATH=/usr/local/cuda-10.0/bin:$PATH
  • export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64:$LD_LIBRARY_PATH
  • source ~/.bashrc    #使配置的环境变量生效
  • sudo vim /etc/ld.so.conf.d/cuda-10-0.conf
    # 添加以下二行内容
  • /usr/local/cuda-10.0/lib64
  • /usr/local/cuda-10.0/extras/CUPTI/lib64
  • sudo ldconfig
  • nvidia-smi       #出现GPU相关信息表示驱动安装成功
  • nvcc --version    #查看cuda版本信息
  • sudo service lightdm start

验证

  • cd /usr/local/cuda-10.0/samples/1_Utilities/deviceQuery
  • sudo make
  • sudo ./deviceQuery
    保证编译没有error,执行deviceQuery输出信息的最后类似以下:
deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 10.0, CUDA Runtime Version = 10.0, NumDevs = 2, Device0 = GeForce GTX TITAN Z, Device1 = GeForce GTX TITAN Z
Result = PASS

安装cuDNN

执行以下命令

  • tar -xzvf cudnn-10.0-linux-x64-v7.4.2.24.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*

查看是否安装成功

  • nvcc -V

nccl : 2.4.2

  • 下载链接
  • sudo dpkg -i nccl-repo-ubuntu1804-2.4.2-ga-cuda10.0_1-1_amd64.deb
  • sudo apt update
  • sudo apt install libnccl2 libnccl-dev
  • 如果希望保留较旧版本的CUDA,请指定特定版本,例如:
  • sudo apt-get install libnccl2=2.4.2-1+cuda10.0 libnccl-dev=2.4.2-1+cuda10.0

bazel: 0.19.2

  • 下载链接
  • chmod +xxx bazel-0.19.2-installer-linux-x86_64.sh
  • ./bazel-0.19.2-installer-linux-x86_64.sh --user

python2.7.16: miniconda2

  • 首先安装miniconda2,可以自己搜索安装方法,在该创建虚拟下使用bazel编译安装TensorFlow
  • conda create -n python2 python=2.7 -y
  • conda activate
  • source activate python2
    退出:
  • conda deactivate
  • source deactivate

编译命令:仅供参考

bazel build --config=opt --config=cuda --local_resources 4096,4,1.0 --cxxopt="-D_GLIBCXX_USE_CXX11_ABI=0" //tensorflow/tools/pip_package:build_pip_package

使用上述命令,可能CPU或内存资源不够,导致卡死,出现错误:

/tensorflow/core/kernels/BUILD:762:1: C++ compilation of rule '//tensorflow/core/kernels:broadcast_to_op' failed (Exit 4)

可以使用下面命令,但是编译速度相比前面慢许多。

bazel build --config=opt --config=cuda --local_resources 4096,4.0,1.0 -j 1 --cxxopt="-D_GLIBCXX_USE_CXX11_ABI=0" //tensorflow/tools/pip_package:build_pip_package

遇到问题

/tensorflow/BUILD:573:1: Executing genrule //tensorflow:tf_python_api_gen_v1 failed (Exit 1)...
AttributeError: attribute '__doc__' of 'type' objects is not writable  Target //tensorflow/tools/pip_package:build_pip_package failed to build
  • 若有安装卸载之前的enum:pip uninstall enum
  • 执行命令: pip install enum34

测试安装成功

  • import tensorflow as tf
  • print(‘Loaded TF version’, tf.version)
  • hello = tf.constant(‘Hello, TensorFlow!’)
  • # 通过log_device_placement参数来输出运行每一个运算的设备。
  • sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
  • print(sess.run(hello))
    输出:
  • Loaded TF version 1.2.1
  • Hello, TensorFlow!

卸载

  • sudo apt-get remove --purge nvidia-*     #卸载驱动
  • sudo pip3 uninstall tensorflow

官方编译安装教程

祝君好运!!!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TensorFlow是一个基于数据流编程的符号数学系统,广泛应用于各种机器学习应用。它的安装方法有多种,包括通过conda或pip安装编译的二进制版本、使用docker容器等。不过,如果你想进行安装,可以按照以下步骤: 1. 确认你的系统符合TensorFlow的要求,包括操作系统版本、CUDA和cuDNN版本、Python版本等。具体要求可以参考官方文档:https://www.tensorflow.org/install/source#gpu 2. 安装Bazel构建工具。Bazel是Google开的一款构建工具,用于编译和打包代码。你可以从官网下载二进制版本,也可以使用系统包管理器进行安装。 3. 下载TensorFlow码。你可以从GitHub上下载最新版的码压缩包,或者使用git clone命令克隆代码仓库。 4. 配置环境变量。将Bazel和CUDA、cuDNN等库的路径添加到PATH和LD_LIBRARY_PATH环境变量中。 5. 进入TensorFlow码目录,运行以下命令: ``` ./configure ``` 该命令将提示你输入一些配置信息,包括Python解释器路径、CUDA和cuDNN路径、是否使用GPU等。根据你的系统情况进行选择。 6. 编译代码。运行以下命令: ``` bazel build --config=opt //tensorflow/tools/pip_package:build_pip_package ``` 该命令将编译TensorFlow代码,并生成pip包。 7. 打包pip包。运行以下命令: ``` bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg ``` 该命令将打包pip包,并保存到指定目录。 8. 安装pip包。运行以下命令: ``` pip install /tmp/tensorflow_pkg/tensorflow-version-tags.whl ``` 其中,version-tags是TensorFlow版本号。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值