CentOS7编译TensorFlow 1.12.2 C++库:CUDA 9.1与CUDNN 7.1.3
需积分: 9 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++库。确保每个步骤都正确执行,以避免潜在的版本冲突和依赖问题。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2018-04-20 上传
2019-04-02 上传
2018-05-23 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
hfxy5200704031010
- 粉丝: 3
- 资源: 21
最新资源
- 深入浅出:自定义 Grunt 任务的实践指南
- 网络物理突变工具的多点路径规划实现与分析
- multifeed: 实现多作者间的超核心共享与同步技术
- C++商品交易系统实习项目详细要求
- macOS系统Python模块whl包安装教程
- 掌握fullstackJS:构建React框架与快速开发应用
- React-Purify: 实现React组件纯净方法的工具介绍
- deck.js:构建现代HTML演示的JavaScript库
- nunn:现代C++17实现的机器学习库开源项目
- Python安装包 Acquisition-4.12-cp35-cp35m-win_amd64.whl.zip 使用说明
- Amaranthus-tuberculatus基因组分析脚本集
- Ubuntu 12.04下Realtek RTL8821AE驱动的向后移植指南
- 掌握Jest环境下的最新jsdom功能
- CAGI Toolkit:开源Asterisk PBX的AGI应用开发
- MyDropDemo: 体验QGraphicsView的拖放功能
- 远程FPGA平台上的Quartus II17.1 LCD色块闪烁现象解析