编译TensorFlow 2.15.0源码时CUDA与TensorRT版本兼容问题求助
解决Ubuntu 22.04编译TensorFlow 2.15.0 GPU版本的TensorRT依赖冲突问题
问题根源
TensorFlow 2.15.0官方文档要求搭配CUDA 12.2,但对应时期TensorRT最高仅支持CUDA ≤12.1,导致无法安装兼容的TensorRT;即使在configure步骤禁用TensorRT,Bazel构建脚本仍会强制检查TensorRT头文件(如NvInferVersion.h),触发编译失败。
可行解决方案
方案1:修改Bazel配置,彻底跳过TensorRT检查
- 编辑
tensorflow/third_party/tensorrt/tensorrt_configure.bzl文件,在_tensorrt_configure_impl函数开头添加判断,当禁用TensorRT时直接返回,跳过后续检查:def _tensorrt_configure_impl(repository_ctx): # 添加以下判断 if repository_ctx.os.environ.get("TF_ENABLE_TENSORRT", "0") == "0": return struct() # 保留原函数剩余代码 - 执行编译前设置环境变量,明确禁用TensorRT:
export TF_ENABLE_TENSORRT=0 bazel build --config=cuda //tensorflow/tools/pip_package:build_pip_package
方案2:降级CUDA到12.1,搭配兼容TensorRT版本
- 卸载CUDA 12.2,安装CUDA 12.1(严格遵循NVIDIA官方安装步骤)
- 安装适配CUDA 12.1的TensorRT版本(如TensorRT 8.6.1)
- 重新运行TensorFlow的
configure脚本,启用TensorRT并指定其安装路径 - 执行原编译命令继续构建
方案3:添加Bazel编译参数强制禁用TensorRT
直接在编译命令中加入--define=tf_enable_tensorrt=false参数,跳过TensorRT相关依赖检查:
bazel build --config=cuda --define=tf_enable_tensorrt=false //tensorflow/tools/pip_package:build_pip_package
验证步骤
编译完成后生成pip包,安装后执行以下代码验证GPU支持:
import tensorflow as tf print(tf.test.is_gpu_available()) print(tf.config.list_physical_devices('GPU'))
内容的提问来源于stack exchange,提问作者Targett-Adams
相关产品推荐
相关产品推荐

