tensorflow_catkin编译问题及解决

本文详细介绍了如何在Tensorflow_catkin中启用GPU支持,包括设置CUDA和CUDNN路径,以及解决编译时遇到的eigen下载问题和git冲突。步骤包括复制源码、修改外部依赖配置和升级CMake版本。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

tensorflow_catkin下载:https://github.com/ethz-asl/tensorflow_catkin

默认编译使用CPU:catkin_make

若需要GPU运行:

catkin_make -DUSE_GPU=ON -DCUDA_ROOT=/usr/local/cuda -DCUDNN_ROOT=/usr/local/cuda -DCUDA_VERSION=10.0 -DCUDNN_VERSION=7.6.5 -DNUM_MAKE_JOBS=8 -DCMAKE_CXX_FLAGS="-march=native"

其中:-DUSE_GPU使用GPU运行;-DCUDA_ROOT,-DCUDNN_ROOT,-DCUDA_VERSION,-DCUDNN_VERSION为CUDAA安装信息及版本信息(必须指定); -DNUM_MAKE_JOBS为编译线程数

编译过程出现问题:

1. eigen不能下载;

2. 一次编译成功后,再次编译出现与git相关问题;

解决办法:

step1. 第1次编译时, 将build/tensorflow_catkin/tensorflow_src下的tensorflow_src拷贝到src/tensorflow_catkin下

step2. 修改tensorflow_src/tensorflow/contrib/cmake/external/eigen.cmake eigen下载链接为:

https://mirror.bazel.build/bitbucket.org/eigen/eigen/get/e5e305a158a0.tar.gz

step3. 修改src/tensorflow_catkin/CMakeLists.txt:

# 添加
set(tensorflow_src ${CMAKE_CURRENT_SOURCE_DIR}/tensorflow_src)
# 修改
ExternalProject_Add(tensorflow_src
  # GIT_REPOSITORY https://github.com/tensorflow/tensorflow.git
  # GIT_TAG c1d223de41838e9d387a48137c76ea39d3b38f3f
  # PATCH_COMMAND bash -c "for i in ${PROJECT_SOURCE_DIR}/patches/*.patch\$<SEMICOLON> do git apply -p1 $i\$<SEMICOLON> done"
  UPDATE_COMMAND ""
  BUILD_COMMAND make -j${NUM_MAKE_JOBS} install
  INSTALL_COMMAND echo "Install"
  SOURCE_DIR ${tensorflow_src}
  SOURCE_SUBDIR tensorflow/contrib/cmake
  BINARY_DIR tensorflow_build
  CMAKE_ARGS
    -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
    -DCMAKE_BUILD_TYPE=Release
    -DCMAKE_INSTALL_PREFIX=${CATKIN_DEVEL_PREFIX}
    # General TF options
    -Dtensorflow_BUILD_SHARED_LIB=ON
    -Dtensorflow_BUILD_ALL_KERNELS=ON
    -Dtensorflow_BUILD_CONTRIB_KERNELS=ON
    -Dtensorflow_ENABLE_GRPC_SUPPORT=OFF
    -Dtensorflow_ENABLE_SSL_SUPPORT=OFF
    -Dtensorflow_BUILD_CC_TESTS=OFF
    -Dtensorflow_BUILD_CC_EXAMPLE=OFF
    -Dtensorflow_BUILD_PYTHON_BINDINGS=OFF
    -Dtensorflow_BUILD_PYTHON_TESTS=OFF
    -Dtensorflow_OPTIMIZE_FOR_NATIVE_ARCH=OFF
    # GPU-specific options
    -Dtensorflow_ENABLE_GPU=${USE_GPU}
    -Dtensorflow_PATH_STATIC_LIB=${CUDA_ROOT}/lib64
    -Dtensorflow_CUDA_LIBRARY_PATH=${CUDA_ROOT}/lib64
    -DCUDA_CUDA_LIBRARY=${CUDA_ROOT}/lib64/stubs/libcuda.so
    -Dtensorflow_PATH_NCCL_STATIC_LIB=${NCCL_ROOT}/lib
    -Dtensorflow_CUDNN_INCLUDE=${CUDNN_ROOT}/include
    -Dtensorflow_PATH_CUDNN_STATIC_LIB=${CUDNN_ROOT}/lib64
    -Dtensorflow_CUDA_VERSION=${CUDA_VERSION}
    -Dtensorflow_CUDNN_VERSION=${CUDNN_VERSION}
)

step4. 若cmake版本为3.10或一下, 则升级cmake版本:

wget https://cmake.org/files/v3.13/cmake-3.13.4-Linux-x86_64.sh
chmod +x cmake-3.13.4-Linux-x86_64.sh
sudo ./cmake-3.13.4-Linux-x86_64.sh  --skip-license --prefix=/usr/local
sudo update-alternatives --install /usr/bin/cmake cmake /usr/local/bin/cmake 1 --force
cmake --verion

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值