源码安装l CUDA 10.0, cuDNN 7.3 and build TensorFlow (GPU) from source on Ubuntu 18.04

版权声明:tensorflow caffe tars群【469331966】 ; 本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chary8088/article/details/84994633

更糟糕的CUDA 10.0和cuDNN 7.3版本我真的很想在我新建的机器上试用它。问题是pip包TensorFlow 1.11rc不支持最新的CUDA版本,我需要从源代码构建它。整个过程对我来说相当痛苦,最后我完成了它后,我决定再次完成所有步骤并在空的Ubuntu机器上从头开始设置。

我的出发点是配备i5-8600 CPU 3.10GHz,16GB DDR4,GTX 1080,刚刚安装Ubutnu 18.04 LTS的机器,我们将:  
1。安装CUDA 10 + cuDNN 7.3 + NCCL 2.3.5 
2.安装Bazel 0.17。 2 
3.构建和安装TensorFlow 1.11rc  
在您的情况下,软件包版本可能更新,但假设整体步骤将保持不变。

1.安装CUDA 10.0 + cuDNN 7.3 + NCCL 2.3.5

1.1安装CUDA 10.0

NVIDIA网站上可以找到很好的安装指南。但以下是我的空机器所需的步骤

1.1.1安装gcc:sudo apt-get install gcc 
1.1.2 下载包。对我来说是Linux / x86_64 / Ubuntu / 18.04 / deb(本地)
1.1.3通过运行以下命令安装CUDA
sudo dpkg -i cuda-repo-ubuntu1804–10–0-local-10.0.130–410.48_1.0–1_amd64.deb
sudo apt-key add /var/cuda-repo-10–0-local-10.0.130–410.48/7fa2af80.pub
sudo apt-get update
sudo apt-get install cuda

1.1.4安装完成后,通过在文件末尾运行
nano ~/.bashrc
添加  
export PATH=/usr/local/cuda-10.0/bin${PATH:+:${PATH}} 
将以下行添加到bashrc来添加PATH变量。保存并退出。

1.1.5检查驱动程序版本和CUDA工具包以确保一切顺利
cat /proc/driver/nvidia/version
nvcc -V

 

1.1.6您可能还想构建CUDA示例并运行它。这需要一段时间。为此,您需要跳转到CUDA示例目录。对我来说,它是/usr/local/cuda-10.0/samples并运行  
sudo make。 
之后去构建源  
/usr/local/cuda-10.0/samples/bin/x86_64/linux/release
并执行  ./deviceQuery和  ./bandwidthTest。我的结果如下:

./deviceQuery results

./bandwidthTest results

测试后随意取出内置样品。

1.2安装cuDNN 7.3

要下载cuDNN,请在developer.NVIDIA.com上登录/注册。如果需要,下载Release,Dev版本和示例。
使用deb文件在文件夹中运行以下命令:
sudo dpkg -i libcudnn7_7.3.0.29–1+cuda10.0_amd64.deb
sudo dpkg -i libcudnn7-dev_7.3.0.29–1+cuda10.0_amd64.deb
sudo dpkg -i libcudnn7-doc_7.3.0.29–1+cuda10.0_amd64.deb

安装完成。让我们按照说明进行验证或运行:
cp -r /usr/src/cudnn_samples_v7/ $HOME
cd $HOME/cudnn_samples_v7/mnistCUDNN
make clean && make
./mnistCUDNN

如果正确安装了cuDNN,您将看到一条消息:测试通过
随意从HOME / cudnn_samples_v7中删除复制的文件

1.3安装NCCL 2.3.5

NCCL用于同时处理多个GPU上的计算。如果您将使用单个GPU,则可以跳过此步骤。否则,下载网络安装程序并运行就是这样。我们转到Bazel安装。
sudo dpkg -i nccl-repo-<version>.deb
sudo apt install libnccl2 libnccl-dev

2安装Bazel 0.17.2

Bazel是一种用于TensorFlow建筑的工具。其主页包含多种安装方式。对我来说,首选的是使用ATL存储库。首先请确保您有卷曲并安装Bazel使用
sudo apt install curl

sudo apt-get install openjdk-8-jdk
echo “deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8” | sudo tee /etc/apt/sources.list.d/bazel.list
curl https://bazel.build/bazel-release.pub.gpg | sudo apt-key add -
sudo apt-get update
sudo apt-get install bazel

要验证bazel安装是否已完成,请使用bazel版本。您可能也会看到很少的警告。那没问题。

bazel版本的结果

3.构建TensorFlow

TensorFlow页面上有很好的分步指南。它的概括如下:

3.1准备。

3.1.1安装python3-distutils pip #或我建议使用虚拟环境构建TensorFlow。有多种方法可以做到这一点。我的首选是使用PyCharm作为venv管理员sudo apt-get install python3-distutils
sudo apt install python-dev python-pippython3-dev python3-pip

3.1.2激活虚拟环境并运行以下命令:
pip install -U pip six numpy wheel mock
pip install -U keras_applications==1.0.5 — no-deps
pip install -U keras_preprocessing==1.0.3 — no-deps

3.2下载和构建。

3.2.1下载源代码。我克隆了git仓库。如果您尚未安装git,请运行sudo apt install git
After clone clone 
git clone https://github.com/tensorflow/tensorflow.git
cd tensorflow

3.2.2用bazel测试。
bazel test -c opt — //tensorflow/… -//tensorflow/compiler/… -//tensorflow/contrib/lite/…
好吧,它在我的机器上处理了大约一个小时。因此,我有大约60个测试结果失败,但它不会影响构建过程。

3.2.3运行./configure配置TensorFlow构建。 
在我的情况下,我使用默认值,除了以下问题:
Hadoop文件系统支持 - 没有
Apache Kafka平台支持 - 没有
CUDA支持 - YES 
CUDA版本 - 10.0 
cuDNN版本 - 7.3 
NCCL - 1.3 
您可能想知道为什么NCCL版本不是2.3。好吧,我已经尝试过但是NCCL版本的默认路径与构建期间预期的路径不同。它需要手动将nccl.h和libnccl.so.2复制到所需的路径。由于我没有使用多个GPU,因此我将1.3版本自动安装到预期的目录中。

3.2.4构建并安装TensorFlow。运行  
./bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
准备好自己娱乐一小时,同时构建过程正在进行中。因此,pip包将放在/ tmp / tensorflow_pkg中。 
我们差不多完成了 - 从你的venv跑出来享受
pip install /tmp/tensorflow_pkg/tensorflow-version-cp27-cp27mu-linux_x86_64.whl

这就对了。支持GPU的TensorFlow正在运行!

猜你喜欢

转载自blog.csdn.net/chary8088/article/details/84994633