作者:李继武
1 文档编写目的
从CDSW1.1.0开始支持GPU,具体可以参考Fayson之前的文章《如何在CDSW中使用GPU运行深度学习》,从最新的CDSW支持GPU的网站上我们可以查到相应的Nvidia Drive版本,CUDA版本以及TensorFlow版本,如下:
我们注意到CUDA的版本是9.2,但是目前官方发布的编译好的TensorFlow的CUDA版本还是9.0,为了在CDSW环境中让TensorFlow运行在GPU上,必须使用CUDA9.2,我们需要手动编译TensorFlow源码。这里,以编译TensorFlow1.8和TensorFlow1.12的版本为例,指定CUDA的版本为9.2,cudnn的版本为7.2.1。
2 安装编译过程中需要的包及环境
此部分两个版本的操作都相同
1.配置JDK1.8到环境变量中
2.执行如下命令,安装依赖包
yum -y install numpy
yum -y install python-devel
yum -y install python-pip
yum -y install python-wheel
yum -y install epel-release
yum -y install gcc-c++
pip install --upgrade pip enum34
pip install keras --user
pip install mock
如果安装时没有可用的包,可到下面的地址下载,然后制作本地yum源:
https://pkgs.org/
3.下载CUDA9.2并安装
到下面的地址下载CUDA9.2安装包:
https://developer.nvidia.com/cuda-92-download-archive?target_os=Linux&target_arch=x86_64&target_distro=RHEL&target_version=7&target_type=runfilelocal
选择runfile(local)版本:
上传到服务器:
修改文件权限,并运行该文件:
chmod +x cuda_9.2.148_396.37_linux.run
./cuda_9.2.148_396.37_linux.run
将CUDA添加到环境变量:
export PATH=/usr/local/cuda-9.2/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-9.2/lib64:$LD_LIBRARY_PATH
执行如下命令应能看到cuda版本:
source /etc/profile
nvcc -V
4.cuDNN v7.2.1 下载并安装
到如下地址下载cudnn v7.2.1,需要注册之后才能下载:
https://developer.nvidia.com/rdp/cudnn-archive
上传到服务器CUDA的安装目录/usr/local/cuda,解压到该目录下
tar -zxvf cudnn-9.2-linux-x64-v7.2.1.38.tgz
在该目录下执行下面命令将cudnn添加到cuda的库中:
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*
进入lib64目录,建立一个软连接:
cd /usr/local/cuda/lib64
ln -s stubs/libcuda.so libcuda.so.1
3 安装编译工具bazel
这部分编译不同的tensorflow版本需要安装不同版本的bazel,使用太新的版本有 时会报错。
A.Tensorflow1.12使用的bazel版本为0.19.2:
1.下载bazel-0.19.2:
wget https://github.com/bazelbuild/bazel/releases/download/0.19.2/bazel-0.19.2-installer-linux-x86_64.sh
2.添加可执行权限,并执行:
chmod +x bazel-0.19.2-installer-linux-x86_64.</