tensorflow 1.9 ,bazel 0.15.0,源码编ERROR, Skipping, '//tensorflow/tools/pip_package:build_pip_package',error loading packageCuda Configuration Error, Cannot find libdevice.10.bc under /usr/local/cuda-8.0

时间:2024-01-22 08:09:58

最近在看tensorflow 移动端部署,需要编译源码才支持,所以又拾起来了编译这项老工作,其中遇到问题:

bazel build --cxxopt="-D_GLIBCXX_USE_CXX11_ABI=0"  --config=opt --config=cuda //tensorflow/tools/pip_package:build_pip_package
WARNING: The following configs were expanded more than once: [cuda]. For repeatable flags, repeats are counted twice and may lead to unexpected behavior.
ERROR: Skipping '//tensorflow/tools/pip_package:build_pip_package': error loading package 'tensorflow/tools/pip_package': Encountered error while reading extension file 'cuda/build_defs.bzl': no such package '@local_config_cuda//cuda': Traceback (most recent call last):
    File "/home/lyz/code/tensorflow/third_party/gpus/cuda_configure.bzl", line 1166
        _create_local_cuda_repository(repository_ctx)
    File "/home/lyz/code/tensorflow/third_party/gpus/cuda_configure.bzl", line 1001, in _create_local_cuda_repository
        _find_nvvm_libdevice_dir(repository_ctx, cuda_config)
    File "/home/lyz/code/tensorflow/third_party/gpus/cuda_configure.bzl", line 724, in _find_nvvm_libdevice_dir
        auto_configure_fail(("Cannot find libdevice.10.bc un...))
    File "/home/lyz/code/tensorflow/third_party/gpus/cuda_configure.bzl", line 210, in auto_configure_fail
        fail(("\n%sCuda Configuration Error:%...)))

Cuda Configuration Error: Cannot find libdevice.10.bc under /usr/local/cuda-8.0
WARNING: Target pattern parsing failed.
ERROR: error loading package 'tensorflow/tools/pip_package': Encountered error while reading extension file 'cuda/build_defs.bzl': no such package '@local_config_cuda//cuda': Traceback (most recent call last):
    File "/home/lyz/code/tensorflow/third_party/gpus/cuda_configure.bzl", line 1166
        _create_local_cuda_repository(repository_ctx)
    File "/home/lyz/code/tensorflow/third_party/gpus/cuda_configure.bzl", line 1001, in _create_local_cuda_repository
        _find_nvvm_libdevice_dir(repository_ctx, cuda_config)
    File "/home/lyz/code/tensorflow/third_party/gpus/cuda_configure.bzl", line 724, in _find_nvvm_libdevice_dir
        auto_configure_fail(("Cannot find libdevice.10.bc un...))
    File "/home/lyz/code/tensorflow/third_party/gpus/cuda_configure.bzl", line 210, in auto_configure_fail
        fail(("\n%sCuda Configuration Error:%...)))

Cuda Configuration Error: Cannot find libdevice.10.bc under /usr/local/cuda-8.0
INFO: Elapsed time: 0.116s
INFO: 0 processes.
FAILED: Build did NOT complete successfully (0 packages loaded)
    currently loading: tensorflow/tools/pip_package

我一直搜索:ERROR: Skipping '//tensorflow/tools/pip_package:build_pip_package': error loading package 'tensorflow/tools/pip_package': E,说是

将bazel 回滚到0.52版本就可以,但是在./config阶段,其要求bazel 版本是需要0.10.0或以上的,因此不是这个问题,然后关注第二个error:

Cuda Configuration Error: Cannot find libdevice.10.bc under /usr/local/cuda-8.0

执行下面两个命令就可以了。

sudo cp /usr/local/cuda-8.0/nvvm/libdevice/libdevice.compute_50.10.bc /usr/local/cuda-8.0/nvvm/libdevice/libdevice.10.bc

sudo cp  /usr/local/cuda-8.0/nvvm/libdevice/libdevice.10.bc    /usr/local/cuda-8.0/libdevice.10.bc

然后,就可以了。

附:

卸载tensrofiow :sudo pip uninstall tensorflow or sudo pip uninstall tensorflow-gpu

pip 问题:

Traceback (most recent call last):
  File "/usr/local/bin/pip", line 7, in <module>
    from pip._internal import main
ImportError: No module named _internal

from pip._internal import main 改为 from pip  import main

(如果是no main 则相反from pip import main 改为 from pip._internal  import main,是pip升级的问题)