200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > Ubuntu 18.04从源代码编译安装GPU支持的Tensorflow 1.8.0

Ubuntu 18.04从源代码编译安装GPU支持的Tensorflow 1.8.0

时间:2022-11-10 13:45:10

相关推荐

Ubuntu 18.04从源代码编译安装GPU支持的Tensorflow 1.8.0

当我第一次使用Linux时,我想要做的第一件事就是安装GPU版本Tensorflow。我找到了一个很好的指南。但即使考虑到这一点,我也花了超过40个小时的安装。这篇文章我想节省你的时间,分享自己的经验。下面你会找到来自的更新指南

第1步:更新和升级您的系统:

sudo apt-get update sudo apt-get upgrade

第2步:验证您是否拥有支持CUDA的GPU:

lspci | grep -i nvidia

注意GPU型号。例如:GeForce 840M

如果没有看到任何设置,请通过在命令行输入update-pciids(通常位于/sbin中)并更新以前的lspci命令来更新Linux维护的PCI硬件数据库。

第3步:验证您是否拥有受支持的Linux版本:

要确定您正在运行的分发和版本号,请在命令行键入以下内容:

uname -m && cat /etc/*release

x86_64表示您在64位系统上运行,该系统支持cuda 9.1。

第4步:安装依赖项:

想要从源代码编译必须安装这些库:

sudo apt-get install build-essential sudo apt-get install cmake git unzip zipsudo add-apt-repository ppa:deadsnakes/ppasudo apt-get updatesudo apt-get install python2.7-dev python3.5-dev python3.6-dev pylint

第5步:安装linux内核:

转到终端并键入:

uname -r

你也许可以得到类似这样的版本号“4.15.0-23-generic”。记下你的linux内核版本。

在Ubuntu18.04中,你有4.15版本Linux内核。但因为这个版本,你有可能会卡在cuda安装上。我在Google上搜索了好几个小时,并没有解决这个问题。

如果你在终端上看到这个,你的CUDA没有以正确的方式安装

为了避免这个问题需要安装4.16内核:

wget /~kernel-ppa/mainline/v4.16/linux-headers-4.16.0-041600_4.16.0-041600.04012230_all.debwget /~kernel-ppa/mainline/v4.16/linux-headers-4.16.0-041600-generic_4.16.0-041600.04012230_amd64.debwget /~kernel-ppa/mainline/v4.16/linux-image-4.16.0-041600-generic_4.16.0-041600.04012230_amd64.deb

下载完所有上述内核文件后,现在按如下方式安装它们。Linux头文件也将用这个命令安装:

sudo dpkg -i *.deb

安装完成后,重新启动计算机并验证是否正在使用新的内核版本:

uname -sr

你必须得到这样的东西才行:

现在你已经有了一个正确版本的内核

现在使用的内核版本比Ubuntu默认安装的内核版本更新。

第6步:安装NVIDIA CUDA 9.2:

删除以前的cuda安装:

sudo apt-get purge nvidia*sudo apt-get autoremovesudo apt-get autocleansudo rm -rf /usr/local/cuda*

安装cuda:

sudo apt-key adv --fetch-keys http://developer./compute/cuda/repos/ubuntu1710/x86_64/7fa2af80.pubecho "deb https://developer./compute/cuda/repos/ubuntu1710/x86_64 /" | sudo tee /etc/apt/sources.list.d/cuda.listsudo apt-get update sudo apt-get -o Dpkg::Options::="--force-overwrite" install cuda-9-2 cuda-drivers

在执行最后一个命令时请注意步骤6!

在第一次尝试通常脚本卡在unitramfs(每当我在4.15内核上启动它时,我看到这个unitramfs文件没有找到,并且cuda安装错误)。在内核4.16上,你不会遇到这个问题。

Building for 4.15.0-22-genericBuilding for architecture x86_64Building initial module for 4.15.0-22-generic

如果此线路不会在几分钟内更新,请打开系统监视器并等待CPU内核的负载减少。不要马上键入!

然后在终端中尝试这个:

敲击ESC几次然后输入:password + Enter + password + Enter..

如果没有帮助:

敲击ESC几次然后输入:password + Enter + password + Enter..

请耐心等待,慢慢输入密码。10次敲击ESC并再次输入。

如果你在新系统上安装cuda,你只需要“盲目地”输入密码一次。否则准备做两次这样做:当编译内核,当看到这条消息时:

+++writing new private key to ‘/var/lib/shim-signed/mok/MOK.priv’— — -

这样你就会成功!

步骤7:重新启动系统以加载NVIDIA驱动程序。

步骤8:转到终端并键入:

echo 'export PATH=/usr/local/cuda-9.2/bin${PATH:+:${PATH}}' >> ~/.bashrcecho 'export LD_LIBRARY_PATH=/usr/local/cuda-9.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}' >> ~/.bashrcsource ~/.bashrcsudo ldconfignvidia-smi

检查驱动程序版本可能驱动程序版本:396.26

现在,如果你使用nvidia-smi命令,你可以获得GPU的临时属性,仅此而已(下面没有找到进程)。而且你的屏幕分辨率很低,因为你的nvidia驱动程序没有检测到GPU监视器。

我知道在FullHD显示器上只使用1024×768分辨率的工作有多糟糕

但你可以用Xorg解决这个问题!

使用此命令来创建Xorg:

sudo nvidia-xconfig

那就是在路径中创建一个文件xorg.conf文件:(etc/X11/xorg.conf)。要更改分辨率,您需要更改此文件。要执行此操作,请将此命令与监视器的参数配合使用。对我的电脑我的命令是这样:

cvt 1920x1080 60

按Enter键即可

Modeline“1920x60_60.00”9.25 1920 1976 2160 2400 60 63 73 76 -hsync + vsync

只需复制它并打开xorg.conf:

sudo -i gedit /etc/X11/xorg.conf

粘贴在这里(而不是modeline)。也改变HorizSync和VertRefresh:

然后重新启动它。现在你的屏幕分辨率应该和以前一样。现在你可以输入

nvidia-settings

看到这个:

现在您可以看到有关GPU的温度和其他有用信息。

第9步:安装cuDNN 7.1.4:

NVIDIA cuDNN是用于深度神经网络的GPU加速库。

转到/cudnn并登录下载

登录并接受协议后。

下载以下内容:

适用于Linux的cuDNN v7.1.4库

转到下载的文件夹并在终端中执行以下操作:

tar -xf cudnn-9.2-linux-x64-v7.1.tgzsudo cp -R cuda/include/* /usr/local/cuda-9.2/includesudo cp -R cuda/lib64/* /usr/local/cuda-9.2/lib64

第10步:安装NCCL 2.2.13:

NVIDIA集群通信库(NCCL)实现了针对NVIDIA GPU进行性能优化的多GPU和多节点集群通信原语。

访问/nccl并填写调查然后下载Nvidia NCCL。

完成调查后下载以下内容。

Download NCCL v2.2.13, for CUDA 9.2 -> NCCL 2.2.13 O/S agnostic and CUDA 9.2

转到下载的文件夹并在终端中执行以下操作:

tar -xf nccl_2.2.13-1+cuda9.2_x86_64.txzcd nccl_2.2.13-1+cuda9.2_x86_64sudo cp -R * /usr/local/cuda-9.2/targets/x86_64-linux/sudo ldconfig

第11步:安装依赖项

libcupti

sudo apt-get install libcupti-devecho 'export LD_LIBRARY_PATH=/usr/local/cuda/extras/CUPTI/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc

Python相关:

要为Python 2.7安装这些软件包,以下命令:

sudo apt-get install python-numpy python-dev python-pip python-wheel

要为Python 3.n安装这些软件包,以下命令:

sudo apt-get install python3-numpy python3-dev python3-pip python3-wheel

第12步:从源代码编译配置Tensorflow:

下载bazel:

cd ~/wget /bazelbuild/bazel/releases/download/0.14.0/bazel-0.14.0-installer-linux-x86_64.shchmod +x bazel-0.14.0-installer-linux-x86_64.sh./bazel-0.14.0-installer-linux-x86_64.sh --userecho 'export PATH="$PATH:$HOME/bin"' >> ~/.bashrc

重新加载环境变量

source ~/.bashrcsudo ldconfig

通过下载最新的tensorflow 1.8.0开始构建TensorFlow:

cd ~/git clone /tensorflow/tensorflow.gitcd tensorflowgit pullgit checkout r1.8./configure

指定python路径

请指定python的位置。[默认是/usr/bin/python]:/usr/bin/python3

按下enter键两次

Do you wish to build TensorFlow with jemalloc as malloc support? [Y/n]: YDo you wish to build TensorFlow with Google Cloud Platform support? [Y/n]: YDo you wish to build TensorFlow with Hadoop File System support? [Y/n]: YDo you wish to build TensorFlow with Amazon S3 File System support? [Y/n]: YDo you wish to build TensorFlow with Apache Kafka Platform support? [Y/n]: YDo you wish to build TensorFlow with XLA JIT support? [y/N]: NDo you wish to build TensorFlow with GDR support? [y/N]: NDo you wish to build TensorFlow with VERBS support? [y/N]: NDo you wish to build TensorFlow with OpenCL SYCL support? [y/N]: NDo you wish to build TensorFlow with CUDA support? [y/N]: YPlease specify the CUDA SDK version you want to use, e.g. 7.0. [Leave empty to default to CUDA 9.0]: 9.2Please specify the location where CUDA 9.2 toolkit is installed. Refer to README.md for more details. [Default is /usr/local/cuda]: /usr/local/cuda-9.2Please specify the cuDNN version you want to use. [Leave empty to default to cuDNN 7.0]: 7.1.4Please specify the location where cuDNN 7 library is installed. Refer to README.md for more details. [Default is /usr/local/cuda-9.2]: /usr/local/cuda-9.2Do you wish to build TensorFlow with TensorRT support? [y/N]: NPlease specify the NCCL version you want to use. [Leave empty to default to NCCL 1.3]: 2.2Please specify the location where NCCL 2 library is installed. Refer to README.md for more details. [Default is /usr/local/cuda-9.2]: /usr/local/cuda-9.2/targets/x86_64-linux

现在你需要注意一下显卡计算能力(compute capability),我们已经在第1步记下来了,例如5.0

Please note that each additional compute capability significantly increases your build time and binary size. [Default is: 5.0] 5.0Do you want to use clang as CUDA compiler? [y/N]: NPlease specify which gcc should be used by nvcc as the host compiler. [Default is /usr/bin/gcc]: /usr/bin/gccDo you wish to build TensorFlow with MPI support? [y/N]: NPlease specify optimization flags to use during compilation when bazel option "--config=opt" is specified [Default is -march=native]: -march=nativeWould you like to interactively configure ./WORKSPACE for Android builds? [y/N]:N

配置完成!

第13步:使用bazel建立Tensorflow

安装tensorflow GPU版本的过程的下一步将是使用bazel构建tensorflow。这个过程需要相当长的时间!请做好心理准备!

要为TensorFlow构建pip包,通常会调用以下命令:

bazel build --config=opt //tensorflow/tools/pip_package:build_pip_package

注意:如果您收到类似不支持的平台的错误,请确保您正在运行与配置tensorflow构建时使用的python关联的正确pip命令。

add "--config=mkl" if you want Intel MKL support for newer intel cpu for faster training on cpuadd "--config=monolithic" if you want static monolithic build (try this if build failed)add "--local_resources 2048,.5,1.0" if your PC has low ram causing Segmentation fault or other related errors

这个过程将花费很多时间。可能需要1-2小时甚至更长时间。比如,在我的i5-4590上需要2小时3分钟。没办法只能等待!

此外,如果您遇到像Segmentation Fault这样的错误,那么再试一次它通常有效。

bazel build命令构建一个名为build_pip_package的脚本。按如下所示运行此脚本将在tensorflow_pkg目录内生成一个.whl文件:

要构建whl文件,请执行以下命令:

bazel-bin/tensorflow/tools/pip_package/build_pip_package tensorflow_pkg

用pip安装tensorflow:

cd tensorflow_pkg

对于现有的virtual environment:

pip install tensorflow*.whl

使用virtualenv创建新的virtual environment:

sudo apt-get install virtualenvvirtualenv tf_1.8.0_cuda9.2 -p /usr/bin/python3source tf_1.8.0_cuda9.2/bin/activatepip install tensorflow*.whl

for python 2 :(如果需要,使用sudo)

pip2 install tensorflow*.whl

for python 3 :(如果需要,使用sudo)

pip3 install tensorflow*.whl

注意:如果您遇到像不受支持的平台那样的错误,请确保您正在运行与配置Tensorflow构建时使用的python关联的正确pip命令。

您可以通过以下命令检查pip版本和关联的python

pip -V

步骤14:验证Tensorflow安装

在终端运行

pythonimport tensorflow as tfhello = tf.constant('Hello, TensorFlow!')sess = tf.Session()print(sess.run(hello))

如果系统输出以下内容,则准备开始编写TensorFlow程序:

Hello, TensorFlow!

成功!您现在已经在您的机器上成功安装了tensorflow 1.8.0。

点击原文查看网页版。

欢迎访问,获取更过CVML技术信息。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。