Tensorflow, обслуживающий пользовательскую опцию gpu, не может найти зависимости при компиляции - PullRequest
1 голос
/ 24 февраля 2020

Я следовал инструкциям по созданию пользовательского gpu op для tenorflow и мог создавать разделяемые библиотеки. Для обслуживания тензорного потока я адаптировал требуемые пути, но я получаю ошибку при сборке:

   ERROR: /home/g360/Documents/eduardss/serving/tensorflow_serving/custom_ops/CUSTOM_OP/BUILD:32:1: undeclared inclusion(s) in rule '//tensorflow_serving/custom_ops/CUSTOM_OP:CUSTOM_OP_ops_gpu':
this rule is missing dependency declarations for the following files included by 'tensorflow_serving/custom_ops/CUSTOM_OP/cc/magic_op.cu.cc':
  'external/org_tensorflow/tensorflow/core/platform/stream_executor.h'
  'external/org_tensorflow/tensorflow/stream_executor/cuda/cuda_platform_id.h'
  'external/org_tensorflow/tensorflow/stream_executor/platform.h'
  'external/org_tensorflow/tensorflow/stream_executor/device_description.h'
  'external/org_tensorflow/tensorflow/stream_executor/launch_dim.h'
  'external/org_tensorflow/tensorflow/stream_executor/platform/port.h'
  'external/org_tensorflow/tensorflow/stream_executor/device_options.h'
  'external/org_tensorflow/tensorflow/stream_executor/platform/logging.h'
  'external/org_tensorflow/tensorflow/stream_executor/lib/status.h'
  'external/org_tensorflow/tensorflow/stream_executor/lib/error.h'
  'external/org_tensorflow/tensorflow/stream_executor/lib/status_macros.h'
  'external/org_tensorflow/tensorflow/stream_executor/lib/statusor.h'
  'external/org_tensorflow/tensorflow/stream_executor/lib/statusor_internals.h'
  'external/org_tensorflow/tensorflow/stream_executor/plugin.h'
  'external/org_tensorflow/tensorflow/stream_executor/trace_listener.h'
  'external/org_tensorflow/tensorflow/stream_executor/device_memory.h'
  'external/org_tensorflow/tensorflow/stream_executor/kernel.h'
  'external/org_tensorflow/tensorflow/stream_executor/kernel_cache_config.h'
  'external/org_tensorflow/tensorflow/stream_executor/lib/array_slice.h'
  'external/org_tensorflow/tensorflow/stream_executor/dnn.h'
  'external/org_tensorflow/tensorflow/stream_executor/event.h'
  'external/org_tensorflow/tensorflow/stream_executor/host/host_platform_id.h'
  'external/org_tensorflow/tensorflow/stream_executor/multi_platform_manager.h'
  'external/org_tensorflow/tensorflow/stream_executor/lib/initialize.h'
  'external/org_tensorflow/tensorflow/stream_executor/platform/initialize.h'
  'external/org_tensorflow/tensorflow/stream_executor/platform/platform.h'
  'external/org_tensorflow/tensorflow/stream_executor/platform/default/initialize.h'
  'external/org_tensorflow/tensorflow/stream_executor/platform/dso_loader.h'
  'external/org_tensorflow/tensorflow/stream_executor/platform/default/dso_loader.h'
  'external/org_tensorflow/tensorflow/stream_executor/rocm/rocm_platform_id.h'
  'external/org_tensorflow/tensorflow/stream_executor/scratch_allocator.h'
  'external/org_tensorflow/tensorflow/stream_executor/temporary_device_memory.h'
  'external/org_tensorflow/tensorflow/stream_executor/stream.h'
  'external/org_tensorflow/tensorflow/stream_executor/blas.h'
  'external/org_tensorflow/tensorflow/stream_executor/host_or_device_scalar.h'
  'external/org_tensorflow/tensorflow/stream_executor/fft.h'
  'external/org_tensorflow/tensorflow/stream_executor/platform/thread_annotations.h'
  'external/org_tensorflow/tensorflow/stream_executor/temporary_memory_manager.h'
  'external/org_tensorflow/tensorflow/stream_executor/stream_executor.h'
  'external/org_tensorflow/tensorflow/stream_executor/kernel_spec.h'
  'external/org_tensorflow/tensorflow/stream_executor/stream_executor_pimpl.h'
  'external/org_tensorflow/tensorflow/stream_executor/device_memory_allocator.h'
  'external/org_tensorflow/tensorflow/stream_executor/lib/threadpool.h'
  'external/org_tensorflow/tensorflow/stream_executor/lib/env.h'
  'external/org_tensorflow/tensorflow/stream_executor/lib/thread_options.h'
  'external/org_tensorflow/tensorflow/stream_executor/rng.h'
  'external/org_tensorflow/tensorflow/stream_executor/shared_memory_config.h'
  'external/org_tensorflow/tensorflow/stream_executor/stream_executor_internal.h'
  'external/org_tensorflow/tensorflow/stream_executor/allocator_stats.h'
  'external/org_tensorflow/tensorflow/stream_executor/module_spec.h'
  'external/org_tensorflow/tensorflow/stream_executor/plugin_registry.h'
  'external/org_tensorflow/tensorflow/stream_executor/timer.h'

Импортируется рассматриваемая функция:

#if GOOGLE_CUDA

#define EIGEN_USE_GPU

#include "third_party/eigen3/unsupported/Eigen/CXX11/Tensor"
#include "tensorflow/core/util/gpu_kernel_helper.h"

#include "math.h"

#include <iostream>

Из этих зависимостей, я думаю, gpu_kernel_helper.h является единственной вызывая ошибку, так как мои BUILD зависимости файла:

    deps = [
    "@org_tensorflow//tensorflow/core:framework",
    "@org_tensorflow//tensorflow/core:lib",
    "@org_tensorflow//third_party/eigen3",
] + if_cuda_is_configured([":cuda",  "@local_config_cuda//cuda:cuda_headers"]),

Если я пытаюсь импортировать их напрямую, bazels жалуется, что на пути нет файла BUILD. Я не очень знаком с процессом сборки bazel, поэтому не понимаю, как именно он должен связывать импорт.

EDIT 1 Я использовал tenorflow-Обслуживание 2.1.0 и tenSource / Обслуживание: 2.1.0-devel-gpu docker image. Глядя в @ org_tensorflow / tenorflow / core / BUILD, на самом деле есть ссылка на 'gpu_kernel_helper.h':

tf_cuda_library(
name = "framework",
hdrs = [
       ...
       "util/gpu_kernel_helper.h",
       ]

Но, очевидно, отсутствуют некоторые дальнейшие ссылки вниз по течению?

1 Ответ

0 голосов
/ 24 февраля 2020

Решение: Отсутствующая зависимость может быть связана с:

"@org_tensorflow//tensorflow/core:stream_executor_headers_lib"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...