Building Tensorflow with OpenCL support fails on Ubuntu 18.04

落花浮王杯 提交于 2019-12-06 14:41:00

问题


While trying to compile Tensorflow on Ubuntu 18.04 with this configuration I'm running into this error:

ERROR: /home/joao/Documents/playground/tensorflow/tensorflow/contrib/tensor_forest/hybrid/BUILD:72:1: C++ compilation of rule '//tensorflow/contrib/tensor_forest/hybrid:utils' failed (Exit 1)
In file included from tensorflow/contrib/tensor_forest/hybrid/core/ops/utils.cc:15:
In file included from ./tensorflow/contrib/tensor_forest/hybrid/core/ops/utils.h:20:
In file included from ./tensorflow/core/framework/tensor.h:19:
In file included from ./third_party/eigen3/unsupported/Eigen/CXX11/Tensor:1:
In file included from external/eigen_archive/unsupported/Eigen/CXX11/Tensor:99:
external/eigen_archive/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceSycl.h:163:19: error: no matching member function for call to 'get_access'
    auto ptr =buf.get_access<cl::sycl::access::mode::discard_write, cl::sycl::access::target::host_buffer>().get_pointer();
              ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
external/local_config_sycl/crosstool/../sycl/include/SYCL/buffer.h:532:3: note: candidate template ignored: invalid explicitly-specified argument for template parameter 'accessMode'
  get_access() {
  ^
external/local_config_sycl/crosstool/../sycl/include/SYCL/buffer.h:550:53: note: candidate function template not viable: requires single argument 'cgh', but no arguments were provided
  accessor<T, dimensions, accessMode, accessTarget> get_access(
                                                    ^
external/local_config_sycl/crosstool/../sycl/include/SYCL/buffer.h:572:53: note: candidate function template not viable: requires 3 arguments, but 0 were provided
  accessor<T, dimensions, accessMode, accessTarget> get_access(
                                                    ^
external/local_config_sycl/crosstool/../sycl/include/SYCL/buffer.h:592:53: note: candidate function template not viable: requires at least 2 arguments, but 0 were provided
  accessor<T, dimensions, accessMode, accessTarget> get_access(
                                                    ^
external/local_config_sycl/crosstool/../sycl/include/SYCL/buffer.h:609:68: note: candidate function template not viable: requires 2 arguments, but 0 were provided
  accessor<T, dimensions, accessMode, access::target::host_buffer> get_access(
                                                                   ^
external/local_config_sycl/crosstool/../sycl/include/SYCL/buffer.h:623:68: note: candidate function template not viable: requires at least argument 'range', but no arguments were provided
  accessor<T, dimensions, accessMode, access::target::host_buffer> get_access(
                                                                   ^
In file included from tensorflow/contrib/tensor_forest/hybrid/core/ops/utils.cc:15:
In file included from ./tensorflow/contrib/tensor_forest/hybrid/core/ops/utils.h:20:
In file included from ./tensorflow/core/framework/tensor.h:19:
In file included from ./third_party/eigen3/unsupported/Eigen/CXX11/Tensor:1:
In file included from external/eigen_archive/unsupported/Eigen/CXX11/Tensor:99:
external/eigen_archive/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceSycl.h:195:61: error: no member named 'map_allocator' in namespace 'cl::sycl'
      auto src_buf = cl::sycl::buffer<uint8_t, 1, cl::sycl::map_allocator<uint8_t> >(static_cast<uint8_t*>(static_cast<void*>(const_cast<Index*>(src))), cl::sycl::range<1>(n));
                                                  ~~~~~~~~~~^
external/eigen_archive/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceSycl.h:195:75: error: unexpected type name 'uint8_t': expected expression
      auto src_buf = cl::sycl::buffer<uint8_t, 1, cl::sycl::map_allocator<uint8_t> >(static_cast<uint8_t*>(static_cast<void*>(const_cast<Index*>(src))), cl::sycl::range<1>(n));
                                                                          ^
external/eigen_archive/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceSycl.h:195:86: warning: expression result unused [-Wunused-value]
      auto src_buf = cl::sycl::buffer<uint8_t, 1, cl::sycl::map_allocator<uint8_t> >(static_cast<uint8_t*>(static_cast<void*>(const_cast<Index*>(src))), cl::sycl::range<1>(n));
                                                                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
external/eigen_archive/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceSycl.h:198:31: error: expected unqualified-id
        auto src_acc =src_buf.template get_access<cl::sycl::access::mode::read, cl::sycl::access::target::global_buffer>(cgh);
                              ^
external/eigen_archive/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceSycl.h:198:107: error: nested name specifier 'cl::sycl::access::target::' for declaration does not refer into a class, class template or class template partial specialization
        auto src_acc =src_buf.template get_access<cl::sycl::access::mode::read, cl::sycl::access::target::global_buffer>(cgh);
                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~^
external/eigen_archive/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceSycl.h:198:120: error: expected ';' at end of declaration
        auto src_acc =src_buf.template get_access<cl::sycl::access::mode::read, cl::sycl::access::target::global_buffer>(cgh);
                                                                                                                       ^
                                                                                                                       ;
external/eigen_archive/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceSycl.h:217:62: error: no member named 'map_allocator' in namespace 'cl::sycl'
      auto dest_buf = cl::sycl::buffer<uint8_t, 1, cl::sycl::map_allocator<uint8_t> >(static_cast<uint8_t*>(dst), cl::sycl::range<1>(n));
                                                   ~~~~~~~~~~^
external/eigen_archive/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceSycl.h:217:76: error: unexpected type name 'uint8_t': expected expression
      auto dest_buf = cl::sycl::buffer<uint8_t, 1, cl::sycl::map_allocator<uint8_t> >(static_cast<uint8_t*>(dst), cl::sycl::range<1>(n));
                                                                           ^
external/eigen_archive/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceSycl.h:217:87: warning: expression result unused [-Wunused-value]
      auto dest_buf = cl::sycl::buffer<uint8_t, 1, cl::sycl::map_allocator<uint8_t> >(static_cast<uint8_t*>(dst), cl::sycl::range<1>(n));
                                                                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~
external/eigen_archive/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceSycl.h:220:32: error: expected unqualified-id
        auto dst_acc =dest_buf.template get_access<cl::sycl::access::mode::discard_write, cl::sycl::access::target::global_buffer>(cgh);
                               ^
external/eigen_archive/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceSycl.h:220:117: error: nested name specifier 'cl::sycl::access::target::' for declaration does not refer into a class, class template or class template partial specialization
        auto dst_acc =dest_buf.template get_access<cl::sycl::access::mode::discard_write, cl::sycl::access::target::global_buffer>(cgh);
                                                                                          ~~~~~~~~~~~~~~~~~~~~~~~~~~^
external/eigen_archive/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceSycl.h:220:130: error: expected ';' at end of declaration
        auto dst_acc =dest_buf.template get_access<cl::sycl::access::mode::discard_write, cl::sycl::access::target::global_buffer>(cgh);
                                                                                                                                 ^
                                                                                                                                 ;
2 warnings and 11 errors generated.
Target //tensorflow/tools/pip_package:build_pip_package failed to build
Use --verbose_failures to see the command lines of failed build steps.
INFO: Elapsed time: 170.920s, Critical Path: 39.24s
INFO: 2976 processes: 2976 local.
FAILED: Build did NOT complete successfully

I would really appreciate it if anyone could help me, I've been trying to solve this problem for a while now and nothing seems to work. I've tried compiling it with triSYCL as well and the problem persists, I also have confirmed that compiling without OpenCL support works as expected without any errors.


回答1:


Recently there were interface changes in the SYCL specification, and therefore you need to make sure your TensorFlow source code matches up to the ComputeCpp version.

Follow the guide here and ensure you have downloaded the latest version of ComputeCpp and have an up to date version of the source code from GitHub. Note that you need to use the Codeplay branch here because changes take some time to be propagated into the main TensorFlow repository, this is outlined in the guide.




回答2:


The accepted answer is not really helping since i followed the linked guide since the beginning on a fresh install of Ubuntu and i am getting the OP errors too.

I started with the last version of Bazel and ComputeCpp on the codeplay git repo of tensorflow on the eieigen_sycl branch, but different errors were raised without the downgrade of Bazel and the introduction of:

--incompatible_load_argument_is_label=false
--incompatible_disallow_uncalled_set_constructor=false

EDIT

I tried to progressively downgrade ComputeCpp from 1.0.1 down to 0.6.1 > without improvements (more/less warnings, same errors).

I tried also using this alternative git repo (https://github.com/lukeiwanski/tensorflow/tree/dev/amd_gpu) with no luck ( as described here: https://www.reddit.com/r/tensorflow/comments/8hwntf/tensorflow_on_ubuntu_1804_with_amd_gpu_tips/), same problem.

I'm now using Bazel 0.11.0 with the following command:

bazel build -c opt --config=sycl --incompatible_load_argument_is_label=false --incompatible_disallow_uncalled_set_constructor=false //tensorflow/tools/pip_package:build_pip_package

Here my build output:

INFO: Found 1 target...
ERROR: /home/mlnode/tf2/tensorflow/tensorflow/core/BUILD:2024:1: C++ compilation of rule '//tensorflow/core:lib_internal_impl' failed (Exit 1)
In file included from tensorflow/core/lib/random/random_distributions.cc:16:
In file included from ./tensorflow/core/lib/random/distribution_sampler.h:38:
In file included from ./tensorflow/core/lib/random/simple_philox.h:24:
In file included from ./tensorflow/core/lib/random/random_distributions.h:28:
In file included from ./third_party/eigen3/unsupported/Eigen/CXX11/Tensor:1:
In file included from external/eigen_archive/unsupported/Eigen/CXX11/Tensor:99:
external/eigen_archive/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceSycl.h:163:19: error: no matching member function for call to 'get_access'
    auto ptr =buf.get_access<cl::sycl::access::mode::discard_write, cl::sycl::access::target::host_buffer>().get_pointer();
              ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
external/local_config_sycl/crosstool/../sycl/include/SYCL/buffer.h:624:3: note: candidate template ignored: invalid explicitly-specified argument for template parameter 'accessMode'
  get_access() {
  ^
external/local_config_sycl/crosstool/../sycl/include/SYCL/buffer.h:642:53: note: candidate function template not viable: requires single argument 'cgh', but no arguments were provided
  accessor<T, dimensions, accessMode, accessTarget> get_access(
                                                    ^
external/local_config_sycl/crosstool/../sycl/include/SYCL/buffer.h:664:53: note: candidate function template not viable: requires 3 arguments, but 0 were provided
  accessor<T, dimensions, accessMode, accessTarget> get_access(
                                                    ^
external/local_config_sycl/crosstool/../sycl/include/SYCL/buffer.h:684:53: note: candidate function template not viable: requires at least 2 arguments, but 0 were provided
  accessor<T, dimensions, accessMode, accessTarget> get_access(
                                                    ^
external/local_config_sycl/crosstool/../sycl/include/SYCL/buffer.h:701:68: note: candidate function template not viable: requires 2 arguments, but 0 were provided
  accessor<T, dimensions, accessMode, access::target::host_buffer> get_access(
                                                                   ^
external/local_config_sycl/crosstool/../sycl/include/SYCL/buffer.h:715:68: note: candidate function template not viable: requires at least argument 'range', but no arguments were provided
  accessor<T, dimensions, accessMode, access::target::host_buffer> get_access(
                                                                   ^
In file included from tensorflow/core/lib/random/random_distributions.cc:16:
In file included from ./tensorflow/core/lib/random/distribution_sampler.h:38:
In file included from ./tensorflow/core/lib/random/simple_philox.h:24:
In file included from ./tensorflow/core/lib/random/random_distributions.h:28:
In file included from ./third_party/eigen3/unsupported/Eigen/CXX11/Tensor:1:
In file included from external/eigen_archive/unsupported/Eigen/CXX11/Tensor:99:
external/eigen_archive/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceSycl.h:195:61: error: no member named 'map_allocator' in namespace 'cl::sycl'
      auto src_buf = cl::sycl::buffer<uint8_t, 1, cl::sycl::map_allocator<uint8_t> >(static_cast<uint8_t*>(static_cast<void*>(const_cast<Index*>(src))), cl::sycl::range<1>(n));
                                                  ~~~~~~~~~~^
external/eigen_archive/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceSycl.h:195:75: error: unexpected type name 'uint8_t': expected expression
      auto src_buf = cl::sycl::buffer<uint8_t, 1, cl::sycl::map_allocator<uint8_t> >(static_cast<uint8_t*>(static_cast<void*>(const_cast<Index*>(src))), cl::sycl::range<1>(n));
                                                                          ^
external/eigen_archive/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceSycl.h:195:86: warning: expression result unused [-Wunused-value]
      auto src_buf = cl::sycl::buffer<uint8_t, 1, cl::sycl::map_allocator<uint8_t> >(static_cast<uint8_t*>(static_cast<void*>(const_cast<Index*>(src))), cl::sycl::range<1>(n));
                                                                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
external/eigen_archive/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceSycl.h:198:31: error: expected unqualified-id
        auto src_acc =src_buf.template get_access<cl::sycl::access::mode::read, cl::sycl::access::target::global_buffer>(cgh);
                              ^
external/eigen_archive/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceSycl.h:198:107: error: nested name specifier 'cl::sycl::access::target::' for declaration does not refer into a class, class template or class template partial specialization
        auto src_acc =src_buf.template get_access<cl::sycl::access::mode::read, cl::sycl::access::target::global_buffer>(cgh);
                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~^
external/eigen_archive/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceSycl.h:198:120: error: expected ';' at end of declaration
        auto src_acc =src_buf.template get_access<cl::sycl::access::mode::read, cl::sycl::access::target::global_buffer>(cgh);
                                                                                                                       ^
                                                                                                                       ;
external/eigen_archive/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceSycl.h:217:62: error: no member named 'map_allocator' in namespace 'cl::sycl'
      auto dest_buf = cl::sycl::buffer<uint8_t, 1, cl::sycl::map_allocator<uint8_t> >(static_cast<uint8_t*>(dst), cl::sycl::range<1>(n));
                                                   ~~~~~~~~~~^
external/eigen_archive/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceSycl.h:217:76: error: unexpected type name 'uint8_t': expected expression
      auto dest_buf = cl::sycl::buffer<uint8_t, 1, cl::sycl::map_allocator<uint8_t> >(static_cast<uint8_t*>(dst), cl::sycl::range<1>(n));
                                                                           ^
external/eigen_archive/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceSycl.h:217:87: warning: expression result unused [-Wunused-value]
      auto dest_buf = cl::sycl::buffer<uint8_t, 1, cl::sycl::map_allocator<uint8_t> >(static_cast<uint8_t*>(dst), cl::sycl::range<1>(n));
                                                                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~
external/eigen_archive/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceSycl.h:220:32: error: expected unqualified-id
        auto dst_acc =dest_buf.template get_access<cl::sycl::access::mode::discard_write, cl::sycl::access::target::global_buffer>(cgh);
                               ^
external/eigen_archive/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceSycl.h:220:117: error: nested name specifier 'cl::sycl::access::target::' for declaration does not refer into a class, class template or class template partial specialization
        auto dst_acc =dest_buf.template get_access<cl::sycl::access::mode::discard_write, cl::sycl::access::target::global_buffer>(cgh);
                                                                                          ~~~~~~~~~~~~~~~~~~~~~~~~~~^
external/eigen_archive/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceSycl.h:220:130: error: expected ';' at end of declaration
        auto dst_acc =dest_buf.template get_access<cl::sycl::access::mode::discard_write, cl::sycl::access::target::global_buffer>(cgh);
                                                                                                                                 ^
                                                                                                                                 ;
In file included from tensorflow/core/lib/random/random_distributions.cc:16:
In file included from ./tensorflow/core/lib/random/distribution_sampler.h:38:
In file included from ./tensorflow/core/lib/random/simple_philox.h:24:
In file included from ./tensorflow/core/lib/random/random_distributions.h:28:
In file included from ./third_party/eigen3/unsupported/Eigen/CXX11/Tensor:1:
In file included from external/eigen_archive/unsupported/Eigen/CXX11/Tensor:146:
In file included from external/eigen_archive/unsupported/Eigen/CXX11/src/Tensor/TensorSycl.h:110:
external/eigen_archive/unsupported/Eigen/CXX11/src/Tensor/TensorConvolutionSycl.h:54:47: warning: 'get_local' is deprecated: SYCL 1.2.1 revision 3 replaces nd_item::get_local with nd_item::get_local_id. [-Wdeprecated-declarations]
    const size_t plane_kernel_offset = itemID.get_local(1) * num_x_input;
                                              ^
external/local_config_sycl/crosstool/../sycl/include/SYCL/item.h:308:3: note: 'get_local' has been explicitly marked deprecated here
  COMPUTECPP_DEPRECATED_API(
  ^
external/local_config_sycl/crosstool/../sycl/include/SYCL/predefines.h:475:45: note: expanded from macro 'COMPUTECPP_DEPRECATED_API'
#define COMPUTECPP_DEPRECATED_API(reason) [[deprecated(reason)]]
                                            ^
In file included from tensorflow/core/lib/random/random_distributions.cc:16:
In file included from ./tensorflow/core/lib/random/distribution_sampler.h:38:
In file included from ./tensorflow/core/lib/random/simple_philox.h:24:
In file included from ./tensorflow/core/lib/random/random_distributions.h:28:
In file included from ./third_party/eigen3/unsupported/Eigen/CXX11/Tensor:1:
In file included from external/eigen_archive/unsupported/Eigen/CXX11/Tensor:146:
In file included from external/eigen_archive/unsupported/Eigen/CXX11/src/Tensor/TensorSycl.h:110:
external/eigen_archive/unsupported/Eigen/CXX11/src/Tensor/TensorConvolutionSycl.h:56:95: warning: 'get_global' is deprecated: SYCL 1.2.1 revision 3 replaces nd_item::get_global with nd_item::get_global_id. [-Wdeprecated-declarations]
    const size_t plane_tensor_offset =indexMapper.mapCudaInputPlaneToTensorInputOffset(itemID.get_global(1));
                                                                                              ^
external/local_config_sycl/crosstool/../sycl/include/SYCL/item.h:272:3: note: 'get_global' has been explicitly marked deprecated here
  COMPUTECPP_DEPRECATED_API(
  ^
external/local_config_sycl/crosstool/../sycl/include/SYCL/predefines.h:475:45: note: expanded from macro 'COMPUTECPP_DEPRECATED_API'
#define COMPUTECPP_DEPRECATED_API(reason) [[deprecated(reason)]]
                                            ^
In file included from tensorflow/core/lib/random/random_distributions.cc:16:
In file included from ./tensorflow/core/lib/random/distribution_sampler.h:38:
In file included from ./tensorflow/core/lib/random/simple_philox.h:24:
In file included from ./tensorflow/core/lib/random/random_distributions.h:28:
In file included from ./third_party/eigen3/unsupported/Eigen/CXX11/Tensor:1:
In file included from external/eigen_archive/unsupported/Eigen/CXX11/Tensor:146:
In file included from external/eigen_archive/unsupported/Eigen/CXX11/src/Tensor/TensorSycl.h:110:
external/eigen_archive/unsupported/Eigen/CXX11/src/Tensor/TensorConvolutionSycl.h:58:28: warning: 'get_local' is deprecated: SYCL 1.2.1 revision 3 replaces nd_item::get_local with nd_item::get_local_id. [-Wdeprecated-declarations]
    for (size_t i = itemID.get_local(0); i < num_x_input ; i += itemID.get_local_range()[0]) {
                           ^
external/local_config_sycl/crosstool/../sycl/include/SYCL/item.h:308:3: note: 'get_local' has been explicitly marked deprecated here
  COMPUTECPP_DEPRECATED_API(
  ^
external/local_config_sycl/crosstool/../sycl/include/SYCL/predefines.h:475:45: note: expanded from macro 'COMPUTECPP_DEPRECATED_API'
#define COMPUTECPP_DEPRECATED_API(reason) [[deprecated(reason)]]
                                            ^
In file included from tensorflow/core/lib/random/random_distributions.cc:16:
In file included from ./tensorflow/core/lib/random/distribution_sampler.h:38:
In file included from ./tensorflow/core/lib/random/simple_philox.h:24:
In file included from ./tensorflow/core/lib/random/random_distributions.h:28:
In file included from ./third_party/eigen3/unsupported/Eigen/CXX11/Tensor:1:
In file included from external/eigen_archive/unsupported/Eigen/CXX11/Tensor:146:
In file included from external/eigen_archive/unsupported/Eigen/CXX11/src/Tensor/TensorSycl.h:110:
external/eigen_archive/unsupported/Eigen/CXX11/src/Tensor/TensorConvolutionSycl.h:61:72: warning: 'get_global' is deprecated: SYCL 1.2.1 revision 3 replaces nd_item::get_global with nd_item::get_global_id. [-Wdeprecated-declarations]
      if(((i + first_input_start) < (range_x +kernelSize-1)) && itemID.get_global(1)< range_y){
                                                                       ^
external/local_config_sycl/crosstool/../sycl/include/SYCL/item.h:272:3: note: 'get_global' has been explicitly marked deprecated here
  COMPUTECPP_DEPRECATED_API(
  ^
external/local_config_sycl/crosstool/../sycl/include/SYCL/predefines.h:475:45: note: expanded from macro 'COMPUTECPP_DEPRECATED_API'
#define COMPUTECPP_DEPRECATED_API(reason) [[deprecated(reason)]]
                                            ^
In file included from tensorflow/core/lib/random/random_distributions.cc:16:
In file included from ./tensorflow/core/lib/random/distribution_sampler.h:38:
In file included from ./tensorflow/core/lib/random/simple_philox.h:24:
In file included from ./tensorflow/core/lib/random/random_distributions.h:28:
In file included from ./third_party/eigen3/unsupported/Eigen/CXX11/Tensor:1:
In file included from external/eigen_archive/unsupported/Eigen/CXX11/Tensor:146:
In file included from external/eigen_archive/unsupported/Eigen/CXX11/src/Tensor/TensorSycl.h:110:
external/eigen_archive/unsupported/Eigen/CXX11/src/Tensor/TensorConvolutionSycl.h:71:15: warning: 'get_global' is deprecated: SYCL 1.2.1 revision 3 replaces nd_item::get_global with nd_item::get_global_id. [-Wdeprecated-declarations]
    if(itemID.get_global(0)< range_x && itemID.get_global(1)< range_y){
              ^
external/local_config_sycl/crosstool/../sycl/include/SYCL/item.h:272:3: note: 'get_global' has been explicitly marked deprecated here
  COMPUTECPP_DEPRECATED_API(
  ^
external/local_config_sycl/crosstool/../sycl/include/SYCL/predefines.h:475:45: note: expanded from macro 'COMPUTECPP_DEPRECATED_API'
#define COMPUTECPP_DEPRECATED_API(reason) [[deprecated(reason)]]
                                            ^
In file included from tensorflow/core/lib/random/random_distributions.cc:16:
In file included from ./tensorflow/core/lib/random/distribution_sampler.h:38:
In file included from ./tensorflow/core/lib/random/simple_philox.h:24:
In file included from ./tensorflow/core/lib/random/random_distributions.h:28:
In file included from ./third_party/eigen3/unsupported/Eigen/CXX11/Tensor:1:
In file included from external/eigen_archive/unsupported/Eigen/CXX11/Tensor:146:
In file included from external/eigen_archive/unsupported/Eigen/CXX11/src/Tensor/TensorSycl.h:110:
external/eigen_archive/unsupported/Eigen/CXX11/src/Tensor/TensorConvolutionSycl.h:71:48: warning: 'get_global' is deprecated: SYCL 1.2.1 revision 3 replaces nd_item::get_global with nd_item::get_global_id. [-Wdeprecated-declarations]
    if(itemID.get_global(0)< range_x && itemID.get_global(1)< range_y){
                                               ^
external/local_config_sycl/crosstool/../sycl/include/SYCL/item.h:272:3: note: 'get_global' has been explicitly marked deprecated here
  COMPUTECPP_DEPRECATED_API(
  ^
external/local_config_sycl/crosstool/../sycl/include/SYCL/predefines.h:475:45: note: expanded from macro 'COMPUTECPP_DEPRECATED_API'
#define COMPUTECPP_DEPRECATED_API(reason) [[deprecated(reason)]]
                                            ^
In file included from tensorflow/core/lib/random/random_distributions.cc:16:
In file included from ./tensorflow/core/lib/random/distribution_sampler.h:38:
In file included from ./tensorflow/core/lib/random/simple_philox.h:24:
In file included from ./tensorflow/core/lib/random/random_distributions.h:28:
In file included from ./third_party/eigen3/unsupported/Eigen/CXX11/Tensor:1:
In file included from external/eigen_archive/unsupported/Eigen/CXX11/Tensor:146:
In file included from external/eigen_archive/unsupported/Eigen/CXX11/src/Tensor/TensorSycl.h:110:
external/eigen_archive/unsupported/Eigen/CXX11/src/Tensor/TensorConvolutionSycl.h:73:56: warning: 'get_local' is deprecated: SYCL 1.2.1 revision 3 replaces nd_item::get_local with nd_item::get_local_id. [-Wdeprecated-declarations]
      const size_t index = plane_kernel_offset+ itemID.get_local(0);
                                                       ^
external/local_config_sycl/crosstool/../sycl/include/SYCL/item.h:308:3: note: 'get_local' has been explicitly marked deprecated here
  COMPUTECPP_DEPRECATED_API(
  ^
external/local_config_sycl/crosstool/../sycl/include/SYCL/predefines.h:475:45: note: expanded from macro 'COMPUTECPP_DEPRECATED_API'
#define COMPUTECPP_DEPRECATED_API(reason) [[deprecated(reason)]]
                                            ^
In file included from tensorflow/core/lib/random/random_distributions.cc:16:
In file included from ./tensorflow/core/lib/random/distribution_sampler.h:38:
In file included from ./tensorflow/core/lib/random/simple_philox.h:24:
In file included from ./tensorflow/core/lib/random/random_distributions.h:28:
In file included from ./third_party/eigen3/unsupported/Eigen/CXX11/Tensor:1:
In file included from external/eigen_archive/unsupported/Eigen/CXX11/Tensor:146:
In file included from external/eigen_archive/unsupported/Eigen/CXX11/src/Tensor/TensorSycl.h:110:
external/eigen_archive/unsupported/Eigen/CXX11/src/Tensor/TensorConvolutionSycl.h:77:93: warning: 'get_global' is deprecated: SYCL 1.2.1 revision 3 replaces nd_item::get_global with nd_item::get_global_id. [-Wdeprecated-declarations]
      const size_t tensor_index = indexMapper.mapCudaOutputPlaneToTensorOutputOffset(itemID.get_global(1))
                                                                                            ^
external/local_config_sycl/crosstool/../sycl/include/SYCL/item.h:272:3: note: 'get_global' has been explicitly marked deprecated here
  COMPUTECPP_DEPRECATED_API(
  ^

[Cutted repetitive output]

external/local_config_sycl/crosstool/../sycl/include/SYCL/predefines.h:475:45: note: expanded from macro 'COMPUTECPP_DEPRECATED_API'
#define COMPUTECPP_DEPRECATED_API(reason) [[deprecated(reason)]]
                                            ^
In file included from tensorflow/core/lib/random/random_distributions.cc:16:
In file included from ./tensorflow/core/lib/random/distribution_sampler.h:38:
In file included from ./tensorflow/core/lib/random/simple_philox.h:24:
In file included from ./tensorflow/core/lib/random/random_distributions.h:28:
In file included from ./third_party/eigen3/unsupported/Eigen/CXX11/Tensor:1:
In file included from external/eigen_archive/unsupported/Eigen/CXX11/Tensor:146:
In file included from external/eigen_archive/unsupported/Eigen/CXX11/src/Tensor/TensorSycl.h:117:
external/eigen_archive/unsupported/Eigen/CXX11/src/Tensor/TensorContractionSycl.h:230:43: warning: 'get_local' is deprecated: SYCL 1.2.1 revision 3 replaces nd_item::get_local with nd_item::get_local_id. [-Wdeprecated-declarations]
      const Index nLocalThreadId = itemID.get_local(1); // Local ID col
                                          ^
external/local_config_sycl/crosstool/../sycl/include/SYCL/item.h:308:3: note: 'get_local' has been explicitly marked deprecated here
  COMPUTECPP_DEPRECATED_API(
  ^
external/local_config_sycl/crosstool/../sycl/include/SYCL/predefines.h:475:45: note: expanded from macro 'COMPUTECPP_DEPRECATED_API'
#define COMPUTECPP_DEPRECATED_API(reason) [[deprecated(reason)]]
                                            ^
40 warnings and 11 errors generated.
Target //tensorflow/tools/pip_package:build_pip_package failed to build
Use --verbose_failures to see the command lines of failed build steps.
INFO: Elapsed time: 4.762s, Critical Path: 4.35s
FAILED: Build did NOT complete successfully

I also had to fix the Bazel workspace file due to a broken minimum version checking, but that seems to have no other downsides after disabling the control.



来源:https://stackoverflow.com/questions/51688885/building-tensorflow-with-opencl-support-fails-on-ubuntu-18-04

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!