| # Description: |
| # TensorFlow is a computational framework, primarily for use in machine |
| # learning applications. |
| # |
| # Public targets: |
| # |
| # ":protos_all" - exports all core TensorFlow protos |
| # ":protos_all_py" - py_proto_library version (Google-internal) |
| # ":lib" - exports the public non-test headers for: |
| # //third_party/tensorflow/core/platform:: Platform-specific code and external dependencies |
| # lib/: Low-level libraries that are not TensorFlow-specific |
| # ":test" - test equivalent of ":lib". |
| # This is currently public, but may be made internal in the |
| # future. Try to avoid depending on it. |
| # ":framework" - exports the public non-test headers for: |
| # util/: General low-level TensorFlow-specific libraries |
| # framework/: Support for adding new ops & kernels |
| # example/: Wrappers to simplify access to Example proto |
| # ":ops" - defines TensorFlow ops, but no implementations / kernels |
| # ops/: Standard ops |
| # user_ops/: User-supplied ops |
| # This aggregates a number of smaller op libraries (":*_op_lib") |
| # ":core_cpu" - exports the public non-test headers for: |
| # graph/: Support for graphs made up of ops |
| # common_runtime/: Common code for execution of graphs |
| # public/: Public APIs for running graphs |
| # ":core" - The code for ":core_cpu" plus a GPU runtime |
| # ":all_kernels" - The cpu-specific kernels, plus gpu kernels if |
| # built with Cuda |
| # ":tensorflow_opensource" - The complete open-source package, including |
| # ":all_kernels", ":core", and a Session implementation. |
| # ":tensorflow" - "tensorflow_opensource" plus some Google-internal libraries. |
| # ":testlib" - TensorFlow-specific test support, e.g. utilities for testing |
| # kernels. |
| # ":direct_session" - An implementation of the Session interface that |
| # directly runs Graphs via the internal TensorFlow executor. |
| # "framework_lite" - Intended to be used by operator implementations |
| # (kernels) that can also be run outside the tensorflow runtime. This |
| # contains a small set of headers and utilities that can be used for core |
| # kernels, without bringing in libraries that can bloat code size (e.g., |
| # logging is not included because using it will bring in a large amount of |
| # ostream code). |
| # |
| # ":example_parser_configuration" -- A library for extracting the |
| # tensorflow.Example proto configuration from a Graph. |
| # |
| # Public mobile targets, e.g. for Android: |
| # |
| # filegroup ":android_proto_srcs" - Protos |
| # filegroup ":android_srcs" - Core sources |
| # cc_library ":portable_tensorflow_lib" - Native library |
| # cc_library ":portable_tensorflow_lib_lite" - Native library, without ops, |
| # supporting SELECTIVE_REGISTRATION feature. |
| # portable_proto_library ":portable_proto_lib" (Google-internal) |
| # |
| # Note that :framework and :lib have incomplete transitive dependencies (they |
| # declare but do not define some symbols) if framework_shared_object=True |
| # (meaning there is an explicit framework shared object). Missing symbols are |
| # included in //tensorflow:libtensorflow_framework.so. This split supports |
| # custom op registration; see comments on |
| # //tensorflow:libtensorflow_framework.so. It does mean that TensorFlow cc_test |
| # and cc_binary rules will not build. Using tf_cc_test and tf_cc_binary (from |
| # //tensorflow/tensorflow.bzl) will include the necessary symbols in binary |
| # build targets. |
| |
| load( |
| "//tensorflow:tensorflow.bzl", |
| "cc_header_only_library", |
| "if_android", |
| "if_chromiumos", |
| "if_ios", |
| "if_mobile", |
| "if_not_windows", |
| "tf_android_core_proto_headers", |
| "tf_cc_test", |
| "tf_cc_test_mkl", |
| "tf_cc_tests", |
| "tf_copts", |
| "tf_cuda_library", |
| "tf_defines_nortti_if_lite_protos", |
| "tf_features_nomodules_if_mobile", |
| "tf_gen_op_libs", |
| "tf_genrule_cmd_append_to_srcs", |
| "tf_openmp_copts", |
| "tf_opts_nortti_if_lite_protos", |
| "tf_opts_nortti_if_mobile", |
| "tf_portable_full_lite_protos", |
| "transitive_hdrs", |
| ) |
| |
| # buildifier: disable=same-origin-load |
| load("//tensorflow:tensorflow.bzl", "if_nccl") |
| |
| # buildifier: disable=same-origin-load |
| load("//tensorflow:tensorflow.bzl", "tensorflow_opensource_extra_deps") |
| |
| # buildifier: disable=same-origin-load |
| load("//tensorflow:tensorflow.bzl", "tf_cc_test_gpu") |
| |
| # buildifier: disable=same-origin-load |
| load("//tensorflow:tensorflow.bzl", "tf_cc_tests_gpu") |
| |
| # buildifier: disable=same-origin-load |
| load("//tensorflow:tensorflow.bzl", "tf_cuda_cc_test") |
| |
| # buildifier: disable=same-origin-load |
| # Placeholder: load("//tensorflow:tensorflow.bzl", "tf_portable_proto_lib") |
| |
| # buildifier: disable=same-origin-load |
| load("//tensorflow:tensorflow.bzl", "tf_monitoring_deps") |
| |
| # For platform specific build config |
| load( |
| "//tensorflow/core/platform:build_config.bzl", |
| "tf_additional_all_protos", |
| "tf_additional_core_deps", |
| "tf_additional_lib_deps", |
| "tf_additional_test_deps", |
| "tf_jspb_proto_library", |
| "tf_kernel_tests_linkstatic", |
| "tf_lib_proto_parsing_deps", |
| "tf_portable_deps_no_runtime", |
| "tf_proto_library", |
| "tf_proto_library_cc", |
| "tf_protos_all", |
| "tf_protos_all_impl", |
| "tf_protos_grappler", |
| "tf_protos_grappler_impl", |
| "tf_protos_profiler_impl", |
| "tf_pyclif_proto_library", |
| ) |
| load( |
| "//tensorflow/core/platform:rules_cc.bzl", |
| "cc_library", |
| ) |
| load( |
| "//tensorflow/core/platform:build_config_root.bzl", |
| "if_dynamic_kernels", |
| "if_static", |
| "tf_cuda_tests_tags", |
| ) |
| load("@local_config_cuda//cuda:build_defs.bzl", "if_cuda") |
| load("@local_config_tensorrt//:build_defs.bzl", "if_tensorrt") |
| load( |
| "//third_party/mkl:build_defs.bzl", |
| "if_mkl", |
| "mkl_deps", |
| ) |
| # Placeholder for Google-internal load statements. |
| |
| package( |
| default_visibility = [ |
| ":dependency_whitelist", |
| "//tensorflow:internal", |
| "//tensorflow_models:__subpackages__", |
| ], |
| licenses = ["notice"], # Apache 2.0 |
| ) |
| |
| package_group( |
| name = "dependency_whitelist", |
| packages = [ |
| "//learning/freud/topic_models/tensorflow/...", |
| "//perftools/accelerators/xprof/api/...", |
| "//quality/webanswers/brain/tokenization/custom_tf_ops/kernels/...", |
| "//smartass/brain/server/...", |
| ], |
| ) |
| |
| # Export the BUILD file so automated tooling can check licenses |
| exports_files([ |
| "BUILD", |
| "ops/ops.pbtxt", |
| ]) |
| |
| package_group(name = "experimental_access") |
| |
| # Authorized users go here. |
| package_group(name = "friends") |
| |
| # ----------------------------------------------------------------------------- |
| # Public targets |
| |
| # Protos which are needed for core tensorflow, including on mobile builds. |
| # |
| # Note that some protos are in neither additional_core_proto_srcs nor this |
| # filegroup; e.g. ones with individual proto_library targets. |
| # LINT.IfChange |
| COMMON_PROTO_SRCS = [ |
| "protobuf/bfc_memory_map.proto", |
| "protobuf/config.proto", |
| "protobuf/cluster.proto", |
| "protobuf/debug.proto", |
| "protobuf/device_filters.proto", |
| "protobuf/device_properties.proto", |
| "protobuf/graph_debug_info.proto", |
| "protobuf/queue_runner.proto", |
| "protobuf/rewriter_config.proto", |
| "protobuf/tensor_bundle.proto", |
| "protobuf/saver.proto", |
| "protobuf/verifier_config.proto", |
| ] |
| |
| EXAMPLE_PROTO_SRCS = [ |
| "//tensorflow/core/example:example.proto", |
| "//tensorflow/core/example:feature.proto", |
| ] |
| |
| UTIL_PROTO_SRCS = [ |
| "//tensorflow/core/util:event.proto", |
| "//tensorflow/core/util:memmapped_file_system.proto", |
| "//tensorflow/core/util:saved_tensor_slice.proto", |
| ] |
| |
| FRAMEWORK_PROTO_SRCS = [ |
| "//tensorflow/core/framework:allocation_description.proto", |
| "//tensorflow/core/framework:api_def.proto", |
| "//tensorflow/core/framework:attr_value.proto", |
| "//tensorflow/core/framework:cost_graph.proto", |
| "//tensorflow/core/framework:device_attributes.proto", |
| "//tensorflow/core/framework:function.proto", |
| "//tensorflow/core/framework:graph.proto", |
| "//tensorflow/core/framework:graph_transfer_info.proto", |
| "//tensorflow/core/framework:kernel_def.proto", |
| "//tensorflow/core/framework:log_memory.proto", |
| "//tensorflow/core/framework:node_def.proto", |
| "//tensorflow/core/framework:op_def.proto", |
| "//tensorflow/core/framework:reader_base.proto", |
| "//tensorflow/core/framework:remote_fused_graph_execute_info.proto", |
| "//tensorflow/core/framework:resource_handle.proto", |
| "//tensorflow/core/framework:step_stats.proto", |
| "//tensorflow/core/framework:summary.proto", |
| "//tensorflow/core/framework:tensor.proto", |
| "//tensorflow/core/framework:tensor_description.proto", |
| "//tensorflow/core/framework:tensor_shape.proto", |
| "//tensorflow/core/framework:tensor_slice.proto", |
| "//tensorflow/core/framework:types.proto", |
| "//tensorflow/core/framework:variable.proto", |
| "//tensorflow/core/framework:versions.proto", |
| ] |
| |
| PROFILER_PROTO_SRCS = [ |
| "//tensorflow/core/profiler/protobuf:xplane.proto", |
| ] |
| |
| ERROR_CODES_PROTO_SRCS = [ |
| "protobuf/error_codes.proto", |
| "//tensorflow/core/lib/core:error_codes.proto", |
| ] |
| # LINT.ThenChange(//tensorflow/core/portable_proto_config.asciipb) |
| |
| CORE_PROTO_SRCS = COMMON_PROTO_SRCS + EXAMPLE_PROTO_SRCS + FRAMEWORK_PROTO_SRCS + UTIL_PROTO_SRCS + PROFILER_PROTO_SRCS + ERROR_CODES_PROTO_SRCS |
| |
| tf_proto_library( |
| name = "protos_all", |
| srcs = [], |
| cc_api_version = 2, |
| make_default_target_header_only = True, |
| protodeps = [ |
| ":core_protos", |
| ":error_codes_proto_impl", |
| "//tensorflow/core/example:protos_all", |
| "//tensorflow/core/framework:protos_all", |
| "//tensorflow/core/lib/core:error_codes_proto", |
| "//tensorflow/core/util:protos_all", |
| "//tensorflow/core/util:test_log_proto_impl", |
| ], |
| visibility = ["//visibility:public"], |
| ) |
| |
| tf_jspb_proto_library( |
| name = "protos_all_jspb_proto", |
| visibility = ["//visibility:public"], |
| deps = [":protos_all"], |
| ) |
| |
| alias( |
| name = "example_protos", |
| actual = "//tensorflow/core/example:example_protos", |
| visibility = ["//visibility:public"], |
| ) |
| |
| java_proto_library( |
| name = "example_java_proto", |
| visibility = ["//visibility:public"], |
| deps = [":example_protos"], |
| ) |
| |
| cc_library( |
| name = "platform_base", |
| hdrs = ["//tensorflow/core/platform:base_hdrs"], |
| copts = tf_copts(), |
| tags = ["avoid_dep"], |
| visibility = [":__subpackages__"], |
| deps = [ |
| "//tensorflow/core/platform", |
| "//tensorflow/core/platform:byte_order", |
| "//tensorflow/core/platform:cord", |
| "//tensorflow/core/platform:env_time", |
| "//tensorflow/core/platform:logging", |
| "//tensorflow/core/platform:macros", |
| "//tensorflow/core/platform:threadpool_interface", |
| "//tensorflow/core/platform:threadpool_options", |
| "//tensorflow/core/platform:types", |
| "@com_google_absl//absl/base", |
| "@com_google_absl//absl/strings", |
| ], |
| ) |
| |
| alias( |
| name = "framework_bounds_check", |
| actual = "//tensorflow/core/framework:bounds_check", |
| visibility = ["//tensorflow/core/kernels:friends"], |
| ) |
| |
| alias( |
| name = "human_readable_json", |
| actual = "//tensorflow/core/platform:human_readable_json", |
| ) |
| |
| # Minimal lib so that tools used for mobile compilation |
| # don't have to depend on lib/platformlib. |
| cc_library( |
| name = "lib_proto_parsing", |
| hdrs = [ |
| "//tensorflow/core/lib/bfloat16:bfloat16.h", |
| "//tensorflow/core/lib/core:legacy_lib_proto_parsing_headers", |
| "//tensorflow/core/lib/strings:legacy_lib_proto_parsing_headers", |
| "//tensorflow/core/platform:lib_proto_parsing_hdrs", |
| ], |
| copts = tf_copts(), |
| deps = tf_lib_proto_parsing_deps() + [ |
| ":platform_base", |
| "@com_google_absl//absl/strings", |
| "@double_conversion//:double-conversion", |
| "//tensorflow/core/lib/bfloat16", |
| "//tensorflow/core/lib/core:errors", |
| "//tensorflow/core/lib/core:stringpiece", |
| "//tensorflow/core/lib/core:status", |
| "//tensorflow/core/lib/strings:numbers", |
| "//tensorflow/core/lib/strings:strcat", |
| "//tensorflow/core/platform:platform_port", |
| "//tensorflow/core/platform:logging", |
| "//tensorflow/core/platform:macros", |
| "//tensorflow/core/platform:protobuf", |
| "//tensorflow/core/platform", |
| "//tensorflow/core/platform:status", |
| "//tensorflow/core/platform:stringpiece", |
| "//tensorflow/core/platform:tstring", |
| "//tensorflow/core/platform:types", |
| ], |
| ) |
| |
| # This build rule (along with :lib_internal, :framework, and |
| # :framework_internal) purposefully omits the definitions of many declared |
| # symbols, which are included in //tensorflow:libtensorflow_framework.so. Using |
| # tf_cc_test and tf_cc_binary will include the necessary symbols. |
| cc_library( |
| name = "lib", |
| hdrs = [ |
| "//tensorflow/core/lib/bfloat16:bfloat16.h", |
| "//tensorflow/core/lib/core:legacy_lib_core_headers", |
| "//tensorflow/core/lib/gtl:legacy_lib_gtl_headers", |
| "//tensorflow/core/lib/hash:legacy_lib_hash_all_headers", |
| "//tensorflow/core/lib/histogram:legacy_lib_histogram_all_headers", |
| "//tensorflow/core/lib/io:legacy_lib_io_headers", |
| "//tensorflow/core/lib/math:math_util.h", |
| "//tensorflow/core/lib/monitoring:legacy_lib_monitoring_lib_headers", |
| "//tensorflow/core/lib/random:legacy_lib_random_headers", |
| "//tensorflow/core/lib/strings:legacy_lib_string_headers", |
| "//tensorflow/core/platform:lib_hdrs", |
| "//tensorflow/core/util:lib_hdrs", |
| ], |
| visibility = ["//visibility:public"], |
| deps = [ |
| ":lib_internal", |
| "@com_google_absl//absl/container:inlined_vector", |
| "@com_google_absl//absl/strings", |
| "@com_google_absl//absl/types:optional", |
| ], |
| ) |
| |
| # APIs defined in lib_experimental are for experimental usage and may be |
| # subject to change. Its visibility is limited to selected packages. |
| cc_library( |
| name = "lib_experimental", |
| hdrs = [ |
| "//tensorflow/core/lib/core:legacy_lib_core_threadpool_options_header", |
| ], |
| visibility = [ |
| ":experimental_access", |
| "//tensorflow/cc:__pkg__", |
| ], |
| deps = [ |
| ":lib", |
| ], |
| ) |
| |
| alias( |
| name = "feature_util", |
| actual = "//tensorflow/core/example:feature_util", |
| visibility = ["//visibility:public"], |
| ) |
| |
| # DEPRECATED: use platform:stringpiece instead. |
| cc_library( |
| name = "core_stringpiece", |
| hdrs = ["//tensorflow/core/lib/core:legacy_lib_core_stringpiece_header"], |
| copts = tf_copts(), |
| deps = [ |
| "//tensorflow/core/platform:stringpiece", |
| ], |
| ) |
| |
| # Test support library needed for all tests |
| # This is currently public, but may be made internal in the |
| # future. Try to avoid depending on it. |
| |
| cc_library( |
| name = "test", |
| testonly = 1, |
| srcs = [ |
| "//tensorflow/core/platform:legacy_test_srcs", |
| ], |
| hdrs = [ |
| "//tensorflow/core/lib/core:legacy_lib_core_status_test_util_header", |
| "//tensorflow/core/platform:test_hdrs", |
| "//tensorflow/core/util:test_hdrs", |
| ], |
| copts = tf_copts(), |
| linkopts = select({ |
| "//tensorflow:windows": [], |
| "//conditions:default": ["-lm"], |
| }), |
| visibility = ["//visibility:public"], |
| deps = [ |
| ":function_ops_op_lib", |
| ":functional_ops_op_lib", |
| ":lib", |
| ":lib_internal", |
| ":protos_all_cc", |
| "//tensorflow/core/platform/default/build_config:gtest", |
| "//tensorflow/core/kernels:required", |
| "@com_google_googletest//:gtest", |
| ] + tf_additional_test_deps(), |
| ) |
| |
| # This build rule (along with :framework_internal, :lib, and :lib_internal) |
| # purposefully omits the definitions of many declared symbols, which are |
| # included in //tensorflow:libtensorflow_framework.so. Using tf_cc_test and tf_cc_binary |
| # will include the necessary symbols. |
| tf_cuda_library( |
| name = "framework", |
| hdrs = [ |
| "//tensorflow/core/example:feature_util.h", |
| "//tensorflow/core/framework:allocator.h", |
| "//tensorflow/core/framework:allocator_registry.h", |
| "//tensorflow/core/framework:attr_value_util.h", |
| "//tensorflow/core/framework:bfloat16.h", |
| "//tensorflow/core/framework:bounds_check.h", |
| "//tensorflow/core/framework:cancellation.h", |
| "//tensorflow/core/framework:collective.h", |
| "//tensorflow/core/framework:common_shape_fns.h", |
| "//tensorflow/core/framework:control_flow.h", # TODO(josh11b): Make internal? |
| "//tensorflow/core/framework:dataset.h", |
| "//tensorflow/core/framework:dataset_stateful_op_whitelist.h", |
| "//tensorflow/core/framework:device_base.h", |
| "//tensorflow/core/framework:function.h", |
| "//tensorflow/core/framework:function_handle_cache.h", |
| "//tensorflow/core/framework:graph_def_util.h", |
| "//tensorflow/core/framework:graph_to_functiondef.h", |
| "//tensorflow/core/framework:kernel_def_builder.h", |
| "//tensorflow/core/framework:kernel_def_util.h", |
| "//tensorflow/core/framework:kernel_shape_util.h", |
| "//tensorflow/core/framework:log_memory.h", |
| "//tensorflow/core/framework:logging.h", |
| "//tensorflow/core/framework:lookup_interface.h", |
| "//tensorflow/core/framework:memory_types.h", |
| "//tensorflow/core/framework:node_def_builder.h", |
| "//tensorflow/core/framework:node_def_util.h", |
| "//tensorflow/core/framework:node_properties.h", |
| "//tensorflow/core/framework:numeric_op.h", |
| "//tensorflow/core/framework:numeric_types.h", |
| "//tensorflow/core/framework:op.h", |
| "//tensorflow/core/framework:op_def_builder.h", |
| "//tensorflow/core/framework:op_def_util.h", |
| "//tensorflow/core/framework:op_kernel.h", |
| "//tensorflow/core/framework:ops_util.h", |
| "//tensorflow/core/framework:partial_tensor_shape.h", |
| "//tensorflow/core/framework:queue_interface.h", |
| "//tensorflow/core/framework:reader_interface.h", |
| "//tensorflow/core/framework:reader_op_kernel.h", |
| "//tensorflow/core/framework:register_types.h", |
| "//tensorflow/core/framework:register_types_traits.h", |
| "//tensorflow/core/framework:resource_mgr.h", |
| "//tensorflow/core/framework:resource_op_kernel.h", |
| "//tensorflow/core/framework:selective_registration.h", |
| "//tensorflow/core/framework:session_state.h", |
| "//tensorflow/core/framework:shape_inference.h", |
| "//tensorflow/core/framework:shared_ptr_variant.h", |
| "//tensorflow/core/framework:stats_aggregator.h", |
| "//tensorflow/core/framework:tensor.h", |
| "//tensorflow/core/framework:tensor_interface.h", |
| "//tensorflow/core/framework:tensor_shape.h", |
| "//tensorflow/core/framework:tensor_slice.h", |
| "//tensorflow/core/framework:tensor_types.h", |
| "//tensorflow/core/framework:tensor_util.h", |
| "//tensorflow/core/framework:thread_factory.h", |
| "//tensorflow/core/framework:tracking_allocator.h", |
| "//tensorflow/core/framework:type_index.h", |
| "//tensorflow/core/framework:type_traits.h", |
| "//tensorflow/core/framework:typed_allocator.h", |
| "//tensorflow/core/framework:types.h", |
| "//tensorflow/core/framework:variant.h", |
| "//tensorflow/core/framework:variant_encode_decode.h", |
| "//tensorflow/core/framework:variant_op_registry.h", |
| "//tensorflow/core/framework:variant_tensor_data.h", |
| "//tensorflow/core/util/sparse:framework_group", |
| "//tensorflow/core/util:framework_srcs", |
| "//tensorflow/core/util:memmapped_file_system_hdrs", |
| "//tensorflow/core/public:version.h", |
| ] + if_mkl([ |
| "//tensorflow/core/util:mkl_util_hdrs", |
| ]), |
| visibility = ["//visibility:public"], |
| deps = [ |
| ":framework_internal", |
| "@com_google_absl//absl/base", |
| ], |
| ) |
| |
| # TODO(gonnet): Remove this alias once all users have been moved to the actual target. |
| alias( |
| name = "allocator", |
| actual = "//tensorflow/core/framework:allocator", |
| visibility = ["//visibility:public"], |
| ) |
| |
| # TODO(gonnet): Remove this alias once all users have been moved to the actual target. |
| alias( |
| name = "allocator_registry_impl", |
| actual = "//tensorflow/core/framework:allocator_registry_impl", |
| visibility = ["//visibility:public"], |
| ) |
| |
| alias( |
| name = "overflow", |
| actual = "//tensorflow/core/util:overflow", |
| ) |
| |
| alias( |
| name = "exec_on_stall", |
| actual = "//tensorflow/core/util:exec_on_stall", |
| ) |
| |
| alias( |
| name = "ptr_util", |
| actual = "//tensorflow/core/util:ptr_util", |
| ) |
| |
| # TODO(gonnet): Remove this alias once all users have been moved to the actual target. |
| alias( |
| name = "reader_base", |
| actual = "//tensorflow/core/framework:reader_base", |
| visibility = ["//visibility:public"], |
| ) |
| |
| # TODO(gonnet): Remove this alias once all users have been moved to the actual target. |
| alias( |
| name = "op_gen_lib", |
| actual = "//tensorflow/core/framework:op_gen_lib", |
| visibility = ["//visibility:public"], |
| ) |
| |
| cc_library( |
| name = "session_options", |
| hdrs = ["//tensorflow/core/public:session_options.h"], |
| visibility = ["//visibility:public"], |
| deps = [ |
| ":lib", |
| ":protos_all_cc", |
| ], |
| ) |
| |
| cc_library( |
| name = "framework_lite", |
| hdrs = [ |
| "//tensorflow/core/framework:numeric_types.h", |
| "//tensorflow/core/framework:tensor_types.h", |
| "//tensorflow/core/framework:type_traits.h", |
| "//tensorflow/core/lib/bfloat16:bfloat16.h", |
| "//tensorflow/core/platform:framework_lite_hdrs", |
| "//tensorflow/core/platform/default:integral_types.h", |
| "//tensorflow/core/platform/default:logging.h", |
| ], |
| visibility = ["//visibility:public"], |
| deps = |
| [ |
| "@nsync//:nsync_cpp", |
| ] + [ |
| "//third_party/eigen3", |
| "//tensorflow/core/lib/bfloat16", |
| "//tensorflow/core/platform:dynamic_annotations", |
| "//tensorflow/core/platform:platform_port", |
| "//tensorflow/core/platform:thread_annotations", |
| "//tensorflow/core/platform:mutex", |
| "//tensorflow/core/platform/default/build_config:minimal", |
| "//tensorflow/core/platform:types", |
| ], |
| ) |
| |
| # Generates library per group of ops. |
| tf_gen_op_libs( |
| is_external = False, |
| op_lib_names = [ |
| "batch_ops", |
| "bitwise_ops", |
| "boosted_trees_ops", |
| "tensor_forest_ops", |
| "candidate_sampling_ops", |
| "checkpoint_ops", |
| "clustering_ops", |
| "collective_ops", |
| "control_flow_ops", |
| "ctc_ops", |
| "data_flow_ops", |
| "dataset_ops", |
| "decode_proto_ops", |
| "encode_proto_ops", |
| "experimental_dataset_ops", |
| "function_ops", |
| "functional_ops", |
| "image_ops", |
| "io_ops", |
| "linalg_ops", |
| "list_ops", |
| "lookup_ops", |
| "logging_ops", |
| "manip_ops", |
| "math_ops", |
| "mkl_nn_ops", |
| "nccl_ops", |
| "nn_ops", |
| "no_op", |
| "parsing_ops", |
| "random_grad", |
| "random_ops", |
| "special_math_ops", |
| "stateful_random_ops", |
| "remote_fused_graph_ops", |
| "rnn_ops", |
| "rpc_ops", |
| "scoped_allocator_ops", |
| "sdca_ops", |
| "set_ops", |
| "script_ops", |
| "sendrecv_ops", |
| "sparse_csr_matrix_ops", |
| "sparse_ops", |
| "spectral_ops", |
| "state_ops", |
| "stateless_random_ops", |
| "summary_ops", |
| "training_ops", |
| ], |
| deps = [ |
| ":lib", |
| ":protos_all_cc", |
| ], |
| ) |
| |
| tf_gen_op_libs( |
| op_lib_names = [ |
| "string_ops", |
| ], |
| deps = [ |
| ":lib_internal", |
| ":lib_proto_parsing", |
| "@com_google_absl//absl/strings", |
| ], |
| ) |
| |
| tf_gen_op_libs( |
| op_lib_names = [ |
| "array_ops", |
| ], |
| deps = [ |
| ":lib", |
| ":protos_all_cc", |
| ], |
| ) |
| |
| tf_gen_op_libs( |
| op_lib_names = [ |
| "mkl_array_ops", |
| ], |
| deps = [":protos_all_cc"], |
| ) |
| |
| tf_gen_op_libs( |
| op_lib_names = [ |
| "audio_ops", |
| ], |
| deps = [":lib"], |
| ) |
| |
| tf_gen_op_libs( |
| op_lib_names = ["debug_ops"], |
| deps = [":lib"], |
| ) |
| |
| tf_gen_op_libs( |
| is_external = False, |
| op_lib_names = [ |
| "resource_variable_ops", |
| ], |
| deps = [":lib"], |
| ) |
| |
| tf_gen_op_libs( |
| op_lib_names = [ |
| "tpu_configuration_ops", |
| "tpu_cross_replica_ops", |
| "tpu_embedding_ops", |
| "tpu_embedding_load_retrieve_ops", |
| "tpu_functional_ops", |
| "tpu_heartbeat_ops", |
| "tpu_host_compute_ops", |
| "tpu_infeed_ops", |
| "tpu_outfeed_ops", |
| "tpu_ordinal_selector_ops", |
| "tpu_replication_ops", |
| ], |
| deps = [ |
| ":lib", |
| ":lib_proto_parsing", |
| ":protos_all_cc", |
| "//tensorflow/core/protobuf/tpu:optimization_parameters_proto_cc", |
| "//tensorflow/core/protobuf/tpu:tpu_embedding_configuration_proto_cc", |
| "//tensorflow/core/tpu:tpu_embedding_optimization_parameters_utils", |
| "//tensorflow/core/tpu:tpu_embedding_output_layout_utils", |
| ], |
| ) |
| |
| # And one for all user ops |
| cc_library( |
| name = "user_ops_op_lib", |
| srcs = glob(["user_ops/**/*.cc"]), |
| copts = tf_copts(), |
| linkstatic = 1, |
| visibility = ["//visibility:public"], |
| deps = [":framework"], |
| alwayslink = 1, |
| ) |
| |
| cc_library( |
| name = "word2vec_ops", |
| srcs = ["ops/word2vec_ops.cc"], |
| linkstatic = 1, |
| visibility = ["//tensorflow:internal"], |
| deps = [":framework"], |
| alwayslink = 1, |
| ) |
| |
| cc_library( |
| name = "cudnn_rnn_ops", |
| srcs = [ |
| "ops/cudnn_rnn_ops.cc", |
| ], |
| linkstatic = 1, |
| visibility = ["//tensorflow:internal"], |
| deps = [ |
| ":framework", |
| ":lib", |
| ":lib_internal", |
| ":stream_executor", |
| "//tensorflow/core/kernels:bounds_check_lib", |
| ], |
| alwayslink = 1, |
| ) |
| |
| tf_gen_op_libs( |
| op_lib_names = [ |
| "cudnn_rnn_ops", |
| ], |
| deps = [ |
| ":lib", |
| ], |
| ) |
| |
| cc_library( |
| name = "ragged_ops", |
| deps = [ |
| ":ragged_array_ops_op_lib", |
| ":ragged_conversion_ops_op_lib", |
| ":ragged_math_ops_op_lib", |
| ], |
| ) |
| |
| tf_gen_op_libs( |
| op_lib_names = [ |
| "ragged_array_ops", |
| "ragged_conversion_ops", |
| "ragged_math_ops", |
| ], |
| deps = [":ragged_to_dense_util"], |
| ) |
| |
| cc_library( |
| name = "ragged_to_dense_util", |
| srcs = [ |
| "ops/ragged_to_dense_util.cc", |
| ], |
| hdrs = [ |
| "ops/ragged_to_dense_util.h", |
| ], |
| deps = [ |
| ":framework", |
| ":protos_all_cc", |
| ], |
| ) |
| |
| tf_cc_test( |
| name = "ragged_to_dense_util_test", |
| srcs = [ |
| "ops/ragged_to_dense_util_test.cc", |
| ], |
| deps = [ |
| ":framework", |
| ":protos_all_cc", |
| ":ragged_to_dense_util", |
| ":test", |
| ":testlib", |
| "@com_google_googletest//:gtest_main", |
| ], |
| ) |
| |
| cc_library( |
| name = "ops", |
| visibility = ["//visibility:public"], |
| deps = [ |
| ":array_ops_op_lib", |
| ":audio_ops_op_lib", |
| ":batch_ops_op_lib", |
| ":bitwise_ops_op_lib", |
| ":boosted_trees_ops_op_lib", |
| ":tensor_forest_ops_op_lib", |
| ":candidate_sampling_ops_op_lib", |
| ":checkpoint_ops_op_lib", |
| ":clustering_ops_op_lib", |
| ":collective_ops_op_lib", |
| ":control_flow_ops_op_lib", |
| ":ctc_ops_op_lib", |
| ":cudnn_rnn_ops_op_lib", |
| ":data_flow_ops_op_lib", |
| ":dataset_ops_op_lib", |
| ":debug_ops_op_lib", |
| ":decode_proto_ops_op_lib", |
| ":encode_proto_ops_op_lib", |
| ":experimental_dataset_ops_op_lib", |
| ":function_ops_op_lib", |
| ":functional_ops_op_lib", |
| ":image_ops_op_lib", |
| ":io_ops_op_lib", |
| ":linalg_ops_op_lib", |
| ":list_ops_op_lib", |
| ":logging_ops_op_lib", |
| ":lookup_ops_op_lib", |
| ":manip_ops_op_lib", |
| ":math_ops_op_lib", |
| ":nccl_ops_op_lib", |
| ":nn_ops_op_lib", |
| ":no_op_op_lib", |
| ":parsing_ops_op_lib", |
| ":ragged_ops", |
| ":random_ops_op_lib", |
| ":rnn_ops_op_lib", |
| ":special_math_ops_op_lib", |
| ":stateful_random_ops_op_lib", |
| ":remote_fused_graph_ops_op_lib", |
| ":resource_variable_ops_op_lib", |
| ":rpc_ops_op_lib", |
| ":scoped_allocator_ops_op_lib", |
| ":script_ops_op_lib", |
| ":sdca_ops_op_lib", |
| ":sendrecv_ops_op_lib", |
| ":set_ops_op_lib", |
| ":sparse_csr_matrix_ops_op_lib", |
| ":sparse_ops_op_lib", |
| ":summary_ops_op_lib", |
| ":spectral_ops_op_lib", |
| ":state_ops_op_lib", |
| ":stateless_random_ops_op_lib", |
| ":string_ops_op_lib", |
| ":tpu_configuration_ops_op_lib", |
| ":tpu_cross_replica_ops_op_lib", |
| ":tpu_embedding_ops_op_lib", |
| ":tpu_embedding_load_retrieve_ops_op_lib", |
| ":tpu_functional_ops_op_lib", |
| ":tpu_heartbeat_ops_op_lib", |
| ":tpu_host_compute_ops_op_lib", |
| ":tpu_infeed_ops_op_lib", |
| ":tpu_outfeed_ops_op_lib", |
| ":tpu_ordinal_selector_ops_op_lib", |
| ":tpu_replication_ops_op_lib", |
| ":training_ops_op_lib", |
| ":user_ops_op_lib", |
| ":word2vec_ops", |
| "//tensorflow/c/kernels:bitcast_op_lib", |
| "//tensorflow/compiler/mlir/tensorflow:mlir_passthrough_op", |
| ] + if_mkl([ |
| ":mkl_array_ops_op_lib", |
| ":mkl_nn_ops_op_lib", |
| ]) + if_tensorrt([ |
| "//tensorflow/compiler/tf2tensorrt:trt_engine_resource_ops_op_lib", |
| "//tensorflow/compiler/tf2tensorrt:trt_op_libs", |
| ]), |
| alwayslink = 1, |
| ) |
| |
| cc_library( |
| name = "array_grad", |
| srcs = ["ops/array_grad.cc"], |
| linkstatic = 1, # Needed since alwayslink is broken in bazel b/27630669 |
| visibility = ["//visibility:public"], |
| deps = [ |
| ":array_ops_op_lib", |
| ":framework", |
| ":lib", |
| "//tensorflow/c/kernels:bitcast_op_lib", |
| ], |
| alwayslink = 1, |
| ) |
| |
| cc_library( |
| name = "functional_grad", |
| srcs = ["ops/functional_grad.cc"], |
| linkstatic = 1, # Needed since alwayslink is broken in bazel b/27630669 |
| visibility = ["//visibility:public"], |
| deps = [ |
| ":framework", |
| ":functional_ops_op_lib", |
| ":lib", |
| ], |
| alwayslink = 1, |
| ) |
| |
| cc_library( |
| name = "math_grad", |
| srcs = [ |
| "ops/math_grad.cc", |
| "ops/random_grad.cc", |
| "ops/stateless_random_grad.cc", |
| ], |
| linkstatic = 1, # Needed since alwayslink is broken in bazel b/27630669 |
| visibility = ["//visibility:public"], |
| deps = [ |
| ":framework", |
| ":lib", |
| ":math_ops_op_lib", |
| ":protos_all_cc", |
| ], |
| alwayslink = 1, |
| ) |
| |
| cc_library( |
| name = "nn_grad", |
| srcs = ["ops/nn_grad.cc"], |
| linkstatic = 1, # Needed since alwayslink is broken in bazel b/27630669 |
| visibility = ["//visibility:public"], |
| deps = [ |
| ":framework", |
| ":lib", |
| ":nn_ops_op_lib", |
| ] + if_mkl([ |
| ":mkl_nn_ops_op_lib", |
| ]), |
| alwayslink = 1, |
| ) |
| |
| tf_cuda_library( |
| name = "core_cpu", |
| hdrs = [ |
| "common_runtime/device.h", |
| "common_runtime/device_factory.h", |
| "common_runtime/function.h", |
| "common_runtime/function_optimization_registry.h", |
| "common_runtime/optimization_registry.h", |
| "common_runtime/shape_refiner.h", |
| "//tensorflow/core/graph:core_cpu_headers", |
| "//tensorflow/core/public:session.h", |
| "//tensorflow/core/public:session_options.h", |
| ], |
| visibility = ["//visibility:public"], |
| deps = [ |
| ":core_cpu_internal", |
| ], |
| ) |
| |
| cc_library( |
| name = "core", |
| visibility = ["//visibility:public"], |
| deps = [ |
| ":core_cpu", |
| ":gpu_runtime", |
| ":sycl_runtime", |
| ], |
| ) |
| |
| # This includes implementations of all kernels built into TensorFlow. |
| cc_library( |
| name = "all_kernels_impl", |
| visibility = [":__subpackages__"], |
| deps = [ |
| "//tensorflow/c/kernels:bitcast_op", |
| "//tensorflow/core/kernels:array", |
| "//tensorflow/core/kernels:audio", |
| "//tensorflow/core/kernels:batch_kernels", |
| "//tensorflow/core/kernels:bincount_op", |
| "//tensorflow/core/kernels:boosted_trees_ops", |
| "//tensorflow/core/kernels:tensor_forest_ops", |
| "//tensorflow/core/kernels:candidate_sampler_ops", |
| "//tensorflow/core/kernels:checkpoint_ops", |
| "//tensorflow/core/kernels:clustering_ops", |
| "//tensorflow/core/kernels:collective_ops", |
| "//tensorflow/core/kernels:constant_op", |
| "//tensorflow/core/kernels:control_flow_ops", |
| "//tensorflow/core/kernels:ctc_ops", |
| "//tensorflow/core/kernels:data_flow", |
| "//tensorflow/core/kernels:decode_proto_op", |
| "//tensorflow/core/kernels:encode_proto_op", |
| "//tensorflow/core/kernels:fact_op", |
| "//tensorflow/core/kernels:fake_quant_ops", |
| "//tensorflow/core/kernels:function_ops", |
| "//tensorflow/core/kernels:functional_ops", |
| "//tensorflow/core/kernels:grappler", |
| "//tensorflow/core/kernels:histogram_op", |
| "//tensorflow/core/kernels:image", |
| "//tensorflow/core/kernels:io", |
| "//tensorflow/core/kernels:linalg", |
| "//tensorflow/core/kernels:lookup", |
| "//tensorflow/core/kernels:logging", |
| "//tensorflow/core/kernels:manip", |
| "//tensorflow/core/kernels:math", |
| "//tensorflow/core/kernels:multinomial_op", |
| "//tensorflow/core/kernels:mutex_ops", |
| "//tensorflow/core/kernels:nn", |
| "//tensorflow/core/kernels:parameterized_truncated_normal_op", |
| "//tensorflow/core/kernels:parsing", |
| "//tensorflow/core/kernels:partitioned_function_ops", |
| "//tensorflow/core/kernels:pooling_ops", |
| "//tensorflow/core/kernels:quantized_ops", |
| "//tensorflow/core/kernels:ragged_ops", |
| "//tensorflow/core/kernels:random_ops", |
| "//tensorflow/core/kernels:stateful_random_ops", |
| "//tensorflow/core/kernels:random_binomial_op", |
| "//tensorflow/core/kernels:random_poisson_op", |
| "//tensorflow/core/kernels:remote_fused_graph_ops", |
| "//tensorflow/core/kernels:required", |
| "//tensorflow/core/kernels:resource_variable_ops", |
| "//tensorflow/core/kernels:rnn_ops", |
| "//tensorflow/core/kernels:rpc_op", |
| "//tensorflow/core/kernels:scoped_allocator_ops", |
| "//tensorflow/core/kernels:sdca_ops", |
| "//tensorflow/core/kernels:searchsorted_op", |
| "//tensorflow/core/kernels:set_kernels", |
| "//tensorflow/core/kernels:sparse", |
| "//tensorflow/core/kernels:state", |
| "//tensorflow/core/kernels:stateless_random_ops", |
| "//tensorflow/core/kernels:string", |
| "//tensorflow/core/kernels:summary_kernels", |
| "//tensorflow/core/kernels:training_ops", |
| "//tensorflow/core/kernels:word2vec_kernels", |
| "//tensorflow/core/kernels/sparse:kernels", |
| ] + if_not_windows([ |
| "//tensorflow/core/kernels/neon:neon_depthwise_conv_op", |
| ]) + if_mkl([ |
| "//tensorflow/core/kernels:mkl_aggregate_ops", |
| "//tensorflow/core/kernels:mkl_concat_op", |
| "//tensorflow/core/kernels:mkl_dequantize_op", |
| "//tensorflow/core/kernels:mkl_conv_op", |
| "//tensorflow/core/kernels:mkl_cwise_ops_common", |
| "//tensorflow/core/kernels:mkl_fused_batch_norm_op", |
| "//tensorflow/core/kernels:mkl_identity_op", |
| "//tensorflow/core/kernels:mkl_input_conversion_op", |
| "//tensorflow/core/kernels:mkl_lrn_op", |
| "//tensorflow/core/kernels:mkl_pooling_ops", |
| "//tensorflow/core/kernels:mkl_qmatmul_op", |
| "//tensorflow/core/kernels:mkl_requantize_ops", |
| "//tensorflow/core/kernels:mkl_quantize_op", |
| "//tensorflow/core/kernels:mkl_relu_op", |
| "//tensorflow/core/kernels:mkl_reshape_op", |
| "//tensorflow/core/kernels:mkl_slice_op", |
| "//tensorflow/core/kernels:mkl_softmax_op", |
| "//tensorflow/core/kernels:mkl_transpose_op", |
| "//tensorflow/core/kernels:mkl_batch_matmul_op", |
| "//tensorflow/core/kernels:mkl_matmul_op", |
| "//tensorflow/core/kernels:mkl_tfconv_op", |
| "//tensorflow/core/kernels:mkl_tmp_bf16_ops", |
| ]) + if_cuda([ |
| "//tensorflow/core/kernels:cudnn_rnn_kernels", |
| "//tensorflow/core/grappler/optimizers:gpu_swapping_kernels", |
| "//tensorflow/core/grappler/optimizers:gpu_swapping_ops", |
| ]) + if_nccl([ |
| "//tensorflow/core/kernels:nccl_kernels", |
| ]) + if_tensorrt([ |
| "//tensorflow/compiler/tf2tensorrt:trt_engine_resource_op_kernels", |
| "//tensorflow/compiler/tf2tensorrt:trt_op_kernels", |
| ]), |
| ) |
| |
| cc_library( |
| name = "dynamic_kernels_impl", |
| visibility = [":__subpackages__"], |
| deps = [ |
| "//tensorflow/core/kernels:sobol_op", |
| ], |
| ) |
| |
| cc_library( |
| name = "all_kernels", |
| visibility = ["//visibility:public"], |
| deps = if_dynamic_kernels( |
| [], |
| otherwise = [":dynamic_kernels_impl"], |
| ) + [ |
| # TODO(gunan): Split this up and load the resulting kernels dynamically once |
| # the dependency issues are resolved. |
| ":all_kernels_impl", |
| # TODO(gunan): Work on the API between these and rest of TF and make |
| # these also dynamically loading. |
| "//tensorflow/core/kernels:dataset_ops", # Depends on grappler |
| "//tensorflow/core/kernels:list_kernels", # Depends on variant_op_registry.h |
| ], |
| ) |
| |
| tf_cuda_library( |
| name = "tensorflow_opensource", |
| copts = tf_copts(), |
| visibility = ["//visibility:public"], |
| deps = [ |
| ":all_kernels", |
| ":core", |
| ":direct_session", |
| ":example_parser_configuration", |
| ":gpu_runtime", |
| ":lib", |
| ":ops", |
| ] + tensorflow_opensource_extra_deps(), |
| ) |
| |
| cc_library( |
| name = "tensorflow", |
| visibility = ["//visibility:public"], |
| deps = [ |
| ":tensorflow_opensource", |
| "//tensorflow/core/platform/default/build_config:tensorflow_platform_specific", |
| ], |
| ) |
| |
| cc_library( |
| name = "testlib_kernels_impl", |
| deps = [ |
| "//tensorflow/core/kernels:aggregate_ops", |
| "//tensorflow/core/kernels:bcast_ops", |
| "//tensorflow/core/kernels:cast_op", |
| "//tensorflow/core/kernels:constant_op", |
| "//tensorflow/core/kernels:identity_op", |
| "//tensorflow/core/kernels:random_ops", |
| "//tensorflow/core/kernels:reduction_ops", |
| "//tensorflow/core/kernels:reshape_op", |
| ], |
| ) |
| |
| # Test support library needed for higher-level (TensorFlow-specific) tests |
| cc_library( |
| name = "testlib", |
| testonly = 1, |
| srcs = [ |
| "common_runtime/function_testlib.cc", |
| "common_runtime/kernel_benchmark_testlib.cc", |
| "//tensorflow/core/graph:testlib_srcs", |
| ], |
| hdrs = [ |
| "common_runtime/function_testlib.h", |
| "common_runtime/kernel_benchmark_testlib.h", |
| "common_runtime/test_collective_executor_mgr.h", |
| "//tensorflow/core/graph:testlib_headers", |
| # TODO(josh11b): Drop this once users are depending on |
| # kernels:ops_testutil instead. |
| "//tensorflow/core/kernels:ops_testutil.h", |
| # TODO(gonnet): Stop exporting these headers once users depend on |
| # the tensorflow/core/framework:* targets directly. |
| "//tensorflow/core/framework:shape_inference_testutil.h", |
| "//tensorflow/core/framework:tensor_testutil.h", |
| "//tensorflow/core/framework:fake_input.h", |
| "//tensorflow/core/framework:function_testlib.h", |
| ], |
| copts = tf_copts(), |
| visibility = ["//visibility:public"], |
| deps = [ |
| ":core_cpu", |
| ":core_cpu_internal", |
| ":core_cpu_lib", |
| ":framework", |
| ":framework_internal", |
| ":lib", |
| ":lib_internal", |
| ":ops", |
| ":protos_all_cc", |
| ":test", |
| ":testlib_ops", |
| # TODO(gunan): resolve dependency issues and load these kernels dynamically. |
| ":testlib_kernels_impl", |
| "//tensorflow/cc:scope", |
| "//tensorflow/core/framework:fake_input", |
| "//tensorflow/core/framework:function_testlib", |
| "//tensorflow/core/framework:shape_inference_testutil", |
| "//tensorflow/core/framework:tensor_testutil", |
| "//tensorflow/core/kernels:ops_testutil", |
| "//tensorflow/core/kernels:ops_util", |
| ], |
| ) |
| |
| cc_library( |
| name = "testlib_ops", |
| testonly = 1, |
| srcs = ["common_runtime/testlib_ops.cc"], |
| linkstatic = 1, # Seems to be needed since alwayslink is broken in bazel |
| deps = [ |
| ":framework", |
| ":lib", |
| ], |
| alwayslink = 1, |
| ) |
| |
| # This is a link-only library to provide a DirectSession |
| # implementation of the Session interface. |
| tf_cuda_library( |
| name = "direct_session", |
| copts = tf_copts(), |
| linkstatic = 1, |
| visibility = ["//visibility:public"], |
| deps = [ |
| ":direct_session_internal", |
| ], |
| alwayslink = 1, |
| ) |
| |
| # ----------------------------------------------------------------------------- |
| # MKL targets |
| alias( |
| name = "mkl_graph_util", |
| actual = "//tensorflow/core/graph:mkl_graph_util", |
| ) |
| |
| # ----------------------------------------------------------------------------- |
| # Public Android targets |
| |
| # List of protos we want on android |
| filegroup( |
| name = "android_proto_srcs", |
| srcs = CORE_PROTO_SRCS, |
| visibility = ["//visibility:public"], |
| ) |
| |
| # Sources required to build the TensorFlow framework without the runtime on |
| # mobile platforms. This is essentially the sources required to build |
| # tensorflow/core/framework:tensor without using granular targets. |
| filegroup( |
| name = "mobile_srcs_no_runtime", |
| srcs = [ |
| "//tensorflow/compiler/jit:mobile_srcs_no_runtime", |
| "//tensorflow/core/example:mobile_srcs_no_runtime", |
| "//tensorflow/core/framework:attr_value_proto_text_srcs", |
| "//tensorflow/core/framework:mobile_srcs_no_runtime", |
| "//tensorflow/core/lib/bfloat16:mobile_srcs_no_runtime", |
| "//tensorflow/core/lib/core:mobile_srcs_no_runtime", |
| "//tensorflow/core/lib/gtl:mobile_srcs_no_runtime", |
| "//tensorflow/core/lib/hash:mobile_srcs_no_runtime", |
| "//tensorflow/core/lib/strings:mobile_srcs_no_runtime", |
| "//tensorflow/core/platform:mobile_srcs_no_runtime", |
| "//tensorflow/core/public:mobile_srcs_no_runtime", |
| "//tensorflow/core/util:mobile_srcs_no_runtime", |
| "//tensorflow/core/util/ctc:android_srcs", |
| ] + glob( |
| [ |
| "client/**/*.cc", |
| ], |
| exclude = [ |
| "**/*test.*", |
| "**/*testutil*", |
| "**/*testlib*", |
| "**/*main.cc", |
| ], |
| ), |
| visibility = ["//visibility:private"], |
| ) |
| |
| # Sources required to build the TensorFlow framework with runtime on |
| # mobile platforms without granular targets. It is assumed that the source |
| # files in tensorflow/core:mobile_srcs_no_runtime have been compiled |
| # separately and are linked in as a dependency. |
| filegroup( |
| name = "mobile_srcs_only_runtime", |
| srcs = [ |
| # Sources for which we do not yet have granular targets. |
| "//tensorflow/c/eager:srcs", |
| "//tensorflow/c:srcs", |
| "//tensorflow/core/common_runtime/eager:srcs", |
| "//tensorflow/core/framework:mobile_srcs_only_runtime", |
| "//tensorflow/core/graph:mobile_srcs_only_runtime", |
| "//tensorflow/core/kernels:android_srcs", |
| "//tensorflow/core/lib/io:mobile_srcs_only_runtime", |
| "//tensorflow/core/profiler:mobile_srcs", |
| "//tensorflow/core/public:mobile_srcs_only_runtime", |
| "//tensorflow/core/util/sparse:mobile_srcs_only_runtime", |
| "//tensorflow/core/util/tensor_bundle:android_srcs", |
| "//tensorflow/core/util:mobile_srcs_only_runtime", |
| |
| # Sources for which we already have granular targets. |
| "//tensorflow/core/lib/core:mobile_srcs_only_runtime", |
| "//tensorflow/core/lib/gtl:mobile_srcs_only_runtime", |
| "//tensorflow/core/lib/hash:mobile_srcs_only_runtime", |
| "//tensorflow/core/lib/histogram:mobile_srcs_only_runtime", |
| "//tensorflow/core/lib/math:mobile_srcs_only_runtime", |
| "//tensorflow/core/lib/monitoring:mobile_srcs_only_runtime", |
| "//tensorflow/core/lib/random:mobile_srcs_only_runtime", |
| "//tensorflow/core/lib/strings:mobile_srcs_only_runtime", |
| "//tensorflow/core/platform:mobile_srcs_only_runtime", |
| ] + glob( |
| [ |
| "common_runtime/**/*.cc", |
| "common_runtime/**/*.h", |
| "lib/wav/*.cc", |
| "lib/wav/*.h", |
| ], |
| exclude = [ |
| "**/*test.*", |
| "**/*testutil*", |
| "**/*testlib*", |
| "**/*main.cc", |
| "common_runtime/gpu/**/*", |
| "common_runtime/gpu_device_factory.*", |
| ], |
| ), |
| visibility = ["//visibility:public"], |
| ) |
| |
| filegroup( |
| name = "mobile_srcs", |
| srcs = [ |
| ":mobile_srcs_no_runtime", |
| ":mobile_srcs_only_runtime", |
| ], |
| visibility = ["//visibility:public"], |
| ) |
| |
| alias( |
| name = "android_srcs", |
| actual = ":mobile_srcs", |
| visibility = ["//visibility:public"], |
| ) |
| |
| # Native library support for mobile applications. Does not contain |
| # operators, use :portable_tensorflow_lib if you want full operator |
| # support. |
| # |
| # If you just need TensorFlow types, e.g. Tensors, use |
| # :portable_tensorflow_lib_lite_no_runtime. |
| # |
| # These targets link against either full or lite protos depending |
| # on the bazel define TENSORFLOW_PROTOS=full/lite respectively. |
| # |
| # Compiles to a trivial library on non-mobile to prevent irrelevant |
| # build errors. If not building this e.g. as part of an android_binary, |
| # a command such as the following must be used: |
| # bazel build -c opt tensorflow/core:android_tensorflow_lib \ |
| # --define=TENSORFLOW_PROTOS=lite \ |
| # --crosstool_top=//external:android/crosstool \ |
| # --cpu=armeabi-v7a \ |
| # --host_crosstool_top=@bazel_tools//tools/cpp:toolchain |
| cc_library( |
| name = "portable_tensorflow_lib_lite", |
| srcs = if_mobile([":mobile_srcs"]), |
| copts = tf_copts(android_optimization_level_override = None) + tf_opts_nortti_if_lite_protos() + if_ios(["-Os"]), |
| defines = ["SUPPORT_SELECTIVE_REGISTRATION"] + tf_portable_full_lite_protos( |
| full = [], |
| lite = ["TENSORFLOW_LITE_PROTOS"], |
| ) + if_chromiumos(["IS_MOBILE_PLATFORM"]) + tf_defines_nortti_if_lite_protos(), |
| linkopts = if_android(["-lz"]) + if_ios(["-lz"]), |
| tags = [ |
| "manual", |
| "notap", |
| ], |
| visibility = ["//visibility:public"], |
| deps = [ |
| ":protos_all_cc_impl", |
| "//tensorflow/core/util:stats_calculator_portable", |
| "//tensorflow/core:mobile_additional_lib_deps", |
| ] + tf_portable_deps_no_runtime(), |
| alwayslink = 1, |
| ) |
| |
| alias( |
| name = "android_tensorflow_lib_lite", |
| actual = ":portable_tensorflow_lib_lite", |
| visibility = ["//visibility:public"], |
| ) |
| |
| alias( |
| name = "android_tensorflow_lib_lite_nortti", |
| actual = ":portable_tensorflow_lib_lite", |
| visibility = ["//visibility:public"], |
| ) |
| |
| alias( |
| name = "android_tensorflow_lib_lite_nortti_lite_protos", |
| actual = ":portable_tensorflow_lib_lite", |
| visibility = ["//visibility:public"], |
| ) |
| |
| cc_library( |
| name = "mobile_additional_lib_deps", |
| deps = tf_additional_lib_deps() + [ |
| ":platform_base", |
| "@com_google_absl//absl/container:flat_hash_map", |
| "@com_google_absl//absl/container:flat_hash_set", |
| "@com_google_absl//absl/strings", |
| ], |
| ) |
| |
| # Native library support for iOS applications. |
| # |
| # bazel build --config=ios_x86_64 \ |
| # :ios_tensorflow_lib |
| cc_library( |
| name = "ios_tensorflow_lib", |
| srcs = if_ios([ |
| ":portable_op_registrations_and_gradients", |
| "//tensorflow/core/kernels:android_core_ops", |
| "//tensorflow/core/kernels:android_extended_ops", |
| ]), |
| copts = tf_copts() + tf_opts_nortti_if_lite_protos() + ["-Os"], |
| visibility = ["//visibility:public"], |
| deps = [ |
| ":portable_tensorflow_lib_lite", |
| ":protos_all_cc_impl", |
| "//third_party/eigen3", |
| "//third_party/fft2d:fft2d_headers", |
| "@com_google_protobuf//:protobuf", |
| "@fft2d", |
| "@gemmlowp", |
| ], |
| alwayslink = 1, |
| ) |
| |
| alias( |
| name = "ios_tensorflow_lib_lite", |
| actual = ":portable_tensorflow_lib_lite", |
| visibility = ["//visibility:public"], |
| ) |
| |
| cc_library( |
| name = "ios_tensorflow_test_lib", |
| testonly = 1, |
| srcs = if_ios([":android_test_srcs"]), |
| copts = tf_copts() + ["-Os"], |
| tags = [ |
| "manual", |
| "notap", |
| ], |
| visibility = ["//visibility:public"], |
| deps = [ |
| ":ios_tensorflow_lib", |
| ":portable_test_proto_lib", |
| "//tensorflow/core/platform/default/build_config:gtest", |
| "//third_party/eigen3", |
| ], |
| ) |
| |
| # Full TensorFlow library with operator support. Use this unless reducing |
| # binary size (by packaging a reduced operator set) is a concern. |
| alias( |
| name = "android_tensorflow_lib", |
| actual = ":portable_tensorflow_lib", |
| visibility = ["//visibility:public"], |
| ) |
| |
| cc_library( |
| name = "portable_tensorflow_lib", |
| srcs = if_mobile([":portable_op_registrations_and_gradients"]), |
| copts = tf_copts() + tf_opts_nortti_if_lite_protos(), |
| features = tf_features_nomodules_if_mobile(), |
| tags = [ |
| "manual", |
| "notap", |
| ], |
| visibility = ["//visibility:public"], |
| deps = [ |
| ":portable_tensorflow_lib_lite", |
| ":protos_all_cc_impl", |
| "//tensorflow/core/kernels:portable_tensorflow_kernels", |
| "//third_party/eigen3", |
| "@com_google_protobuf//:protobuf", |
| ], |
| alwayslink = 1, |
| ) |
| |
| alias( |
| name = "android_op_registrations_and_gradients", |
| actual = ":portable_op_registrations_and_gradients", |
| visibility = ["//visibility:public"], |
| ) |
| |
| filegroup( |
| name = "portable_op_registrations_and_gradients", |
| srcs = ["//tensorflow/c/kernels:android_all_ops"] + glob( |
| [ |
| "ops/**/*.cc", |
| "ops/**/*.h", |
| ], |
| exclude = [ |
| "**/*test.cc", |
| "**/*testutil*", |
| "**/*testlib*", |
| "**/*main.cc", |
| "**/tpu_*", |
| ], |
| ), |
| visibility = ["//visibility:public"], |
| ) |
| |
| filegroup( |
| name = "android_test_srcs", |
| testonly = 1, |
| # TODO(andrewharp/nhua): |
| # make more test-related sources portable e.g. "//tensorflow/core/platform:test.cc", |
| srcs = tf_portable_full_lite_protos( |
| full = [ |
| "//tensorflow/core/framework:android_test_hdrs", |
| "//tensorflow/core/framework:android_test_srcs", |
| "//tensorflow/core/platform:android_test_srcs", |
| "//tensorflow/core/util:android_test_srcs", |
| ], |
| lite = [ |
| "//tensorflow/core/framework:android_test_hdrs", |
| "//tensorflow/core/framework:android_test_srcs_no_core", |
| "//tensorflow/core/platform:android_test_srcs", |
| "//tensorflow/core/util:android_test_srcs", |
| ], |
| ), |
| visibility = ["//visibility:public"], |
| ) |
| |
| # This is like android_test_srcs, minus the things that are already in mobile_srcs. |
| filegroup( |
| name = "android_test_srcs_no_core", |
| testonly = 1, |
| srcs = [ |
| "//tensorflow/core/framework:android_test_hdrs", |
| "//tensorflow/core/framework:android_test_srcs_no_core", |
| "//tensorflow/core/platform:android_test_srcs", |
| "//tensorflow/core/util:android_test_srcs", |
| ], |
| visibility = ["//visibility:public"], |
| ) |
| |
| # Portable library providing testing functionality for TensorFlow. |
| alias( |
| name = "android_tensorflow_test_lib", |
| actual = ":portable_tensorflow_test_lib", |
| visibility = ["//visibility:public"], |
| ) |
| |
| cc_library( |
| name = "portable_tensorflow_test_lib", |
| testonly = 1, |
| srcs = if_mobile([ |
| ":android_test_srcs_no_core", |
| ]), |
| hdrs = [ |
| "//tensorflow/core/framework:android_test_hdrs", |
| "//tensorflow/core/util:android_test_hdrs", |
| ], |
| copts = tf_copts(android_optimization_level_override = None), |
| features = tf_features_nomodules_if_mobile() + tf_opts_nortti_if_lite_protos(), |
| tags = [ |
| "manual", |
| "notap", |
| ], |
| visibility = ["//visibility:public"], |
| deps = [ |
| ":portable_tensorflow_lib", |
| ":protos_all_cc", |
| "//tensorflow/core/kernels:portable_tensorflow_kernels", |
| "//tensorflow/core/platform/default/build_config:gtest", |
| "//third_party/eigen3", |
| ], |
| ) |
| |
| # ----------------------------------------------------------------------------- |
| # Libraries with GPU facilities that are useful for writing kernels. |
| cc_library( |
| name = "gpu_lib", |
| srcs = [ |
| "common_runtime/gpu/gpu_event_mgr.cc", |
| ], |
| hdrs = [ |
| "common_runtime/gpu/gpu_event_mgr.h", |
| ], |
| copts = tf_copts(), |
| visibility = ["//visibility:public"], |
| deps = [ |
| ":framework", |
| ":framework_internal", |
| ":lib", |
| ":lib_internal", |
| ":protos_all_cc", |
| ":stream_executor", |
| ], |
| ) |
| |
| cc_library( |
| name = "gpu_headers_lib", |
| hdrs = [ |
| "common_runtime/gpu/gpu_event_mgr.h", |
| ], |
| visibility = ["//visibility:public"], |
| ) |
| |
| cc_library( |
| name = "cuda", |
| visibility = ["//visibility:public"], |
| deps = [ |
| "//tensorflow/core/platform/default/build_config:cuda", |
| ], |
| ) |
| |
| cc_library( |
| name = "rocm", |
| visibility = ["//visibility:public"], |
| deps = [ |
| "//tensorflow/core/platform/default/build_config:rocm", |
| ], |
| ) |
| |
| # ----------------------------------------------------------------------------- |
| # Clif-related proto libraries. |
| |
| # The following targets will be moved to core/example. The aliases are only temporary |
| # since moving existing users will require several CLs over several projects. |
| [ |
| [ |
| alias( |
| name = "example_%s_pyclif%s" % (proto_name, target_suffix), |
| actual = "//tensorflow/core/example:%s_pyclif%s" % (proto_name, target_suffix), |
| visibility = ["//visibility:public"], |
| ) |
| for target_suffix in [ |
| "", |
| "_pb2", |
| ] |
| ] |
| for proto_name in [ |
| "example", |
| "feature", |
| ] |
| ] |
| |
| # The following targets will be moved to core/protobuf. The aliases are only temporary |
| # since moving existing users will require several CLs over several projects. |
| [ |
| [ |
| alias( |
| name = "protobuf_%s_pyclif%s" % (proto_name, target_suffix), |
| actual = ":protobuf/%s_pyclif%s" % (proto_name, target_suffix), |
| visibility = ["//visibility:public"], |
| ) |
| for target_suffix in [ |
| "", |
| "_pb2", |
| ] |
| ] + [ |
| tf_pyclif_proto_library( |
| name = "protobuf/%s_pyclif" % proto_name, |
| proto_lib = ":protos_all", |
| proto_srcfile = "protobuf/%s.proto" % proto_name, |
| visibility = ["//visibility:public"], |
| ), |
| ] |
| for proto_name in [ |
| "config", |
| "device_properties", |
| "graph_debug_info", |
| "meta_graph", |
| "saved_model", |
| ] |
| ] |
| |
| # ----------------------------------------------------------------------------- |
| # Internal targets |
| |
| tf_proto_library( |
| name = "autotuning_proto", |
| srcs = ["protobuf/autotuning.proto"], |
| cc_api_version = 2, |
| make_default_target_header_only = True, |
| visibility = [ |
| "//tensorflow:internal", |
| ], |
| ) |
| |
| tf_proto_library( |
| name = "conv_autotuning_proto", |
| srcs = ["protobuf/conv_autotuning.proto"], |
| cc_api_version = 2, |
| make_default_target_header_only = True, |
| protodeps = [ |
| "//tensorflow/stream_executor:dnn_proto", |
| ], |
| visibility = [ |
| "//tensorflow:internal", |
| ], |
| ) |
| |
| tf_proto_library_cc( |
| name = "worker_proto", |
| srcs = ["protobuf/worker.proto"], |
| cc_api_version = 2, |
| protodeps = tf_additional_all_protos(), |
| visibility = ["//visibility:public"], |
| ) |
| |
| tf_proto_library_cc( |
| name = "worker_service_proto", |
| srcs = ["protobuf/worker_service.proto"], |
| has_services = 1, |
| cc_api_version = 2, |
| cc_stubby_versions = ["2"], |
| protodeps = [":worker_proto"], |
| visibility = [ |
| "//tensorflow:internal", |
| ], |
| ) |
| |
| tf_proto_library_cc( |
| name = "master_proto", |
| srcs = ["protobuf/master.proto"], |
| cc_api_version = 2, |
| protodeps = tf_additional_all_protos(), |
| visibility = ["//tensorflow:internal"], |
| ) |
| |
| tf_proto_library_cc( |
| name = "master_service_proto", |
| srcs = ["protobuf/master_service.proto"], |
| has_services = 1, |
| cc_api_version = 2, |
| cc_stubby_versions = ["2"], |
| protodeps = [":master_proto"], |
| visibility = [ |
| "//tensorflow:internal", |
| ], |
| ) |
| |
| tf_proto_library_cc( |
| name = "eager_service_proto", |
| srcs = ["protobuf/eager_service.proto"], |
| has_services = 1, |
| cc_api_version = 2, |
| cc_grpc_version = 1, |
| cc_stubby_versions = ["2"], |
| protodeps = tf_additional_all_protos(), |
| visibility = [ |
| "//tensorflow:internal", |
| ], |
| ) |
| |
| filegroup( |
| name = "lib_internal_private_headers", |
| srcs = [ |
| "//tensorflow/core/framework:resource_handle.h", |
| "//tensorflow/core/platform:legacy_lib_internal_headers", |
| "//tensorflow/core/platform:lib_internal_private_hdrs", |
| "//tensorflow/core/lib/bfloat16:bfloat16.h", |
| "//tensorflow/core/lib/core:legacy_lib_core_all_headers", |
| "//tensorflow/core/lib/gtl:legacy_lib_gtl_all_headers", |
| "//tensorflow/core/lib/histogram:legacy_lib_histogram_all_headers", |
| "//tensorflow/core/lib/hash:legacy_lib_hash_all_headers", |
| "//tensorflow/core/lib/monitoring:legacy_lib_monitoring_all_headers", |
| "//tensorflow/core/lib/io:legacy_lib_io_all_headers", |
| "//tensorflow/core/lib/random:legacy_lib_random_all_headers", |
| "//tensorflow/core/lib/strings:legacy_lib_strings_all_headers", |
| "//tensorflow/core/lib/math:math_util.h", |
| ] + glob( |
| [ |
| "lib/**/*.h", |
| ], |
| exclude = [ |
| "**/*test*", |
| "lib/gif/**/*", |
| "lib/jpeg/**/*", |
| "lib/png/**/*", |
| ], |
| ), |
| visibility = ["//visibility:private"], |
| ) |
| |
| filegroup( |
| name = "lib_internal_public_headers", |
| srcs = [ |
| "lib/wav/wav_io.h", |
| "//tensorflow/core/lib/core:legacy_lib_internal_core_headers", |
| "//tensorflow/core/lib/gtl:legacy_lib_internal_public_gtl_headers", |
| "//tensorflow/core/lib/hash:legacy_lib_internal_public_headers", |
| "//tensorflow/core/lib/io:legacy_lib_internal_public_headers", |
| "//tensorflow/core/lib/monitoring:legacy_lib_monitoring_lib_internal_public_headers", |
| "//tensorflow/core/lib/random:legacy_lib_internal_public_random_headers", |
| "//tensorflow/core/lib/strings:legacy_lib_internal_public_string_headers", |
| "//tensorflow/core/platform:legacy_platform_lib_hdrs", |
| "//tensorflow/core/platform:lib_internal_public_hdrs", |
| "//tensorflow/core/util:lib_internal_public_hdrs", |
| ], |
| visibility = ["//visibility:private"], |
| ) |
| |
| cc_library( |
| name = "lib_internal", |
| srcs = [":lib_internal_private_headers"], |
| hdrs = [":lib_internal_public_headers"], |
| copts = tf_copts(), |
| linkopts = select({ |
| "//tensorflow:freebsd": [], |
| "//tensorflow:windows": [], |
| "//tensorflow:android": [], |
| "//conditions:default": [ |
| "-ldl", |
| "-lpthread", |
| ], |
| }), |
| deps = tf_additional_lib_deps() + [ |
| "@com_google_absl//absl/meta:type_traits", |
| "@com_google_absl//absl/strings", |
| "//third_party/eigen3", |
| "@com_google_absl//absl/base:core_headers", |
| "//tensorflow/core/platform/default/build_config:platformlib", |
| ] + if_static([":lib_internal_impl"]), |
| ) |
| |
| # Until we can ditch config=monolithic on windows, we have to provide an always |
| # headers only library for pybind rules to depend on. |
| cc_library( |
| name = "lib_headers_for_pybind", |
| srcs = [":lib_internal_private_headers"], |
| hdrs = [":lib_internal_public_headers"], |
| copts = tf_copts(), |
| linkopts = select({ |
| "//tensorflow:freebsd": [], |
| "//tensorflow:windows": [], |
| "//tensorflow:android": [], |
| "//conditions:default": [ |
| "-ldl", |
| "-lpthread", |
| ], |
| }), |
| visibility = ["//tensorflow/python:__pkg__"], |
| deps = tf_additional_lib_deps() + [ |
| "@com_google_absl//absl/meta:type_traits", |
| "@com_google_absl//absl/strings", |
| "//third_party/eigen3", |
| "@com_google_absl//absl/base:core_headers", |
| "//tensorflow/core/platform/default/build_config:platformlib", |
| ], |
| ) |
| |
| cc_library( |
| name = "lib_internal_impl", |
| srcs = [ |
| ":lib_internal_private_headers", |
| "//tensorflow/core/platform:legacy_lib_internal_srcs", |
| ] + glob( |
| [ |
| "lib/**/*.cc", |
| ], |
| exclude = [ |
| "**/*test*", |
| "framework/variant.cc", |
| "lib/gif/**/*", |
| "lib/jpeg/**/*", |
| "lib/png/**/*", |
| ], |
| ), |
| hdrs = [":lib_internal_public_headers"], |
| copts = tf_copts(), |
| deps = tf_additional_lib_deps() + [ |
| ":core_stringpiece", |
| ":lib_proto_parsing", |
| "@com_google_absl//absl/memory", |
| "@com_google_absl//absl/strings", |
| "//third_party/eigen3", |
| "//tensorflow/core/lib/bfloat16", |
| "//tensorflow/core/lib/core:arena", |
| "//tensorflow/core/lib/core:bitmap", |
| "//tensorflow/core/lib/core:blocking_counter", |
| "//tensorflow/core/lib/core:bits", |
| "//tensorflow/core/lib/core:coding", |
| "//tensorflow/core/lib/core:errors", |
| "//tensorflow/core/lib/core:notification", |
| "//tensorflow/core/lib/core:raw_coding", |
| "//tensorflow/core/lib/core:refcount", |
| "//tensorflow/core/lib/core:status", |
| "//tensorflow/core/lib/core:stringpiece", |
| "//tensorflow/core/lib/core:threadpool", |
| "//tensorflow/core/lib/core:threadpool_interface", |
| "//tensorflow/core/lib/core:threadpool_options", |
| "//tensorflow/core/lib/gtl:array_slice", |
| "//tensorflow/core/lib/gtl:cleanup", |
| "//tensorflow/core/lib/gtl:compactptrset", |
| "//tensorflow/core/lib/gtl:edit_distance", |
| "//tensorflow/core/lib/gtl:flatmap", |
| "//tensorflow/core/lib/gtl:flatrep", |
| "//tensorflow/core/lib/gtl:flatset", |
| "//tensorflow/core/lib/gtl:inlined_vector", |
| "//tensorflow/core/lib/gtl:int_type", |
| "//tensorflow/core/lib/gtl:iterator_range", |
| "//tensorflow/core/lib/gtl:manual_constructor", |
| "//tensorflow/core/lib/gtl:map_util", |
| "//tensorflow/core/lib/gtl:optional", |
| "//tensorflow/core/lib/gtl:priority_queue_util", |
| "//tensorflow/core/lib/gtl:top_n", |
| "//tensorflow/core/lib/hash:crc32c", |
| "//tensorflow/core/lib/hash", |
| "//tensorflow/core/lib/histogram", |
| "//tensorflow/core/lib/io:block", |
| "//tensorflow/core/lib/io:buffered_inputstream", |
| "//tensorflow/core/lib/io:compression", |
| "//tensorflow/core/lib/io:inputbuffer", |
| "//tensorflow/core/lib/io:inputstream_interface", |
| "//tensorflow/core/lib/io:iterator", |
| "//tensorflow/core/lib/io:path", |
| "//tensorflow/core/lib/io:proto_encode_helper", |
| "//tensorflow/core/lib/io:random_inputstream", |
| "//tensorflow/core/lib/io:record_reader", |
| "//tensorflow/core/lib/io:record_writer", |
| "//tensorflow/core/lib/io:snappy_inputbuffer", |
| "//tensorflow/core/lib/io:snappy_outputbuffer", |
| "//tensorflow/core/lib/io:table", |
| "//tensorflow/core/lib/io:table_options", |
| "//tensorflow/core/lib/io:zlib_compression_options", |
| "//tensorflow/core/lib/io:zlib_inputstream", |
| "//tensorflow/core/lib/io:zlib_outputbuffer", |
| "//tensorflow/core/lib/math:math_util", |
| "//tensorflow/core/lib/monitoring:collected_metrics", |
| "//tensorflow/core/lib/monitoring:collection_registry", |
| "//tensorflow/core/lib/monitoring:counter", |
| "//tensorflow/core/lib/monitoring:gauge", |
| "//tensorflow/core/lib/monitoring:metric_def", |
| "//tensorflow/core/lib/monitoring:mobile_counter", |
| "//tensorflow/core/lib/monitoring:mobile_gauge", |
| "//tensorflow/core/lib/monitoring:mobile_percentile_sampler", |
| "//tensorflow/core/lib/monitoring:mobile_sampler", |
| "//tensorflow/core/lib/monitoring:percentile_sampler", |
| "//tensorflow/core/lib/monitoring:sampler", |
| "//tensorflow/core/lib/monitoring:timed", |
| "//tensorflow/core/lib/random:exact_uniform_int", |
| "//tensorflow/core/lib/random:philox", |
| "//tensorflow/core/lib/random:philox_random", |
| "//tensorflow/core/lib/random", |
| "//tensorflow/core/lib/random:weighted_picker", |
| "//tensorflow/core/lib/strings:base64", |
| "//tensorflow/core/lib/strings:numbers", |
| "//tensorflow/core/lib/strings:ordered_code", |
| "//tensorflow/core/lib/strings:proto_serialization", |
| "//tensorflow/core/lib/strings:proto_text_util", |
| "//tensorflow/core/lib/strings:scanner", |
| "//tensorflow/core/lib/strings:str_util", |
| "//tensorflow/core/lib/strings:strcat", |
| "//tensorflow/core/lib/strings:stringprintf", |
| "//tensorflow/core/platform:abi", |
| "//tensorflow/core/platform:base64", |
| "//tensorflow/core/platform:blocking_counter", |
| "//tensorflow/core/platform:casts", |
| "//tensorflow/core/platform:coding", |
| "//tensorflow/core/platform:context", |
| "//tensorflow/core/platform:cord", |
| "//tensorflow/core/platform:cpu_feature_guard", |
| "//tensorflow/core/platform:denormal", |
| "//tensorflow/core/platform:dynamic_annotations", |
| "//tensorflow/core/platform:env", |
| "//tensorflow/core/platform:error", |
| "//tensorflow/core/platform:errors", |
| "//tensorflow/core/platform:file_statistics", |
| "//tensorflow/core/platform:fingerprint", |
| "//tensorflow/core/platform:hash", |
| "//tensorflow/core/platform:load_library", |
| "//tensorflow/core/platform:logger", |
| "//tensorflow/core/platform:mutex", |
| "//tensorflow/core/platform:notification", |
| "//tensorflow/core/platform:net", |
| "//tensorflow/core/platform:null_file_system", |
| "//tensorflow/core/platform:numbers", |
| "//tensorflow/core/platform:path", |
| "//tensorflow/core/platform:platform_port", |
| "//tensorflow/core/platform:platform_strings", |
| "//tensorflow/core/platform:prefetch", |
| "//tensorflow/core/platform:protobuf_internal", |
| "//tensorflow/core/platform:regexp", |
| "//tensorflow/core/platform:resource", |
| "//tensorflow/core/platform:scanner", |
| "//tensorflow/core/platform:setround", |
| "//tensorflow/core/platform:stacktrace", |
| "//tensorflow/core/platform:stacktrace_handler", |
| "//tensorflow/core/platform:status", |
| "//tensorflow/core/platform:strcat", |
| "//tensorflow/core/platform:stringpiece", |
| "//tensorflow/core/platform:stringprintf", |
| "//tensorflow/core/platform:strong_hash", |
| "//tensorflow/core/platform:str_util", |
| "//tensorflow/core/platform:subprocess", |
| "//tensorflow/core/platform:tensor_coding", |
| "//tensorflow/core/platform:thread_annotations", |
| "//tensorflow/core/platform:threadpool_interface", |
| "//tensorflow/core/platform:threadpool_options", |
| "//tensorflow/core/platform:tracing", |
| "//tensorflow/core/platform:tstring", |
| "//tensorflow/core/platform:unbounded_work_queue", |
| "//tensorflow/core/platform/default/build_config:platformlib", |
| "//tensorflow/core/util:env_var", |
| "//tensorflow/core/util:reporter", # TODO(gunan): REMOVE as soon as cc_shared_library is supported. |
| "@snappy", |
| "@zlib", |
| "@double_conversion//:double-conversion", |
| "@com_google_protobuf//:protobuf", |
| ] + tf_protos_all_impl() + tf_protos_grappler_impl() + tf_protos_profiler_impl() + tf_monitoring_deps(), |
| # Alwayslink causes a cc_binary to "always link" in the |
| # srcs for a given cc_library, even if they are unreferenced, see: |
| # https://docs.bazel.build/versions/master/be/c-cpp.html#cc_library.alwayslink |
| # tensorflow/core:lib_internal_impl has alwayslink set so that libtensorflow_framework.so |
| # contains all of the srcs within lib_internal_impl. |
| # NOTE(bmzhao): As we refactor tensorflow's BUILD files to more granular targets, |
| # we've removed srcs from core:lib_internal_impl, and have added deps on these |
| # granular targets instead. Since alwayslink doesn't apply to these deps, |
| # we will sometimes need to add alwayslink to the granular libraries instead. |
| # Ideally, this will be resolved once bazel has full cc_shared_library support. |
| alwayslink = 1, |
| ) |
| |
| cc_library( |
| name = "gif_internal", |
| srcs = [ |
| "lib/gif/gif_io.cc", |
| "//tensorflow/core/platform:gif_hdrs", |
| ], |
| hdrs = ["lib/gif/gif_io.h"], |
| copts = tf_copts(), |
| linkopts = select({ |
| "//tensorflow:freebsd": [], |
| "//tensorflow:windows": [], |
| "//conditions:default": ["-ldl"], |
| }), |
| deps = [ |
| ":lib", |
| ":lib_internal", |
| "//tensorflow/core/platform:gif", |
| ], |
| ) |
| |
| cc_library( |
| name = "jpeg_internal", |
| srcs = [ |
| "lib/jpeg/jpeg_handle.cc", |
| "lib/jpeg/jpeg_mem.cc", |
| "//tensorflow/core/platform:jpeg_hdrs", |
| ], |
| hdrs = [ |
| "lib/jpeg/jpeg_handle.h", |
| "lib/jpeg/jpeg_mem.h", |
| ], |
| copts = tf_copts(), |
| linkopts = select({ |
| "//tensorflow:freebsd": [], |
| "//tensorflow:windows": [], |
| "//conditions:default": ["-ldl"], |
| }), |
| deps = [ |
| ":lib", |
| ":lib_internal", |
| "//tensorflow/core/platform:jpeg", |
| ], |
| ) |
| |
| alias( |
| name = "png_internal", |
| actual = "//tensorflow/core/lib/png:png_io", |
| ) |
| |
| alias( |
| name = "android_png_internal", |
| actual = "//tensorflow/core/lib/png:png_io", |
| ) |
| |
| cc_library( |
| name = "tflite_portable_logging", |
| hdrs = [ |
| "//tensorflow/core/lib/bfloat16:bfloat16.h", |
| "//tensorflow/core/platform:tflite_portable_logging_hdrs", |
| "//tensorflow/core/platform/default:integral_types.h", |
| "//tensorflow/core/platform/default:logging.h", |
| ], |
| copts = tf_copts(), |
| linkopts = ["-ldl"], |
| visibility = ["//visibility:public"], |
| deps = [ |
| ":platform_base", |
| "//tensorflow/core/platform:logging", |
| ], |
| ) |
| |
| cc_library( |
| name = "android_jpeg_internal", |
| srcs = if_android([ |
| "lib/jpeg/jpeg_handle.cc", |
| "lib/jpeg/jpeg_mem.cc", |
| "//tensorflow/core/platform:jpeg_hdrs", |
| ]), |
| hdrs = [ |
| "lib/jpeg/jpeg_handle.h", |
| "lib/jpeg/jpeg_mem.h", |
| "//tensorflow/core/lib/bfloat16:bfloat16.h", |
| "//tensorflow/core/lib/core:legacy_lib_core_stringpiece_header", |
| "//tensorflow/core/platform:jpeg_internal_hdrs", |
| "//tensorflow/core/platform/default:integral_types.h", |
| "//tensorflow/core/platform/default:logging.h", |
| ], |
| copts = tf_copts(), |
| linkopts = ["-ldl"], |
| deps = [ |
| ":core_stringpiece", |
| "//tensorflow/core/platform:dynamic_annotations", |
| "//tensorflow/core/platform:jpeg", |
| "//tensorflow/core/platform:logging", |
| "//tensorflow/core/platform:stringpiece", |
| "@com_google_absl//absl/base:core_headers", |
| "@com_google_absl//absl/strings", |
| ], |
| ) |
| |
| cc_library( |
| name = "android_gif_internal", |
| srcs = if_android([ |
| "lib/gif/gif_io.cc", |
| "//tensorflow/core/platform:gif_hdrs", |
| ]), |
| hdrs = [ |
| "lib/gif/gif_io.h", |
| "//tensorflow/core/lib/bfloat16:bfloat16.h", |
| "//tensorflow/core/lib/core:legacy_lib_core_stringpiece_header", |
| "//tensorflow/core/lib/gtl:legacy_android_gif_internal_headers", |
| "//tensorflow/core/platform:gif_internal_hdrs", |
| "//tensorflow/core/platform/default:integral_types.h", |
| "//tensorflow/core/platform/default:logging.h", |
| ], |
| copts = tf_copts(), |
| linkopts = ["-ldl"], |
| deps = [ |
| "//tensorflow/core/lib/strings:numbers", |
| "//tensorflow/core/lib/strings:strcat", |
| "//tensorflow/core/platform:dynamic_annotations", |
| "//tensorflow/core/platform:gif", |
| "//tensorflow/core/platform:logging", |
| "//tensorflow/core/platform:numbers", |
| "//tensorflow/core/platform:strcat", |
| "//tensorflow/core/platform:stringpiece", |
| "@com_google_absl//absl/base:core_headers", |
| "@com_google_absl//absl/strings", |
| ], |
| ) |
| |
| tf_proto_library( |
| name = "error_codes_proto_impl", |
| srcs = ["protobuf/error_codes.proto"], |
| cc_api_version = 2, |
| make_default_target_header_only = True, |
| ) |
| |
| tf_proto_library( |
| name = "core_protos", |
| srcs = COMMON_PROTO_SRCS + [ |
| # Protos which are not needed on mobile builds, but should be included |
| # in protos_all. |
| # |
| # Note that some protos are in neither core_proto_srcs nor this |
| # filegroup; e.g. ones with individual proto_library targets. |
| "protobuf/control_flow.proto", |
| # TODO(ebrevdo): Re-enable once CriticalSection is in core. |
| # "protobuf/critical_section.proto", |
| "protobuf/data/experimental/snapshot.proto", |
| "protobuf/debug_event.proto", |
| "protobuf/meta_graph.proto", |
| "protobuf/named_tensor.proto", |
| "protobuf/remote_tensor_handle.proto", |
| "protobuf/saved_model.proto", |
| "protobuf/saved_object_graph.proto", |
| "protobuf/struct.proto", |
| "protobuf/tensorflow_server.proto", |
| "protobuf/trackable_object_graph.proto", |
| "protobuf/transport_options.proto", |
| ], |
| cc_api_version = 2, |
| make_default_target_header_only = True, |
| protodeps = [ |
| ":error_codes_proto_impl", |
| "//tensorflow/core/example:protos_all", |
| "//tensorflow/core/framework:protos_all", |
| "//tensorflow/core/lib/core:error_codes_proto", |
| "//tensorflow/core/profiler/protobuf:xplane_proto", |
| "//tensorflow/core/util:protos_all", |
| "//tensorflow/core/util:test_log_proto_impl", |
| ], |
| visibility = ["//visibility:private"], |
| ) |
| |
| alias( |
| name = "error_codes_proto_cc", |
| actual = "//tensorflow/core/lib/core:error_codes_proto_cc", |
| ) |
| |
| alias( |
| name = "version_lib", |
| actual = "//tensorflow/core/util:version_info", |
| ) |
| |
| filegroup( |
| name = "framework_internal_private_headers", |
| srcs = [ |
| "//tensorflow/core/example:feature_util.h", |
| "//tensorflow/core/framework:framework_internal_private_hdrs", |
| "//tensorflow/core/graph:framework_internal_private_headers", |
| "//tensorflow/core/util:framework_internal_private_hdrs", |
| "//tensorflow/core/util:memmapped_file_system_hdrs", |
| "//tensorflow/core/util/sparse:framework_internal_private_headers_group", |
| ], |
| visibility = ["//visibility:private"], |
| ) |
| |
| filegroup( |
| name = "framework_internal_public_headers", |
| srcs = [ |
| "//tensorflow/core/framework:model.h", # only needed for tests |
| "//tensorflow/core/framework:op_segment.h", |
| "//tensorflow/core/framework:rendezvous.h", # only needed for tests |
| "//tensorflow/core/framework:resource_var.h", |
| "//tensorflow/core/framework:run_handler.h", |
| "//tensorflow/core/framework:run_handler_util.h", |
| "//tensorflow/core/framework:shared_ptr_variant.h", |
| "//tensorflow/core/framework:tensor_reference.h", |
| "//tensorflow/core/framework:tracking_allocator.h", # only needed for tests |
| "//tensorflow/core/framework:variant.h", |
| "//tensorflow/core/util:framework_internal_public_hdrs", |
| ], |
| visibility = ["//visibility:private"], |
| ) |
| |
| tf_cuda_library( |
| name = "framework_internal", |
| srcs = [":framework_internal_private_headers"], |
| hdrs = [":framework_internal_public_headers"], |
| deps = [ |
| ":framework_internal_headers_lib", |
| "//third_party/eigen3", |
| ":lib", |
| ] + if_static( |
| extra_deps = [ |
| ":framework_internal_impl", |
| "@com_google_protobuf//:protobuf", |
| ], |
| otherwise = [ |
| "@com_google_protobuf//:protobuf_headers", |
| ], |
| ), |
| alwayslink = 1, |
| ) |
| |
| cc_header_only_library( |
| name = "framework_internal_headers_lib", |
| # Fully depend on external repositories, because identifying the headers |
| # is fragile. |
| extra_deps = [ |
| "@com_google_absl//absl/strings", |
| "@com_google_absl//absl/types:span", |
| ], |
| deps = [ |
| ":lib", |
| ":lib_internal", |
| ":version_lib", |
| "//tensorflow/core/kernels:bounds_check", |
| "//tensorflow/core/platform/default/build_config:platformlib", |
| ], |
| ) |
| |
| cc_header_only_library( |
| name = "core_cpu_headers_lib", |
| visibility = ["//visibility:public"], |
| deps = [ |
| ":core_cpu_lib", |
| ], |
| ) |
| |
| tf_cuda_library( |
| name = "framework_internal_impl", |
| srcs = [ |
| ":framework_internal_private_headers", |
| "//tensorflow/core/framework:framework_internal_impl_srcs", |
| "//tensorflow/core/graph:framework_internal_impl_srcs", |
| "//tensorflow/core/util:framework_internal_impl_srcs", |
| "//tensorflow/core/util:memmapped_file_system_srcs", |
| "//tensorflow/core/util/sparse:framework_internal_impl_group", |
| ] + glob( |
| [ |
| ], |
| exclude = [ |
| "**/*test*", |
| "**/*main.cc", |
| ], |
| ), |
| hdrs = [":framework_internal_public_headers"], |
| copts = tf_copts(), |
| linkopts = select({ |
| "//tensorflow:freebsd": ["-lm"], |
| "//tensorflow:windows": [], |
| "//conditions:default": [ |
| "-ldl", |
| "-lm", |
| ], |
| }), |
| deps = [ |
| ":feature_util", |
| ":lib", |
| ":lib_internal", |
| ":protos_all_cc", |
| ":version_lib", |
| "@com_google_absl//absl/base", |
| "@com_google_absl//absl/container:flat_hash_map", |
| "@com_google_absl//absl/container:flat_hash_set", |
| "@com_google_absl//absl/memory", |
| "@com_google_absl//absl/strings", |
| "@com_google_absl//absl/time", |
| "//third_party/eigen3", |
| "//tensorflow/core/example:feature_util", |
| "//tensorflow/core/framework:allocator", |
| "//tensorflow/core/framework:allocator_registry_impl", |
| "//tensorflow/core/framework:attr_value_proto_text", |
| "//tensorflow/core/framework:attr_value_util", |
| "//tensorflow/core/framework:bfloat16", |
| "//tensorflow/core/framework:common_shape_fns", |
| "//tensorflow/core/framework:kernel_shape_util", |
| "//tensorflow/core/framework:node_def_util", |
| "//tensorflow/core/framework:node_properties", |
| "//tensorflow/core/framework:numeric_types", |
| "//tensorflow/core/framework:op", |
| "//tensorflow/core/framework:op_def_builder", |
| "//tensorflow/core/framework:op_def_util", |
| "//tensorflow/core/framework:resource_handle", |
| "//tensorflow/core/framework:selective_registration", |
| "//tensorflow/core/framework:shape_inference", |
| "//tensorflow/core/framework:tensor", |
| "//tensorflow/core/framework:tensor_shape", |
| "//tensorflow/core/kernels:bounds_check", |
| "//tensorflow/core/platform/default/build_config:platformlib", |
| "//tensorflow/core/profiler/lib:annotated_traceme", |
| "//tensorflow/core/profiler/lib:traceme", |
| "//tensorflow/core/util:einsum_op_util", |
| "//tensorflow/core/util:padding", |
| "//tensorflow/core/util:port", |
| "//tensorflow/core/util:stats_calculator_portable", |
| "//tensorflow/core/util:tensor_format", |
| "//tensorflow/compiler/jit:common", |
| ] + if_static( |
| extra_deps = ["@com_google_protobuf//:protobuf"], |
| otherwise = ["@com_google_protobuf//:protobuf_headers"], |
| ) + mkl_deps(), |
| alwayslink = 1, |
| ) |
| |
| cc_header_only_library( |
| name = "framework_headers_lib", |
| # Fully depend on external repositories, because identifying the headers |
| # is fragile. |
| extra_deps = [ |
| "@com_google_absl//absl/strings", |
| "@com_google_absl//absl/types:span", |
| ], |
| visibility = ["//visibility:public"], |
| deps = [ |
| ":framework", |
| "//tensorflow/core/framework:reader_base", |
| ], |
| ) |
| |
| cc_header_only_library( |
| name = "stream_executor_headers_lib", |
| # Fully depend on external repositories, because identifying the headers |
| # is fragile. |
| extra_deps = [ |
| "@com_google_absl//absl/strings", |
| "@com_google_absl//absl/types:span", |
| ], |
| visibility = ["//visibility:public"], |
| deps = [ |
| ":stream_executor", |
| ], |
| ) |
| |
| alias( |
| name = "stream_executor", |
| actual = "//tensorflow/core/platform:stream_executor", |
| ) |
| |
| # Like stream_executor library, but compiles without --config=cuda |
| # and does not include any cuda dependencies. |
| alias( |
| name = "stream_executor_no_cuda", |
| actual = "//tensorflow/core/platform:stream_executor_no_cuda", |
| visibility = ["//visibility:public"], |
| ) |
| |
| alias( |
| name = "cuda_device_functions", |
| actual = "//tensorflow/core/util:gpu_device_functions", |
| visibility = ["//visibility:public"], |
| ) |
| |
| # Library containing all of the graph construction code that is |
| # independent of the runtime. |
| # |
| # TODO(mrry): Refactor graph_constructor.cc so that it does not depend on code |
| # in "common_runtime/", and then the entire "graph/" directory can be included |
| # in this library. |
| tf_cuda_library( |
| name = "graph", |
| srcs = ["//tensorflow/core/graph:graph_srcs"], |
| hdrs = ["//tensorflow/core/graph:graph_headers"], |
| deps = [ |
| ":framework", |
| ":framework_internal", |
| ":lib", |
| ":lib_internal", |
| ":protos_all_cc", |
| "//third_party/eigen3", |
| "@com_google_absl//absl/container:flat_hash_map", |
| "@com_google_absl//absl/container:flat_hash_set", |
| "@com_google_absl//absl/strings", |
| ], |
| ) |
| |
| filegroup( |
| name = "core_cpu_base_headers", |
| srcs = [ |
| "common_runtime/device.h", |
| "common_runtime/device_factory.h", |
| "common_runtime/device_mgr.h", |
| "common_runtime/device_set.h", |
| "common_runtime/eval_const_tensor.h", |
| "common_runtime/function.h", |
| "common_runtime/graph_runner.h", |
| "common_runtime/metrics.h", |
| "common_runtime/process_function_library_runtime.h", |
| "common_runtime/scoped_allocator.h", |
| "common_runtime/scoped_allocator_mgr.h", |
| "common_runtime/shape_refiner.h", |
| "//tensorflow/core/framework:versions.h", |
| "//tensorflow/core/graph:graph_headers", |
| ], |
| ) |
| |
| tf_cuda_library( |
| name = "core_cpu_base", |
| hdrs = [ |
| ":core_cpu_base_headers", |
| "//tensorflow/core/public:session.h", |
| ], |
| copts = tf_copts(), |
| deps = [":core_cpu_base_no_ops"] + if_static([ |
| ":function_ops_op_lib", |
| ":functional_grad", |
| ":functional_ops_op_lib", |
| "//tensorflow/core/kernels:bounds_check", |
| "//tensorflow/core/kernels:required", |
| ]), |
| alwayslink = 1, |
| ) |
| |
| tf_cuda_library( |
| name = "core_cpu_base_no_ops", |
| srcs = [ |
| "common_runtime/eval_const_tensor.cc", |
| "common_runtime/graph_optimizer.h", |
| "common_runtime/scoped_allocator.cc", |
| "common_runtime/scoped_allocator_mgr.cc", |
| "common_runtime/shape_refiner.cc", |
| "//tensorflow/core/graph:core_cpu_base_no_ops_srcs", |
| "//tensorflow/core/public:session_options.h", |
| "//tensorflow/core/public:version.h", |
| ], |
| hdrs = [ |
| ":core_cpu_base_headers", |
| "//tensorflow/core/public:session.h", |
| ], |
| copts = tf_copts(), |
| deps = [ |
| ":graph", |
| ":framework", |
| ":framework_internal", |
| ":lib", |
| ":lib_internal", |
| ":protos_all_cc", |
| "@com_google_absl//absl/container:flat_hash_set", |
| "//third_party/eigen3", |
| ] + if_static([ |
| "@com_google_absl//absl/algorithm:container", |
| "@com_google_absl//absl/strings", |
| ]), |
| ) |
| |
| filegroup( |
| name = "core_cpu_lib_headers", |
| srcs = [ |
| ":core_cpu_base_headers", |
| "common_runtime/allocator_retry.h", |
| "common_runtime/shared_counter.h", |
| "common_runtime/base_collective_executor.h", |
| "common_runtime/bfc_allocator.h", |
| "common_runtime/hierarchical_tree_broadcaster.h", |
| "common_runtime/buf_rendezvous.h", |
| "common_runtime/build_graph_options.h", |
| "common_runtime/collective_executor_mgr.h", |
| "common_runtime/collective_param_resolver_local.h", |
| "common_runtime/collective_rma_local.h", |
| "common_runtime/collective_util.h", |
| "common_runtime/colocation_graph.h", |
| "common_runtime/constant_folding.h", |
| "common_runtime/copy_tensor.h", |
| "common_runtime/costmodel_manager.h", |
| "common_runtime/placer_inspection_required_ops_utils.h", |
| "common_runtime/debugger_state_interface.h", |
| "common_runtime/device_resolver_local.h", |
| "common_runtime/dma_helper.h", |
| "common_runtime/entry.h", |
| "common_runtime/executor.h", |
| "common_runtime/executor_factory.h", |
| "common_runtime/function_optimization_registry.h", |
| "common_runtime/graph_optimizer.h", |
| "common_runtime/graph_view.h", |
| "common_runtime/immutable_executor_state.h", |
| "common_runtime/input_colocation_exemption_registry.h", |
| "common_runtime/inspecting_placer.h", |
| "common_runtime/isolate_placer_inspection_required_ops_pass.h", |
| "common_runtime/local_device.h", |
| "common_runtime/lower_function_call_op.h", |
| "common_runtime/lower_if_op.h", |
| "common_runtime/lower_case_op.h", |
| "common_runtime/lower_functional_ops.h", |
| "common_runtime/lower_while_op.h", |
| "common_runtime/memory_types.h", |
| "common_runtime/mkl_cpu_allocator.h", |
| "common_runtime/optimization_registry.h", |
| "common_runtime/pending_counts.h", |
| "common_runtime/partitioning_utils.h", |
| "common_runtime/placer.h", |
| "common_runtime/process_util.h", |
| "common_runtime/propagator_state.h", |
| "common_runtime/profile_handler.h", |
| "common_runtime/renamed_device.h", |
| "common_runtime/rendezvous_mgr.h", |
| "common_runtime/rendezvous_util.h", |
| "common_runtime/replicate_per_replica_nodes.h", |
| "common_runtime/ring_reducer.h", |
| "common_runtime/ring_alg.h", |
| "common_runtime/ring_gatherer.h", |
| "common_runtime/session_factory.h", |
| "common_runtime/single_threaded_cpu_device.h", |
| "common_runtime/stats_publisher_interface.h", |
| "common_runtime/step_stats_collector.h", |
| "common_runtime/threadpool_device.h", |
| "common_runtime/process_state.h", |
| "common_runtime/pool_allocator.h", |
| "//tensorflow/core/graph:core_cpu_lib_headers", |
| ] + if_mkl(["//tensorflow/core/graph:mkl_graph_util_header"]), |
| ) |
| |
| tf_cuda_library( |
| name = "core_cpu_impl", |
| srcs = [ |
| "common_runtime/accumulate_n_optimizer.cc", |
| "common_runtime/base_collective_executor.cc", |
| "common_runtime/buf_rendezvous.cc", |
| "common_runtime/build_graph_options.cc", |
| "common_runtime/collective_executor_mgr.cc", |
| "common_runtime/collective_param_resolver_local.cc", |
| "common_runtime/collective_rma_local.cc", |
| "common_runtime/collective_util.cc", |
| "common_runtime/colocation_graph.cc", |
| "common_runtime/constant_folding.cc", |
| "common_runtime/copy_tensor.cc", |
| "common_runtime/costmodel_manager.cc", |
| "common_runtime/debugger_state_interface.cc", |
| "common_runtime/device.cc", |
| "common_runtime/device_factory.cc", |
| "common_runtime/device_mgr.cc", |
| "common_runtime/device_resolver_local.cc", |
| "common_runtime/device_set.cc", |
| "common_runtime/dynamic_device_mgr.cc", |
| "common_runtime/executor.cc", |
| "common_runtime/executor_factory.cc", |
| "common_runtime/function.cc", |
| "common_runtime/function_optimization_registry.cc", |
| "common_runtime/graph_optimizer.cc", |
| "common_runtime/graph_runner.cc", |
| "common_runtime/graph_view.cc", |
| "common_runtime/hierarchical_tree_broadcaster.cc", |
| "common_runtime/immutable_executor_state.cc", |
| "common_runtime/input_colocation_exemption_registry.cc", |
| "common_runtime/inspecting_placer.cc", |
| "common_runtime/isolate_placer_inspection_required_ops_pass.cc", |
| "common_runtime/local_device.cc", |
| "common_runtime/lower_case_op.cc", |
| "common_runtime/lower_function_call_op.cc", |
| "common_runtime/lower_functional_ops.cc", |
| "common_runtime/lower_if_op.cc", |
| "common_runtime/lower_while_op.cc", |
| "common_runtime/memory_types.cc", |
| "common_runtime/metrics.cc", |
| "common_runtime/mkl_cpu_allocator.cc", |
| "common_runtime/optimization_registry.cc", |
| "common_runtime/parallel_concat_optimizer.cc", |
| "common_runtime/partitioning_utils.cc", |
| "common_runtime/placer.cc", |
| "common_runtime/placer_inspection_required_ops_utils.cc", |
| "common_runtime/placer_inspection_required_ops_utils.h", |
| "common_runtime/pool_allocator.cc", |
| "common_runtime/process_function_library_runtime.cc", |
| "common_runtime/process_state.cc", |
| "common_runtime/process_util.cc", |
| "common_runtime/propagator_state.cc", |
| "common_runtime/renamed_device.cc", |
| "common_runtime/rendezvous_mgr.cc", |
| "common_runtime/rendezvous_util.cc", |
| "common_runtime/replicate_per_replica_nodes.cc", |
| "common_runtime/ring_alg.cc", |
| "common_runtime/ring_gatherer.cc", |
| "common_runtime/ring_reducer.cc", |
| "common_runtime/session.cc", |
| "common_runtime/session_factory.cc", |
| "common_runtime/session_options.cc", |
| "common_runtime/session_state.cc", |
| "common_runtime/single_threaded_cpu_device.cc", |
| "common_runtime/stats_publisher_interface.cc", |
| "common_runtime/step_stats_collector.cc", |
| "common_runtime/threadpool_device.cc", |
| "common_runtime/threadpool_device_factory.cc", |
| "//tensorflow/core/graph:core_cpu_impl_srcs", |
| "//tensorflow/core/public:session.h", |
| "//tensorflow/core/public:session_options.h", |
| ], |
| hdrs = [":core_cpu_lib_headers"], |
| copts = tf_copts() + tf_openmp_copts(), |
| deps = [ |
| ":bfc_allocator", |
| ":graph", |
| ":framework", |
| ":framework_internal", |
| ":lib", |
| ":lib_internal", |
| ":protos_all_cc", |
| "@com_google_absl//absl/base", |
| "@com_google_absl//absl/algorithm:container", |
| "@com_google_absl//absl/container:flat_hash_map", |
| "@com_google_absl//absl/container:flat_hash_set", |
| "@com_google_absl//absl/memory", |
| "@com_google_absl//absl/strings", |
| "@com_google_absl//absl/types:optional", |
| "@com_google_absl//absl/types:variant", |
| "//third_party/eigen3", |
| "//tensorflow/core/public:version", |
| "//tensorflow/core/grappler/utils:functions", |
| "//tensorflow/core/profiler/lib:annotated_traceme", |
| "//tensorflow/core/profiler/lib:scoped_annotation", |
| "//tensorflow/core/profiler/lib:traceme", |
| ] + mkl_deps(), |
| alwayslink = 1, |
| ) |
| |
| tf_cuda_library( |
| name = "core_cpu_lib", |
| hdrs = [":core_cpu_lib_headers"], |
| deps = [ |
| ":core_cpu_base", |
| "//tensorflow/core/grappler:grappler_item", |
| ] + if_static([":core_cpu_impl"]) + tf_protos_all() + tf_protos_grappler(), |
| ) |
| |
| tf_cuda_library( |
| name = "core_cpu_lib_no_ops", |
| hdrs = [":core_cpu_lib_headers"], |
| deps = [ |
| ":core_cpu_base_no_ops", |
| "//tensorflow/core/grappler:grappler_item", |
| ] + tf_protos_all() + tf_protos_grappler(), |
| ) |
| |
| tf_cuda_library( |
| name = "core_cpu_internal", |
| srcs = [ |
| "common_runtime/graph_execution_state.cc", |
| ], |
| hdrs = [ |
| "common_runtime/graph_execution_state.h", |
| ":core_cpu_lib_headers", |
| ], |
| copts = tf_copts(), |
| deps = [ |
| ":framework", |
| ":graph", |
| ":lib", |
| ":protos_all_cc", |
| "@com_google_absl//absl/memory", |
| "@com_google_absl//absl/strings", |
| "//tensorflow/core/grappler:grappler_item", |
| "//tensorflow/core/grappler/clusters:utils", |
| "//tensorflow/core/grappler/clusters:virtual_cluster", |
| "//tensorflow/core/grappler/optimizers:meta_optimizer", |
| "//third_party/eigen3", |
| ] + mkl_deps() + tf_additional_core_deps() + if_static([ |
| ":core_cpu_impl", |
| ":function_ops_op_lib", |
| ":functional_grad", |
| ":functional_ops_op_lib", |
| "//tensorflow/core/kernels:required", |
| ]), |
| alwayslink = 1, |
| ) |
| |
| # This is redundant with the "core_cpu_*" targets above. It's useful for |
| # applications that want to depend on a minimal subset of TensorFlow (e.g. XLA). |
| cc_library( |
| name = "bfc_allocator", |
| srcs = [ |
| "common_runtime/allocator_retry.cc", |
| "common_runtime/allocator_retry.h", |
| "common_runtime/bfc_allocator.cc", |
| ], |
| hdrs = ["common_runtime/bfc_allocator.h"], |
| features = ["parse_headers"], |
| visibility = ["//visibility:public"], |
| deps = [ |
| ":lib", |
| ":lib_internal", |
| ":protos_all_cc", |
| ":shared_counter", |
| "//tensorflow/core/framework:allocator", |
| "//tensorflow/core/profiler/lib:traceme", |
| "@com_google_absl//absl/container:flat_hash_set", |
| "@com_google_absl//absl/strings", |
| ], |
| ) |
| |
| cc_library( |
| name = "shared_counter", |
| hdrs = ["common_runtime/shared_counter.h"], |
| features = ["parse_headers"], |
| visibility = ["//visibility:public"], |
| deps = [ |
| ":lib", |
| ], |
| ) |
| |
| alias( |
| name = "regexp_internal", |
| actual = |
| "//tensorflow/core/platform:regexp", |
| visibility = [ |
| "//tensorflow/compiler:__subpackages__", |
| "//tensorflow/core/kernels:__subpackages__", |
| "//tensorflow/core/profiler:__subpackages__", |
| "//tensorflow/stream_executor:__subpackages__", |
| ], |
| ) |
| |
| tf_cuda_library( |
| name = "direct_session_internal", |
| srcs = ["common_runtime/direct_session.cc"], |
| hdrs = [ |
| "common_runtime/direct_session.h", |
| "//tensorflow/core/util:lib_internal_public_hdrs", |
| ], |
| copts = tf_copts(), |
| deps = [ |
| ":core_cpu_internal", |
| ":framework", |
| ":framework_internal", |
| ":graph", |
| ":lib", |
| ":lib_experimental", |
| ":lib_internal", |
| ":protos_all_cc", |
| "//tensorflow/core/debug:debug_graph_utils", |
| "//tensorflow/core/kernels:function_ops", |
| "//tensorflow/core/profiler/lib:profiler_backends", |
| "//tensorflow/core/profiler/lib:profiler_session", |
| "//tensorflow/core/profiler/lib:traceme", |
| "@com_google_absl//absl/container:flat_hash_set", |
| ], |
| alwayslink = 1, |
| ) |
| |
| alias( |
| name = "example_parser_configuration", |
| actual = "//tensorflow/core/example:example_parser_configuration", |
| visibility = ["//visibility:public"], |
| ) |
| |
| tf_proto_library_cc( |
| name = "replay_log_proto", |
| srcs = ["protobuf/replay_log.proto"], |
| cc_api_version = 2, |
| protodeps = [ |
| ":master_proto", |
| ] + tf_additional_all_protos(), |
| visibility = [ |
| "//tensorflow:internal", |
| ], |
| ) |
| |
| cc_library( |
| name = "gpu_id", |
| hdrs = [ |
| "common_runtime/gpu/gpu_id.h", |
| "common_runtime/gpu/gpu_id_manager.h", |
| ], |
| deps = [ |
| ":lib", |
| ] + if_static([ |
| ":gpu_id_impl", |
| ]), |
| ) |
| |
| cc_library( |
| name = "gpu_id_impl", |
| srcs = ["common_runtime/gpu/gpu_id_manager.cc"], |
| hdrs = [ |
| "common_runtime/gpu/gpu_id.h", |
| "common_runtime/gpu/gpu_id_manager.h", |
| ], |
| deps = [ |
| ":lib", |
| ], |
| ) |
| |
| filegroup( |
| name = "gpu_runtime_headers", |
| srcs = [ |
| "common_runtime/gpu/gpu_bfc_allocator.h", |
| "common_runtime/gpu/gpu_cudamalloc_allocator.h", |
| "common_runtime/gpu/gpu_debug_allocator.h", |
| "common_runtime/gpu/gpu_device.h", |
| "common_runtime/gpu/gpu_host_allocator.h", |
| "common_runtime/gpu/gpu_id.h", |
| "common_runtime/gpu/gpu_id_manager.h", |
| "common_runtime/gpu/gpu_id_utils.h", |
| "common_runtime/gpu/gpu_init.h", |
| "common_runtime/gpu/gpu_managed_allocator.h", |
| "common_runtime/gpu/gpu_mem_allocator.h", |
| "common_runtime/gpu/gpu_process_state.h", |
| "common_runtime/gpu/gpu_stream_util.h", |
| "common_runtime/gpu/gpu_util.h", |
| "common_runtime/gpu_device_context.h", |
| ], |
| visibility = ["//visibility:private"], |
| ) |
| |
| tf_cuda_library( |
| name = "gpu_runtime_impl", |
| srcs = [ |
| "common_runtime/gpu/gpu_cudamalloc_allocator.cc", |
| "common_runtime/gpu/gpu_debug_allocator.cc", |
| "common_runtime/gpu/gpu_device.cc", |
| "common_runtime/gpu/gpu_device_factory.cc", |
| "common_runtime/gpu/gpu_managed_allocator.cc", |
| "common_runtime/gpu/gpu_process_state.cc", |
| "common_runtime/gpu/gpu_stream_util.cc", |
| "common_runtime/gpu/gpu_util.cc", |
| "common_runtime/gpu/gpu_util_platform_specific.cc", |
| ], |
| hdrs = [":gpu_runtime_headers"], |
| copts = tf_copts(), |
| cuda_deps = [ |
| "@local_config_cuda//cuda:cudnn_header", |
| ], |
| deps = [ |
| ":core_cpu_impl", |
| ":core_cpu_lib", |
| ":framework", |
| ":framework_internal", |
| ":gpu_bfc_allocator", |
| ":gpu_id_impl", |
| ":gpu_init_impl", |
| ":gpu_lib", |
| ":graph", |
| ":lib", |
| ":lib_internal", |
| ":protos_all_cc", |
| ":stream_executor", |
| "//tensorflow/core/profiler/lib:annotated_traceme", |
| "//tensorflow/core/profiler/lib:scoped_annotation", |
| "//third_party/eigen3", |
| ], |
| alwayslink = 1, |
| ) |
| |
| tf_cuda_library( |
| name = "gpu_runtime", |
| hdrs = [":gpu_runtime_headers"], |
| linkstatic = 1, |
| deps = [ |
| ":core_cpu_lib", |
| ":framework", |
| ":framework_internal", |
| ":lib", |
| ":lib_internal", |
| ":protos_all_cc", |
| ":stream_executor", |
| "//third_party/eigen3", |
| ] + if_static([":gpu_runtime_impl"]), |
| ) |
| |
| # This is redundant with the "gpu_runtime_*" targets above. It's useful for |
| # applications that want to depend on a minimal subset of TensorFlow (e.g. XLA). |
| tf_cuda_library( |
| name = "gpu_bfc_allocator", |
| srcs = [ |
| "common_runtime/gpu/gpu_bfc_allocator.cc", |
| ], |
| hdrs = ["common_runtime/gpu/gpu_bfc_allocator.h"], |
| features = ["parse_headers"], |
| visibility = ["//visibility:public"], |
| deps = [ |
| ":bfc_allocator", |
| ":gpu_mem_allocator", |
| ":lib", |
| ":lib_internal", |
| ":protos_all_cc", |
| ], |
| ) |
| |
| tf_cuda_library( |
| name = "gpu_mem_allocator", |
| srcs = [ |
| "common_runtime/gpu/gpu_id.h", |
| ], |
| hdrs = [ |
| "common_runtime/gpu/gpu_host_allocator.h", |
| "common_runtime/gpu/gpu_mem_allocator.h", |
| ], |
| features = ["parse_headers"], |
| visibility = ["//visibility:public"], |
| deps = [ |
| ":lib", |
| ":lib_internal", |
| ":stream_executor", |
| "//tensorflow/core/framework:allocator", |
| ], |
| ) |
| |
| tf_cuda_library( |
| name = "gpu_init", |
| hdrs = [ |
| "common_runtime/gpu/gpu_init.h", |
| ], |
| deps = [ |
| ":framework", |
| ":framework_internal", |
| ":lib", |
| ":lib_internal", |
| ":stream_executor", |
| ] + if_static( |
| [":gpu_init_impl"], |
| ), |
| ) |
| |
| tf_cuda_library( |
| name = "gpu_init_impl", |
| srcs = [ |
| "common_runtime/gpu/gpu_init.cc", |
| ], |
| hdrs = [ |
| "common_runtime/gpu/gpu_init.h", |
| ], |
| copts = tf_copts(), |
| linkstatic = 1, |
| deps = [ |
| ":framework", |
| ":framework_internal", |
| ":lib", |
| ":lib_internal", |
| ":stream_executor", |
| ], |
| alwayslink = 1, |
| ) |
| |
| cc_library( |
| name = "sycl_runtime", |
| srcs = if_not_windows([ |
| "common_runtime/sycl/sycl_allocator.cc", |
| "common_runtime/sycl/sycl_device.cc", |
| "common_runtime/sycl/sycl_device_context.cc", |
| "common_runtime/sycl/sycl_device_factory.cc", |
| ]), |
| hdrs = if_not_windows([ |
| "common_runtime/sycl/sycl_allocator.h", |
| "common_runtime/sycl/sycl_device.h", |
| "common_runtime/sycl/sycl_util.h", |
| "common_runtime/sycl/sycl_device_context.h", |
| ]), |
| copts = tf_copts(), |
| linkstatic = 0, |
| deps = [ |
| ":core_cpu", |
| ":core_cpu_internal", |
| ":framework", |
| ":framework_internal", |
| ":lib", |
| ":lib_internal", |
| "//third_party/eigen3", |
| "@local_config_sycl//sycl", |
| ], |
| alwayslink = 0, |
| ) |
| |
| # ----------------------------------------------------------------------------- |
| # Tests |
| |
| cc_library( |
| name = "lib_test_internal", |
| testonly = 1, |
| hdrs = [ |
| "//tensorflow/core/lib/gtl:legacy_lib_test_internal_headers", |
| "//tensorflow/core/lib/io:legacy_lib_test_internal_headers", |
| "//tensorflow/core/lib/random:legacy_lib_test_internal_headers", |
| ], |
| deps = [ |
| ":lib", |
| ":lib_internal", |
| ], |
| ) |
| |
| # TODO(gonnet): Remove this alias once all users have been moved to the actual target. |
| alias( |
| name = "tensor_testutil", |
| actual = "//tensorflow/core/framework:tensor_testutil", |
| ) |
| |
| # TODO(gonnet): Remove this alias once all users have been moved to the actual target. |
| alias( |
| name = "shape_inference_testutil", |
| actual = "//tensorflow/core/framework:shape_inference_testutil", |
| ) |
| |
| # Main program for tests |
| alias( |
| name = "test_main", |
| actual = "//tensorflow/core/platform:test_main", |
| visibility = ["//tensorflow:internal"], |
| ) |
| |
| test_suite( |
| name = "low_level_tests", |
| tests = [ |
| ":low_level_library_tests", |
| "//tensorflow/core/platform:low_level_library_tests", |
| ], |
| ) |
| |
| tf_cc_tests( |
| name = "low_level_library_tests", |
| size = "small", |
| srcs = [ |
| "lib/wav/wav_io_test.cc", |
| "//tensorflow/core/lib/core:legacy_lib_core_all_tests", |
| "//tensorflow/core/lib/gtl:legacy_lib_gtl_tests", |
| "//tensorflow/core/lib/hash:legacy_lib_hash_all_tests", |
| "//tensorflow/core/lib/histogram:legacy_lib_histogram_all_tests", |
| "//tensorflow/core/lib/io:legacy_lib_io_all_tests", |
| "//tensorflow/core/lib/math:math_util_test.cc", |
| "//tensorflow/core/lib/monitoring:collection_registry_test.cc", |
| "//tensorflow/core/lib/monitoring:counter_test.cc", |
| "//tensorflow/core/lib/monitoring:gauge_test.cc", |
| "//tensorflow/core/lib/monitoring:metric_def_test.cc", |
| "//tensorflow/core/lib/monitoring:percentile_sampler_test.cc", |
| "//tensorflow/core/lib/monitoring:sampler_test.cc", |
| "//tensorflow/core/lib/random:legacy_lib_random_tests", |
| "//tensorflow/core/lib/strings:legacy_low_level_library_tests", |
| ], |
| create_named_test_suite = True, |
| deps = [ |
| ":core_cpu_internal", |
| ":lib", |
| ":lib_internal", |
| ":lib_test_internal", |
| ":protos_all_cc", |
| ":test", |
| ":test_main", |
| "//tensorflow/core/platform:scanner", |
| "//tensorflow/core/platform:str_util", |
| "//tensorflow/core/platform:strcat", |
| "//tensorflow/core/platform:stringpiece", |
| "//tensorflow/core/platform:stringprintf", |
| "//third_party/eigen3", |
| "@com_google_absl//absl/strings", |
| "@com_google_absl//absl/synchronization", |
| "@com_google_absl//absl/types:optional", |
| "@zlib", |
| ], |
| ) |
| |
| tf_cc_test( |
| name = "lib_random_random_distributions_test", |
| srcs = ["//tensorflow/core/lib/random:legacy_lib_random_random_distributions_test"], |
| tags = ["optonly"], |
| deps = [ |
| ":lib", |
| ":lib_internal", |
| ":lib_test_internal", |
| ":protos_all_cc", |
| ":test", |
| ":test_main", |
| "//third_party/eigen3", |
| ], |
| ) |
| |
| test_suite( |
| name = "platform_tests", |
| tests = [ |
| "//tensorflow/core/platform:abi_test", |
| "//tensorflow/core/platform:env_test", |
| "//tensorflow/core/platform:fake_python_env_test", |
| "//tensorflow/core/platform:file_system_test", |
| "//tensorflow/core/platform:numa_test", |
| "//tensorflow/core/platform:platform_strings_test", |
| "//tensorflow/core/platform:rocm_rocdl_path_test", |
| "//tensorflow/core/platform:setround_test", |
| "//tensorflow/core/platform:unbounded_work_queue_test", |
| "//tensorflow/core/platform:vmodule_test", |
| ], |
| ) |
| |
| tf_cc_test( |
| name = "lib_jpeg_jpeg_mem_unittest", |
| srcs = ["lib/jpeg/jpeg_mem_unittest.cc"], |
| data = glob(["lib/jpeg/testdata/*.jpg"]), |
| deps = [ |
| ":jpeg_internal", |
| ":lib", |
| ":lib_internal", |
| ":test", |
| ":test_main", |
| "@com_google_absl//absl/base", |
| ], |
| ) |
| |
| tf_cc_test( |
| name = "lib_strings_ordered_code_test", |
| srcs = ["//tensorflow/core/lib/strings:legacy_strings_ordered_code_test"], |
| extra_copts = ["$(STACK_FRAME_UNLIMITED)"], # Tests initialize large vectors |
| deps = [ |
| ":lib", |
| ":lib_internal", |
| ":test", |
| ":test_main", |
| ], |
| ) |
| |
| tf_cc_test( |
| name = "lib_strings_proto_serialization_test", |
| srcs = ["//tensorflow/core/lib/strings:legacy_strings_proto_serialization_test"], |
| deps = [ |
| ":lib", |
| ":lib_internal", |
| ":lib_test_internal", |
| ":protos_all_cc", |
| ":test", |
| ":test_main", |
| "@com_google_absl//absl/memory", |
| ], |
| ) |
| |
| tf_cc_test( |
| name = "lib_random_weighted_picker_test", |
| size = "medium", |
| srcs = ["//tensorflow/core/lib/random:legacy_lib_random_random_weighted_picker_test"], |
| deps = [ |
| ":lib", |
| ":lib_internal", |
| ":test", |
| ":test_main", |
| ], |
| ) |
| |
| tf_cc_test( |
| name = "framework_op_gen_lib_test", |
| size = "small", |
| srcs = ["//tensorflow/core/framework:op_gen_lib_test.cc"], |
| deps = [ |
| ":protos_all_cc", |
| ":test", |
| ":test_main", |
| "//tensorflow/core/framework:op_gen_lib", |
| ], |
| ) |
| |
| test_suite( |
| name = "higher_level_tests", |
| tests = [ |
| ":core_higher_level_tests", |
| "//tensorflow/core/framework:higher_level_tests", |
| "//tensorflow/core/util:higher_level_tests", |
| ], |
| ) |
| |
| tf_cc_test( |
| name = "common_runtime_placer_test", |
| size = "small", |
| srcs = [ |
| "common_runtime/placer_test.cc", |
| ], |
| linkopts = select({ |
| "//tensorflow:macos": ["-headerpad_max_install_names"], |
| "//conditions:default": [], |
| }), |
| linkstatic = tf_kernel_tests_linkstatic(), |
| tags = ["no_windows"], |
| deps = [ |
| ":core", |
| ":core_cpu", |
| ":core_cpu_internal", |
| ":direct_session_internal", |
| ":framework", |
| ":framework_internal", |
| ":lib", |
| ":lib_internal", |
| ":ops", |
| ":protos_all_cc", |
| ":test", |
| ":test_main", |
| ":testlib", |
| "//tensorflow/cc:cc_ops", |
| "//tensorflow/cc:cc_ops_internal", |
| "//tensorflow/cc:function_ops", |
| "//tensorflow/cc:ops", |
| "//tensorflow/cc:scope", |
| "//tensorflow/cc:sendrecv_ops", |
| "//tensorflow/cc:while_loop", |
| "//tensorflow/core/kernels:ops_util", |
| "//tensorflow/core/platform:regexp", |
| "//tensorflow/core/util:protos_test_cc", |
| "//third_party/eigen3", |
| "@com_google_absl//absl/base", |
| "@com_google_absl//absl/memory", |
| "@com_google_absl//absl/strings", |
| ], |
| ) |
| |
| tf_cc_tests( |
| name = "core_higher_level_tests", |
| size = "small", |
| srcs = [ |
| "common_runtime/buf_rendezvous_test.cc", |
| "common_runtime/collective_executor_mgr_test.cc", |
| "common_runtime/collective_rma_local_test.cc", |
| "common_runtime/device_mgr_test.cc", |
| "common_runtime/device_resolver_local_test.cc", |
| "common_runtime/device_set_test.cc", |
| "common_runtime/dynamic_device_mgr_test.cc", |
| "common_runtime/function_optimization_registration_test.cc", |
| "common_runtime/function_optimization_registry_no_pass_test.cc", |
| "common_runtime/function_optimization_registry_pass_failure_test.cc", |
| "common_runtime/function_optimization_registry_test.cc", |
| "common_runtime/isolate_placer_inspection_required_ops_pass_test.cc", |
| "common_runtime/optimization_registry_test.cc", |
| "common_runtime/pending_counts_test.cc", |
| "common_runtime/placer_inspection_required_ops_utils_test.cc", |
| "common_runtime/session_test.cc", |
| "common_runtime/threadpool_device_test.cc", |
| "//tensorflow/core/example:feature_util_test.cc", |
| "//tensorflow/core/graph:algorithm_test.cc", |
| "//tensorflow/core/graph:control_flow_test.cc", |
| "//tensorflow/core/graph:edgeset_test.cc", |
| "//tensorflow/core/graph:graph_def_builder_test.cc", |
| "//tensorflow/core/graph:graph_partition_test.cc", |
| "//tensorflow/core/graph:graph_test.cc", |
| "//tensorflow/core/graph:node_builder_test.cc", |
| "//tensorflow/core/graph:optimizer_cse_test.cc", |
| "//tensorflow/core/graph:subgraph_test.cc", |
| "//tensorflow/core/graph:tensor_id_test.cc", |
| "//tensorflow/core/graph:validate_test.cc", |
| "//tensorflow/core/util/sparse:higher_level_tests_group", |
| ], |
| create_named_test_suite = True, |
| linkopts = select({ |
| "//tensorflow:macos": ["-headerpad_max_install_names"], |
| "//conditions:default": [], |
| }), |
| linkstatic = tf_kernel_tests_linkstatic(), |
| deps = [ |
| ":core", |
| ":core_cpu", |
| ":core_cpu_internal", |
| ":direct_session_internal", |
| ":framework", |
| ":framework_internal", |
| ":lib", |
| ":lib_internal", |
| ":ops", |
| ":protos_all_cc", |
| ":test", |
| ":test_main", |
| ":testlib", |
| "//tensorflow/cc:cc_ops", |
| "//tensorflow/cc:cc_ops_internal", |
| "//tensorflow/cc:function_ops", |
| "//tensorflow/cc:ops", |
| "//tensorflow/cc:scope", |
| "//tensorflow/cc:sendrecv_ops", |
| "//tensorflow/cc:while_loop", |
| "//tensorflow/core/kernels:ops_util", |
| "//tensorflow/core/platform:regexp", |
| "//tensorflow/core/util:protos_test_cc", |
| "//third_party/eigen3", |
| "@com_google_absl//absl/base", |
| "@com_google_absl//absl/memory", |
| "@com_google_absl//absl/strings", |
| ], |
| ) |
| |
| tf_cc_tests( |
| name = "higher_level_tests_needing_kernels", |
| size = "small", |
| srcs = [ |
| "common_runtime/collective_param_resolver_local_test.cc", |
| "//tensorflow/core/graph:higher_level_tests_needing_kernels", |
| ], |
| linkopts = select({ |
| "//tensorflow:macos": ["-headerpad_max_install_names"], |
| "//conditions:default": [], |
| }), |
| linkstatic = tf_kernel_tests_linkstatic(), |
| deps = [ |
| ":all_kernels", |
| ":core", |
| ":core_cpu", |
| ":core_cpu_internal", |
| ":direct_session_internal", |
| ":framework", |
| ":framework_internal", |
| ":lib", |
| ":lib_internal", |
| ":ops", |
| ":protos_all_cc", |
| ":test", |
| ":test_main", |
| ":testlib", |
| "//tensorflow/cc:cc_ops", |
| "//tensorflow/cc:cc_ops_internal", |
| "//tensorflow/cc:scope", |
| "//tensorflow/cc:sendrecv_ops", |
| "//tensorflow/core/kernels:ops_util", |
| "//tensorflow/core/util:protos_test_cc", |
| "//third_party/eigen3", |
| ], |
| ) |
| |
| tf_cc_test( |
| name = "cudnn_rnn_ops_test_cc", |
| size = "small", |
| srcs = [ |
| "ops/cudnn_rnn_ops_test.cc", |
| ], |
| deps = [ |
| ":core", |
| ":framework", |
| ":lib", |
| ":test", |
| ":test_main", |
| ":testlib", |
| ], |
| ) |
| |
| tf_cc_tests_gpu( |
| name = "ring_reducer_test", |
| size = "medium", |
| srcs = [ |
| "common_runtime/ring_reducer_test.cc", |
| ], |
| linkstatic = tf_kernel_tests_linkstatic(), |
| tags = ["no_cuda_on_cpu_tap"], |
| deps = [ |
| ":all_kernels", |
| ":core", |
| ":core_cpu", |
| ":core_cpu_internal", |
| ":direct_session_internal", |
| ":framework", |
| ":framework_internal", |
| ":gpu_runtime", |
| ":lib", |
| ":lib_internal", |
| ":ops", |
| ":protos_all_cc", |
| ":test", |
| ":test_main", |
| ":testlib", |
| "//tensorflow/core/util:protos_test_cc", |
| "@com_google_absl//absl/memory", |
| ], |
| ) |
| |
| tf_cc_tests_gpu( |
| name = "ring_gatherer_test", |
| size = "medium", |
| srcs = [ |
| "common_runtime/ring_gatherer_test.cc", |
| ], |
| linkstatic = tf_kernel_tests_linkstatic(), |
| tags = ["no_cuda_on_cpu_tap"], |
| deps = [ |
| ":all_kernels", |
| ":core", |
| ":core_cpu", |
| ":core_cpu_internal", |
| ":direct_session_internal", |
| ":framework", |
| ":framework_internal", |
| ":gpu_runtime", |
| ":lib", |
| ":lib_internal", |
| ":ops", |
| ":protos_all_cc", |
| ":test", |
| ":test_main", |
| ":testlib", |
| "//tensorflow/core/util:protos_test_cc", |
| "@com_google_absl//absl/memory", |
| ], |
| ) |
| |
| tf_cc_tests_gpu( |
| name = "hierarchical_tree_broadcaster_test", |
| size = "medium", |
| srcs = [ |
| "common_runtime/hierarchical_tree_broadcaster_test.cc", |
| ], |
| linkstatic = tf_kernel_tests_linkstatic(), |
| tags = ["no_cuda_on_cpu_tap"], |
| deps = [ |
| ":all_kernels", |
| ":core", |
| ":core_cpu", |
| ":core_cpu_internal", |
| ":direct_session_internal", |
| ":framework", |
| ":framework_internal", |
| ":gpu_runtime", |
| ":lib", |
| ":lib_internal", |
| ":ops", |
| ":protos_all_cc", |
| ":test", |
| ":test_main", |
| ":testlib", |
| "//tensorflow/core/util:protos_test_cc", |
| "@com_google_absl//absl/memory", |
| ], |
| ) |
| |
| tf_cc_test_mkl( |
| name = "mkl_runtime_tests", |
| size = "small", |
| srcs = [ |
| "common_runtime/mkl_cpu_allocator_test.cc", |
| "common_runtime/mkl_threadpool_device_test.cc", |
| ], |
| linkstatic = 1, |
| deps = [ |
| ":core", |
| ":core_cpu", |
| ":core_cpu_internal", |
| ":framework", |
| ":framework_internal", |
| ":lib", |
| ":test", |
| ":test_main", |
| ":testlib", |
| ], |
| ) |
| |
| tf_cc_test_mkl( |
| name = "mkl_related_tests", |
| size = "small", |
| srcs = [ |
| "//tensorflow/core/graph:mkl_related_tests", |
| "//tensorflow/core/util:mkl_util_test_srcs", |
| ], |
| linkstatic = 1, |
| deps = [ |
| ":core", |
| ":core_cpu", |
| ":core_cpu_internal", |
| ":direct_session_internal", |
| ":framework", |
| ":framework_internal", |
| ":lib", |
| ":lib_internal", |
| ":ops", |
| ":protos_all_cc", |
| ":test", |
| ":test_main", |
| ":testlib", |
| "//tensorflow/cc:cc_ops", |
| "//tensorflow/cc:scope", |
| "//tensorflow/cc:sendrecv_ops", |
| "//tensorflow/core/kernels:ops_util", |
| "//third_party/eigen3", |
| ] + if_mkl([ |
| "//tensorflow/core/kernels:mkl_aggregate_ops", |
| "//tensorflow/core/kernels:mkl_batch_matmul_op", |
| "//tensorflow/core/kernels:mkl_concat_op", |
| "//tensorflow/core/kernels:mkl_conv_op", |
| "//tensorflow/core/kernels:mkl_cwise_ops_common", |
| "//tensorflow/core/kernels:mkl_dequantize_op", |
| "//tensorflow/core/kernels:mkl_fused_batch_norm_op", |
| "//tensorflow/core/kernels:mkl_identity_op", |
| "//tensorflow/core/kernels:mkl_input_conversion_op", |
| "//tensorflow/core/kernels:mkl_lrn_op", |
| "//tensorflow/core/kernels:mkl_matmul_op", |
| "//tensorflow/core/kernels:mkl_pooling_ops", |
| "//tensorflow/core/kernels:mkl_qmatmul_op", |
| "//tensorflow/core/kernels:mkl_quantize_op", |
| "//tensorflow/core/kernels:mkl_relu_op", |
| "//tensorflow/core/kernels:mkl_reshape_op", |
| "//tensorflow/core/kernels:mkl_slice_op", |
| "//tensorflow/core/kernels:mkl_softmax_op", |
| "//tensorflow/core/kernels:mkl_tfconv_op", |
| "//tensorflow/core/kernels:mkl_transpose_op", |
| "//tensorflow/core/kernels:mkl_tmp_bf16_ops", |
| ]), |
| ) |
| |
| tf_cc_tests_gpu( |
| name = "gpu_device_on_non_gpu_machine_test", |
| size = "small", |
| srcs = ["common_runtime/gpu/gpu_device_on_non_gpu_machine_test.cc"], |
| linkstatic = tf_kernel_tests_linkstatic(), |
| deps = [ |
| ":gpu_headers_lib", |
| ":gpu_id", |
| ":gpu_runtime", |
| ":test", |
| ], |
| ) |
| |
| tf_cc_tests_gpu( |
| name = "gpu_related_tests", |
| size = "small", |
| srcs = glob(["user_ops/**/*_test.cc"]) + [ |
| "common_runtime/gpu/gpu_bfc_allocator_test.cc", |
| "common_runtime/gpu/gpu_device_test.cc", |
| "common_runtime/gpu/gpu_id_manager_test.cc", |
| "common_runtime/gpu/pool_allocator_test.cc", |
| ], |
| linkstatic = tf_kernel_tests_linkstatic(), |
| tags = tf_cuda_tests_tags(), |
| deps = [ |
| ":core_cpu", |
| ":core_cpu_internal", |
| ":direct_session", |
| ":framework", |
| ":framework_internal", |
| ":gpu_id", |
| ":gpu_runtime", |
| ":lib", |
| ":lib_internal", |
| ":protos_all_cc", |
| ":test", |
| ":test_main", |
| ":testlib", |
| "//tensorflow/cc:cc_ops", |
| "//tensorflow/core/kernels:ops_util", |
| ], |
| ) |
| |
| tf_cc_test_gpu( |
| name = "gpu_event_mgr_test", |
| srcs = ["common_runtime/gpu/gpu_event_mgr_test.cc"], |
| linkstatic = tf_kernel_tests_linkstatic(), |
| tags = tf_cuda_tests_tags(), |
| deps = [ |
| ":framework", |
| ":framework_internal", |
| ":lib", |
| ":lib_internal", |
| ":protos_all_cc", |
| ":test", |
| ":test_main", |
| ":testlib", |
| "//tensorflow/core/kernels:cwise_op", |
| ], |
| ) |
| |
| tf_cuda_cc_test( |
| name = "gpu_device_unified_memory_test", |
| size = "small", |
| srcs = [ |
| "common_runtime/gpu/gpu_device_test.cc", |
| ], |
| linkstatic = tf_kernel_tests_linkstatic(), |
| # Runs test on a Guitar cluster that uses P100s to test unified memory |
| # allocations. |
| tags = tf_cuda_tests_tags() + [ |
| "guitar", |
| "multi_gpu", |
| ], |
| deps = [ |
| ":core_cpu", |
| ":core_cpu_internal", |
| ":direct_session", |
| ":framework", |
| ":framework_internal", |
| ":gpu_id", |
| ":lib", |
| ":lib_internal", |
| ":protos_all_cc", |
| ":test", |
| ":test_main", |
| ":testlib", |
| "//tensorflow/cc:cc_ops", |
| "//tensorflow/core/kernels:ops_util", |
| ], |
| ) |
| |
| tf_cc_test_gpu( |
| name = "memory_types_test", |
| size = "small", |
| srcs = ["common_runtime/memory_types_test.cc"], |
| linkstatic = tf_kernel_tests_linkstatic(), |
| tags = tf_cuda_tests_tags(), |
| deps = [ |
| ":core", |
| ":core_cpu", |
| ":core_cpu_internal", |
| ":framework", |
| ":framework_internal", |
| ":gpu_runtime", |
| ":lib", |
| ":lib_internal", |
| ":ops", |
| ":protos_all_cc", |
| ":test", |
| ":test_main", |
| ":testlib", |
| "//tensorflow/cc:cc_ops", |
| "//tensorflow/core/kernels:cast_op", |
| "//third_party/eigen3", |
| ], |
| ) |
| |
| tf_cc_test_gpu( |
| name = "variant_op_copy_test", |
| size = "small", |
| srcs = ["//tensorflow/core/framework:variant_op_copy_test.cc"], |
| linkstatic = tf_kernel_tests_linkstatic(), |
| tags = tf_cuda_tests_tags(), |
| deps = [ |
| ":core", |
| ":core_cpu", |
| ":core_cpu_internal", |
| ":direct_session", |
| ":framework", |
| ":framework_internal", |
| ":gpu_runtime", |
| ":lib", |
| ":lib_internal", |
| ":protos_all_cc", |
| ":test", |
| ":test_main", |
| ":testlib", |
| "//tensorflow/cc:cc_ops", |
| "//tensorflow/cc:client_session", |
| "//tensorflow/cc:ops", |
| "//tensorflow/cc:scope", |
| "//tensorflow/core/kernels:array", |
| "//third_party/eigen3", |
| ], |
| ) |
| |
| tf_cc_test( |
| name = "common_runtime_constant_folding_test", |
| size = "small", |
| srcs = ["common_runtime/constant_folding_test.cc"], |
| linkstatic = tf_kernel_tests_linkstatic(), |
| tags = tf_cuda_tests_tags(), |
| deps = [ |
| ":core", |
| ":core_cpu", |
| ":core_cpu_internal", |
| ":direct_session_internal", |
| ":framework", |
| ":framework_internal", |
| ":gpu_runtime", |
| ":lib", |
| ":lib_internal", |
| ":ops", |
| ":protos_all_cc", |
| ":test", |
| ":test_main", |
| ":testlib", |
| "//tensorflow/cc:cc_ops", |
| "//tensorflow/cc:cc_ops_internal", |
| "//tensorflow/cc:sendrecv_ops", |
| "//tensorflow/core/kernels:bcast_ops", |
| "//tensorflow/core/kernels:cast_op", |
| "//tensorflow/core/kernels:concat_op", |
| "//tensorflow/core/kernels:cwise_op", |
| "//tensorflow/core/kernels:identity_op", |
| "//tensorflow/core/kernels:immutable_constant_op", |
| "//tensorflow/core/kernels:matmul_op", |
| "//tensorflow/core/kernels:topk_op", |
| "//third_party/eigen3", |
| ], |
| ) |
| |
| tf_cc_test( |
| name = "common_runtime_shape_refiner_test", |
| size = "small", |
| srcs = [ |
| "common_runtime/shape_refiner_test.cc", |
| ], |
| linkstatic = tf_kernel_tests_linkstatic(), |
| deps = [ |
| ":core", |
| ":core_cpu", |
| ":core_cpu_internal", |
| ":framework", |
| ":framework_internal", |
| ":lib", |
| ":lib_internal", |
| ":ops", |
| ":protos_all_cc", |
| ":test", |
| ":test_main", |
| ":testlib", |
| "//tensorflow/cc:cc_ops", |
| "//tensorflow/cc:resource_variable_ops", |
| "//tensorflow/cc:scope", |
| "//tensorflow/core/kernels:array", |
| "//tensorflow/core/kernels:math", |
| "//tensorflow/core/kernels:resource_variable_ops", |
| "//third_party/eigen3", |
| ], |
| ) |
| |
| tf_cuda_cc_test( |
| name = "common_runtime_process_function_library_runtime_test", |
| size = "small", |
| srcs = ["common_runtime/process_function_library_runtime_test.cc"], |
| linkstatic = tf_kernel_tests_linkstatic(), |
| tags = ["no_rocm"], |
| deps = [ |
| ":core_cpu", |
| ":core_cpu_internal", |
| ":framework", |
| ":framework_internal", |
| ":lib", |
| ":protos_all_cc", |
| ":test", |
| ":test_main", |
| ":testlib", |
| "//tensorflow/cc:function_ops", |
| "//tensorflow/core/kernels:cast_op", |
| "//tensorflow/core/kernels:cwise_op", |
| "//tensorflow/core/kernels:function_ops", |
| "//tensorflow/core/kernels:resource_variable_ops", |
| ], |
| ) |
| |
| tf_cc_test( |
| name = "common_runtime_process_util_test", |
| size = "small", |
| srcs = ["common_runtime/process_util_test.cc"], |
| linkstatic = tf_kernel_tests_linkstatic(), |
| deps = [ |
| ":core_cpu_internal", |
| ":test", |
| ":test_main", |
| ], |
| ) |
| |
| tf_cc_test( |
| name = "common_runtime_rendezvous_util_test", |
| size = "small", |
| srcs = ["common_runtime/rendezvous_util_test.cc"], |
| linkstatic = tf_kernel_tests_linkstatic(), |
| deps = [ |
| ":core_cpu_internal", |
| ":lib", |
| ":test", |
| ":test_main", |
| ], |
| ) |
| |
| tf_cc_test( |
| name = "common_runtime_replicate_per_replica_nodes_test", |
| size = "small", |
| srcs = ["common_runtime/replicate_per_replica_nodes_test.cc"], |
| linkstatic = tf_kernel_tests_linkstatic(), |
| deps = [ |
| ":core_cpu_internal", |
| ":framework", |
| ":test", |
| ":test_main", |
| "//tensorflow/cc:cc_ops", |
| "//tensorflow/cc:cc_ops_internal", |
| "//tensorflow/cc:function_ops", |
| "//tensorflow/cc:ops", |
| "//tensorflow/cc:resource_variable_ops", |
| "@com_google_absl//absl/strings", |
| ], |
| ) |
| |
| tf_cc_test( |
| name = "framework_run_handler_util_test", |
| size = "small", |
| srcs = ["//tensorflow/core/framework:run_handler_util_test.cc"], |
| linkstatic = tf_kernel_tests_linkstatic(), |
| deps = [ |
| ":framework_internal", |
| ":lib", |
| ":test", |
| ":test_main", |
| ], |
| ) |
| |
| tf_cc_test( |
| name = "framework_run_handler_test", |
| size = "small", |
| srcs = ["//tensorflow/core/framework:run_handler_test.cc"], |
| linkstatic = tf_kernel_tests_linkstatic(), |
| deps = [ |
| ":core_cpu", |
| ":direct_session_internal", |
| ":framework_internal", |
| ":lib", |
| ":lib_internal", |
| ":protos_all_cc", |
| ":test", |
| ":test_main", |
| ":testlib", |
| "//tensorflow/core/framework:tensor_testutil", |
| "//tensorflow/core/kernels:cwise_op", |
| "//tensorflow/core/kernels:matmul_op", |
| "//third_party/eigen3", |
| "@com_google_absl//absl/memory", |
| "@com_google_absl//absl/synchronization", |
| ], |
| ) |
| |
| tf_cc_test( |
| name = "common_runtime_partitioning_utils_test", |
| size = "small", |
| srcs = ["common_runtime/partitioning_utils_test.cc"], |
| deps = [ |
| ":core_cpu", |
| ":core_cpu_internal", |
| ":framework", |
| ":lib", |
| ":ops", |
| ":test", |
| ":test_main", |
| ":testlib", |
| "//tensorflow/cc:cc_ops", |
| "//tensorflow/cc:cc_ops_internal", |
| "//tensorflow/cc:function_ops", |
| "//tensorflow/core/kernels:function_ops", |
| "//tensorflow/core/kernels:identity_op", |
| ], |
| ) |
| |
| tf_cuda_cc_test( |
| name = "common_runtime_direct_session_test", |
| size = "small", |
| srcs = ["common_runtime/direct_session_test.cc"], |
| args = [] + if_cuda(["--heap_check=local"]), # The GPU tracer leaks memory |
| linkstatic = tf_kernel_tests_linkstatic(), |
| deps = [ |
| ":core_cpu", |
| ":core_cpu_internal", |
| ":direct_session_internal", |
| ":framework", |
| ":framework_internal", |
| ":lib", |
| ":lib_internal", |
| ":ops", |
| ":protos_all_cc", |
| ":test", |
| ":test_main", |
| ":testlib", |
| "@com_google_absl//absl/memory", |
| "@com_google_absl//absl/strings", |
| "//third_party/eigen3", |
| "//tensorflow/cc:cc_ops", |
| "//tensorflow/core/kernels:collective_ops", |
| "//tensorflow/core/kernels:control_flow_ops", |
| "//tensorflow/core/kernels:cwise_op", |
| "//tensorflow/core/kernels:dense_update_ops", |
| "//tensorflow/core/kernels:fifo_queue_op", |
| "//tensorflow/core/kernels:function_ops", |
| "//tensorflow/core/kernels:identity_n_op", |
| "//tensorflow/core/kernels:identity_op", |
| "//tensorflow/core/kernels:matmul_op", |
| "//tensorflow/core/kernels:ops_util", |
| "//tensorflow/core/kernels:queue_ops", |
| "//tensorflow/core/kernels:session_ops", |
| "//tensorflow/core/kernels:variable_ops", |
| "//tensorflow/core/kernels/data:single_threaded_executor", |
| ] + if_cuda([":cuda"]), |
| ) |
| |
| # This is identical to :common_runtime_direct_session_test with the addition of |
| # a dependency on alwayslink target //third_party/tensorflow/core/debug, which |
| # enables support for TensorFlow Debugger (tfdbg). |
| tf_cc_test( |
| name = "common_runtime_direct_session_with_debug_test", |
| size = "small", |
| srcs = ["common_runtime/direct_session_test.cc"], |
| linkstatic = tf_kernel_tests_linkstatic(), |
| deps = [ |
| ":core", |
| ":core_cpu", |
| ":core_cpu_internal", |
| ":direct_session_internal", |
| ":framework", |
| ":framework_internal", |
| ":lib", |
| ":lib_internal", |
| ":ops", |
| ":protos_all_cc", |
| ":test", |
| ":test_main", |
| ":testlib", |
| "@com_google_absl//absl/strings", |
| "//third_party/eigen3", |
| "@com_google_absl//absl/memory", |
| "//tensorflow/cc:cc_ops", |
| # Link with support for TensorFlow Debugger (tfdbg). |
| "//tensorflow/core/debug", |
| "//tensorflow/core/kernels:collective_ops", |
| "//tensorflow/core/kernels:control_flow_ops", |
| "//tensorflow/core/kernels:cwise_op", |
| "//tensorflow/core/kernels:dense_update_ops", |
| "//tensorflow/core/kernels:fifo_queue_op", |
| "//tensorflow/core/kernels:function_ops", |
| "//tensorflow/core/kernels:identity_op", |
| "//tensorflow/core/kernels:identity_n_op", |
| "//tensorflow/core/kernels:matmul_op", |
| "//tensorflow/core/kernels:ops_util", |
| "//tensorflow/core/kernels:queue_ops", |
| "//tensorflow/core/kernels:session_ops", |
| "//tensorflow/core/kernels:variable_ops", |
| ], |
| ) |
| |
| tf_cc_test( |
| name = "common_runtime_direct_session_with_tracking_alloc_test", |
| size = "small", |
| srcs = ["common_runtime/direct_session_with_tracking_alloc_test.cc"], |
| args = ["--heap_check=local"], # The GPU tracer leaks memory |
| linkstatic = tf_kernel_tests_linkstatic(), |
| tags = ["no_gpu"], |
| deps = [ |
| ":core", |
| ":core_cpu", |
| ":core_cpu_internal", |
| ":direct_session_internal", |
| ":framework", |
| ":framework_internal", |
| ":lib", |
| ":lib_internal", |
| ":ops", |
| ":protos_all_cc", |
| ":test", |
| ":test_main", |
| ":testlib", |
| "//tensorflow/cc:cc_ops", |
| "//tensorflow/core/kernels:cwise_op", |
| "//tensorflow/core/kernels:dense_update_ops", |
| "//tensorflow/core/kernels:fifo_queue_op", |
| "//tensorflow/core/kernels:identity_op", |
| "//tensorflow/core/kernels:matmul_op", |
| "//tensorflow/core/kernels:ops_util", |
| "//tensorflow/core/kernels:queue_ops", |
| "//tensorflow/core/kernels:variable_ops", |
| "//third_party/eigen3", |
| ], |
| ) |
| |
| tf_cc_test( |
| name = "common_runtime_graph_runner_test", |
| size = "small", |
| srcs = ["common_runtime/graph_runner_test.cc"], |
| linkstatic = tf_kernel_tests_linkstatic(), |
| deps = [ |
| ":array_ops_op_lib", |
| ":core", |
| ":core_cpu", |
| ":core_cpu_internal", |
| ":direct_session_internal", |
| ":framework", |
| ":framework_internal", |
| ":lib", |
| ":lib_internal", |
| ":ops", |
| ":protos_all_cc", |
| ":test", |
| ":test_main", |
| ":testlib", |
| "//third_party/eigen3", |
| "//tensorflow/c/kernels:bitcast_op_lib", |
| "//tensorflow/cc:cc_ops", |
| "//tensorflow/cc:scope", |
| "//tensorflow/core/kernels:cwise_op", |
| ] + if_mkl([":mkl_array_ops_op_lib"]), |
| ) |
| |
| tf_cc_test( |
| name = "common_runtime_executor_test", |
| size = "small", |
| srcs = ["common_runtime/executor_test.cc"], |
| linkstatic = tf_kernel_tests_linkstatic(), |
| deps = [ |
| ":core", |
| ":core_cpu", |
| ":core_cpu_internal", |
| ":framework", |
| ":framework_internal", |
| ":lib", |
| ":lib_internal", |
| ":protos_all_cc", |
| ":test", |
| ":test_main", |
| ":testlib", |
| "//tensorflow/core/kernels:array", |
| "//tensorflow/core/kernels:control_flow_ops", |
| "//tensorflow/core/kernels:math", |
| "//tensorflow/core/kernels:random_ops", |
| "//tensorflow/core/kernels:state", |
| ], |
| ) |
| |
| tf_cc_test( |
| name = "common_runtime_function_test", |
| size = "small", |
| srcs = ["common_runtime/function_test.cc"], |
| linkstatic = tf_kernel_tests_linkstatic(), |
| tags = [ |
| "manual", |
| "no_oss", |
| ], |
| deps = [ |
| ":core", |
| ":core_cpu", |
| ":core_cpu_internal", |
| ":direct_session_internal", |
| ":framework", |
| ":framework_internal", |
| ":lib", |
| ":lib_internal", |
| ":ops", |
| ":protos_all_cc", |
| ":test", |
| ":test_main", |
| ":testlib", |
| "//tensorflow/cc:cc_ops", |
| "//tensorflow/cc:cc_ops_internal", |
| "//tensorflow/cc:function_ops", |
| "//tensorflow/cc:functional_ops", |
| "//tensorflow/cc:sendrecv_ops", |
| "//tensorflow/core/kernels:cast_op", |
| "//tensorflow/core/kernels:cwise_op", |
| "//tensorflow/core/kernels:function_ops", |
| "//tensorflow/core/kernels:matmul_op", |
| "//tensorflow/core/kernels:partitioned_function_ops", |
| "//tensorflow/core/kernels:random_ops", |
| "//tensorflow/core/kernels:shape_ops", |
| "//third_party/eigen3", |
| "@com_google_absl//absl/memory", |
| "@com_google_absl//absl/strings", |
| ], |
| ) |
| |
| tf_cc_test( |
| name = "common_runtime_function_threadpool_test", |
| size = "small", |
| srcs = ["common_runtime/function_threadpool_test.cc"], |
| linkstatic = tf_kernel_tests_linkstatic(), |
| deps = [ |
| ":core", |
| ":core_cpu", |
| ":core_cpu_internal", |
| ":direct_session_internal", |
| ":framework", |
| ":framework_internal", |
| ":lib", |
| ":lib_internal", |
| ":ops", |
| ":protos_all_cc", |
| ":test", |
| ":test_main", |
| ":testlib", |
| "//tensorflow/cc:cc_ops", |
| "//tensorflow/cc:cc_ops_internal", |
| "//tensorflow/cc:function_ops", |
| "//tensorflow/cc:functional_ops", |
| "//tensorflow/core/kernels:cast_op", |
| "//tensorflow/core/kernels:cwise_op", |
| "//tensorflow/core/kernels:function_ops", |
| "//tensorflow/core/kernels:matmul_op", |
| "//tensorflow/core/kernels:random_ops", |
| "//tensorflow/core/kernels:shape_ops", |
| "//third_party/eigen3", |
| ], |
| ) |
| |
| tf_cc_test( |
| name = "common_runtime_scoped_allocator_mgr_test", |
| size = "small", |
| srcs = ["common_runtime/scoped_allocator_mgr_test.cc"], |
| linkstatic = tf_kernel_tests_linkstatic(), |
| deps = [ |
| ":core_cpu", |
| ":core_cpu_internal", |
| ":framework", |
| ":lib", |
| ":test", |
| ":test_main", |
| ], |
| ) |
| |
| tf_cc_test_gpu( |
| name = "gpu_allocator_retry_test", |
| size = "medium", |
| srcs = ["common_runtime/gpu/gpu_allocator_retry_test.cc"], |
| linkstatic = tf_kernel_tests_linkstatic(), |
| tags = tf_cuda_tests_tags(), |
| deps = [ |
| ":core_cpu", |
| ":core_cpu_internal", |
| ":direct_session", |
| ":framework", |
| ":framework_internal", |
| ":gpu_runtime", |
| ":lib", |
| ":lib_internal", |
| ":protos_all_cc", |
| ":test", |
| ":test_main", |
| ":testlib", |
| "//tensorflow/cc:cc_ops", |
| ], |
| ) |
| |
| tf_cc_test_gpu( |
| name = "gpu_debug_allocator_test", |
| size = "medium", |
| srcs = ["common_runtime/gpu/gpu_debug_allocator_test.cc"], |
| args = ["--gtest_death_test_style=threadsafe"], |
| linkstatic = tf_kernel_tests_linkstatic(), |
| tags = tf_cuda_tests_tags(), |
| deps = [ |
| ":core_cpu", |
| ":core_cpu_internal", |
| ":direct_session", |
| ":framework", |
| ":framework_internal", |
| ":gpu_id", |
| ":gpu_runtime", |
| ":lib", |
| ":lib_internal", |
| ":protos_all_cc", |
| ":test", |
| ":test_main", |
| ":testlib", |
| "//tensorflow/cc:cc_ops", |
| "//tensorflow/core/kernels:ops_util", |
| ], |
| ) |
| |
| tf_cc_test_gpu( |
| name = "gpu_stream_util_test", |
| size = "small", |
| srcs = ["common_runtime/gpu/gpu_stream_util_test.cc"], |
| linkstatic = tf_kernel_tests_linkstatic(), |
| tags = tf_cuda_tests_tags() + ["nomac"], |
| deps = [ |
| ":core_cpu", |
| ":core_cpu_internal", |
| ":direct_session", |
| ":framework", |
| ":framework_internal", |
| ":gpu_runtime", |
| ":lib", |
| ":lib_internal", |
| ":protos_all_cc", |
| ":test", |
| ":test_main", |
| ":testlib", |
| "//tensorflow/cc:cc_ops", |
| "//tensorflow/cc:sendrecv_ops", |
| "//tensorflow/core/kernels:matmul_op", |
| "//tensorflow/core/kernels:ops_util", |
| ], |
| ) |
| |
| tf_cc_test( |
| name = "framework_op_segment_test", |
| size = "small", |
| srcs = ["//tensorflow/core/framework:op_segment_test.cc"], |
| linkstatic = tf_kernel_tests_linkstatic(), |
| deps = [ |
| ":core", |
| ":core_cpu", |
| ":core_cpu_internal", |
| ":direct_session_internal", |
| ":framework", |
| ":framework_internal", |
| ":lib", |
| ":lib_internal", |
| ":ops", |
| ":protos_all_cc", |
| ":test", |
| ":test_main", |
| ":testlib", |
| "//tensorflow/cc:cc_ops", |
| "//tensorflow/core/kernels:cwise_op", |
| "//tensorflow/core/kernels:ops_util", |
| "//third_party/eigen3", |
| ], |
| ) |
| |
| tf_cc_test( |
| name = "ops_array_grad_test", |
| size = "small", |
| srcs = ["ops/array_grad_test.cc"], |
| linkstatic = tf_kernel_tests_linkstatic(), |
| deps = [ |
| ":core", |
| ":core_cpu", |
| ":core_cpu_internal", |
| ":direct_session_internal", |
| ":framework", |
| ":framework_internal", |
| ":lib", |
| ":lib_internal", |
| ":ops", |
| ":protos_all_cc", |
| ":test", |
| ":test_main", |
| ":testlib", |
| "//tensorflow/cc:cc_ops", |
| "//tensorflow/core/kernels:array", |
| "//tensorflow/core/kernels:cwise_op", |
| "//tensorflow/core/kernels:function_ops", |
| "//tensorflow/core/kernels:math", |
| "//third_party/eigen3", |
| ], |
| ) |
| |
| tf_cc_test( |
| name = "ops_math_grad_test", |
| size = "small", |
| srcs = ["ops/math_grad_test.cc"], |
| linkstatic = tf_kernel_tests_linkstatic(), |
| tags = ["no_gpu"], |
| deps = [ |
| ":core", |
| ":core_cpu", |
| ":core_cpu_internal", |
| ":direct_session_internal", |
| ":framework", |
| ":framework_internal", |
| ":lib", |
| ":lib_internal", |
| ":ops", |
| ":protos_all_cc", |
| ":test", |
| ":test_main", |
| ":testlib", |
| "//tensorflow/cc:cc_ops", |
| "//tensorflow/core/kernels:array", |
| "//tensorflow/core/kernels:data_flow", |
| "//tensorflow/core/kernels:function_ops", |
| "//tensorflow/core/kernels:math", |
| "//third_party/eigen3", |
| ], |
| ) |
| |
| tf_cc_test( |
| name = "ops_remote_fused_graph_ops_test", |
| size = "small", |
| srcs = ["ops/remote_fused_graph_ops_test.cc"], |
| linkstatic = tf_kernel_tests_linkstatic(), |
| deps = [ |
| ":core", |
| ":core_cpu", |
| ":core_cpu_internal", |
| ":framework", |
| ":framework_internal", |
| ":lib", |
| ":lib_internal", |
| ":ops", |
| ":protos_all_cc", |
| ":test", |
| ":test_main", |
| ":testlib", |
| "//tensorflow/core/kernels:remote_fused_graph_ops", |
| ], |
| ) |
| |
| tf_cc_test( |
| name = "ops_tests", |
| size = "small", |
| srcs = [ |
| "ops/array_ops_test.cc", |
| "ops/candidate_sampling_ops_test.cc", |
| "ops/control_flow_ops_test.cc", |
| "ops/ctc_ops_test.cc", |
| "ops/data_flow_ops_test.cc", |
| "ops/functional_ops_test.cc", |
| "ops/image_ops_test.cc", |
| "ops/io_ops_test.cc", |
| "ops/linalg_ops_test.cc", |
| "ops/math_ops_test.cc", |
| "ops/nn_ops_test.cc", |
| "ops/parsing_ops_test.cc", |
| "ops/random_ops_test.cc", |
| "ops/rnn_ops_test.cc", |
| "ops/set_ops_test.cc", |
| "ops/shape_function_test.cc", |
| "ops/sparse_csr_matrix_ops_test.cc", |
| "ops/sparse_ops_test.cc", |
| "ops/spectral_ops_test.cc", |
| "ops/state_ops_test.cc", |
| "ops/string_ops_test.cc", |
| "ops/training_ops_test.cc", |
| ], |
| linkstatic = tf_kernel_tests_linkstatic(), |
| deps = [ |
| ":core", |
| ":core_cpu", |
| ":core_cpu_internal", |
| ":framework", |
| ":framework_internal", |
| ":lib", |
| ":lib_internal", |
| ":ops", |
| ":protos_all_cc", |
| ":test", |
| ":test_main", |
| ":testlib", |
| "//tensorflow/cc:cc_ops", |
| "//third_party/eigen3", |
| ], |
| ) |
| |
| tf_cc_test( |
| name = "common_runtime_input_colocation_exemption_registry_test", |
| size = "small", |
| srcs = ["common_runtime/input_colocation_exemption_registry_test.cc"], |
| deps = [ |
| ":core_cpu", |
| ":core_cpu_internal", |
| ":test", |
| ":test_main", |
| ":testlib", |
| ], |
| ) |
| |
| tf_cc_test( |
| name = "common_runtime_lower_function_call_test", |
| size = "small", |
| srcs = ["common_runtime/lower_function_call_op_test.cc"], |
| deps = [ |
| ":all_kernels", |
| ":core_cpu", |
| ":core_cpu_internal", |
| ":direct_session", |
| ":framework", |
| ":framework_internal", |
| ":lib", |
| ":test", |
| ":test_main", |
| ":testlib", |
| "//tensorflow/cc:cc_ops", |
| "//tensorflow/cc:cc_ops_internal", |
| "//tensorflow/cc:client_session", |
| "//tensorflow/cc:function_ops", |
| "//tensorflow/cc:ops", |
| "//tensorflow/cc:resource_variable_ops", |
| ], |
| ) |
| |
| tf_cc_test( |
| name = "common_runtime_lower_if_op_test", |
| size = "small", |
| srcs = ["common_runtime/lower_if_op_test.cc"], |
| deps = [ |
| ":all_kernels", |
| ":core_cpu", |
| ":core_cpu_internal", |
| ":direct_session", |
| ":framework", |
| ":framework_internal", |
| ":lib", |
| ":test", |
| ":test_main", |
| ":testlib", |
| "//tensorflow/cc:cc_ops", |
| "//tensorflow/cc:cc_ops_internal", |
| "//tensorflow/cc:client_session", |
| "//tensorflow/cc:function_ops", |
| "//tensorflow/cc:ops", |
| "//tensorflow/cc:resource_variable_ops", |
| ], |
| ) |
| |
| tf_cc_test( |
| name = "common_runtime_lower_case_op_test", |
| size = "small", |
| srcs = ["common_runtime/lower_case_op_test.cc"], |
| deps = [ |
| ":all_kernels", |
| ":core_cpu", |
| ":core_cpu_internal", |
| ":direct_session", |
| ":framework", |
| ":framework_internal", |
| ":lib", |
| ":test", |
| ":test_main", |
| ":testlib", |
| "//tensorflow/cc:cc_ops", |
| "//tensorflow/cc:cc_ops_internal", |
| "//tensorflow/cc:client_session", |
| "//tensorflow/cc:function_ops", |
| "//tensorflow/cc:ops", |
| "//tensorflow/cc:resource_variable_ops", |
| ], |
| ) |
| |
| tf_cc_test( |
| name = "common_runtime_lower_while_op_test", |
| size = "small", |
| srcs = ["common_runtime/lower_while_op_test.cc"], |
| deps = [ |
| ":all_kernels", |
| ":core_cpu", |
| ":core_cpu_internal", |
| ":direct_session", |
| ":framework", |
| ":framework_internal", |
| ":lib", |
| ":test", |
| ":test_main", |
| ":testlib", |
| "//tensorflow/cc:cc_ops", |
| "//tensorflow/cc:cc_ops_internal", |
| "//tensorflow/cc:client_session", |
| "//tensorflow/cc:function_ops", |
| "//tensorflow/cc:ops", |
| "@com_google_absl//absl/algorithm:container", |
| ], |
| ) |
| |
| tf_cc_test( |
| name = "common_runtime_lower_functional_ops_test", |
| size = "small", |
| srcs = ["common_runtime/lower_functional_ops_test.cc"], |
| deps = [ |
| ":all_kernels", |
| ":core_cpu", |
| ":core_cpu_internal", |
| ":direct_session", |
| ":framework", |
| ":framework_internal", |
| ":lib", |
| ":test", |
| ":test_main", |
| ":testlib", |
| "//tensorflow/cc:cc_ops", |
| "//tensorflow/cc:cc_ops_internal", |
| "//tensorflow/cc:client_session", |
| "//tensorflow/cc:function_ops", |
| "//tensorflow/cc:ops", |
| ], |
| ) |
| |
| # Test data |
| filegroup( |
| name = "image_testdata", |
| srcs = [ |
| # PNG data |
| "//tensorflow/core/lib/png:testdata", |
| # JPEG data |
| "lib/jpeg/testdata/jpeg_merge_test1.jpg", |
| "lib/jpeg/testdata/jpeg_merge_test1_cmyk.jpg", |
| # JPEG data for jpeg benchmark. |
| "lib/jpeg/testdata/small.jpg", |
| "lib/jpeg/testdata/medium.jpg", |
| # Corrupted JPEG files for tests |
| "lib/jpeg/testdata/bad_huffman.jpg", |
| "lib/jpeg/testdata/corrupt.jpg", |
| # -- hand-edited variant: stops at line 0 |
| "lib/jpeg/testdata/corrupt34_2.jpg", |
| # -- hand-edited variant: stops at line 4 |
| "lib/jpeg/testdata/corrupt34_3.jpg", |
| # -- hand-edited variant: stops after a restart marker |
| "lib/jpeg/testdata/corrupt34_4.jpg", |
| # GIF data |
| "lib/gif/testdata/lena.gif", |
| "lib/gif/testdata/scan.gif", |
| # GIF data with optimization |
| "lib/gif/testdata/optimized.gif", |
| # BMP data |
| "lib/bmp/testdata/lena.bmp", |
| # SSIM, PSNR data |
| "lib/ssim/testdata/checkerboard1.png", |
| "lib/ssim/testdata/checkerboard2.png", |
| "lib/ssim/testdata/checkerboard3.png", |
| "lib/psnr/testdata/cat_q20.jpg", |
| "lib/psnr/testdata/cat_q72.jpg", |
| "lib/psnr/testdata/cat_q95.jpg", |
| ], |
| visibility = ["//visibility:public"], |
| ) |
| |
| filegroup( |
| name = "lmdb_testdata", |
| testonly = 1, |
| srcs = [ |
| # A simple key-value store: |
| # 0 : 'b' |
| # 1 : 'b' |
| # ... |
| # 9 : 'b' |
| # Which is then overwritten with: |
| # 0 : 'a' |
| # 1 : 'b' |
| # ... |
| # 9 : 'j' |
| "lib/lmdb/testdata/data.mdb", |
| # LMDB, being a memory-mapped database, uses a different file format on |
| # big-endian systems. |
| "lib/lmdb/testdata/data_bigendian.mdb", |
| ], |
| visibility = ["//visibility:public"], |
| ) |
| |
| alias( |
| name = "cuda_libdevice_path", |
| actual = "//tensorflow/core/platform:cuda_libdevice_path", |
| ) |
| |
| transitive_hdrs( |
| name = "headers", |
| visibility = ["//tensorflow:__subpackages__"], |
| deps = [ |
| ":core_cpu", |
| ":framework", |
| ":lib", |
| ":protos_all_cc", |
| ":stream_executor", |
| "//tensorflow/core/platform:platform_strings", |
| ], |
| ) |
| |
| # Normalize CORE_PROTO_SRCS to generate valid output file names. |
| PORTABLE_PROTO_HEADERS_OUT = tf_android_core_proto_headers(CORE_PROTO_SRCS) + [ |
| "//google/protobuf/any.proto.h", |
| ] |