CentOS7编译TensorFlow 1.12.2 C++库:CUDA 9.1与CUDNN 7.1.3

需积分: 9 0 下载量 8 浏览量 更新于2024-09-08 收藏 291KB DOCX 举报
"在CentOS 7环境下编译TensorFlow 1.12.2的C++库,需要配合CUDA 9.1和cuDNN 7.1.3。本教程将指导如何在系统中处理多版本CUDA的共存问题,并进行必要的升级操作。" 在CentOS 7上构建TensorFlow 1.12.2的C++库是一项涉及多个软件组件的任务,特别是对于支持GPU计算的CUDA和cuDNN。首先,我们需要了解TensorFlow与CUDA和cuDNN之间的版本兼容性。根据描述中的信息,TensorFlow 1.12.0支持CUDA 9,而TensorFlow 1.4.0则需要CUDA 8。考虑到显卡驱动版本为396.24,这意味着可以使用CUDA 9系列,因此选择CUDA 9.1。 在开始编译之前,需要确保系统已经满足以下基本条件: 1. 安装了GCC 4.8.5或更高版本,因为这是TensorFlow编译所需的最低版本。 2. 确认当前系统中的CUDA版本为8.0.61,cuDNN版本为6.0.21。但为了构建TensorFlow 1.12.2,我们需要升级到CUDA 9.1和cuDNN 7.1.3。 安装CUDA 9.1: 从NVIDIA官方网站下载适用于CentOS 7的CUDA 9.1安装包,例如cuda_9.1.85_387.26_linux.run。执行安装脚本时,由于系统已有CUDA 8存在,我们不希望替换现有的CUDA版本,因此通常需要以非根用户身份运行,并添加`--no-opengl-libs`选项来避免覆盖OpenGL库。安装命令可能如下: ```bash sudo sh cuda_9.1.85_387.26_linux.run --no-opengl-libs --override ``` 安装cuDNN 7.1.3: 同样,从NVIDIA官方网站下载cuDNN对应的版本,解压缩后将包含的库文件复制到CUDA安装目录。例如: ```bash sudo cp -P /path/to/downloaded/cudnn/lib64/* /usr/local/cuda-9.1/lib64/ sudo cp -P /path/to/downloaded/cudnn/include/* /usr/local/cuda-9.1/include/ ``` 配置环境变量: 更新`.bashrc`或`.bash_profile`文件,添加CUDA 9.1和cuDNN的路径: ```bash echo "export PATH=/usr/local/cuda-9.1/bin:$PATH" >> ~/.bashrc echo "export LD_LIBRARY_PATH=/usr/local/cuda-9.1/lib64:$LD_LIBRARY_PATH" >> ~/.bashrc source ~/.bashrc ``` 编译TensorFlow C++库: 现在系统已准备好编译TensorFlow 1.12.2。首先,从TensorFlow官方仓库克隆源代码,然后按照其文档指示配置和构建: ```bash git clone https://github.com/tensorflow/tensorflow.git cd tensorflow git checkout r1.12 ./configure bazel build -c opt //tensorflow:libtensorflow_cc.so ``` `./configure`步骤中,你需要确保选择正确的CUDA和cuDNN路径,以及相应的GPU支持。 完成上述步骤后,你应该能够在`bazel-bin/tensorflow`目录下找到编译好的`libtensorflow_cc.so`库文件,可以用于你的C++项目。 总结来说,这个过程涉及到在CentOS 7上管理多版本CUDA,升级到兼容TensorFlow 1.12.2的CUDA 9.1和cuDNN 7.1.3,以及编译TensorFlow的C++库。确保每个步骤都正确执行,以避免潜在的版本冲突和依赖问题。