编译带MPI支持的TensorFlow 1.6时出现RDMA头文件缺失错误
解决TensorFlow 1.6编译MPI支持时缺失rdma/rdma_cma.h的问题
我来帮你搞定这个编译问题!你遇到的错误是因为TensorFlow的gdr模块(GPU Direct RDMA)依赖RDMA核心开发库,而你的系统里没安装包含rdma/rdma_cma.h头文件的包。下面给你两种可行的解决思路:
方案1:安装RDMA开发依赖
根据你的Linux发行版选择对应的命令安装所需依赖:
Ubuntu/Debian 系列
执行以下命令更新包列表并安装RDMA开发包:
sudo apt-get update sudo apt-get install librdmacm-dev libibverbs-dev
CentOS/RHEL 系列
用yum安装对应的开发包:
sudo yum install librdmacm-devel libibverbs-devel
安装完成后,重新运行TensorFlow的编译命令就能继续了。
方案2:禁用GDR模块(如果不需要GPU Direct RDMA功能)
如果你只是需要MPI支持,不需要GDR这个GPU直接RDMA的特性,可以直接在编译时禁用它:
- 重新启动TensorFlow的配置脚本:
./configure
- 在配置过程中,当问到类似**"Do you wish to build TensorFlow with GDR support?"**的问题时,选择
No即可。
或者,你也可以直接在bazel编译命令里添加参数禁用GDR,不用重新配置:
bazel build --config=opt --config=cuda --define=with_gdr=false //tensorflow/tools/pip_package:build_pip_package
这样编译时就会跳过GDR模块的编译,自然也就不会再出现找不到头文件的错误了。
内容的提问来源于stack exchange,提问作者Abid Muslim Malik
相关产品推荐
相关产品推荐

