blob: d326e3ee259ddc938bfd7af9166f0d192297eca9 [file] [log] [blame]
load(
"//tensorflow:tensorflow.bzl",
"cc_header_only_library",
"if_android",
"if_cuda_or_rocm",
"if_not_windows",
"tf_cc_binary",
"tf_cc_shared_object",
"tf_cc_test",
"tf_cc_test_mkl",
"tf_cc_tests",
"tf_copts",
"tf_cuda_library",
"tf_kernel_library",
"tf_mkl_kernel_library",
"tf_opts_nortti_if_android",
)
load("@local_config_sycl//sycl:build_defs.bzl", "if_sycl")
load("//tensorflow:tensorflow.bzl", "if_nccl")
load("//tensorflow:tensorflow.bzl", "tf_cuda_cc_test")
load("//tensorflow:tensorflow.bzl", "tf_cuda_cc_tests")
load(
"//tensorflow/core/platform:default/cuda_build_defs.bzl",
"if_cuda_is_configured",
)
load(
"//tensorflow/core/platform:default/build_config.bzl",
"tf_kernel_tests_linkstatic",
)
load(
"//tensorflow/core/platform:default/build_config_root.bzl",
"tf_cuda_tests_tags",
)
load(
"//third_party/mkl:build_defs.bzl",
"if_mkl_ml",
"mkl_deps",
)
load("@local_config_cuda//cuda:build_defs.bzl", "if_cuda")
load(
"@local_config_rocm//rocm:build_defs.bzl",
"if_rocm",
)
# Description:
# Op kernel implementations for TensorFlow.
#
# Note: Any test that uses GPU support and which we would like to
# benchmark should be linked statically so that it can be executed
# from a py_binary or cuda_py_test test logger. For such a test,
# append "_gpu" to the test name to invoke the GPU benchmarks. Example:
#
# # for CPU tests
# $ bazel test --config opt //third_party/tensorflow/core/kernels:my_op_test
# # for GPU benchmarks
# $ bazel run --config opt --config=cuda //third_party/tensorflow/core/kernels:my_op_test_gpu -- --benchmarks=..
#
package(
default_visibility = ["//visibility:public"],
licenses = ["notice"], # Apache 2.0
)
package_group(
name = "friends",
packages = [
"//learning/brain/contrib/...",
"//learning/brain/research/sparse_matrix/...",
"//learning/faster_training/...",
"//tensorflow/...",
"//tensorflow_text/...",
"//third_party/car/...",
],
)
config_setting(
# Add "--define tensorflow_xsmm=1" to your build command to use libxsmm for
# sparse matrix multiplications. You will also need appropriate -mavx*
# options, as required by specific op you use.
name = "xsmm",
values = {
"define": "tensorflow_xsmm=1",
},
)
config_setting(
# Add "--define tensorflow_xsmm_convolutions=1" to your build command to
# use libxsmm for forward convolutions. You will also need appropriate
# -mavx* # options, as required by specific op you use.
name = "xsmm_convolutions",
values = {
"define": "tensorflow_xsmm_convolutions=1",
},
)
config_setting(
# Add "--define tensorflow_xsmm_convolutions=1 --define
# tensorflow_xsmm_backward_convolutions=1" to your build command to use libxsmm for
# backward convolutions (and possibly more in the future). You will also
# need appropriate -mavx* options, as required by specific op you use.
name = "xsmm_backward_convolutions",
values = {
"define": "tensorflow_xsmm_backward_convolutions=1",
},
)
config_setting(
# Add "--define tensorflow_mkldnn_contraction_kernel=0" to your build command to disable mkldnn
# sgemm in Eigen tensor contractions (matrix multiplications and convolutions). The mkldnn
# kernels are generated at runtime and use avx/avx2/fma/avx512 based on cpu status registers
# (https://en.wikipedia.org/wiki/CPUID). Default Eigen contraction kernel is
# Eigen::internal::gebp_kernel (general block-panel kernel).
name = "no_mkldnn_contraction_kernel",
values = {
"define": "tensorflow_mkldnn_contraction_kernel=0",
},
)
# Public support libraries ----------------------------------------------------
cc_library(
name = "assign_op",
hdrs = ["assign_op.h"],
deps = [
"//tensorflow/core:framework",
"//third_party/eigen3",
],
)
tf_kernel_library(
name = "strided_slice_op",
srcs = [
"strided_slice_op.cc",
"strided_slice_op_inst_0.cc",
"strided_slice_op_inst_1.cc",
"strided_slice_op_inst_2.cc",
"strided_slice_op_inst_3.cc",
"strided_slice_op_inst_4.cc",
"strided_slice_op_inst_5.cc",
"strided_slice_op_inst_6.cc",
"strided_slice_op_inst_7.cc",
],
hdrs = [
"slice_op.h",
"strided_slice_op.h",
"strided_slice_op_impl.h",
],
gpu_srcs = [
"slice_op.h",
"strided_slice_op.h",
"strided_slice_op_impl.h",
"strided_slice_op_gpu_impl.h",
"strided_slice_op_gpu_int.cu.cc",
"strided_slice_op_gpu_complex.cu.cc",
"strided_slice_op_gpu_bool.cu.cc",
"strided_slice_op_gpu_number_types.cu.cc",
],
deps = [
":bounds_check",
":dense_update_functor",
":inplace_ops",
":ops_util",
":training_op_helpers",
":variable_ops",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
"//third_party/eigen3",
],
)
tf_kernel_library(
name = "clustering_ops",
prefix = "clustering_ops",
deps = [
"//tensorflow/core:framework",
"//tensorflow/core:framework_headers_lib",
"//tensorflow/core:lib",
],
)
tf_cc_test(
name = "clustering_ops_test",
srcs = ["clustering_ops_test.cc"],
deps = [
":clustering_ops",
"//tensorflow/core:clustering_ops_op_lib",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_kernel_library(
name = "collective_ops",
srcs = if_nccl([
"collective_nccl.h",
"collective_nccl.cc",
"collective_nccl_broadcaster.h",
"collective_nccl_broadcaster.cc",
"collective_nccl_gatherer.h",
"collective_nccl_gatherer.cc",
"collective_nccl_reducer.h",
"collective_nccl_reducer.cc",
]),
prefix = "collective_ops",
deps = [
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core/profiler/lib:traceme",
] + if_nccl([
"@local_config_nccl//:nccl",
"//tensorflow/core/nccl:nccl_lib",
]),
)
tf_cuda_cc_test(
name = "collective_nccl_test",
size = "small",
srcs = ["collective_nccl_test.cc"],
tags = tf_cuda_tests_tags() + ["no_cuda_on_cpu_tap"],
deps = [
"//tensorflow/core:all_kernels",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_kernel_library(
name = "concat_lib",
srcs = [
"concat_lib_cpu.cc",
"concat_lib_gpu.cc",
],
hdrs = [
"concat_lib.h",
"concat_lib_cpu.h",
],
gpu_copts = if_not_windows([
"-Wno-pass-failed", # clang misses #pragma loop optimizations
]),
gpu_srcs = [
"concat_lib_gpu_impl.cu.cc",
"concat_lib.h",
"concat_lib_gpu.h",
"gpu_device_array.h",
"gpu_device_array_gpu.h",
],
deps = [
":bounds_check",
"//tensorflow/core:framework",
"//third_party/eigen3",
],
alwayslink = 0,
)
cc_library(
name = "concat_lib_hdrs",
hdrs = [
"concat_lib.h",
"concat_lib_cpu.h",
],
deps = ["//third_party/eigen3"],
)
tf_kernel_library(
name = "conv_2d",
hdrs = ["conv_2d.h"],
gpu_copts = if_not_windows([
"-Wno-pass-failed", # clang misses #pragma loop optimizations
]),
gpu_srcs = [
"conv_2d.h",
"conv_2d_gpu.h",
"conv_2d_gpu_double.cu.cc",
"conv_2d_gpu_float.cu.cc",
"conv_2d_gpu_half.cu.cc",
"conv_2d_gpu_int.cu.cc",
"conv_2d_gpu_uint16.cu.cc",
"conv_2d_gpu_uint32.cu.cc",
"conv_2d_gpu_uint64.cu.cc",
"conv_2d_gpu_uint8.cu.cc",
],
deps = [
":eigen_helpers",
":fill_functor",
":gpu_utils",
":image_resizer_state",
":ops_util",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
"//third_party/eigen3",
],
alwayslink = 1,
)
cc_library(
name = "conv_2d_hdrs",
hdrs = ["conv_2d.h"],
deps = [
":eigen_helpers",
"//third_party/eigen3",
],
)
tf_kernel_library(
name = "extract_image_patches_op",
prefix = "extract_image_patches_op",
deps = [
":bounds_check",
":eigen_helpers",
":ops_util",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//third_party/eigen3",
],
)
tf_kernel_library(
name = "extract_volume_patches_op",
prefix = "extract_volume_patches_op",
deps = [
":bounds_check",
":eigen_helpers",
":ops_util",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//third_party/eigen3",
],
)
cc_library(
name = "conv_3d",
hdrs = ["conv_3d.h"],
deps = [
":eigen_helpers",
"//tensorflow/core:framework",
],
)
tf_kernel_library(
name = "fill_functor",
prefix = "fill_functor",
deps = [
"//tensorflow/core:framework",
"//third_party/eigen3",
],
)
cc_library(
name = "initializable_lookup_table",
srcs = ["initializable_lookup_table.cc"],
hdrs = ["initializable_lookup_table.h"],
deps = [
"//tensorflow/core:framework",
"//tensorflow/core:lib",
],
)
cc_library(
name = "lookup_util",
srcs = ["lookup_util.cc"],
hdrs = ["lookup_util.h"],
deps = [
":initializable_lookup_table",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
],
)
tf_kernel_library(
name = "nccl_kernels",
srcs = if_cuda([
"nccl_ops.cc",
]),
deps = if_cuda([
"@local_config_nccl//:nccl",
"//tensorflow/core/nccl:nccl_lib",
"//tensorflow/core:framework",
"//tensorflow/core:gpu_headers_lib",
]),
)
cc_library(
name = "sparse_utils",
srcs = [
"sparse_utils.cc",
],
hdrs = ["sparse_utils.h"],
deps = [
"//tensorflow/core:framework",
"//tensorflow/core:framework_lite",
"//tensorflow/core:lib_internal",
],
)
tf_cc_test(
name = "sparse_utils_test",
srcs = ["sparse_utils_test.cc"],
deps = [
":sparse_utils",
"//tensorflow/core:framework",
"//tensorflow/core:framework_lite",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"@com_google_absl//absl/base:core_headers",
],
)
cc_library(
name = "tensor_flag_utils",
srcs = [
"tensor_flag_utils.cc",
],
hdrs = ["tensor_flag_utils.h"],
deps = [
"//tensorflow/core:framework",
"//tensorflow/core:framework_lite",
"@com_google_absl//absl/strings",
],
)
tf_cc_test(
name = "tensor_flag_utils_test",
srcs = ["tensor_flag_utils_test.cc"],
deps = [
":tensor_flag_utils",
"//tensorflow/core:framework",
"//tensorflow/core:framework_lite",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"@com_google_absl//absl/base:core_headers",
],
)
tf_cuda_library(
name = "ops_testutil",
testonly = 1,
srcs = ["ops_testutil.cc"],
hdrs = ["ops_testutil.h"],
cuda_deps = [
"//tensorflow/core:gpu_lib",
"//tensorflow/core:gpu_runtime",
],
deps = [
"//tensorflow/core:core_cpu",
"//tensorflow/core:core_cpu_internal",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:tensor_testutil",
"//tensorflow/core:test",
],
)
cc_library(
name = "ops_util",
hdrs = ["ops_util.h"],
copts = if_not_windows(["-Wno-sign-compare"]),
deps = [
"//tensorflow/core:framework",
],
)
cc_library(
name = "ops_util_hdrs",
hdrs = ["ops_util.h"],
deps = ["//third_party/eigen3"],
)
cc_library(
name = "conv_ops_gpu_hdrs",
hdrs = ["conv_ops_gpu.h"],
)
# We keep this target only because some contrib/ targets depend on it. The
# reason why the contrib/ targets can't depend on gpu_utils is that, some
# of the targets are tf_custom_op_library. tf_custom_op_library forbids the
# dependency to tensorflow/core:lib, which gpu_utils certainly depends on.
cc_library(
name = "gpu_util_hdrs",
hdrs = ["gpu_utils.h"],
)
tf_cuda_library(
name = "gpu_utils",
srcs = if_cuda_is_configured(["gpu_utils.cc"]),
hdrs = ["gpu_utils.h"],
deps = [
":gpu_util_hdrs",
"@com_google_absl//absl/algorithm:container",
"@com_google_absl//absl/types:span",
"//tensorflow/core:autotuning_proto_cc",
"//tensorflow/core:conv_autotuning_proto_cc",
"//tensorflow/core:lib",
"//tensorflow/core:logger",
"//tensorflow/core:stream_executor",
"//tensorflow/core/util/proto:proto_utils",
] + if_cuda([
"//tensorflow/stream_executor/cuda:redzone_allocator",
"//tensorflow/stream_executor/cuda:ptxas_utils",
]),
)
tf_cc_test(
name = "ops_util_test",
size = "small",
srcs = ["ops_util_test.cc"],
deps = [
":ops_util",
"//tensorflow/core:framework",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//third_party/eigen3",
],
)
cc_library(
name = "reshape_util",
srcs = ["reshape_util.cc"],
hdrs = ["reshape_util.h"],
deps = [
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
],
)
tf_cc_test(
name = "variable_ops_test",
size = "small",
srcs = ["variable_ops_test.cc"],
deps = [
"//tensorflow/core:all_kernels",
"//tensorflow/core:core_cpu",
"//tensorflow/core:direct_session_internal",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
],
)
tf_kernel_library(
name = "stage_op",
srcs = ["stage_op.cc"],
deps = [
"//tensorflow/core:framework",
"//tensorflow/core:lib",
],
)
tf_kernel_library(
name = "map_stage_op",
srcs = ["map_stage_op.cc"],
deps = [
"//tensorflow/core:framework",
"//tensorflow/core:lib",
],
)
cc_library(
name = "queue_base",
srcs = ["queue_base.cc"],
hdrs = ["queue_base.h"],
deps = [
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
],
)
cc_library(
name = "queue_op",
srcs = ["queue_op.cc"],
hdrs = ["queue_op.h"],
deps = [
":queue_base",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
],
)
cc_library(
name = "priority_queue",
srcs = ["priority_queue.cc"],
hdrs = ["priority_queue.h"],
deps = [
":queue_base",
":typed_queue",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
],
)
cc_library(
name = "batch_kernels",
srcs = ["batch_kernels.cc"],
deps = [
":concat_lib_hdrs",
":ops_util_hdrs",
":split_lib_hdrs",
"//tensorflow/core:framework_headers_lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core/kernels/batching_util:periodic_function_dynamic",
"//tensorflow/core/kernels/batching_util:shared_batch_scheduler_hdrs",
],
alwayslink = 1,
)
tf_kernel_library(
name = "record_input_op",
srcs = [
"record_input_op.cc",
"record_yielder.cc",
"record_yielder.h",
],
deps = [
"//tensorflow/core:framework",
"//tensorflow/core:lib",
],
)
cc_library(
name = "save_restore_tensor",
srcs = ["save_restore_tensor.cc"],
hdrs = ["save_restore_tensor.h"],
copts = if_not_windows(["-Wno-sign-compare"]),
deps = [
":bounds_check",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core/util/tensor_bundle",
],
)
tf_kernel_library(
name = "split_lib",
srcs = ["split_lib_cpu.cc"],
hdrs = ["split_lib.h"],
gpu_srcs = [
"split_lib_gpu.cu.cc",
"split_lib.h",
"split_lib_gpu.h",
],
deps = [
":gpu_device_array",
"//tensorflow/core:framework",
"//third_party/eigen3",
],
alwayslink = 0,
)
cc_library(
name = "split_lib_hdrs",
hdrs = ["split_lib.h"],
deps = [
"//tensorflow/core:framework_lite",
"//third_party/eigen3",
],
)
cc_library(
name = "typed_queue",
hdrs = ["typed_queue.h"],
deps = [
":queue_base",
"//tensorflow/core:framework",
],
)
cc_library(
name = "training_op_helpers",
srcs = ["training_op_helpers.cc"],
hdrs = ["training_op_helpers.h"],
visibility = [":friends"],
deps = [
":dense_update_functor",
":variable_ops",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
],
)
alias(
name = "bounds_check",
actual = "//tensorflow/core:framework_bounds_check",
visibility = [":friends"],
)
# Private support libraries ---------------------------------------------------
cc_header_only_library(
name = "bounds_check_lib",
deps = [":bounds_check"],
)
cc_library(
name = "gpu_device_array",
hdrs = [
"gpu_device_array.h",
"gpu_device_array_gpu.h",
],
visibility = ["//tensorflow:__subpackages__"],
deps = [
"//tensorflow/core:framework",
"//tensorflow/core:gpu_headers_lib",
"//tensorflow/core:lib",
],
)
# Depending on a build configuration this target provides custom kernel for Eigen
# tensor contractions (small matrix multiplication kernel used to multiple together
# blocks of the original tensors).
#
# 1) Default:
# Use Mkldnn single threaded sgemm. The mkldnn kernels are generated at runtime and
# use avx/avx2/fma/avx512 based on cpu status registers (https://en.wikipedia.org/wiki/CPUID).
#
# 2) Eigen: --define tensorflow_mkldnn_contraction_kernel=0 (disable mkldnn)
# Use Eigen contraction kernel: Eigen::internal::gebp_kernel.
#
# If you use `tensor.contract(other_tensor)` in your code, you must include additional header
# to get the benefit of custom contraction kernel:
#
# #if defined(TENSORFLOW_USE_CUSTOM_CONTRACTION_KERNEL)
# #include "third_party/tensorflow/core/kernels/eigen_contraction_kernel.h"
# #endif
#
# We define a two-level target because if we just add
# ":no_mkldnn_contraction_kernel": []
# in the same select list with //third_party/tensorflow:{android,arm,ios,ppc},
# there can be more than one match, e.g., when building for android and MKL-DNN
# contraction kernel is disabled. Bazel doesn't allow multiple matches.
# See more details in
# https://github.com/tensorflow/tensorflow/issues/24414
cc_library(
name = "eigen_contraction_kernel",
hdrs = ["eigen_contraction_kernel.h"],
deps = select({
":no_mkldnn_contraction_kernel": [":eigen_contraction_kernel_no_mkl"],
"//conditions:default": [":eigen_contraction_kernel_with_mkl"],
}),
)
cc_library(
name = "eigen_contraction_kernel_with_mkl",
srcs = ["eigen_contraction_kernel.cc"],
hdrs = ["eigen_contraction_kernel.h"],
defines = select({
"//tensorflow:android": [],
"//tensorflow:arm": [],
"//tensorflow:ios": [],
"//tensorflow:linux_aarch64": [],
"//tensorflow:linux_ppc64le": [],
"//conditions:default": [
"TENSORFLOW_USE_CUSTOM_CONTRACTION_KERNEL",
"TENSORFLOW_USE_MKLDNN_CONTRACTION_KERNEL",
],
}),
deps = [
"//third_party/eigen3",
] + select({
"//tensorflow:android": [],
"//tensorflow:arm": [],
"//tensorflow:ios": [],
"//tensorflow:linux_aarch64": [],
"//tensorflow:linux_ppc64le": [],
"//conditions:default": ["@mkl_dnn//:mkldnn_single_threaded"],
}),
)
cc_library(
name = "eigen_contraction_kernel_no_mkl",
srcs = ["eigen_contraction_kernel.cc"],
hdrs = ["eigen_contraction_kernel.h"],
deps = ["//third_party/eigen3"],
)
cc_library(
name = "redux_functor",
hdrs = ["redux_functor.h"],
deps = [
"//tensorflow/core:framework",
"//third_party/eigen3",
],
)
cc_library(
name = "fused_eigen_output_kernels",
srcs = ["fused_eigen_output_kernels.cc"],
hdrs = ["fused_eigen_output_kernels.h"],
deps = [
"//tensorflow/core:framework",
"//third_party/eigen3",
"@com_google_absl//absl/strings",
],
)
cc_library(
name = "eigen_helpers",
hdrs = [
"eigen_activations.h",
"eigen_attention.h",
"eigen_backward_cuboid_convolutions.h",
"eigen_backward_spatial_convolutions.h",
"eigen_cuboid_convolution.h",
"eigen_pooling.h",
"eigen_spatial_convolutions.h",
"eigen_volume_patch.h",
],
deps = [
":eigen_contraction_kernel",
":eigen_convolution_helpers",
":eigen_spatial_convolutions-inl",
"//third_party/eigen3",
],
)
cc_library(
name = "eigen_helpers_no_mkl",
hdrs = [
"eigen_activations.h",
"eigen_attention.h",
"eigen_backward_cuboid_convolutions.h",
"eigen_backward_spatial_convolutions.h",
"eigen_cuboid_convolution.h",
"eigen_pooling.h",
"eigen_spatial_convolutions.h",
"eigen_volume_patch.h",
],
deps = [
":eigen_convolution_helpers",
":eigen_spatial_convolutions-inl",
"//third_party/eigen3",
],
)
cc_library(
name = "eigen_spatial_convolutions-inl",
hdrs = [
"eigen_spatial_convolutions-inl.h",
],
deps = [
":eigen_convolution_helpers",
],
)
cc_library(
name = "eigen_convolution_helpers",
hdrs = [
"eigen_convolution_helpers.h",
],
)
cc_library(
name = "image_resizer_state",
hdrs = ["image_resizer_state.h"],
visibility = ["//visibility:private"],
deps = [
":bounds_check",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//third_party/eigen3",
],
)
cc_header_only_library(
name = "image_resizer_state_lib",
deps = [":image_resizer_state"],
)
cc_library(
name = "sampling_kernels",
srcs = ["sampling_kernels.cc"],
hdrs = ["sampling_kernels.h"],
visibility = ["//visibility:private"],
deps = ["//tensorflow/core:lib"],
)
tf_cc_test(
name = "sampling_kernels_test",
srcs = ["sampling_kernels_test.cc"],
deps = [
":sampling_kernels",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
"@com_google_absl//absl/strings",
],
)
# OpKernel libraries ----------------------------------------------------------
ARRAY_DEPS = [
":bounds_check",
":concat_lib",
":fill_functor",
":gather_functor",
":ops_util",
":transpose_functor",
"//tensorflow/core:array_grad",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
"//tensorflow/core:proto_text",
"//tensorflow/core:protos_all_cc",
"//third_party/eigen3",
] + if_sycl(["//tensorflow/core:sycl_runtime"])
cc_library(
name = "array_not_windows",
deps = [
":immutable_constant_op",
],
)
tf_kernel_library(
name = "immutable_constant_op",
prefix = "immutable_constant_op",
deps = ARRAY_DEPS,
)
tf_kernel_library(
name = "set_kernels",
prefix = "set_kernels",
deps = [
"//tensorflow/core:framework_headers_lib",
"//tensorflow/core:lib",
"//third_party/eigen3",
],
)
tf_kernel_library(
name = "debug_ops",
prefix = "debug_ops",
deps = ARRAY_DEPS + [
"//tensorflow/core:gpu_runtime",
"//tensorflow/core/debug:debug_io_utils",
],
)
cc_library(
name = "array",
deps = [
":batch_space_ops",
":bcast_ops",
":broadcast_to_op",
":concat_op",
":constant_op",
":depth_space_ops",
":diag_op",
":edit_distance_op",
":extract_image_patches_op",
":extract_volume_patches_op",
":fingerprint_op",
":gather_nd_op",
":gather_op",
":guarantee_const_op",
":host_constant_op",
":identity_n_op",
":identity_op",
":inplace_ops",
":listdiff_op",
":matrix_band_part_op",
":matrix_diag_op",
":matrix_set_diag_op",
":mirror_pad_op",
":one_hot_op",
":pack_op",
":pad_op",
":quantize_and_dequantize_op",
":reshape_op",
":reverse_op",
":reverse_sequence_op",
":searchsorted_op",
":shape_ops",
":slice_op",
":snapshot_op",
":split_op",
":split_v_op",
":strided_slice_op",
":tile_ops",
":transpose_op",
":unique_op",
":unpack_op",
":unravel_index_op",
":where_op",
],
)
tf_kernel_library(
name = "bcast_ops",
prefix = "bcast_ops",
deps = ARRAY_DEPS,
)
tf_kernel_library(
name = "bitcast_op",
deprecation = "use //third_party/tensorflow/c/kernels:bitcast_op instead",
deps = ["//tensorflow/c/kernels:bitcast_op"],
)
tf_kernel_library(
name = "broadcast_to_op",
prefix = "broadcast_to_op",
deps = ARRAY_DEPS,
)
tf_kernel_library(
name = "concat_op",
prefix = "concat_op",
deps = ARRAY_DEPS,
)
tf_kernel_library(
name = "guarantee_const_op",
prefix = "guarantee_const_op",
deps = ARRAY_DEPS,
)
tf_kernel_library(
name = "constant_op",
prefix = "constant_op",
deps = ARRAY_DEPS,
)
tf_kernel_library(
name = "host_constant_op",
prefix = "host_constant_op",
deps = ARRAY_DEPS,
)
tf_kernel_library(
name = "diag_op",
prefix = "diag_op",
deps = ARRAY_DEPS,
)
tf_kernel_library(
name = "edit_distance_op",
prefix = "edit_distance_op",
deps = ARRAY_DEPS,
)
tf_kernel_library(
name = "fingerprint_op",
prefix = "fingerprint_op",
deps = ARRAY_DEPS,
)
tf_cc_test(
name = "fingerprint_op_test",
size = "small",
srcs = ["fingerprint_op_test.cc"],
kernels = [":fingerprint_op"],
deps = [
":ops_testutil",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_kernel_library(
name = "gather_nd_op",
prefix = "gather_nd_op",
deps = ARRAY_DEPS,
)
tf_kernel_library(
name = "gather_op",
prefix = "gather_op",
deps = ARRAY_DEPS,
)
tf_kernel_library(
name = "identity_op",
prefix = "identity_op",
deps = ARRAY_DEPS,
)
tf_kernel_library(
name = "identity_n_op",
prefix = "identity_n_op",
deps = ARRAY_DEPS + [
"//tensorflow/core:core_cpu_internal",
],
)
tf_kernel_library(
name = "listdiff_op",
prefix = "listdiff_op",
deps = ARRAY_DEPS,
)
tf_kernel_library(
name = "matrix_band_part_op",
prefix = "matrix_band_part_op",
deps = if_cuda([
":cuda_solvers",
]) + ARRAY_DEPS,
)
tf_kernel_library(
name = "matrix_diag_op",
prefix = "matrix_diag_op",
deps = ARRAY_DEPS,
)
tf_kernel_library(
name = "matrix_set_diag_op",
prefix = "matrix_set_diag_op",
deps = ARRAY_DEPS,
)
tf_kernel_library(
name = "mirror_pad_op",
prefix = "mirror_pad_op",
deps = ARRAY_DEPS,
)
tf_kernel_library(
name = "one_hot_op",
prefix = "one_hot_op",
deps = ARRAY_DEPS + ["//tensorflow/core:overflow"],
)
tf_kernel_library(
name = "pack_op",
prefix = "pack_op",
deps = ARRAY_DEPS,
)
tf_kernel_library(
name = "pad_op",
prefix = "pad_op",
deps = ARRAY_DEPS,
)
tf_kernel_library(
name = "quantize_and_dequantize_op",
prefix = "quantize_and_dequantize_op",
deps = ARRAY_DEPS + [":cwise_op"],
)
tf_kernel_library(
name = "compare_and_bitpack_op",
srcs = ["compare_and_bitpack_op.cc"],
hdrs = ["compare_and_bitpack_op.h"],
gpu_srcs = [
"compare_and_bitpack_op.h",
"compare_and_bitpack_op_gpu.cu.cc",
],
deps = ARRAY_DEPS,
)
# TODO(ebrevdo): Add benchmarks once the op is in the autogen array namespace.
# tf_cuda_cc_test(
# name = "compare_and_bitpack_op_test",
# srcs = ["compare_and_bitpack_op_test.cc"],
# deps = [
# ":array",
# ":ops_testutil",
# ":ops_util",
# "//third_party/eigen3",
# "//tensorflow/cc:cc_ops",
# "//tensorflow/cc:cc_ops_internal",
# "//tensorflow/core:core_cpu",
# "//tensorflow/core:core_cpu_internal",
# "//tensorflow/core:framework",
# "//tensorflow/core:lib",
# "//tensorflow/core:protos_all_cc",
# "//tensorflow/core:test",
# "//tensorflow/core:test_main",
# "//tensorflow/core:testlib",
# ],
# )
tf_kernel_library(
name = "reshape_op",
prefix = "reshape_op",
deps = ARRAY_DEPS,
)
tf_kernel_library(
name = "reverse_op",
prefix = "reverse_op",
deps = ARRAY_DEPS,
)
tf_kernel_library(
name = "reverse_sequence_op",
prefix = "reverse_sequence_op",
deps = ARRAY_DEPS,
)
tf_kernel_library(
name = "shape_ops",
prefix = "shape_ops",
deps = ARRAY_DEPS,
)
tf_kernel_library(
name = "slice_op",
prefix = "slice_op",
deps = ARRAY_DEPS + [":strided_slice_op"],
)
tf_kernel_library(
name = "snapshot_op",
prefix = "snapshot_op",
deps = ARRAY_DEPS,
)
tf_kernel_library(
name = "split_op",
gpu_srcs = ["gpu_device_array.h"],
prefix = "split_op",
deps = ARRAY_DEPS + [":split_lib"],
)
tf_kernel_library(
name = "split_v_op",
gpu_srcs = ["gpu_device_array.h"],
prefix = "split_v_op",
deps = ARRAY_DEPS + [":split_lib"],
)
tf_kernel_library(
name = "searchsorted_op",
prefix = "searchsorted_op",
deps = ARRAY_DEPS,
)
tf_kernel_library(
name = "inplace_ops",
prefix = "inplace_ops",
deps = ARRAY_DEPS,
)
tf_kernel_library(
name = "tile_ops",
srcs = ["tile_functor_cpu.cc"],
hdrs = ["tile_functor.h"],
gpu_srcs = [
"tile_functor.h",
"tile_functor_gpu.h",
"tile_functor_gpu_bool.cu.cc",
"tile_functor_gpu_complex64.cu.cc",
"tile_functor_gpu_complex128.cu.cc",
"tile_functor_gpu_double.cu.cc",
"tile_functor_gpu_float.cu.cc",
"tile_functor_gpu_half.cu.cc",
"tile_functor_gpu_int16.cu.cc",
"tile_functor_gpu_int32.cu.cc",
"tile_functor_gpu_int64.cu.cc",
],
prefix = "tile_ops",
deps = ARRAY_DEPS,
)
tf_kernel_library(
name = "transpose_op",
srcs = [
"transpose_op.cc",
],
hdrs = ["transpose_op.h"],
deps = ARRAY_DEPS,
)
tf_kernel_library(
name = "unique_op",
prefix = "unique_op",
deps = ARRAY_DEPS,
)
tf_kernel_library(
name = "unpack_op",
prefix = "unpack_op",
deps = ARRAY_DEPS + [":split_lib"],
)
tf_kernel_library(
name = "unravel_index_op",
prefix = "unravel_index_op",
deps = ARRAY_DEPS,
)
tf_kernel_library(
name = "where_op",
srcs = ["where_op.cc"],
hdrs = ["where_op.h"],
gpu_srcs = [
"where_op.h",
"where_op_gpu.cu.h",
"where_op_gpu_impl_1.cu.cc",
"where_op_gpu_impl_2.cu.cc",
"where_op_gpu_impl_3.cu.cc",
"where_op_gpu_impl_4.cu.cc",
"where_op_gpu_impl_5.cu.cc",
"where_op_gpu_impl_6.cu.cc",
"where_op_gpu_impl_7.cu.cc",
"where_op_gpu_impl_8.cu.cc",
],
deps = if_cuda_or_rocm([
":cuda_solvers",
]) + if_cuda([
"@cub_archive//:cub",
]) + if_rocm([
"@rocprim_archive//:rocprim",
]) + ARRAY_DEPS,
)
cc_library(
name = "ragged_ops",
deps = [
":ragged_gather_op",
":ragged_range_op",
":ragged_tensor_from_variant_op",
":ragged_tensor_to_sparse_kernel",
":ragged_tensor_to_tensor_op",
":ragged_tensor_to_variant_op",
],
)
tf_kernel_library(
name = "ragged_gather_op",
srcs = ["ragged_gather_op.cc"],
deps = [
"//tensorflow/core:framework",
],
)
tf_cc_test(
name = "ragged_gather_op_test",
size = "small",
srcs = ["ragged_gather_op_test.cc"],
deps = [
":ops_testutil",
":ragged_gather_op",
"//tensorflow/core:framework",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_kernel_library(
name = "ragged_range_op",
srcs = ["ragged_range_op.cc"],
deps = [
"//tensorflow/core:framework",
],
)
tf_cc_test(
name = "ragged_range_op_test",
srcs = ["ragged_range_op_test.cc"],
deps = [
":ops_testutil",
":ragged_range_op",
"//tensorflow/core:framework",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_kernel_library(
name = "ragged_tensor_to_sparse_kernel",
srcs = ["ragged_tensor_to_sparse_kernel.cc"],
deps = [
"//tensorflow/core:framework",
],
)
tf_cc_test(
name = "ragged_tensor_to_tensor_op_test",
size = "small",
srcs = ["ragged_tensor_to_tensor_op_test.cc"],
deps = [
":ops_testutil",
":ragged_tensor_to_tensor_op",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_kernel_library(
name = "ragged_tensor_to_tensor_op",
srcs = ["ragged_tensor_to_tensor_op.cc"],
deps = [
":broadcast_to_op",
":list_kernels",
"//tensorflow/core:framework",
"//tensorflow/core:framework_lite",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:ragged_to_dense_util",
],
)
tf_cc_test(
name = "ragged_tensor_to_sparse_kernel_test",
size = "small",
srcs = ["ragged_tensor_to_sparse_kernel_test.cc"],
deps = [
":ops_testutil",
":ragged_tensor_to_sparse_kernel",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_kernel_library(
name = "ragged_tensor_to_variant_op",
srcs = ["ragged_tensor_to_variant_op.cc"],
deps = [
"//tensorflow/core:framework",
"//tensorflow/core:lib",
],
)
tf_kernel_library(
name = "ragged_tensor_from_variant_op",
srcs = ["ragged_tensor_from_variant_op.cc"],
deps = [
"//tensorflow/core:framework",
"//tensorflow/core:lib",
],
)
tf_cc_test(
name = "ragged_tensor_to_variant_op_test",
size = "small",
srcs = ["ragged_tensor_to_variant_op_test.cc"],
deps = [
":ops_testutil",
":ragged_tensor_to_variant_op",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
"@com_google_absl//absl/strings",
],
)
tf_cc_test(
name = "ragged_tensor_from_variant_op_test",
size = "small",
srcs = ["ragged_tensor_from_variant_op_test.cc"],
deps = [
":ops_testutil",
":ragged_tensor_from_variant_op",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
"@com_google_absl//absl/strings",
],
)
tf_kernel_library(
name = "rnn_ops",
deps = [
"//tensorflow/core/kernels/rnn:gru_ops",
"//tensorflow/core/kernels/rnn:lstm_ops",
],
)
tf_kernel_library(
name = "cudnn_rnn_kernels",
srcs = ["cudnn_rnn_ops.cc"],
visibility = ["//visibility:public"],
deps = [
":bounds_check_lib",
":gpu_utils",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
"//tensorflow/core:stream_executor",
"//third_party/eigen3",
"@farmhash_archive//:farmhash",
],
)
tf_cc_test(
name = "batch_norm_op_test",
size = "small",
srcs = ["batch_norm_op_test.cc"],
deps = [
":batch_norm_op",
":ops_testutil",
":ops_util",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_cc_test(
name = "ops_testutil_test",
size = "small",
srcs = ["ops_testutil_test.cc"],
deps = [
":identity_op",
":ops_testutil",
":ops_util",
":variable_ops",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_cc_test(
name = "concat_op_test",
size = "small",
srcs = ["concat_op_test.cc"],
deps = [
":concat_op",
":ops_testutil",
":ops_util",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_cuda_cc_test(
name = "bincount_op_test",
size = "small",
srcs = ["bincount_op_test.cc"],
deps = [
":bincount_op",
":ops_testutil",
":ops_util",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_cuda_cc_test(
name = "constant_op_test",
size = "small",
srcs = ["constant_op_test.cc"],
tags = ["no_cuda_on_cpu_tap"],
deps = [
":constant_op",
":ops_testutil",
":ops_util",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_cc_test(
name = "deep_conv2d_test",
size = "small",
srcs = ["deep_conv2d_test.cc"],
deps = [
":conv_ops",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
],
)
tf_cc_test(
name = "xsmm_conv2d_test",
size = "small",
srcs = select({
":xsmm_convolutions": ["xsmm_conv2d_test.cc"],
"//conditions:default": [],
}),
deps = [
":conv_ops",
":ops_testutil",
":ops_util",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
] + select({
":xsmm_convolutions": [
"@libxsmm_archive//:xsmm_avx",
],
"//conditions:default": [],
}),
)
tf_cuda_cc_test(
name = "conv_ops_test",
size = "medium",
srcs = ["conv_ops_test.cc"],
deps = [
":conv_ops",
":image",
":ops_testutil",
":ops_util",
"//tensorflow/cc:cc_ops",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:framework_internal",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:tensorflow",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
"@com_google_absl//absl/algorithm:container",
],
)
tf_cuda_cc_test(
name = "conv_ops_benchmark_test",
size = "medium",
srcs = ["conv_ops_benchmark_test.cc"],
tags = [
"nomac", # b/132448918
],
deps = [
":conv_ops",
":ops_testutil",
":ops_util",
"//tensorflow/cc:cc_ops",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:framework_internal",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
"//tensorflow/stream_executor/cuda:cudnn_plugin",
],
)
tf_cuda_cc_test(
name = "conv_grad_filter_ops_benchmark_test",
size = "medium",
srcs = ["conv_grad_filter_ops_benchmark_test.cc"],
deps = [
":conv_ops",
":host_constant_op",
":ops_testutil",
":ops_util",
"//tensorflow/cc:cc_ops",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:framework_internal",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
"//tensorflow/stream_executor/cuda:cudnn_plugin",
],
)
tf_cuda_cc_test(
name = "conv_grad_input_ops_benchmark_test",
size = "medium",
srcs = ["conv_grad_input_ops_benchmark_test.cc"],
deps = [
":conv_ops",
":host_constant_op",
":ops_testutil",
":ops_util",
"//tensorflow/cc:cc_ops",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:framework_internal",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
"//tensorflow/stream_executor/cuda:cudnn_plugin",
],
)
tf_cuda_cc_test(
name = "depthwise_conv_ops_test",
size = "small",
srcs = ["depthwise_conv_ops_test.cc"],
tags = tf_cuda_tests_tags(),
deps = [
":conv_ops",
":image",
":ops_testutil",
":ops_util",
"//tensorflow/cc:cc_ops",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:framework_internal",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:tensorflow",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_cc_test(
name = "decode_wav_op_test",
size = "small",
srcs = ["decode_wav_op_test.cc"],
deps = [
":decode_wav_op",
":ops_testutil",
":ops_util",
"//tensorflow/cc:cc_ops",
"//tensorflow/cc:client_session",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:framework_internal",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:tensorflow",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_cc_test(
name = "encode_wav_op_test",
size = "small",
srcs = ["encode_wav_op_test.cc"],
deps = [
":decode_wav_op",
":encode_wav_op",
":ops_testutil",
":ops_util",
"//tensorflow/cc:cc_ops",
"//tensorflow/cc:client_session",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:framework_internal",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:tensorflow",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_cc_test(
name = "example_parsing_ops_test",
size = "medium",
srcs = ["example_parsing_ops_test.cc"],
shard_count = 4,
tags = ["optonly"],
deps = [
":example_parsing_ops",
":ops_testutil",
":ops_util",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_cc_test(
name = "fake_quant_ops_test",
size = "small",
srcs = ["fake_quant_ops_test.cc"],
deps = [
":fake_quant_ops",
":ops_testutil",
":ops_util",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_cc_test(
name = "fused_batch_norm_op_test",
size = "small",
srcs = ["fused_batch_norm_op_test.cc"],
deps = [
":fused_batch_norm_op",
":ops_testutil",
":ops_util",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
"//tensorflow/stream_executor/cuda:cudnn_plugin",
],
)
tf_cuda_cc_test(
name = "fused_batch_norm_ex_op_test",
size = "small",
srcs = ["fused_batch_norm_ex_op_test.cc"],
tags = [
"no_cuda_on_cpu_tap",
],
deps = [
":cwise_op",
":fused_batch_norm_op",
":ops_testutil",
":ops_util",
":relu_op",
"//tensorflow/cc:cc_ops",
"//tensorflow/cc:cc_ops_internal",
"//tensorflow/core:core_cpu",
"//tensorflow/core:direct_session",
"//tensorflow/core:framework",
"//tensorflow/core:framework_internal",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
"//tensorflow/stream_executor/cuda:cudnn_plugin",
"@com_google_absl//absl/algorithm:container",
"@com_google_absl//absl/strings",
],
)
tf_cc_test(
name = "in_topk_op_test",
size = "small",
srcs = ["in_topk_op_test.cc"],
deps = [
":in_topk_op",
":ops_testutil",
":ops_util",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
"//tensorflow/stream_executor/cuda:cudnn_plugin",
],
)
tf_kernel_library(
name = "gather_functor",
prefix = "gather_functor",
visibility = [":friends"],
deps = [
":bounds_check",
"//tensorflow/core:framework",
"//third_party/eigen3",
],
)
# Unlike gather_functor library, this does not include the CUDA code and deps.
cc_library(
name = "gather_functor_hdr",
hdrs = [
"gather_functor.h",
"gather_functor_batched.h",
],
)
tf_kernel_library(
name = "dense_update_functor",
srcs = ["dense_update_functor.cc"],
hdrs = ["dense_update_functor.h"],
gpu_srcs = [
"dense_update_functor.h",
"dense_update_functor_gpu.cu.cc",
],
deps = [
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//third_party/eigen3",
],
alwayslink = 0,
)
tf_cuda_cc_test(
name = "gather_op_test",
size = "small",
srcs = ["gather_op_test.cc"],
deps = [
":gather_op",
":host_constant_op",
":ops_testutil",
":ops_util",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_cuda_cc_test(
name = "gather_nd_op_test",
size = "small",
srcs = ["gather_nd_op_test.cc"],
deps = [
":gather_nd_op",
":host_constant_op",
":ops_testutil",
":ops_util",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_cc_test(
name = "guarantee_const_op_test",
size = "small",
srcs = ["guarantee_const_op_test.cc"],
deps = [
":guarantee_const_op",
":ops_testutil",
":ops_util",
":variable_ops",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_cc_test(
name = "identity_op_test",
size = "small",
srcs = ["identity_op_test.cc"],
deps = [
":identity_op",
":ops_testutil",
":ops_util",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_cc_test(
name = "identity_n_op_test",
size = "small",
srcs = ["identity_n_op_test.cc"],
deps = [
":identity_n_op",
":ops_testutil",
":ops_util",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_cc_test(
name = "debug_ops_test",
size = "small",
srcs = ["debug_ops_test.cc"],
deps = [
":debug_ops",
":ops_testutil",
":ops_util",
"//tensorflow/core:core_cpu",
"//tensorflow/core:debug_ops_op_lib",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
"//tensorflow/core/debug:debug_io_utils",
"//tensorflow/core/debug:debug_node_key",
],
)
tf_cuda_cc_test(
name = "quantize_and_dequantize_op_test",
size = "small",
srcs = ["quantize_and_dequantize_op_test.cc"],
deps = [
":ops_testutil",
":ops_util",
":quantize_and_dequantize_op",
"//tensorflow/cc:cc_ops",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_cc_test(
name = "dequantize_op_test",
size = "small",
srcs = ["dequantize_op_test.cc"],
deps = [
":ops_testutil",
":ops_util",
":quantized_ops",
"//tensorflow/cc:cc_ops",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_cc_test(
name = "reverse_op_test",
size = "small",
srcs = ["reverse_op_test.cc"],
deps = [
":ops_testutil",
":ops_util",
":reverse_op",
"//tensorflow/core:core_cpu",
"//tensorflow/core:core_cpu_internal",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_kernel_library(
name = "scatter_functor",
prefix = "scatter_functor",
visibility = [":friends"],
deps = [
":bounds_check",
":dense_update_functor",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//third_party/eigen3",
],
)
tf_cc_test(
name = "slice_op_test",
size = "small",
srcs = ["slice_op_test.cc"],
linkopts = select({
"//tensorflow:macos": ["-headerpad_max_install_names"],
"//conditions:default": [],
}),
deps = [
":ops_testutil",
":ops_util",
":slice_op",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_cc_test(
name = "strided_slice_op_test",
size = "small",
srcs = ["strided_slice_op_test.cc"],
deps = [
":ops_testutil",
":ops_util",
":slice_op",
":strided_slice_op",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_cc_test(
name = "unique_op_test",
size = "small",
srcs = ["unique_op_test.cc"],
deps = [
":ops_testutil",
":ops_util",
":unique_op",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_kernel_library(
name = "transpose_functor",
srcs = ["transpose_functor_cpu.cc"],
hdrs = ["transpose_functor.h"],
gpu_srcs = [
"transpose_functor_gpu.cu.cc",
"transpose_functor.h",
],
visibility = [":friends"],
deps = [
":conv_2d",
":ops_util",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//third_party/eigen3",
],
alwayslink = 1,
)
tf_cc_test(
name = "transpose_util_test",
size = "small",
srcs = ["transpose_util_test.cc"],
deps = [
":transpose_functor",
"//tensorflow/core:framework",
"//tensorflow/core:tensor_testutil",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
],
)
tf_kernel_library(
name = "candidate_sampler_ops",
prefix = "candidate_sampler_ops",
deps = [
":range_sampler",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
],
)
cc_library(
name = "range_sampler",
srcs = ["range_sampler.cc"],
hdrs = ["range_sampler.h"],
visibility = ["//visibility:private"],
deps = [
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
],
)
tf_cc_test(
name = "range_sampler_test",
size = "small",
srcs = ["range_sampler_test.cc"],
deps = [
":range_sampler",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
],
)
tf_kernel_library(
name = "control_flow_ops",
prefix = "control_flow_ops",
deps = [
"//tensorflow/core:framework",
"//tensorflow/core:lib",
],
)
tf_kernel_library(
name = "ctc_ops",
prefix = "ctc",
deps = [
":bounds_check",
":ops_util",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core/util/ctc:ctc_beam_search_lib",
"//tensorflow/core/util/ctc:ctc_loss_calculator_lib",
],
)
tf_cc_test(
name = "control_flow_ops_test",
size = "small",
srcs = ["control_flow_ops_test.cc"],
deps = [
":control_flow_ops",
":ops_testutil",
":ops_util",
"//tensorflow/core:framework",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
cc_library(
name = "data_flow",
deps = [
":barrier_ops",
":conditional_accumulator_base_op",
":conditional_accumulator_op",
":dynamic_partition_op",
":dynamic_stitch_op",
":fifo_queue_op",
":lookup_table_init_op",
":lookup_table_op",
":map_stage_op",
":padding_fifo_queue_op",
":priority_queue_op",
":queue_ops",
":random_shuffle_queue_op",
":record_input_op",
":session_ops",
":sparse_conditional_accumulator_op",
":stack_ops",
":stage_op",
":tensor_array_ops",
],
)
cc_library(
name = "lookup",
deps = [
":lookup_table_init_op",
":lookup_table_op",
],
)
cc_header_only_library(
name = "lookup_headers_lib",
deps = [":lookup"],
)
DATA_FLOW_DEPS = [
":bounds_check",
":concat_lib",
":conditional_accumulator",
":conditional_accumulator_base",
":fifo_queue",
":initializable_lookup_table",
":lookup_util",
":padding_fifo_queue",
":priority_queue",
":queue_base",
":queue_op",
":sparse_conditional_accumulator",
":split_lib",
":tensor_array",
":typed_conditional_accumulator_base",
":typed_queue",
"//third_party/eigen3",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
]
tf_kernel_library(
name = "conditional_accumulator_base_op",
prefix = "conditional_accumulator_base_op",
deps = DATA_FLOW_DEPS,
)
tf_kernel_library(
name = "conditional_accumulator_op",
prefix = "conditional_accumulator_op",
deps = DATA_FLOW_DEPS,
)
tf_kernel_library(
name = "barrier_ops",
prefix = "barrier_ops",
deps = DATA_FLOW_DEPS,
)
tf_kernel_library(
name = "fifo_queue_op",
prefix = "fifo_queue_op",
deps = DATA_FLOW_DEPS,
)
tf_kernel_library(
name = "padding_fifo_queue_op",
prefix = "padding_fifo_queue_op",
deps = DATA_FLOW_DEPS,
)
tf_kernel_library(
name = "priority_queue_op",
prefix = "priority_queue_op",
deps = DATA_FLOW_DEPS,
)
tf_kernel_library(
name = "queue_ops",
prefix = "queue_ops",
deps = DATA_FLOW_DEPS,
)
tf_kernel_library(
name = "random_shuffle_queue_op",
prefix = "random_shuffle_queue_op",
deps = DATA_FLOW_DEPS + [
"//tensorflow/core:protos_all_cc",
],
)
tf_kernel_library(
name = "scoped_allocator_ops",
prefix = "scoped_allocator_ops",
deps = [
"//tensorflow/core:core_cpu",
"//tensorflow/core:core_cpu_internal",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
],
)
tf_cuda_cc_test(
name = "scoped_allocator_ops_test",
srcs = ["scoped_allocator_ops_test.cc"],
linkstatic = tf_kernel_tests_linkstatic(), #Required for benchmarking
deps = [
":cwise_op",
":dense_update_ops",
":ops_testutil",
":ops_util",
":scoped_allocator_ops",
":variable_ops",
"//tensorflow/core:core_cpu",
"//tensorflow/core:core_cpu_internal",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:proto_text",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_kernel_library(
name = "session_ops",
prefix = "session_ops",
deps = DATA_FLOW_DEPS,
)
tf_kernel_library(
name = "sparse_conditional_accumulator_op",
prefix = "sparse_conditional_accumulator_op",
deps = DATA_FLOW_DEPS,
)
cc_library(
name = "stack",
srcs = ["stack.cc"],
hdrs = ["stack.h"],
deps = [
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
],
)
tf_kernel_library(
name = "stack_ops",
prefix = "stack_ops",
deps = DATA_FLOW_DEPS + [":stack"],
)
tf_kernel_library(
name = "tensor_array_ops",
prefix = "tensor_array_ops",
deps = DATA_FLOW_DEPS,
)
DYNAMIC_DEPS = [
":bounds_check",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
]
tf_kernel_library(
name = "dynamic_partition_op",
prefix = "dynamic_partition_op",
deps = DYNAMIC_DEPS + [
":fill_functor",
":gather_functor",
] + if_cuda(["@cub_archive//:cub"]) + if_rocm([
"@rocprim_archive//:rocprim",
]),
)
tf_kernel_library(
name = "dynamic_stitch_op",
gpu_srcs = [
"gpu_device_array.h",
"gpu_device_array_gpu.h",
],
prefix = "dynamic_stitch_op",
deps = DYNAMIC_DEPS,
)
LOOKUP_DEPS = [
":bounds_check",
":initializable_lookup_table",
":lookup_util",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
]
tf_kernel_library(
name = "lookup_table_init_op",
prefix = "lookup_table_init_op",
deps = LOOKUP_DEPS,
)
tf_kernel_library(
name = "lookup_table_op",
prefix = "lookup_table_op",
deps = LOOKUP_DEPS,
)
cc_library(
name = "checkpoint_ops",
deps = [
":generate_vocab_remapping_op",
":load_and_remap_matrix_op",
],
)
tf_kernel_library(
name = "generate_vocab_remapping_op",
srcs = ["generate_vocab_remapping_op.cc"],
deps = [
":lookup_table_init_op",
":lookup_table_op",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//third_party/eigen3",
],
)
tf_kernel_library(
name = "load_and_remap_matrix_op",
srcs = ["load_and_remap_matrix_op.cc"],
deps = [
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
"//tensorflow/core/util/tensor_bundle",
"//third_party/eigen3",
],
)
tf_cuda_cc_tests(
name = "dynamic_op_test",
size = "small",
srcs = [
"dynamic_partition_op_test.cc",
"dynamic_stitch_op_test.cc",
],
deps = [
":data_flow",
":ops_testutil",
":ops_util",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_kernel_library(
name = "eye_functor",
hdrs = ["eye_functor.h"],
gpu_srcs = [
"eye_functor_gpu.cu.cc",
"eye_functor.h",
],
visibility = [":friends"],
deps = [
"//tensorflow/core:framework",
"//third_party/eigen3",
],
alwayslink = 0,
)
cc_library(
name = "fifo_queue",
srcs = ["fifo_queue.cc"],
hdrs = ["fifo_queue.h"],
visibility = [":friends"],
deps = [
":queue_base",
":queue_op",
":typed_queue",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
],
)
cc_library(
name = "padding_fifo_queue",
srcs = ["padding_fifo_queue.cc"],
hdrs = ["padding_fifo_queue.h"],
visibility = ["//visibility:private"],
deps = [
":fifo_queue",
":queue_base",
":typed_queue",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
],
)
cc_library(
name = "conditional_accumulator_base",
srcs = ["conditional_accumulator_base.cc"],
hdrs = [
"conditional_accumulator_base.h",
],
deps = [
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//third_party/eigen3",
],
)
cc_library(
name = "typed_conditional_accumulator_base",
hdrs = ["typed_conditional_accumulator_base.h"],
deps = [
":conditional_accumulator_base",
],
)
cc_library(
name = "conditional_accumulator",
hdrs = [
"conditional_accumulator.h",
"conditional_accumulator_base_op.h",
],
deps = [
":conditional_accumulator_base",
":fill_functor",
":typed_conditional_accumulator_base",
],
)
cc_library(
name = "sparse_conditional_accumulator",
hdrs = ["sparse_conditional_accumulator.h"],
deps = [
":typed_conditional_accumulator_base",
],
)
tf_kernel_library(
name = "tensor_array",
srcs = ["tensor_array.cc"],
hdrs = ["tensor_array.h"],
visibility = ["//visibility:private"],
deps = [
":aggregate_ops",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//third_party/eigen3",
],
)
tf_kernel_library(
name = "resource_variable_ops",
srcs = ["resource_variable_ops.cc"],
hdrs = ["resource_variable_ops.h"],
deps = [
":bounds_check",
":dense_update_functor",
":gather_functor",
":gather_nd_op",
":scatter_functor",
":training_op_helpers",
":variable_ops",
"//tensorflow/core:core_cpu_lib",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
"@com_google_absl//absl/strings",
],
)
tf_kernel_library(
name = "list_kernels",
srcs = ["list_kernels.cc"],
hdrs = ["list_kernels.h"],
gpu_srcs = [
"list_kernels.cu.cc",
"list_kernels.h",
],
deps = [
":concat_lib",
":fill_functor",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//third_party/eigen3",
],
)
tf_kernel_library(
name = "fact_op",
prefix = "fact_op",
deps = [
"//tensorflow/core:framework",
"//tensorflow/core:lib",
],
)
tf_kernel_library(
name = "function_ops",
prefix = "function_ops",
deps = [
"//tensorflow/core:core_cpu",
"//tensorflow/core:core_cpu_internal",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
"//tensorflow/core/profiler/lib:traceme",
],
)
tf_kernel_library(
name = "functional_ops",
prefix = "functional_ops",
deps = [
"//tensorflow/core:core_cpu",
"//tensorflow/core:core_cpu_internal",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
"//tensorflow/core/profiler/lib:traceme",
"//third_party/eigen3",
],
)
tf_kernel_library(
name = "partitioned_function_ops",
prefix = "partitioned_function_ops",
deps = [
"//tensorflow/core:core_cpu_internal",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core/grappler:grappler_item",
"//tensorflow/core/grappler/clusters:virtual_cluster",
"//tensorflow/core/grappler/optimizers:meta_optimizer",
"//tensorflow/core/grappler/utils:functions",
"//tensorflow/core/profiler/lib:traceme",
"//tensorflow/stream_executor:stream",
"@com_google_absl//absl/strings",
],
)
cc_library(
name = "image",
deps = [
":adjust_contrast_op",
":adjust_hue_op",
":adjust_saturation_op",
":attention_ops",
":colorspace_op",
":crop_and_resize_op",
":decode_bmp_op",
":decode_image_op",
":draw_bounding_box_op",
":encode_jpeg_op",
":encode_png_op",
":extract_jpeg_shape_op",
":non_max_suppression_op",
":random_crop_op",
":resize_area_op",
":resize_bicubic_op",
":resize_bilinear_op",
":resize_nearest_neighbor_op",
":sample_distorted_bounding_box_op",
":scale_and_translate_op",
],
)
IMAGE_DEPS = [
":bounds_check",
":eigen_helpers",
":image_resizer_state",
"//third_party/eigen3",
"//tensorflow/core:framework",
"//tensorflow/core:gif_internal",
"//tensorflow/core:jpeg_internal",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
"//tensorflow/core:png_internal",
"//tensorflow/core:protos_all_cc",
]
tf_kernel_library(
name = "adjust_contrast_op",
prefix = "adjust_contrast_op",
deps = IMAGE_DEPS,
)
cc_library(
name = "adjust_hsv_gpu_lib",
hdrs = ["adjust_hsv_gpu.cu.h"],
deps = ["//tensorflow/core:framework"],
)
tf_kernel_library(
name = "adjust_hue_op",
prefix = "adjust_hue_op",
deps = IMAGE_DEPS + [":adjust_hsv_gpu_lib"],
)
tf_kernel_library(
name = "adjust_saturation_op",
prefix = "adjust_saturation_op",
deps = IMAGE_DEPS + [":adjust_hsv_gpu_lib"],
)
tf_kernel_library(
name = "attention_ops",
prefix = "attention_ops",
deps = IMAGE_DEPS,
)
tf_kernel_library(
name = "colorspace_op",
prefix = "colorspace_op",
deps = IMAGE_DEPS,
)
tf_kernel_library(
name = "crop_and_resize_op",
prefix = "crop_and_resize_op",
deps = IMAGE_DEPS,
)
tf_kernel_library(
name = "decode_bmp_op",
prefix = "decode_bmp_op",
deps = IMAGE_DEPS,
)
tf_kernel_library(
name = "decode_image_op",
prefix = "decode_image_op",
deps = IMAGE_DEPS + ["@com_google_absl//absl/strings"],
)
tf_kernel_library(
name = "draw_bounding_box_op",
prefix = "draw_bounding_box_op",
deps = IMAGE_DEPS,
)
tf_kernel_library(
name = "encode_jpeg_op",
prefix = "encode_jpeg_op",
deps = IMAGE_DEPS,
)
tf_kernel_library(
name = "encode_png_op",
prefix = "encode_png_op",
deps = IMAGE_DEPS,
)
tf_kernel_library(
name = "extract_jpeg_shape_op",
prefix = "extract_jpeg_shape_op",
deps = IMAGE_DEPS,
)
tf_kernel_library(
name = "non_max_suppression_op",
prefix = "non_max_suppression_op",
deps = IMAGE_DEPS + if_cuda(["@cub_archive//:cub"]),
)
tf_kernel_library(
name = "scale_and_translate_op",
prefix = "scale_and_translate_op",
deps = IMAGE_DEPS + [":sampling_kernels"],
)
tf_kernel_library(
name = "random_crop_op",
prefix = "random_crop_op",
deps = IMAGE_DEPS,
)
tf_kernel_library(
name = "resize_area_op",
prefix = "resize_area_op",
deps = IMAGE_DEPS,
)
tf_kernel_library(
name = "resize_bicubic_op",
prefix = "resize_bicubic_op",
deps = IMAGE_DEPS,
)
tf_kernel_library(
name = "resize_bilinear_op",
prefix = "resize_bilinear_op",
deps = IMAGE_DEPS,
)
tf_kernel_library(
name = "resize_nearest_neighbor_op",
prefix = "resize_nearest_neighbor_op",
deps = IMAGE_DEPS,
)
tf_kernel_library(
name = "sample_distorted_bounding_box_op",
prefix = "sample_distorted_bounding_box_op",
deps = IMAGE_DEPS,
)
tf_kernel_library(
name = "encode_wav_op",
prefix = "encode_wav_op",
deps = [
":bounds_check",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
"//tensorflow/core:protos_all_cc",
],
)
tf_kernel_library(
name = "decode_wav_op",
prefix = "decode_wav_op",
deps = [
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
"//tensorflow/core:protos_all_cc",
],
)
tf_cc_tests(
name = "eigen_test",
size = "small",
srcs = [
"eigen_activations_test.cc",
"eigen_attention_test.cc",
"eigen_backward_spatial_convolutions_test.cc",
"eigen_pooling_test.cc",
"eigen_spatial_convolutions_test.cc",
],
deps = [
":eigen_helpers",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"@com_google_absl//absl/strings",
],
)
# Conditional test target generation is not supported by the "tf_cc_tests" macro
# (can't add 'select' to the srcs field, type 'select' is not iterable).
tf_cc_test(
name = "eigen_mkldnn_contraction_kernel_test",
size = "small",
srcs = select({
"//tensorflow:android": [],
"//tensorflow:arm": [],
"//tensorflow:ios": [],
"//tensorflow:linux_ppc64le": [],
":no_mkldnn_contraction_kernel": [],
"//conditions:default": ["eigen_mkldnn_contraction_kernel_test.cc"],
}),
tags = ["mkldnn_contraction_kernel"],
deps = [
":eigen_contraction_kernel",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//third_party/eigen3",
],
)
cc_library(
name = "eigen_benchmark",
testonly = 1,
hdrs = [
"eigen_benchmark.h",
":eigen_helpers",
],
deps = [
"//tensorflow/core:framework",
"//third_party/eigen3",
],
)
tf_cc_test(
name = "eigen_benchmark_cpu_test",
srcs = ["eigen_benchmark_cpu_test.cc"],
deps = [
":eigen_benchmark",
":eigen_helpers",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//third_party/eigen3",
],
)
tf_cc_tests(
name = "basic_ops_benchmark_test",
size = "small",
srcs = [
"basic_ops_benchmark_test.cc",
],
deps = [
":math",
":ops_util",
":state",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_cc_tests(
name = "bonus_tests",
srcs = [
"adjust_contrast_op_test.cc",
"colorspace_op_test.cc",
"crop_and_resize_op_test.cc",
"non_max_suppression_op_test.cc",
"resize_area_op_test.cc",
"resize_bicubic_op_test.cc",
"resize_nearest_neighbor_op_test.cc",
"scale_and_translate_op_test.cc",
],
linkopts = select({
"//tensorflow:macos": ["-headerpad_max_install_names"],
"//conditions:default": [],
}),
deps = [
":image",
":ops_testutil",
":ops_util",
":sampling_kernels",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_cuda_cc_test(
name = "resize_bilinear_op_test",
srcs = ["resize_bilinear_op_test.cc"],
tags = ["no_cuda_on_cpu_tap"],
deps = [
":image",
":ops_testutil",
":ops_util",
":sampling_kernels",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_cuda_cc_test(
name = "adjust_contrast_op_benchmark_test",
srcs = ["adjust_contrast_op_benchmark_test.cc"],
deps = [
":image",
":ops_testutil",
":ops_util",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_cuda_cc_test(
name = "crop_and_resize_op_benchmark_test",
srcs = ["crop_and_resize_op_benchmark_test.cc"],
deps = [
":image",
":ops_testutil",
":ops_util",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_cuda_cc_test(
name = "non_max_suppression_op_gpu_test",
srcs = ["non_max_suppression_op_gpu_test.cc"],
tags = tf_cuda_tests_tags() + ["no_cuda_on_cpu_tap"],
deps = [
":image",
":ops_testutil",
":ops_util",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_cuda_cc_test(
name = "resize_benchmark_test",
srcs = ["resize_op_benchmark_test.cc"],
deps = [
":image",
":ops_testutil",
":ops_util",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
cc_library(
name = "io",
deps = [
":fixed_length_record_reader_op",
":identity_reader_op",
":lmdb_reader_op",
":matching_files_op",
":reader_ops",
":restore_op",
":save_op",
":save_restore_v2_ops",
":text_line_reader_op",
":tf_record_reader_op",
":whole_file_read_ops",
],
)
IO_DEPS = [
":ops_util",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:reader_base",
"//tensorflow/core/util/tensor_bundle",
]
tf_kernel_library(
name = "fixed_length_record_reader_op",
prefix = "fixed_length_record_reader_op",
deps = IO_DEPS,
)
tf_kernel_library(
name = "identity_reader_op",
prefix = "identity_reader_op",
deps = IO_DEPS + ["@com_google_absl//absl/strings"],
)
tf_kernel_library(
name = "lmdb_reader_op",
prefix = "lmdb_reader_op",
deps = IO_DEPS + [
"@lmdb",
],
)
tf_kernel_library(
name = "matching_files_op",
prefix = "matching_files_op",
deps = IO_DEPS,
)
tf_kernel_library(
name = "reader_ops",
prefix = "reader_ops",
deps = IO_DEPS,
)
SAVE_RESTORE_DEPS = [
":bounds_check_lib",
":save_restore_tensor",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core/util/tensor_bundle",
]
tf_kernel_library(
name = "restore_op",
prefix = "restore_op",
deps = SAVE_RESTORE_DEPS,
)
tf_kernel_library(
name = "save_op",
prefix = "save_op",
deps = SAVE_RESTORE_DEPS,
)
tf_kernel_library(
name = "save_restore_v2_ops",
prefix = "save_restore_v2_ops",
deps = SAVE_RESTORE_DEPS,
)
tf_kernel_library(
name = "text_line_reader_op",
prefix = "text_line_reader_op",
deps = IO_DEPS,
)
tf_kernel_library(
name = "tf_record_reader_op",
prefix = "tf_record_reader_op",
deps = IO_DEPS,
)
tf_kernel_library(
name = "whole_file_read_ops",
prefix = "whole_file_read_ops",
deps = IO_DEPS + ["@com_google_absl//absl/strings"],
)
tf_cc_tests(
name = "bonus2_tests",
size = "small",
srcs = [
"merge_v2_checkpoints_op_test.cc",
"restore_op_test.cc",
"restore_v2_op_test.cc",
"save_op_test.cc",
"save_v2_op_test.cc",
],
deps = [
":io",
":ops_testutil",
":ops_util",
"//tensorflow/cc:cc_ops",
"//tensorflow/core:core_cpu",
"//tensorflow/core:core_cpu_internal",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
"//tensorflow/core/util/tensor_bundle",
],
)
cc_library(
name = "linalg",
deps = [
":cholesky_grad",
":cholesky_op",
":determinant_op",
":einsum_op",
":lu_op",
":matrix_exponential_op",
":matrix_inverse_op",
":matrix_logarithm_op",
":matrix_solve_ls_op",
":matrix_solve_op",
":matrix_square_root_op",
":matrix_triangular_solve_op",
":qr_op",
":self_adjoint_eig_op",
":self_adjoint_eig_v2_op",
":svd_op",
":tridiagonal_matmul_op",
":tridiagonal_solve_op",
],
)
tf_kernel_library(
name = "cuda_solvers",
srcs = ["cuda_solvers.cc"],
hdrs = ["cuda_solvers.h"],
# @local_config_cuda//cuda:cusolver_static, //third_party/eigen3:blas,
# and //third_party/libf2c all contain various parts of BLAS, LAPACK,
# and f2c helper functions in global namespace. Tell the compiler to
# allow multiple definitions when linking this.
linkopts = select({
"//tensorflow:macos": [],
"//tensorflow:windows": [],
"//conditions:default": ["-Wl,-z,muldefs"],
}),
visibility = [":friends"],
deps = [
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core/platform/default/build_config:cublas_plugin",
"//tensorflow/stream_executor/cuda:cublas_lib",
"//tensorflow/stream_executor/cuda:cusolver_lib",
],
)
tf_kernel_library(
name = "cuda_sparse",
srcs = ["cuda_sparse.cc"],
hdrs = ["cuda_sparse.h"],
deps = [
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/stream_executor/cuda:cusparse_lib",
],
)
LINALG_DEPS = [
":linalg_ops_common",
"//third_party/eigen3",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
] + if_cuda([
":cuda_solvers",
":transpose_functor",
])
tf_kernel_library(
name = "cholesky_op",
prefix = "cholesky_op",
deps = if_cuda([
":matrix_band_part_op",
]) + LINALG_DEPS,
)
tf_kernel_library(
name = "cholesky_grad",
prefix = "cholesky_grad",
deps = LINALG_DEPS,
)
tf_kernel_library(
name = "determinant_op",
prefix = "determinant_op",
deps = if_cuda([
":fill_functor",
]) + LINALG_DEPS,
)
tf_kernel_library(
name = "matrix_exponential_op",
prefix = "matrix_exponential_op",
deps = LINALG_DEPS,
)
tf_kernel_library(
name = "matrix_logarithm_op",
prefix = "matrix_logarithm_op",
deps = LINALG_DEPS,
)
tf_kernel_library(
name = "self_adjoint_eig_op",
prefix = "self_adjoint_eig_op",
deps = LINALG_DEPS + ["//tensorflow/core:lib_internal"],
)
tf_kernel_library(
name = "self_adjoint_eig_v2_op",
prefix = "self_adjoint_eig_v2_op",
deps = LINALG_DEPS + ["//tensorflow/core:lib_internal"] + if_cuda([
":cast_op",
":cwise_op",
]),
)
tf_kernel_library(
name = "matrix_inverse_op",
prefix = "matrix_inverse_op",
deps = LINALG_DEPS + if_cuda([":eye_functor"]),
)
tf_kernel_library(
name = "matrix_solve_ls_op",
prefix = "matrix_solve_ls_op",
deps = LINALG_DEPS,
)
tf_kernel_library(
name = "matrix_solve_op",
prefix = "matrix_solve_op",
deps = LINALG_DEPS,
)
tf_kernel_library(
name = "matrix_square_root_op",
prefix = "matrix_square_root_op",
deps = LINALG_DEPS,
)
tf_kernel_library(
name = "matrix_triangular_solve_op",
prefix = "matrix_triangular_solve_op",
deps = LINALG_DEPS + if_cuda([
"//tensorflow/core/platform/default/build_config:cublas_plugin",
]),
)
tf_kernel_library(
name = "tridiagonal_matmul_op",
srcs = ["tridiagonal_matmul_op.cc"],
gpu_srcs = ["tridiagonal_matmul_op_gpu.cu.cc"],
deps = LINALG_DEPS + if_cuda([
":cuda_sparse",
]),
)
tf_kernel_library(
name = "tridiagonal_solve_op",
srcs = ["tridiagonal_solve_op.cc"],
gpu_srcs = ["tridiagonal_solve_op_gpu.cu.cc"],
deps = LINALG_DEPS + if_cuda([
":cuda_sparse",
]),
)
tf_kernel_library(
name = "qr_op",
prefix = "qr_op",
deps = LINALG_DEPS + if_cuda([
":cwise_op",
":eye_functor",
":matrix_band_part_op",
]),
)
tf_kernel_library(
name = "svd_op",
prefix = "svd_op",
deps = LINALG_DEPS,
)
tf_kernel_library(
name = "lu_op",
prefix = "lu_op",
deps = if_cuda([
":cuda_solvers",
":transpose_functor",
]) + [
"//third_party/eigen3",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
],
)
tf_kernel_library(
name = "einsum_op",
prefix = "einsum_op",
deps = [
":batch_matmul_op",
":reduction_ops",
":transpose_functor",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//third_party/eigen3",
"@com_google_absl//absl/container:flat_hash_map",
"@com_google_absl//absl/strings",
],
)
cc_library(
name = "linalg_ops_common",
srcs = ["linalg_ops_common.cc"],
hdrs = ["linalg_ops_common.h"],
visibility = ["//visibility:private"],
deps = [
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//third_party/eigen3",
],
)
cc_library(
name = "logging",
deps = [
":logging_ops",
":summary_audio_op",
":summary_image_op",
":summary_op",
":summary_tensor_op",
],
)
LOGGING_DEPS = [
"@com_google_absl//absl/strings",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
"//tensorflow/core:protos_all_cc",
]
tf_kernel_library(
name = "logging_ops",
prefix = "logging_ops",
deps = LOGGING_DEPS,
)
tf_kernel_library(
name = "summary_audio_op",
prefix = "summary_audio_op",
deps = LOGGING_DEPS,
)
tf_kernel_library(
name = "summary_image_op",
prefix = "summary_image_op",
deps = LOGGING_DEPS + ["//tensorflow/core:png_internal"],
)
tf_kernel_library(
name = "summary_op",
prefix = "summary_op",
deps = LOGGING_DEPS,
)
tf_kernel_library(
name = "summary_tensor_op",
prefix = "summary_tensor_op",
deps = LOGGING_DEPS,
)
tf_cc_tests(
name = "bonus3_tests",
size = "small",
srcs = [
"logging_ops_test.cc",
"summary_audio_op_test.cc",
"summary_image_op_test.cc",
"summary_op_test.cc",
"summary_tensor_op_test.cc",
],
deps = [
":logging",
":ops_testutil",
":ops_util",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
"@com_google_absl//absl/strings",
],
)
cc_library(
name = "manip",
deps = [
":roll_op",
],
)
tf_kernel_library(
name = "roll_op",
srcs = ["roll_op.cc"],
hdrs = ["roll_op.h"],
gpu_srcs = [
"roll_op_gpu.cu.cc",
"roll_op.h",
],
deps = [
":bounds_check",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//third_party/eigen3",
],
)
tf_cc_test(
name = "roll_op_test",
size = "small",
srcs = ["roll_op_test.cc"],
deps = [
":ops_testutil",
":ops_util",
":roll_op",
"//tensorflow/core:core_cpu",
"//tensorflow/core:core_cpu_internal",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
MATH_DEPS = [
":bounds_check",
":fill_functor",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
"//tensorflow/core:math_grad",
"//third_party/eigen3",
]
cc_library(
name = "math_not_windows",
deps = [
":sparse_matmul_op",
],
)
tf_kernel_library(
name = "sparse_matmul_op",
defines = select({
":xsmm": ["TENSORFLOW_USE_LIBXSMM"],
"//conditions:default": [],
}),
prefix = "sparse_matmul_op",
deps = MATH_DEPS + [":eigen_contraction_kernel"] + select({
":xsmm": [
"@libxsmm_archive//:xsmm_avx",
],
"//conditions:default": [],
}),
)
cc_library(
name = "math",
deps = [
":aggregate_ops",
":argmax_op",
":batch_matmul_op",
":betainc_op",
":bincount_op",
":bucketize_op",
":cast_op",
":check_numerics_op",
":compare_and_bitpack_op",
":cross_op",
":cwise_op",
":fft_ops",
":histogram_op",
":matmul_op",
":nextafter_op",
":population_count_op",
":reduction_ops",
":scan_ops",
":segment_reduction_ops",
":sequence_ops",
],
)
tf_kernel_library(
name = "aggregate_ops",
prefix = "aggregate_ops",
deps = MATH_DEPS,
)
tf_kernel_library(
name = "argmax_op",
prefix = "argmax_op",
deps = MATH_DEPS,
)
tf_kernel_library(
name = "batch_matmul_op",
# <prefix>*impl.h are excluded by default from the CPU build, add explicitly.
hdrs = ["batch_matmul_op_impl.h"],
prefix = "batch_matmul_op",
deps = MATH_DEPS + [":eigen_contraction_kernel"] + if_mkl_ml([
"//third_party/mkl:intel_binary_blob",
]),
)
tf_mkl_kernel_library(
name = "mkl_batch_matmul_op",
srcs = ["mkl_batch_matmul_op.cc"],
hdrs = ["batch_matmul_op_impl.h"],
deps = MATH_DEPS + mkl_deps(),
)
tf_kernel_library(
name = "betainc_op",
prefix = "betainc_op",
deps = MATH_DEPS,
)
tf_kernel_library(
name = "bucketize_op",
gpu_srcs = ["gpu_device_array.h"],
prefix = "bucketize_op",
deps = ARRAY_DEPS,
)
tf_kernel_library(
name = "cast_op",
prefix = "cast_op",
deps = MATH_DEPS,
)
tf_kernel_library(
name = "check_numerics_op",
prefix = "check_numerics_op",
deps = MATH_DEPS,
)
tf_kernel_library(
name = "cross_op",
prefix = "cross_op",
deps = MATH_DEPS,
)
tf_kernel_library(
name = "cwise_op",
prefix = "cwise_op",
deps = MATH_DEPS,
)
tf_kernel_library(
name = "nextafter_op",
prefix = "nextafter_op",
deps = MATH_DEPS + [":cwise_op"],
)
tf_kernel_library(
name = "population_count_op",
prefix = "population_count_op",
deps = MATH_DEPS,
)
tf_kernel_library(
name = "fft_ops",
prefix = "fft_ops",
deps = MATH_DEPS + [
] + if_cuda([
"//tensorflow/core/platform/default/build_config:cufft_plugin",
]),
)
tf_kernel_library(
name = "matmul_op",
srcs = [
"matmul_op.cc",
"matmul_op_fused.cc",
],
hdrs = ["matmul_op.h"],
defines = select({
":xsmm": [
"TENSORFLOW_USE_LIBXSMM",
"EIGEN_USE_LIBXSMM",
],
"//conditions:default": [],
}),
deps = MATH_DEPS + [
":eigen_contraction_kernel",
":fused_eigen_output_kernels",
":gpu_utils",
] + select({
":xsmm": ["@libxsmm_archive//:xsmm_avx"],
"//conditions:default": [],
}) + mkl_deps() + if_cuda([
"//tensorflow/core/platform/default/build_config:cublas_plugin",
]),
)
tf_mkl_kernel_library(
name = "mkl_matmul_op",
srcs = ["mkl_matmul_op.cc"],
deps = MATH_DEPS + mkl_deps(),
)
tf_kernel_library(
name = "reduction_ops",
gpu_srcs = ["reduction_gpu_kernels.cu.h"],
prefix = "reduction_ops",
deps = MATH_DEPS + [":transpose_functor"] + if_cuda([
"@cub_archive//:cub",
]) + if_rocm([
"@rocprim_archive//:rocprim",
]),
)
tf_kernel_library(
name = "segment_reduction_ops",
prefix = "segment_reduction_ops",
deps = MATH_DEPS + if_cuda_or_rocm([
":cuda_solvers",
]),
)
tf_kernel_library(
name = "scan_ops",
srcs = ["scan_ops.cc"],
hdrs = ["scan_ops.h"],
gpu_srcs = [
"scan_ops.h",
"scan_ops_gpu.h",
"scan_ops_gpu_double.cu.cc",
"scan_ops_gpu_float.cu.cc",
"scan_ops_gpu_half.cu.cc",
"scan_ops_gpu_int.cu.cc",
],
deps = MATH_DEPS + if_cuda([
"@cub_archive//:cub",
]) + if_rocm([
"@rocprim_archive//:rocprim",
]),
)
tf_kernel_library(
name = "sequence_ops",
prefix = "sequence_ops",
deps = MATH_DEPS,
)
tf_kernel_library(
name = "unary_ops_composition",
prefix = "unary_ops_composition",
deps = MATH_DEPS + [
":cwise_op",
":relu_op",
],
)
tf_cc_test(
name = "sequence_ops_test",
size = "small",
srcs = ["sequence_ops_test.cc"],
deps = [
":ops_testutil",
":ops_util",
":sequence_ops",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_cuda_cc_test(
name = "cast_op_test",
size = "small",
srcs = ["cast_op_test.cc"],
deps = [
":cast_op",
":ops_testutil",
":ops_util",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_cc_test(
name = "cross_op_test",
size = "small",
srcs = ["cross_op_test.cc"],
deps = [
":cross_op",
":ops_testutil",
":ops_util",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_cc_tests(
name = "sparse_tests",
size = "small",
srcs = [
"sparse_add_op_test.cc",
"sparse_dense_binary_op_shared_test.cc",
"sparse_reduce_sum_op_test.cc",
],
deps = [
":ops_testutil",
":ops_util",
":sparse_add_op",
":sparse_dense_binary_op_shared",
":sparse_reduce_op",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_cuda_cc_test(
name = "cwise_ops_test",
size = "small",
srcs = ["cwise_ops_test.cc"],
deps = [
":bounds_check",
":cwise_op",
":nn",
":ops_testutil",
":ops_util",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_cuda_cc_test(
name = "unary_ops_composition_test",
size = "small",
srcs = ["unary_ops_composition_test.cc"],
deps = [
":ops_testutil",
":ops_util",
":unary_ops_composition",
"//tensorflow/cc:cc_ops",
"//tensorflow/cc:client_session",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:framework_internal",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:tensorflow",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_cuda_cc_test(
name = "matmul_op_test",
size = "small",
srcs = ["matmul_op_test.cc"],
deps = [
":matmul_op",
":ops_testutil",
":ops_util",
":quantized_ops",
"//tensorflow/cc:cc_ops",
"//tensorflow/cc:client_session",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:framework_internal",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:tensorflow",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
"@com_google_absl//absl/algorithm:container",
],
)
tf_cuda_cc_test(
name = "batch_matmul_op_test",
size = "small",
srcs = ["batch_matmul_op_test.cc"],
deps = [
":batch_matmul_op",
":broadcast_to_op",
":ops_testutil",
":ops_util",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_cuda_cc_test(
name = "scan_ops_test",
size = "small",
srcs = ["scan_ops_test.cc"],
linkopts = select({
"//tensorflow:macos": ["-headerpad_max_install_names"],
"//conditions:default": [],
}),
deps = [
":host_constant_op",
":ops_testutil",
":ops_util",
":scan_ops",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_cuda_cc_test(
name = "reduction_ops_test",
size = "small",
srcs = ["reduction_ops_test.cc"],
linkopts = select({
"//tensorflow:macos": ["-headerpad_max_install_names"],
"//conditions:default": [],
}),
deps = [
":host_constant_op",
":ops_testutil",
":ops_util",
":reduction_ops",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_cc_test(
name = "segment_reduction_ops_test",
size = "small",
srcs = ["segment_reduction_ops_test.cc"],
deps = [
":ops_testutil",
":ops_util",
":segment_reduction_ops",
"//tensorflow/core:core_cpu",
"//tensorflow/core:core_cpu_internal",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_cc_test(
name = "immutable_constant_op_test",
srcs = ["immutable_constant_op_test.cc"],
deps = [
":array",
":immutable_constant_op",
":matmul_op",
":ops_testutil",
":ops_util",
":random_shuffle_op",
"//tensorflow/cc:cc_ops",
"//tensorflow/core:core_cpu",
"//tensorflow/core:direct_session",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:ops",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_cuda_cc_test(
name = "sparse_matmul_op_test",
size = "small",
srcs = ["sparse_matmul_op_test.cc"],
deps = [
":ops_testutil",
":ops_util",
":sparse_matmul_op",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_cuda_cc_test(
name = "split_op_test",
size = "small",
srcs = ["split_op_test.cc"],
deps = [
":ops_testutil",
":ops_util",
":split_op",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_cuda_cc_test(
name = "split_v_op_test",
size = "small",
srcs = ["split_v_op_test.cc"],
deps = [
":ops_testutil",
":ops_util",
":split_v_op",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_cuda_cc_test(
name = "diag_op_test",
size = "small",
srcs = ["diag_op_test.cc"],
deps = [
":diag_op",
":host_constant_op",
":ops_testutil",
":ops_util",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
# conv_grad_ops currently has to be built with conv_ops*.
# TODO(josh11b, zhengxq): put these a separate libraries in ":nn" below once
# conv_ops_gpu.h has be separated into its own library.
tf_kernel_library(
name = "conv_ops",
srcs = [
"conv_grad_filter_ops.cc",
"conv_grad_input_ops.cc",
"conv_grad_ops.cc",
"conv_grad_ops_3d.cc",
"deep_conv2d.cc",
] + select({
":xsmm_convolutions": ["xsmm_conv2d.cc"],
"//conditions:default": [],
}),
hdrs = [
"fill_functor.h",
"conv_grad_ops.h",
"deep_conv2d.h",
"gemm_functors.h",
"winograd_transform.h",
] + select({
":xsmm_convolutions": ["xsmm_conv2d.h"],
"//conditions:default": [],
}),
defines = select({
":xsmm_convolutions": [
"TENSORFLOW_USE_LIBXSMM_CONVOLUTIONS",
],
"//conditions:default": [],
}) + select({
":xsmm": ["EIGEN_USE_LIBXSMM"],
"//conditions:default": [],
}) + select({
":xsmm_backward_convolutions": ["TENSORFLOW_USE_LIBXSMM_BACKWARD_CONVOLUTIONS"],
"//conditions:default": [],
}),
prefix = "conv_ops",
deps = [
":bounds_check",
":conv_2d",
":conv_3d",
":eigen_contraction_kernel",
":gpu_utils",
":image_resizer_state",
":fill_functor",
":fused_eigen_output_kernels",
":ops_util",
"@com_google_absl//absl/base:dynamic_annotations",
"@com_google_absl//absl/strings",
"//third_party/eigen3",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
"//tensorflow/core/util/proto:proto_utils",
] + select({
":xsmm_convolutions": [
"@libxsmm_archive//:xsmm_avx",
],
"//conditions:default": [],
}) + if_cuda([
"//tensorflow/core/platform/default/build_config:cublas_plugin",
"//tensorflow/core/platform/default/build_config:cudnn_plugin",
"//tensorflow/stream_executor:tf_allocator_adapter",
"//tensorflow/stream_executor/cuda:redzone_allocator",
"//tensorflow/stream_executor/cuda:ptxas_utils",
"//tensorflow/stream_executor:stream_executor_headers",
"//tensorflow/core:stream_executor",
]),
)
tf_kernel_library(
name = "depthwise_conv_op",
srcs = ["depthwise_conv_op.cc"],
hdrs = ["depthwise_conv_op.h"],
gpu_copts = if_not_windows([
"-Wno-pass-failed", # clang misses #pragma loop optimizations
]),
gpu_srcs = [
"depthwise_conv_op.h",
"depthwise_conv_op_gpu.h",
"depthwise_conv_op_gpu_double.cu.cc",
"depthwise_conv_op_gpu_float.cu.cc",
"depthwise_conv_op_gpu_half.cu.cc",
],
deps = [
":bounds_check",
":conv_ops",
":ops_util",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
] + if_cuda([
"@cub_archive//:cub",
"@local_config_cuda//cuda:cudnn_header",
]) + if_rocm([
"@rocprim_archive//:rocprim",
]),
)
tf_kernel_library(
name = "depthwise_conv_grad_op",
hdrs = [
"depthwise_conv_op.h",
],
prefix = "depthwise_conv_grad_op",
deps = [
":bounds_check",
":conv_ops",
":ops_util",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
] + if_cuda([
"@local_config_cuda//cuda:cudnn_header",
]),
)
cc_library(
name = "nn",
deps = [
":batch_norm_op",
":bias_op",
":conv_ops",
":data_format_ops",
":depthwise_conv_grad_op",
":depthwise_conv_op",
":dilation_ops",
":fused_batch_norm_op",
":in_topk_op",
":l2loss_op",
":lrn_op",
":nth_element_op",
":relu_op",
":softmax_op",
":softplus_op",
":softsign_op",
":topk_op",
":xent_op",
],
)
# Kernels for the nodes intented to be added to the graph by the Grappler optimizers.
cc_library(
name = "grappler",
deps = [
":unary_ops_composition",
],
)
NN_DEPS = [
":bounds_check",
":conv_2d",
":eigen_contraction_kernel",
":ops_util",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
"//tensorflow/core:nn_grad",
"//third_party/eigen3",
]
tf_kernel_library(
name = "batch_norm_op",
prefix = "batch_norm_op",
deps = NN_DEPS,
)
tf_kernel_library(
name = "data_format_ops",
prefix = "data_format_ops",
deps = NN_DEPS,
)
tf_kernel_library(
name = "bias_op",
prefix = "bias_op",
deps = NN_DEPS + [
":redux_functor",
] + if_cuda_or_rocm([
":reduction_ops",
]) + if_cuda([
"@cub_archive//:cub",
"//tensorflow/core:stream_executor",
"//tensorflow/stream_executor/cuda:cuda_stream",
]) + if_rocm([
"@rocprim_archive//:rocprim",
]),
)
tf_kernel_library(
name = "fused_batch_norm_op",
prefix = "fused_batch_norm_op",
deps = NN_DEPS + [
":fill_functor",
":redux_functor",
] + if_cuda([
"//tensorflow/core:stream_executor",
]),
)
tf_kernel_library(
name = "in_topk_op",
prefix = "in_topk_op",
deps = NN_DEPS + [":reduction_ops"],
)
tf_kernel_library(
name = "lrn_op",
prefix = "lrn_op",
deps = NN_DEPS + if_rocm([":conv_ops_gpu_hdrs"]),
)
tf_kernel_library(
name = "relu_op",
prefix = "relu_op",
deps = NN_DEPS,
)
tf_kernel_library(
name = "softmax_op",
prefix = "softmax_op",
deps = NN_DEPS + if_cuda_or_rocm([
":reduction_ops",
]) + if_cuda([
"@cub_archive//:cub",
]) + if_rocm([
"@rocprim_archive//:rocprim",
]),
)
tf_kernel_library(
name = "softplus_op",
prefix = "softplus_op",
deps = NN_DEPS,
)
tf_kernel_library(
name = "softsign_op",
prefix = "softsign_op",
deps = NN_DEPS,
)
tf_kernel_library(
name = "topk_op",
srcs = ["topk_op.cc"],
hdrs = ["topk_op.h"],
gpu_srcs = [
"topk_op.h",
"topk_op_gpu.h",
"topk_op_gpu_double.cu.cc",
"topk_op_gpu_float.cu.cc",
"topk_op_gpu_half.cu.cc",
"topk_op_gpu_int64.cu.cc",
"topk_op_gpu_int32.cu.cc",
"topk_op_gpu_int16.cu.cc",
"topk_op_gpu_uint16.cu.cc",
"topk_op_gpu_int8.cu.cc",
"topk_op_gpu_uint8.cu.cc",
],
deps = NN_DEPS + if_cuda([
"@cub_archive//:cub",
]) + if_rocm([
"@rocprim_archive//:rocprim",
]),
)
tf_kernel_library(
name = "nth_element_op",
prefix = "nth_element_op",
deps = NN_DEPS,
)
tf_kernel_library(
name = "xent_op",
prefix = "xent_op",
deps = NN_DEPS,
)
tf_kernel_library(
name = "bincount_op",
prefix = "bincount_op",
deps = [
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
"//third_party/eigen3",
] + if_cuda(["@cub_archive//:cub"]) + if_rocm([
"@rocprim_archive//:rocprim",
]),
)
tf_kernel_library(
name = "histogram_op",
prefix = "histogram_op",
deps = [
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
"//third_party/eigen3",
] + if_cuda(["@cub_archive//:cub"]) + if_rocm([
"@rocprim_archive//:rocprim",
]),
)
tf_kernel_library(
name = "l2loss_op",
prefix = "l2loss_op",
deps = [
":reduction_ops",
"//third_party/eigen3",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
"//tensorflow/core:nn_grad",
] + if_cuda(["@cub_archive//:cub"]) + if_rocm([
"@rocprim_archive//:rocprim",
]),
)
tf_cuda_cc_test(
name = "lrn_op_test",
srcs = ["lrn_op_test.cc"],
deps = [
":nn",
":ops_testutil",
":ops_util",
":xent_op",
"//tensorflow/cc:cc_ops",
"//tensorflow/core:core_cpu",
"//tensorflow/core:core_cpu_internal",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_cuda_cc_test(
name = "xent_op_test",
srcs = ["xent_op_test.cc"],
deps = [
":nn",
":ops_testutil",
":ops_util",
":xent_op",
"//tensorflow/cc:cc_ops",
"//tensorflow/core:core_cpu",
"//tensorflow/core:core_cpu_internal",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_cuda_cc_test(
name = "nn_ops_test",
srcs = ["nn_ops_test.cc"],
deps = [
":host_constant_op",
":nn",
":ops_testutil",
":ops_util",
":pooling_ops",
"//tensorflow/cc:cc_ops",
"//tensorflow/cc:cc_ops_internal",
"//tensorflow/core:core_cpu",
"//tensorflow/core:core_cpu_internal",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
"//third_party/eigen3",
],
)
tf_kernel_library(
name = "pooling_ops",
srcs = [
"avgpooling_op.cc",
"cudnn_pooling_gpu.cc",
"fractional_avg_pool_op.cc",
"fractional_max_pool_op.cc",
"fractional_pool_common.cc",
"maxpooling_op.cc",
"pooling_ops_3d.cc",
"pooling_ops_common.cc",
],
hdrs = [
"avgpooling_op.h",
"cudnn_pooling_gpu.h",
"fractional_pool_common.h",
"maxpooling_op.h",
"pooling_ops_3d.h",
"pooling_ops_common.h",
] + if_sycl(["pooling_ops_3d_sycl.h"]),
gpu_srcs = [
"avgpooling_op.h",
"avgpooling_op_gpu.cu.cc",
"maxpooling_op.h",
"maxpooling_op_gpu.cu.cc",
"maxpooling_op_gpu.h",
"pooling_ops_common.h",
"pooling_ops_common_gpu.h",
"pooling_ops_3d_gpu.h",
"pooling_ops_3d_gpu.cu.cc",
],
deps = [
":bounds_check",
":conv_2d",
":conv_3d",
":conv_ops",
":eigen_helpers",
":ops_util",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
"//tensorflow/core:stream_executor",
"//third_party/eigen3",
],
)
tf_kernel_library(
name = "fake_quant_ops",
srcs = ["fake_quant_ops.cc"],
hdrs = ["fake_quant_ops_functor.h"],
gpu_srcs = [
"fake_quant_ops_gpu.cu.cc",
"fake_quant_ops_functor.h",
],
deps = [
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//third_party/eigen3",
],
alwayslink = 1,
)
cc_library(
name = "pooling_ops_hdrs",
hdrs = [
"avgpooling_op.h",
"maxpooling_op.h",
"pooling_ops_common.h",
],
deps = [
":eigen_helpers",
":ops_util_hdrs",
"//third_party/eigen3",
],
)
tf_kernel_library(
name = "dilation_ops",
prefix = "dilation_ops",
deps = [
":ops_util",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//third_party/eigen3",
],
)
tf_kernel_library(
name = "batch_space_ops",
srcs = [
"batchtospace_op.cc",
"spacetobatch_functor.cc",
"spacetobatch_functor.h",
"spacetobatch_op.cc",
],
gpu_srcs = [
"spacetobatch_functor.h",
"spacetobatch_functor_gpu.cu.cc",
],
visibility = [":friends"],
deps = [
":bounds_check",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//third_party/eigen3",
],
)
tf_cuda_cc_test(
name = "spacetobatch_benchmark_test",
srcs = ["spacetobatch_benchmark_test.cc"],
deps = [
":batch_space_ops",
":host_constant_op",
":ops_testutil",
":ops_util",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_kernel_library(
name = "depth_space_ops",
srcs = [
"depthtospace_op.cc",
"spacetodepth_op.cc",
],
hdrs = [
"depthtospace_op.h",
"spacetodepth_op.h",
],
gpu_srcs = [
"depthtospace_op.h",
"depthtospace_op_gpu.cu.cc",
"spacetodepth_op.h",
"spacetodepth_op_gpu.cu.cc",
],
visibility = [":friends"],
deps = [
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//third_party/eigen3",
],
)
cc_library(
name = "parsing",
deps = [
":decode_compressed_op",
":decode_csv_op",
":decode_padded_raw_op",
":decode_raw_op",
":example_parsing_ops",
":parse_tensor_op",
":string_to_number_op",
],
)
PARSING_DEPS = [
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:proto_text",
"//tensorflow/core:protos_all_cc",
]
tf_kernel_library(
name = "decode_csv_op",
prefix = "decode_csv_op",
deps = PARSING_DEPS,
)
tf_kernel_library(
name = "decode_raw_op",
prefix = "decode_raw_op",
deps = PARSING_DEPS,
)
tf_kernel_library(
name = "decode_padded_raw_op",
prefix = "decode_padded_raw_op",
deps = PARSING_DEPS,
)
tf_kernel_library(
name = "decode_compressed_op",
prefix = "decode_compressed_op",
deps = [
"//tensorflow/core:lib_internal",
] + PARSING_DEPS,
)
tf_kernel_library(
name = "example_parsing_ops",
prefix = "example_parsing_ops",
deps = PARSING_DEPS,
)
tf_kernel_library(
name = "parse_tensor_op",
prefix = "parse_tensor_op",
deps = PARSING_DEPS,
)
tf_cc_test(
name = "parse_tensor_test",
srcs = ["parse_tensor_test.cc"],
deps = [
":ops_testutil",
":parse_tensor_op",
"//tensorflow/core:core_cpu_internal",
"//tensorflow/core:framework",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_kernel_library(
name = "string_to_number_op",
prefix = "string_to_number_op",
deps = PARSING_DEPS,
)
cc_library(
name = "random_ops",
deps = [
":random_op",
":random_shuffle_op",
],
)
RANDOM_OPS_DEPS = [
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
]
tf_kernel_library(
name = "random_op",
prefix = "random_op",
deps = RANDOM_OPS_DEPS,
)
tf_kernel_library(
name = "random_shuffle_op",
prefix = "random_shuffle_op",
deps = RANDOM_OPS_DEPS,
)
tf_cuda_cc_test(
name = "random_op_test",
size = "small",
srcs = ["random_op_test.cc"],
deps = [
":host_constant_op",
":random_ops",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_kernel_library(
name = "stateful_random_ops",
prefix = "stateful_random_ops",
deps = [
":bounds_check",
":dense_update_functor",
":gather_functor",
":mutex_ops",
":random_op",
":resource_variable_ops",
":scatter_functor",
":state",
":training_op_helpers",
":variable_ops",
"//tensorflow/core:core_cpu",
"//tensorflow/core:core_cpu_lib",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
"@com_google_absl//absl/strings",
"@com_google_absl//absl/types:variant",
],
)
tf_kernel_library(
name = "stateless_random_ops",
prefix = "stateless_random_ops",
deps = [
":bounds_check",
":random_op",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
],
)
cc_library(
name = "required",
deps = [
":no_op",
":sendrecv_ops",
],
)
REQUIRED_DEPS = [
"//tensorflow/core:framework",
"//tensorflow/core:lib",
]
tf_kernel_library(
name = "no_op",
prefix = "no_op",
deps = REQUIRED_DEPS,
)
tf_kernel_library(
name = "sendrecv_ops",
prefix = "sendrecv_ops",
deps = REQUIRED_DEPS,
)
tf_cc_test(
name = "sendrecv_ops_test",
srcs = ["sendrecv_ops_test.cc"],
linkstatic = tf_kernel_tests_linkstatic(), # Required for benchmarking
deps = [
":ops_testutil",
":ops_util",
":sendrecv_ops",
"//tensorflow/core:framework",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
cc_library(
name = "sparse",
deps = [
":deserialize_sparse_string_op",
":deserialize_sparse_variant_op",
":serialize_sparse_op",
":sparse_add_grad_op",
":sparse_add_op",
":sparse_concat_op",
":sparse_cross_op",
":sparse_dense_binary_op_shared",
":sparse_fill_empty_rows_op",
":sparse_reduce_op",
":sparse_reorder_op",
":sparse_reshape_op",
":sparse_slice_grad_op",
":sparse_slice_op",
":sparse_softmax",
":sparse_sparse_binary_op_shared",
":sparse_split_op",
":sparse_tensor_dense_add_op",
":sparse_tensor_dense_matmul_op",
":sparse_tensors_map_ops",
":sparse_to_dense_op",
":sparse_xent_op",
],
)
SPARSE_DEPS = [
"//tensorflow/core:framework",
"//tensorflow/core:lib",
]
tf_kernel_library(
name = "sparse_add_grad_op",
prefix = "sparse_add_grad_op",
deps = SPARSE_DEPS,
)
tf_kernel_library(
name = "sparse_add_op",
prefix = "sparse_add_op",
deps = SPARSE_DEPS,
)
tf_kernel_library(
name = "sparse_concat_op",
prefix = "sparse_concat_op",
deps = SPARSE_DEPS,
)
tf_kernel_library(
name = "sparse_fill_empty_rows_op",
prefix = "sparse_fill_empty_rows_op",
deps = SPARSE_DEPS,
)
tf_kernel_library(
name = "sparse_cross_op",
prefix = "sparse_cross_op",
deps = SPARSE_DEPS + [
"//third_party/eigen3",
],
)
tf_kernel_library(
name = "sparse_reduce_op",
prefix = "sparse_reduce_op",
deps = SPARSE_DEPS,
)
tf_kernel_library(
name = "sparse_dense_binary_op_shared",
prefix = "sparse_dense_binary_op_shared",
deps = SPARSE_DEPS + [
":cwise_op",
"//third_party/eigen3",
],
)
tf_kernel_library(
name = "sparse_sparse_binary_op_shared",
prefix = "sparse_sparse_binary_op_shared",
deps = SPARSE_DEPS + [
":cwise_op",
"//third_party/eigen3",
],
)
tf_kernel_library(
name = "sparse_reorder_op",
prefix = "sparse_reorder_op",
deps = SPARSE_DEPS,
)
tf_kernel_library(
name = "sparse_reshape_op",
prefix = "sparse_reshape_op",
deps = SPARSE_DEPS + [
":reshape_util",
],
)
tf_kernel_library(
name = "sparse_slice_grad_op",
prefix = "sparse_slice_grad_op",
deps = SPARSE_DEPS,
)
tf_kernel_library(
name = "sparse_slice_op",
prefix = "sparse_slice_op",
deps = SPARSE_DEPS,
)
tf_kernel_library(
name = "sparse_softmax",
prefix = "sparse_softmax",
deps = SPARSE_DEPS + [
"//third_party/eigen3",
],
)
tf_kernel_library(
name = "sparse_split_op",
prefix = "sparse_split_op",
deps = SPARSE_DEPS,
)
tf_kernel_library(
name = "sparse_tensor_dense_add_op",
prefix = "sparse_tensor_dense_add_op",
deps = SPARSE_DEPS + [
":scatter_functor",
"//third_party/eigen3",
],
)
tf_kernel_library(
name = "sparse_tensor_dense_matmul_op",
prefix = "sparse_tensor_dense_matmul_op",
deps = SPARSE_DEPS + [
":bounds_check",
":fill_functor",
"//third_party/eigen3",
],
)
tf_kernel_library(
name = "sparse_to_dense_op",
prefix = "sparse_to_dense_op",
deps = SPARSE_DEPS + [
"//third_party/eigen3",
],
)
tf_kernel_library(
name = "sparse_xent_op",
prefix = "sparse_xent_op",
deps = SPARSE_DEPS + [
":bounds_check",
"//third_party/eigen3",
] + if_cuda_or_rocm([
":reduction_ops",
]) + if_cuda([
"@cub_archive//:cub",
]) + if_rocm([
"@rocprim_archive//:rocprim",
]),
)
tf_kernel_library(
name = "serialize_sparse_op",
prefix = "serialize_sparse_op",
deps = SPARSE_DEPS + [
":reshape_util",
"//tensorflow/core:protos_all_cc",
],
)
tf_kernel_library(
name = "deserialize_sparse_string_op",
prefix = "deserialize_sparse_string_op",
deps = SPARSE_DEPS + [
":reshape_util",
"//tensorflow/core:protos_all_cc",
],
)
tf_kernel_library(
name = "deserialize_sparse_variant_op",
prefix = "deserialize_sparse_variant_op",
deps = SPARSE_DEPS + [
"//tensorflow/core:protos_all_cc",
],
)
tf_kernel_library(
name = "sparse_tensors_map_ops",
prefix = "sparse_tensors_map_ops",
deps = SPARSE_DEPS,
)
tf_cuda_cc_tests(
name = "sparse2_tests",
size = "small",
srcs = [
"sparse_tensor_dense_matmul_op_test.cc",
"sparse_to_dense_op_test.cc",
"sparse_xent_op_test.cc",
],
deps = [
":host_constant_op",
":ops_testutil",
":ops_util",
":sparse",
":xent_op",
"//tensorflow/core:core_cpu",
"//tensorflow/core:core_cpu_internal",
"//tensorflow/core:framework",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
cc_library(
name = "loss_updaters",
hdrs = [
"hinge-loss.h",
"logistic-loss.h",
"loss.h",
"poisson-loss.h",
"smooth-hinge-loss.h",
"squared-loss.h",
],
deps = [
"//tensorflow/core:framework_headers_lib",
"//tensorflow/core:lib",
],
)
tf_cc_test(
name = "loss_test",
size = "small",
srcs = ["loss_test.cc"],
deps = [
":loss_updaters",
"//tensorflow/core:lib",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
],
)
tf_cc_test(
name = "sdca_ops_test",
size = "small",
srcs = ["sdca_ops_test.cc"],
linkstatic = tf_kernel_tests_linkstatic(), # Required for benchmarking
deps = [
":ops_util",
"//tensorflow/core:all_kernels",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib_internal",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_kernel_library(
name = "sdca_ops",
prefix = "sdca_ops",
deps = [
":loss_updaters",
":sdca_internal",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
"//third_party/eigen3",
"@farmhash_archive//:farmhash",
],
alwayslink = 1,
)
cc_library(
name = "sdca_internal",
srcs = ["sdca_internal.cc"],
hdrs = ["sdca_internal.h"],
deps = [
":eigen_contraction_kernel",
":loss_updaters",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
"//third_party/eigen3",
],
)
cc_library(
name = "state",
deps = [
":count_up_to_op",
":dense_update_ops",
":scatter_nd_op",
":scatter_op",
":variable_ops",
],
)
STATE_DEPS = [
":assign_op",
":bounds_check",
":fill_functor",
":scatter_functor",
"//third_party/eigen3",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
] + if_sycl(["//tensorflow/core:sycl_runtime"])
tf_kernel_library(
name = "count_up_to_op",
prefix = "count_up_to_op",
deps = STATE_DEPS + [":variable_ops"],
)
tf_kernel_library(
name = "dense_update_ops",
prefix = "dense_update_ops",
deps = STATE_DEPS + [":dense_update_functor"],
)
tf_kernel_library(
name = "scatter_op",
prefix = "scatter_op",
deps = STATE_DEPS,
)
tf_kernel_library(
name = "scatter_nd_op",
srcs = [
"scatter_nd_op.cc",
"scatter_nd_op_cpu_impl_0.cc",
"scatter_nd_op_cpu_impl_1.cc",
"scatter_nd_op_cpu_impl_2.cc",
"scatter_nd_op_cpu_impl_3.cc",
"scatter_nd_op_cpu_impl_4.cc",
"scatter_nd_op_cpu_impl_5.cc",
"scatter_nd_op_cpu_impl_6.cc",
"scatter_nd_op_cpu_impl_7.cc",
],
hdrs = [
"scatter_nd_op.h",
"scatter_nd_op_cpu_impl.h",
],
gpu_copts = if_not_windows([
"-Wno-pass-failed", # clang misses #pragma loop optimizations
]),
gpu_srcs = [
"scatter_nd_op.h",
"scatter_nd_op_gpu.cu.cc",
],
deps = STATE_DEPS + [
":dense_update_functor",
":training_op_helpers",
":variable_ops",
":inplace_ops",
],
)
tf_kernel_library(
name = "variable_ops",
prefix = "variable_ops",
deps = STATE_DEPS,
)
tf_kernel_library(
name = "mutex_ops",
prefix = "mutex_ops",
deps = STATE_DEPS + [":ops_util"],
)
tf_cc_test(
name = "scatter_op_test",
size = "small",
srcs = ["scatter_op_test.cc"],
deps = [
":fill_functor",
":ops_testutil",
":ops_util",
":scatter_op",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_cuda_cc_test(
name = "scatter_nd_op_test",
size = "small",
srcs = ["scatter_nd_op_test.cc"],
tags = ["noasan"], # http://b/32635055
deps = [
":ops_testutil",
":ops_util",
":scatter_nd_op",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
cc_library(
name = "string",
deps = [
":as_string_op",
":base64_ops",
":reduce_join_op",
":regex_full_match_op",
":regex_replace_op",
":string_format_op",
":string_join_op",
":string_length_op",
":string_lower_op",
":string_ngrams_op",
":string_split_op",
":string_strip_op",
":string_to_hash_bucket_op",
":string_upper_op",
":substr_op",
":unicode_ops",
":unicode_script_op",
":unsorted_segment_join_op",
],
)
cc_library(
name = "string_util",
srcs = ["string_util.cc"],
hdrs = ["string_util.h"],
deps = [
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"@icu//:common",
],
)
STRING_DEPS = [
":bounds_check",
":string_util",
"//third_party/eigen3",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
]
tf_kernel_library(
name = "string_to_hash_bucket_op",
prefix = "string_to_hash_bucket_op",
deps = STRING_DEPS,
)
tf_kernel_library(
name = "reduce_join_op",
prefix = "reduce_join_op",
deps = STRING_DEPS,
)
tf_kernel_library(
name = "unsorted_segment_join_op",
prefix = "unsorted_segment_join_op",
deps = STRING_DEPS,
)
tf_kernel_library(
name = "string_format_op",
prefix = "string_format_op",
deps = STRING_DEPS + ["@com_google_absl//absl/strings"],
)
tf_cc_test(
name = "string_format_op_test",
size = "small",
srcs = ["string_format_op_test.cc"],
deps = [
":ops_testutil",
":ops_util",
":string_format_op",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_kernel_library(
name = "string_join_op",
prefix = "string_join_op",
deps = STRING_DEPS,
)
tf_kernel_library(
name = "string_length_op",
prefix = "string_length_op",
deps = STRING_DEPS,
)
tf_kernel_library(
name = "regex_full_match_op",
prefix = "regex_full_match_op",
deps = STRING_DEPS + ["@com_googlesource_code_re2//:re2"],
)
tf_kernel_library(
name = "regex_replace_op",
prefix = "regex_replace_op",
deps = STRING_DEPS + ["@com_googlesource_code_re2//:re2"],
)
tf_cc_test(
name = "regex_replace_op_test",
size = "small",
srcs = ["regex_replace_op_test.cc"],
deps = [
":ops_testutil",
":ops_util",
":regex_replace_op",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_kernel_library(
name = "string_split_op",
prefix = "string_split_op",
deps = STRING_DEPS,
)
tf_cc_test(
name = "string_split_op_test",
size = "small",
srcs = ["string_split_op_test.cc"],
deps = [
":ops_testutil",
":ops_util",
":string_split_op",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_kernel_library(
name = "string_ngrams_op",
srcs = ["string_ngrams_op.cc"],
deps = STRING_DEPS + [
"@com_google_absl//absl/strings",
],
)
tf_cc_test(
name = "string_ngrams_op_test",
srcs = ["string_ngrams_op_test.cc"],
deps = [
":ops_testutil",
":ops_util",
":string_ngrams_op",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_kernel_library(
name = "string_strip_op",
prefix = "string_strip_op",
deps = STRING_DEPS,
)
tf_kernel_library(
name = "string_lower_op",
prefix = "string_lower_op",
deps = STRING_DEPS + [
"@com_google_absl//absl/strings",
"@icu//:common",
],
)
tf_kernel_library(
name = "string_upper_op",
prefix = "string_upper_op",
deps = STRING_DEPS + [
"@com_google_absl//absl/strings",
"@icu//:common",
],
)
tf_kernel_library(
name = "substr_op",
prefix = "substr_op",
deps = STRING_DEPS,
)
tf_cc_test(
name = "substr_op_test",
size = "small",
srcs = ["substr_op_test.cc"],
deps = [
":ops_testutil",
":ops_util",
":substr_op",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_kernel_library(
name = "as_string_op",
prefix = "as_string_op",
deps = STRING_DEPS,
)
tf_kernel_library(
name = "unicode_ops",
prefix = "unicode_ops",
deps = [
":bounds_check",
":string_util",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
"//third_party/eigen3",
"//third_party/icu/data:conversion_data",
"@icu//:common",
],
)
tf_kernel_library(
name = "base64_ops",
prefix = "base64_ops",
deps = STRING_DEPS,
)
tf_kernel_library(
name = "training_ops",
prefix = "training_ops",
deps = [
":bounds_check",
":training_op_helpers",
":variable_ops",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//third_party/eigen3",
],
)
tf_cc_test(
name = "training_ops_test",
size = "small",
srcs = ["training_ops_test.cc"],
deps = [
":dense_update_ops",
":ops_util",
":training_ops",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_kernel_library(
name = "multinomial_op",
prefix = "multinomial_op",
deps = [
":random_op",
":random_ops",
":stateless_random_ops",
"//third_party/eigen3",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
] + if_cuda_or_rocm([
":reduction_ops",
]) + if_cuda([
"@cub_archive//:cub",
]) + if_rocm([
"@rocprim_archive//:rocprim",
]),
)
tf_cuda_cc_test(
name = "multinomial_op_test",
size = "small",
srcs = ["multinomial_op_test.cc"],
deps = [
":host_constant_op",
":multinomial_op",
":ops_util",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_kernel_library(
name = "parameterized_truncated_normal_op",
gpu_copts = if_not_windows([
"-Wno-pass-failed", # clang misses #pragma loop optimizations
]),
prefix = "parameterized_truncated_normal_op",
deps = [
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
],
)
tf_cuda_cc_test(
name = "parameterized_truncated_normal_op_test",
size = "small",
srcs = ["parameterized_truncated_normal_op_test.cc"],
deps = [
":host_constant_op",
":ops_util",
":parameterized_truncated_normal_op",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_kernel_library(
name = "random_binomial_op",
prefix = "random_binomial_op",
deps = [
":cwise_op",
":random_ops",
":resource_variable_ops",
":stateful_random_ops",
":training_op_helpers",
"//tensorflow/core:framework",
"//tensorflow/core:framework_internal",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
"//tensorflow/core:random_ops_op_lib",
],
)
tf_cuda_cc_test(
name = "random_binomial_op_test",
size = "small",
srcs = ["random_binomial_op_test.cc"],
deps = [
":ops_util",
":random_binomial_op",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_kernel_library(
name = "random_poisson_op",
prefix = "random_poisson_op",
deps = [
":random_ops",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
],
)
tf_cuda_cc_test(
name = "random_poisson_op_test",
size = "small",
srcs = ["random_poisson_op_test.cc"],
deps = [
":ops_util",
":random_poisson_op",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_kernel_library(
name = "word2vec_kernels",
prefix = "word2vec_kernels",
deps = [
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
"//tensorflow/core:word2vec_ops",
],
)
filegroup(
name = "spectrogram_test_data",
srcs = [
"spectrogram_test_data/short_test_segment.wav",
"spectrogram_test_data/short_test_segment_spectrogram.csv.bin",
"spectrogram_test_data/short_test_segment_spectrogram_400_200.csv.bin",
],
visibility = ["//visibility:public"],
)
cc_library(
name = "spectrogram",
srcs = ["spectrogram.cc"],
hdrs = ["spectrogram.h"],
copts = tf_copts(),
deps = [
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//third_party/fft2d:fft2d_headers",
"@fft2d",
],
)
cc_library(
name = "spectrogram_test_utils",
testonly = 1,
srcs = ["spectrogram_test_utils.cc"],
hdrs = ["spectrogram_test_utils.h"],
copts = tf_copts(),
deps = [
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
],
)
tf_cc_binary(
name = "spectrogram_convert_test_data",
testonly = 1,
srcs = ["spectrogram_convert_test_data.cc"],
deps = [
":spectrogram_test_utils",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
],
)
tf_cc_test(
name = "spectrogram_test",
size = "medium",
srcs = ["spectrogram_test.cc"],
data = [":spectrogram_test_data"],
deps = [
":spectrogram",
":spectrogram_test_utils",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
"//tensorflow/core:lib_test_internal",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//third_party/eigen3",
],
)
tf_kernel_library(
name = "spectrogram_op",
prefix = "spectrogram_op",
deps = [
":spectrogram",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
],
alwayslink = 1,
)
tf_cuda_cc_test(
name = "spectrogram_op_test",
size = "small",
srcs = ["spectrogram_op_test.cc"],
deps = [
":ops_util",
":spectrogram_op",
"//tensorflow/cc:cc_ops",
"//tensorflow/cc:client_session",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:framework_internal",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:tensorflow",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
cc_library(
name = "mfcc_dct",
srcs = ["mfcc_dct.cc"],
hdrs = ["mfcc_dct.h"],
copts = tf_copts(),
deps = [
"//tensorflow/core:framework",
"//tensorflow/core:lib",
],
)
tf_cc_test(
name = "mfcc_dct_test",
size = "small",
srcs = ["mfcc_dct_test.cc"],
deps = [
":mfcc_dct",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
"//tensorflow/core:lib_test_internal",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//third_party/eigen3",
],
)
cc_library(
name = "mfcc_mel_filterbank",
srcs = ["mfcc_mel_filterbank.cc"],
hdrs = ["mfcc_mel_filterbank.h"],
copts = tf_copts(),
deps = [
"//tensorflow/core:framework",
"//tensorflow/core:lib",
],
)
tf_cc_test(
name = "mfcc_mel_filterbank_test",
size = "small",
srcs = ["mfcc_mel_filterbank_test.cc"],
deps = [
":mfcc_mel_filterbank",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
"//tensorflow/core:lib_test_internal",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//third_party/eigen3",
],
)
cc_library(
name = "mfcc",
srcs = ["mfcc.cc"],
hdrs = ["mfcc.h"],
copts = tf_copts(),
deps = [
":mfcc_dct",
":mfcc_mel_filterbank",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
],
)
tf_cc_test(
name = "mfcc_test",
size = "small",
srcs = ["mfcc_test.cc"],
deps = [
":mfcc",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
"//tensorflow/core:lib_test_internal",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//third_party/eigen3",
],
)
tf_kernel_library(
name = "mfcc_op",
prefix = "mfcc_op",
deps = [
":mfcc",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
],
alwayslink = 1,
)
tf_cuda_cc_test(
name = "mfcc_op_test",
size = "small",
srcs = ["mfcc_op_test.cc"],
deps = [
":mfcc_op",
":ops_util",
"//tensorflow/cc:cc_ops",
"//tensorflow/cc:client_session",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:framework_internal",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:tensorflow",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
cc_library(
name = "audio",
deps = [
":decode_wav_op",
":encode_wav_op",
":mfcc_op",
":spectrogram_op",
],
)
# Android libraries -----------------------------------------------------------
# Changes to the Android srcs here should be replicated in
# tensorflow/contrib/makefile/tf_op_files.txt
# LINT.IfChange
filegroup(
name = "mobile_srcs",
srcs = [
"avgpooling_op.h",
"batch_util.h",
"cwise_ops.h",
"cwise_ops_common.h",
"cwise_ops_gradients.h",
"eigen_activations.h",
"eigen_attention.h",
"eigen_backward_cuboid_convolutions.h",
"eigen_backward_spatial_convolutions.h",
"eigen_convolution_helpers.h",
"eigen_cuboid_convolution.h",
"eigen_pooling.h",
"eigen_spatial_convolutions.h",
"eigen_spatial_convolutions-inl.h",
"eigen_volume_patch.h",
"fifo_queue.h",
"maxpooling_op.h",
"ops_util.h",
"padding_fifo_queue.h",
"pooling_ops_common.cc",
"pooling_ops_common.h",
"queue_base.h",
"queue_op.h",
"typed_queue.h",
],
)
alias(
name = "android_srcs",
actual = ":mobile_srcs",
)
# Core kernels we want on Android. Only a subset of kernels to keep
# base library small.
filegroup(
name = "android_core_ops",
srcs = [
"aggregate_ops.cc",
"aggregate_ops.h",
"aggregate_ops_cpu.h",
"assign_op.h",
"bias_op.cc",
"bias_op.h",
"cast_op.cc",
"cast_op.h",
"cast_op_impl.h",
"cast_op_impl_bfloat.cc",
"cast_op_impl_bool.cc",
"cast_op_impl_complex128.cc",
"cast_op_impl_complex64.cc",
"cast_op_impl_double.cc",
"cast_op_impl_float.cc",
"cast_op_impl_half.cc",
"cast_op_impl_int16.cc",
"cast_op_impl_int32.cc",
"cast_op_impl_int64.cc",
"cast_op_impl_int8.cc",
"cast_op_impl_uint16.cc",
"cast_op_impl_uint32.cc",
"cast_op_impl_uint64.cc",
"cast_op_impl_uint8.cc",
"concat_lib.h",
"concat_lib_cpu.cc",
"concat_lib_cpu.h",
"concat_op.cc",
"constant_op.cc",
"constant_op.h",
"cwise_ops.h",
"cwise_ops_common.cc",
"cwise_ops_common.h",
"cwise_ops_gradients.h",
"dense_update_functor.cc",
"dense_update_functor.h",
"dense_update_ops.cc",
"example_parsing_ops.cc",
"fill_functor.cc",
"fill_functor.h",
"function_ops.cc",
"function_ops.h",
"gather_functor.h",
"gather_functor_batched.h",
"gather_nd_op.cc",
"gather_nd_op.h",
"gather_nd_op_cpu_impl.h",
"gather_nd_op_cpu_impl_0.cc",
"gather_nd_op_cpu_impl_1.cc",
"gather_nd_op_cpu_impl_2.cc",
"gather_nd_op_cpu_impl_3.cc",
"gather_nd_op_cpu_impl_4.cc",
"gather_nd_op_cpu_impl_5.cc",
"gather_nd_op_cpu_impl_6.cc",
"gather_nd_op_cpu_impl_7.cc",
"gather_op.cc",
"identity_n_op.cc",
"identity_n_op.h",
"identity_op.cc",
"identity_op.h",
"immutable_constant_op.cc",
"immutable_constant_op.h",
"matmul_op.cc",
"matmul_op.h",
"no_op.cc",
"no_op.h",
"non_max_suppression_op.cc",
"non_max_suppression_op.h",
"one_hot_op.cc",
"one_hot_op.h",
"ops_util.h",
"pack_op.cc",
"pooling_ops_common.h",
"redux_functor.h",
"reshape_op.cc",
"reshape_op.h",
"reverse_sequence_op.cc",
"reverse_sequence_op.h",
"sendrecv_ops.cc",
"sendrecv_ops.h",
"sequence_ops.cc",
"shape_ops.cc",
"shape_ops.h",
"slice_op.cc",
"slice_op.h",
"slice_op_cpu_impl.h",
"slice_op_cpu_impl_1.cc",
"slice_op_cpu_impl_2.cc",
"slice_op_cpu_impl_3.cc",
"slice_op_cpu_impl_4.cc",
"slice_op_cpu_impl_5.cc",
"slice_op_cpu_impl_6.cc",
"slice_op_cpu_impl_7.cc",
"softmax_op.cc",
"softmax_op_functor.h",
"split_lib.h",
"split_lib_cpu.cc",
"split_op.cc",
"split_v_op.cc",
"strided_slice_op.cc",
"strided_slice_op.h",
"strided_slice_op_impl.h",
"strided_slice_op_inst_0.cc",
"strided_slice_op_inst_1.cc",
"strided_slice_op_inst_2.cc",
"strided_slice_op_inst_3.cc",
"strided_slice_op_inst_4.cc",
"strided_slice_op_inst_5.cc",
"strided_slice_op_inst_6.cc",
"strided_slice_op_inst_7.cc",
"unpack_op.cc",
"variable_ops.cc",
"variable_ops.h",
"//tensorflow/c/kernels:android_all_op_kernels",
],
)
# Other kernels we may want on Android.
#
# The kernels can be consumed as a whole or in two groups for
# supporting separate compilation. Note that the split into groups
# is entirely for improving compilation time, and not for
# organizational reasons; you should not depend on any
# of those groups independently.
filegroup(
name = "android_extended_ops",
srcs = [
":android_extended_ops_group1",
":android_extended_ops_group2",
":android_quantized_ops",
],
visibility = ["//visibility:public"],
)
filegroup(
name = "android_extended_ops_headers",
srcs = [
"argmax_op.h",
"avgpooling_op.h",
"batch_matmul_op_impl.h",
"batch_norm_op.h",
"control_flow_ops.h",
"conv_2d.h",
"conv_3d.h",
"conv_ops.h",
"conv_ops_gpu.h",
"data_format_ops.h",
"depthtospace_op.h",
"depthwise_conv_op.h",
"fake_quant_ops_functor.h",
"fused_batch_norm_op.h",
"gemm_functors.h",
"image_resizer_state.h",
"initializable_lookup_table.h",
"inplace_ops.cc",
"inplace_ops_functor.h",
"lookup_table_init_op.h",
"lookup_table_op.h",
"lookup_util.h",
"matrix_diag_op.h",
"matrix_set_diag_op.h",
"maxpooling_op.h",
"mfcc.h",
"mfcc_dct.h",
"mfcc_mel_filterbank.h",
"mirror_pad_op.h",
"mirror_pad_op_cpu_impl.h",
"multinomial_op.h",
"pad_op.h",
"pooling_ops_3d.h",
"random_op.h",
"reduction_ops.h",
"reduction_ops_common.h",
"relu_op.h",
"relu_op_functor.h",
"reshape_util.h",
"resize_bilinear_op.h",
"resize_nearest_neighbor_op.h",
"reverse_op.h",
"save_restore_tensor.h",
"scatter_nd_op.h",
"scatter_nd_op_cpu_impl.h",
"segment_reduction_ops.h",
"softplus_op.h",
"softsign_op.h",
"spacetobatch_functor.h",
"spacetodepth_op.h",
"spectrogram.h",
"stateless_random_ops.h",
"string_util.h",
"tensor_array.h",
"tile_functor.h",
"tile_ops_cpu_impl.h",
"tile_ops_impl.h",
"topk_op.h",
"training_op_helpers.h",
"training_ops.h",
"transpose_functor.h",
"transpose_op.h",
"where_op.h",
"xent_op.h",
],
)
filegroup(
name = "android_extended_ops_group1",
srcs = [
"argmax_op.cc",
"avgpooling_op.cc",
"batch_matmul_op_real.cc",
"batch_norm_op.cc",
"bcast_ops.cc",
"check_numerics_op.cc",
"control_flow_ops.cc",
"conv_2d.h",
"conv_grad_filter_ops.cc",
"conv_grad_input_ops.cc",
"conv_grad_ops.cc",
"conv_grad_ops.h",
"conv_ops.cc",
"conv_ops_3d.cc",
"conv_ops_fused_double.cc",
"conv_ops_fused_float.cc",
"conv_ops_fused_half.cc",
"conv_ops_fused_impl.h",
"conv_ops_using_gemm.cc",
"crop_and_resize_op.cc",
"crop_and_resize_op.h",
"cwise_op_abs.cc",
"cwise_op_add_1.cc",
"cwise_op_add_2.cc",
"cwise_op_bitwise_and.cc",
"cwise_op_bitwise_or.cc",
"cwise_op_bitwise_xor.cc",
"cwise_op_cos.cc",
"cwise_op_cosh.cc",
"cwise_op_div.cc",
"cwise_op_equal_to_1.cc",
"cwise_op_equal_to_2.cc",
"cwise_op_not_equal_to_1.cc",
"cwise_op_not_equal_to_2.cc",
"cwise_op_erf.cc",
"cwise_op_exp.cc",
"cwise_op_floor.cc",
"cwise_op_floor_div.cc",
"cwise_op_floor_mod.cc",
"cwise_op_greater.cc",
"cwise_op_greater_equal.cc",
"cwise_op_invert.cc",
"cwise_op_isfinite.cc",
"cwise_op_isnan.cc",
"cwise_op_left_shift.cc",
"cwise_op_less.cc",
"cwise_op_less_equal.cc",
"cwise_op_log.cc",
"cwise_op_logical_and.cc",
"cwise_op_logical_not.cc",
"cwise_op_logical_or.cc",
"cwise_op_maximum.cc",
"cwise_op_minimum.cc",
"cwise_op_mul_1.cc",
"cwise_op_mul_2.cc",
"cwise_op_neg.cc",
"cwise_op_pow.cc",
"cwise_op_reciprocal.cc",
"cwise_op_right_shift.cc",
"cwise_op_round.cc",
"cwise_op_rsqrt.cc",
"cwise_op_select.cc",
"cwise_op_sigmoid.cc",
"cwise_op_sign.cc",
"cwise_op_sin.cc",
"cwise_op_sinh.cc",
"cwise_op_sqrt.cc",
"cwise_op_square.cc",
"cwise_op_squared_difference.cc",
"cwise_op_sub.cc",
"cwise_op_tan.cc",
"cwise_op_tanh.cc",
"cwise_op_xlogy.cc",
"cwise_op_xdivy.cc",
"data_format_ops.cc",
"decode_wav_op.cc",
"deep_conv2d.cc",
"deep_conv2d.h",
"depthwise_conv_op.cc",
"dynamic_partition_op.cc",
"encode_wav_op.cc",
"eigen_contraction_kernel.cc",
"eigen_contraction_kernel.h",
"einsum_op.cc",
"einsum_op.h",
"fake_quant_ops.cc",
"fifo_queue.cc",
"fifo_queue_op.cc",
"fused_batch_norm_op.cc",
"fused_eigen_output_kernels.cc",
"fused_eigen_output_kernels.h",
"listdiff_op.cc",
"population_count_op.cc",
"population_count_op.h",
"winograd_transform.h",
":android_extended_ops_headers",
] + select({
":xsmm_convolutions": [
"xsmm_conv2d.h",
"xsmm_conv2d.cc",
],
"//conditions:default": [],
}),
)
filegroup(
name = "android_extended_ops_group2",
srcs = [
"batchtospace_op.cc",
"ctc_decoder_ops.cc",
"decode_bmp_op.cc",
"depthtospace_op.cc",
"dynamic_stitch_op.cc",
"fft_ops.cc",
"in_topk_op.cc",
"in_topk_op.h",
"initializable_lookup_table.cc",
"logging_ops.cc",
"logging_ops.h",
"lookup_table_init_op.cc",
"lookup_table_op.cc",
"lookup_util.cc",
"lrn_op.cc",
"matrix_diag_op.cc",
"matrix_set_diag_op.cc",
"maxpooling_op.cc",
"mfcc.cc",
"mfcc_dct.cc",
"mfcc_mel_filterbank.cc",
"mfcc_op.cc",
"mirror_pad_op.cc",
"mirror_pad_op_cpu_impl_1.cc",
"mirror_pad_op_cpu_impl_2.cc",
"mirror_pad_op_cpu_impl_3.cc",
"mirror_pad_op_cpu_impl_4.cc",
"mirror_pad_op_cpu_impl_5.cc",
"multinomial_op.cc",
"pad_op.cc",
"padding_fifo_queue.cc",
"padding_fifo_queue_op.cc",
"pooling_ops_3d.cc",
"queue_base.cc",
"queue_op.cc",
"queue_ops.cc",
"random_op.cc",
"random_op_cpu.h",
"reduction_ops_all.cc",
"reduction_ops_any.cc",
"reduction_ops_common.cc",
"reduction_ops_max.cc",
"reduction_ops_mean.cc",
"reduction_ops_min.cc",
"reduction_ops_prod.cc",
"reduction_ops_sum.cc",
"relu_op.cc",
"reshape_util.cc",
"resize_bilinear_op.cc",
"resize_nearest_neighbor_op.cc",
"restore_op.cc",
"reverse_op.cc",
"save_op.cc",
"save_restore_tensor.cc",
"save_restore_v2_ops.cc",
"scatter_nd_op.cc",
"scatter_nd_op_cpu_impl_0.cc",
"scatter_nd_op_cpu_impl_1.cc",
"scatter_nd_op_cpu_impl_2.cc",
"scatter_nd_op_cpu_impl_3.cc",
"scatter_nd_op_cpu_impl_4.cc",
"scatter_nd_op_cpu_impl_5.cc",
"scatter_nd_op_cpu_impl_6.cc",
"scatter_nd_op_cpu_impl_7.cc",
"segment_reduction_ops.cc",
"session_ops.cc",
"softplus_op.cc",
"softsign_op.cc",
"spacetobatch_functor.cc",
"spacetobatch_op.cc",
"spacetodepth_op.cc",
"sparse_fill_empty_rows_op.cc",
"sparse_reshape_op.cc",
"sparse_to_dense_op.cc",
"spectrogram.cc",
"spectrogram_op.cc",
"stack.cc",
"stack.h",
"stack_ops.cc",
"stateless_random_ops.cc",
"string_join_op.cc",
"string_util.cc",
"summary_op.cc",
"tensor_array.cc",
"tensor_array_ops.cc",
"tile_functor_cpu.cc",
"tile_ops.cc",
"tile_ops_cpu_impl_1.cc",
"tile_ops_cpu_impl_2.cc",
"tile_ops_cpu_impl_3.cc",
"tile_ops_cpu_impl_4.cc",
"tile_ops_cpu_impl_5.cc",
"tile_ops_cpu_impl_6.cc",
"tile_ops_cpu_impl_7.cc",
"topk_op.cc",
"training_op_helpers.cc",
"training_ops.cc",
"transpose_functor_cpu.cc",
"transpose_op.cc",
"unique_op.cc",
"where_op.cc",
"xent_op.cc",
":android_extended_ops_headers",
],
)
filegroup(
name = "android_quantized_ops",
srcs = [
"dequantize_op.cc",
"meta_support.cc",
"meta_support.h",
"quantization_utils.cc",
"quantization_utils.h",
"quantize_down_and_shrink_range.cc",
"quantize_op.cc",
"quantized_activation_ops.cc",
"quantized_add_op.cc",
"quantized_batch_norm_op.cc",
"quantized_bias_add_op.cc",
"quantized_concat_op.cc",
"quantized_conv_ops.cc",
"quantized_instance_norm.cc",
"quantized_matmul_op.cc",
"quantized_mul_op.cc",
"quantized_pooling_ops.cc",
"quantized_reshape_op.cc",
"quantized_resize_bilinear_op.cc",
"reference_gemm.h",
"requantization_range_op.cc",
"requantize.cc",
"reshape_op.h",
],
visibility = ["//visibility:public"],
)
ANDROID_TEXTUAL_HDRS = [
"eigen_convolution_helpers.h",
"eigen_spatial_convolutions-inl.h",
"gather_nd_op_cpu_impl.h",
"gemm_functors.h",
"mirror_pad_op_cpu_impl.h",
"scatter_nd_op_cpu_impl.h",
"slice_op_cpu_impl.h",
"strided_slice_op_impl.h",
"tile_ops_cpu_impl.h",
]
# A file group which contains nearly all available operators which
# may work on Android. This is intended to be used with selective
# registration.
filegroup(
name = "android_all_ops",
srcs = ["//tensorflow/c/kernels:android_all_op_kernels"] + glob(
[
"*.cc",
"*.h",
],
exclude = [
"*test.cc",
"*test_util*",
"*testutil*",
"*testlib*",
"*main.cc",
"*_gpu*",
"*_3d*",
"*.cu.*",
# Ops already in android_srcs
"pooling_ops_common.cc",
# Ops which we are currently excluding because they are likely
# not used on Android. Those ops also do not compile if included,
# unless we add the additional deps they need.
"tf_record_reader_op.*",
"cudnn_rnn_ops.*",
"lmdb_reader_op.*",
"string_to_hash_bucket_op.*",
"sdca_ops.*",
"sdca_internal.*",
"sparse_cross_op.*",
"text_line_reader_op.*",
"summary_image_op.*",
"decode_image_op.*",
"encode_png_op.*",
"encode_jpeg_op.*",
"extract_jpeg_shape_op.*",
"decode_jpeg_op.*",
"decode_and_crop_jpeg_op.*",
"decode_gif_op.*",
"identity_reader_op.*",
"remote_fused_graph_execute_op.*",
"remote_fused_graph_rewriter_transform.*",
"fixed_length_record_reader_op.*",
"whole_file_read_ops.*",
"sample_distorted_bounding_box_op.*",
"ctc_loss_op.*",
"summary_interface.*",
"summary_kernels.*",
"spectrogram_convert_test_data.cc",
"decode_proto_op.cc",
"encode_proto_op.cc",
"rpc_op.cc",
# Excluded due to experimental status:
"debug_ops.*",
"mutex_ops.*",
"batch_kernels.*",
"regex_full_match_op.cc",
"regex_replace_op.cc",
"string_lower_op.cc", # Requires ICU for unicode.
"string_upper_op.cc", # Requires ICU for unicode.
"unicode_ops.cc",
"unicode_script_op.cc",
# Ops that are inherently incompatible with Android (e.g. tied to x86 platform).
"mkl_*",
"xsmm_*",
"cwise_ops_sycl_common.h",
"nextafter_op.cc",
] + ANDROID_TEXTUAL_HDRS,
) + [
# Referenced by stateful_random_ops.cc but excluded with the *gpu*
# rule above. Seems to have only have worked before because of
# hdrs_check loose.
"stateful_random_ops_cpu_gpu.h",
],
visibility = ["//visibility:public"],
)
filegroup(
name = "android_all_ops_textual_hdrs",
srcs = ANDROID_TEXTUAL_HDRS,
visibility = ["//visibility:public"],
)
# LINT.ThenChange(//tensorflow/contrib/makefile/tf_op_files.txt)
cc_library(
name = "android_tensorflow_kernels",
srcs = select({
"//tensorflow:android": [
"//tensorflow/core/kernels:android_core_ops",
"//tensorflow/core/kernels:android_extended_ops",
],
"//conditions:default": [],
}),
copts = tf_copts(),
linkopts = select({
"//tensorflow:android": [
"-ldl",
],
"//conditions:default": [],
}),
tags = [
"manual",
"notap",
],
visibility = ["//visibility:public"],
deps = [
"//tensorflow/core:android_tensorflow_lib_lite",
"//tensorflow/core:protos_all_cc_impl",
"//third_party/eigen3",
"//third_party/fft2d:fft2d_headers",
"@com_google_protobuf//:protobuf",
"@fft2d",
"@gemmlowp",
],
alwayslink = 1,
)
cc_library(
name = "android_tensorflow_image_op",
srcs = if_android(["decode_image_op.cc"]),
copts = tf_copts(),
linkopts = ["-ldl"],
visibility = ["//visibility:public"],
deps = [
"//tensorflow/core:android_gif_internal",
"//tensorflow/core:android_jpeg_internal",
"//tensorflow/core:android_png_internal",
"//tensorflow/core:android_tensorflow_lib_lite",
],
alwayslink = 1,
)
cc_library(
name = "android_whole_file_read_ops",
srcs = if_android(["whole_file_read_ops.cc"]),
copts = tf_copts(),
linkopts = ["-ldl"],
visibility = ["//visibility:public"],
deps = [
"//tensorflow/core:android_tensorflow_lib_lite",
],
alwayslink = 1,
)
# Quantization-specific OpKernels
tf_kernel_library(
name = "quantized_ops",
srcs = [
"dequantize_op.cc",
"meta_support.cc",
"quantize_down_and_shrink_range.cc",
"quantize_op.cc",
"quantized_activation_ops.cc",
"quantized_add_op.cc",
"quantized_batch_norm_op.cc",
"quantized_bias_add_op.cc",
"quantized_concat_op.cc",
"quantized_conv_ops.cc",
"quantized_instance_norm.cc",
"quantized_matmul_op.cc",
"quantized_mul_op.cc",
"quantized_pooling_ops.cc",
"quantized_reshape_op.cc",
"quantized_resize_bilinear_op.cc",
"requantization_range_op.cc",
"requantize.cc",
"reshape_op.h",
],
hdrs = [
"meta_support.h",
"reference_gemm.h",
],
deps = [
":concat_lib_hdrs",
":conv_ops",
":cwise_op",
":eigen_helpers",
":image_resizer_state",
":ops_util",
":pooling_ops",
":quantization_utils",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//third_party/eigen3",
"@gemmlowp",
],
)
tf_cc_test(
name = "requantization_range_op_test",
size = "small",
srcs = ["requantization_range_op_test.cc"],
deps = [
":ops_testutil",
":ops_util",
":quantized_ops",
"//tensorflow/core:framework",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_cc_test(
name = "quantize_down_and_shrink_range_op_test",
size = "small",
srcs = ["quantize_down_and_shrink_range_op_test.cc"],
deps = [
":ops_testutil",
":ops_util",
":quantized_ops",
"//tensorflow/core:framework",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_cc_test(
name = "requantize_op_test",
size = "small",
srcs = ["requantize_op_test.cc"],
deps = [
":ops_testutil",
":ops_util",
":quantized_ops",
"//tensorflow/core:framework",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_cc_test(
name = "quantization_utils_test",
srcs = ["quantization_utils_test.cc"],
deps = [
":quantization_utils",
":quantized_ops",
"//tensorflow/core:array_ops_op_lib",
"//tensorflow/core:core_cpu",
"//tensorflow/core:core_cpu_internal",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:math_ops_op_lib",
"//tensorflow/core:nn_ops_op_lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:testlib",
"//third_party/eigen3",
],
)
# Android-only test for quantization utilities.
tf_cc_binary(
name = "quantization_utils_test_android_only",
testonly = 1,
srcs = ["quantization_utils_test.cc"],
copts = tf_copts(),
linkopts = select({
"//tensorflow:android": [
"-lm",
"-llog",
"-pie",
"-std=c++11",
],
"//conditions:default": [],
}),
linkstatic = 1,
tags = [
"manual",
"notap",
],
deps = [
] + select({
"//tensorflow:android": [
":android_tensorflow_kernels",
"//tensorflow/core:android_tensorflow_lib",
"//tensorflow/core:android_tensorflow_test_lib",
],
"//conditions:default": [
":quantized_ops",
"//third_party/eigen3",
"//tensorflow/core:core_cpu_internal",
"//tensorflow/core:lib",
"//tensorflow/core:test",
"//tensorflow/cc:cc_ops",
"//tensorflow/cc:client_session",
"//tensorflow/core:framework",
"//tensorflow/core:tensor_testutil",
],
}),
)
tf_cc_test(
name = "quantized_activation_ops_test",
srcs = ["quantized_activation_ops_test.cc"],
deps = [
":ops_testutil",
":ops_util",
":quantization_utils",
":quantized_ops",
"//tensorflow/core:array_ops_op_lib",
"//tensorflow/core:framework",
"//tensorflow/core:math_ops_op_lib",
"//tensorflow/core:nn_ops_op_lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
# Android-only test for quantized addition.
cc_binary(
name = "quantized_add_op_test_android_only",
testonly = 1,
srcs = ["quantized_add_op_test.cc"],
copts = tf_copts(),
linkopts = select({
"//tensorflow:android": [
"-lm",
"-llog",
"-pie",
"-std=c++11",
],
"//conditions:default": [],
}),
linkstatic = 1,
tags = [
"manual",
"notap",
],
deps = [
"//tensorflow/cc:cc_ops",
"//tensorflow/cc:client_session",
] + select({
"//tensorflow:android": [
":android_tensorflow_kernels",
"//tensorflow/core:android_tensorflow_lib",
"//tensorflow/core:android_tensorflow_test_lib",
],
"//conditions:default": [
":ops_util",
":quantized_ops",
"//tensorflow/core:framework",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:tensor_testutil",
"//tensorflow/core:tensorflow",
"//tensorflow/core:test",
],
}),
)
tf_cc_test(
name = "quantized_add_op_test",
size = "small",
srcs = ["quantized_add_op_test.cc"],
deps = [
":math",
":ops_testutil",
":ops_util",
":quantization_utils",
":quantized_ops",
"//tensorflow/cc:cc_ops",
"//tensorflow/cc:client_session",
"//tensorflow/core:array_ops_op_lib",
"//tensorflow/core:core_cpu",
"//tensorflow/core:direct_session",
"//tensorflow/core:framework",
"//tensorflow/core:math_ops_op_lib",
"//tensorflow/core:nn_ops_op_lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:testlib",
],
)
tf_cc_test(
name = "quantized_resize_bilinear_op_test",
size = "small",
srcs = ["quantized_resize_bilinear_op_test.cc"],
deps = [
":ops_testutil",
":ops_util",
":quantization_utils",
":quantized_ops",
"//tensorflow/cc:cc_ops",
"//tensorflow/cc:client_session",
"//tensorflow/core:core_cpu",
"//tensorflow/core:direct_session",
"//tensorflow/core:framework",
"//tensorflow/core:image_ops_op_lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:testlib",
],
)
# Android-only test for quantized resize bilinear.
cc_binary(
name = "quantized_resize_bilinear_op_test_android_only",
testonly = 1,
srcs = ["quantized_resize_bilinear_op_test.cc"],
copts = tf_copts(),
linkopts = select({
"//tensorflow:android": [
"-lm",
"-llog",
"-pie",
"-std=c++11",
],
"//conditions:default": [],
}),
linkstatic = 1,
tags = [
"manual",
"notap",
],
deps = [
"//tensorflow/cc:cc_ops",
"//tensorflow/cc:client_session",
] + select({
"//tensorflow:android": [
":android_tensorflow_kernels",
"//tensorflow/core:android_tensorflow_lib",
"//tensorflow/core:android_tensorflow_test_lib",
],
"//conditions:default": [
":ops_testutil",
":ops_util",
":quantized_ops",
"//tensorflow/core:core_cpu",
"//tensorflow/core:direct_session",
"//tensorflow/core:framework",
"//tensorflow/core:image_ops_op_lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:testlib",
],
}),
)
tf_cc_test(
name = "quantized_bias_add_op_test",
size = "small",
srcs = ["quantized_bias_add_op_test.cc"],
deps = [
":ops_testutil",
":ops_util",
":quantization_utils",
":quantized_ops",
"//tensorflow/core:array_ops_op_lib",
"//tensorflow/core:framework",
"//tensorflow/core:math_ops_op_lib",
"//tensorflow/core:nn_ops_op_lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_cc_test(
name = "quantized_conv_ops_test",
size = "small",
srcs = ["quantized_conv_ops_test.cc"],
tags = ["nomsan"], # http://b/32242946
deps = [
":ops_testutil",
":ops_util",
":quantization_utils",
":quantized_ops",
"//tensorflow/core:array_ops_op_lib",
"//tensorflow/core:framework",
"//tensorflow/core:math_ops_op_lib",
"//tensorflow/core:nn_ops_op_lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_cc_test_mkl(
name = "mkl_quantized_conv_ops_perchannel_test",
size = "small",
srcs = ["mkl_quantized_conv_ops_perchannel_test.cc"],
deps = [
":mkl_conv_op",
":mkl_input_conversion_op",
":ops_testutil",
":ops_util",
":quantization_utils",
":quantized_ops",
"//tensorflow/core:array_ops_op_lib",
"//tensorflow/core:framework",
"//tensorflow/core:math_ops_op_lib",
"//tensorflow/core:nn_ops_op_lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_cc_test_mkl(
name = "mkl_quantized_conv_ops_test",
size = "small",
srcs = ["mkl_quantized_conv_ops_test.cc"],
deps = [
":mkl_conv_op",
":mkl_input_conversion_op",
":ops_testutil",
":ops_util",
":quantization_utils",
":quantized_ops",
"//tensorflow/core:array_ops_op_lib",
"//tensorflow/core:framework",
"//tensorflow/core:math_ops_op_lib",
"//tensorflow/core:nn_ops_op_lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_cc_test(
name = "quantize_op_test",
size = "small",
srcs = ["quantize_op_test.cc"],
deps = [
":ops_testutil",
":ops_util",
":quantized_ops",
"//tensorflow/core:array_ops_op_lib",
"//tensorflow/core:framework",
"//tensorflow/core:math_ops_op_lib",
"//tensorflow/core:nn_ops_op_lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_cc_test(
name = "quantized_matmul_op_test",
size = "small",
srcs = ["quantized_matmul_op_test.cc"],
tags = ["nomsan"], # http://b/32242946
deps = [
":ops_testutil",
":ops_util",
":quantization_utils",
":quantized_ops",
"//tensorflow/core:array_ops_op_lib",
"//tensorflow/core:framework",
"//tensorflow/core:math_ops_op_lib",
"//tensorflow/core:nn_ops_op_lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_cc_test_mkl(
name = "mkl_qmatmul_op_test",
size = "small",
srcs = ["mkl_qmatmul_op_test.cc"],
deps = [
":mkl_input_conversion_op",
":mkl_qmatmul_op",
":ops_testutil",
":ops_util",
":quantization_utils",
":quantized_ops",
"//tensorflow/core:array_ops_op_lib",
"//tensorflow/core:framework",
"//tensorflow/core:math_ops_op_lib",
"//tensorflow/core:nn_ops_op_lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
# Android-only test for quantized multiply.
cc_binary(
name = "quantized_mul_op_test_android_only",
testonly = 1,
srcs = ["quantized_mul_op_test.cc"],
linkopts = select({
"//tensorflow:android": [
"-pie",
],
"//conditions:default": [],
}),
linkstatic = 1,
tags = [
"manual",
"notap",
],
deps = [
"//tensorflow/cc:cc_ops",
"//tensorflow/cc:client_session",
] + select({
"//tensorflow:android": [
":android_tensorflow_kernels",
"//tensorflow/core:android_tensorflow_lib",
"//tensorflow/core:android_tensorflow_test_lib",
],
"//conditions:default": [
":ops_util",
":quantized_ops",
"//tensorflow/core:framework",
"//tensorflow/core:tensor_testutil",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
],
}),
)
tf_cc_test(
name = "quantized_mul_op_test",
size = "small",
srcs = ["quantized_mul_op_test.cc"],
deps = [
":math",
":ops_testutil",
":ops_util",
":quantization_utils",
":quantized_ops",
"//tensorflow/cc:cc_ops",
"//tensorflow/cc:client_session",
"//tensorflow/core:array_ops_op_lib",
"//tensorflow/core:core_cpu",
"//tensorflow/core:direct_session",
"//tensorflow/core:framework",
"//tensorflow/core:math_ops_op_lib",
"//tensorflow/core:nn_ops_op_lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:testlib",
],
)
tf_cc_test(
name = "quantized_pooling_ops_test",
size = "small",
srcs = ["quantized_pooling_ops_test.cc"],
deps = [
":ops_testutil",
":ops_util",
":quantization_utils",
":quantized_ops",
"//tensorflow/core:array_ops_op_lib",
"//tensorflow/core:framework",
"//tensorflow/core:math_ops_op_lib",
"//tensorflow/core:nn_ops_op_lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_mkl_kernel_library(
name = "mkl_quantize_op",
srcs = ["mkl_quantize_op.cc"],
hdrs = [
"meta_support.h",
"reference_gemm.h",
],
deps = [
":bounds_check",
":ops_util",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
"//tensorflow/core:mkl_graph_util",
"@gemmlowp",
] + mkl_deps(),
)
tf_cc_test_mkl(
name = "mkl_quantize_op_test",
size = "small",
srcs = ["mkl_quantize_op_test.cc"],
deps = [
":mkl_quantize_op",
":ops_testutil",
":ops_util",
"//tensorflow/core:array_ops_op_lib",
"//tensorflow/core:framework",
"//tensorflow/core:math_ops_op_lib",
"//tensorflow/core:nn_ops_op_lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_cc_test_mkl(
name = "mkl_quantized_pooling_ops_test",
size = "small",
srcs = ["mkl_quantized_pooling_ops_test.cc"],
deps = [
":mkl_input_conversion_op",
":mkl_pooling_ops",
":ops_testutil",
":ops_util",
":quantization_utils",
":quantized_ops",
"//tensorflow/core:array_ops_op_lib",
"//tensorflow/core:framework",
"//tensorflow/core:math_ops_op_lib",
"//tensorflow/core:nn_ops_op_lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_cc_test(
name = "quantized_reshape_op_test",
size = "small",
srcs = ["quantized_reshape_op_test.cc"],
deps = [
":ops_testutil",
":ops_util",
":quantized_ops",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_cc_test(
name = "quantized_concat_op_test",
size = "small",
srcs = ["quantized_concat_op_test.cc"],
deps = [
":ops_testutil",
":ops_util",
":quantization_utils",
":quantized_ops",
"//tensorflow/core:array_ops_op_lib",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:math_ops_op_lib",
"//tensorflow/core:nn_ops_op_lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_cc_test_mkl(
name = "mkl_quantized_concat_op_test",
size = "small",
srcs = ["mkl_quantized_concat_op_test.cc"],
deps = [
":mkl_concat_op",
":ops_testutil",
":ops_util",
":quantization_utils",
":quantized_ops",
"//tensorflow/core:array_ops_op_lib",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:math_ops_op_lib",
"//tensorflow/core:mkl_array_ops_op_lib",
"//tensorflow/core:nn_ops_op_lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_cc_test(
name = "quantized_batch_norm_op_test",
size = "small",
srcs = ["quantized_batch_norm_op_test.cc"],
deps = [
":batch_norm_op",
":ops_testutil",
":quantization_utils",
":quantized_ops",
"//tensorflow/core:array_ops_op_lib",
"//tensorflow/core:core_cpu_internal",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:math_ops_op_lib",
"//tensorflow/core:nn_ops_op_lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
"//third_party/eigen3",
],
)
# Android-only test for quantized instance norm.
cc_binary(
name = "quantized_instance_norm_test_android_only",
testonly = 1,
srcs = ["quantized_instance_norm_test.cc"],
linkopts = select({
"//tensorflow:android": [
"-pie",
],
"//conditions:default": [],
}),
linkstatic = 1,
tags = [
"manual",
"notap",
],
deps = [
"//tensorflow/cc:cc_ops",
"//tensorflow/cc:client_session",
] + select({
"//tensorflow:android": [
":android_tensorflow_kernels",
"//tensorflow/core:android_tensorflow_lib",
"//tensorflow/core:android_tensorflow_test_lib",
],
"//conditions:default": [
"//tensorflow/core:framework",
"//tensorflow/core:tensor_testutil",
],
}),
)
tf_cc_test(
name = "quantized_instance_norm_test",
size = "small",
srcs = ["quantized_instance_norm_test.cc"],
deps = [
":ops_testutil",
":ops_util",
":quantized_ops",
"//tensorflow/cc:cc_ops",
"//tensorflow/cc:client_session",
"//tensorflow/core:core_cpu",
"//tensorflow/core:direct_session",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:testlib",
],
)
tf_kernel_library(
name = "remote_fused_graph_ops",
prefix = "remote_fused_graph_execute_op",
deps = [
":remote_fused_graph_execute_utils",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
"//tensorflow/core:protos_all_cc",
],
)
cc_library(
name = "quantization_utils",
srcs = ["quantization_utils.cc"],
hdrs = ["quantization_utils.h"],
deps = [
"//tensorflow/core:framework",
"@gemmlowp",
],
)
cc_library(
name = "remote_fused_graph_execute_utils",
srcs = [
"i_remote_fused_graph_ops_definitions.cc",
"remote_fused_graph_execute_utils.cc",
],
hdrs = [
"i_remote_fused_graph_executor.h",
"i_remote_fused_graph_ops_definitions.h",
"remote_fused_graph_execute_utils.h",
],
deps = [
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
"//tensorflow/core:protos_all_cc",
],
)
cc_library(
name = "remote_fused_graph_execute_op_test_utils",
testonly = 1,
srcs = ["remote_fused_graph_execute_op_test_utils.cc"],
hdrs = ["remote_fused_graph_execute_op_test_utils.h"],
deps = [
":cwise_op",
":remote_fused_graph_execute_utils",
"//tensorflow/cc:cc_ops",
"//tensorflow/cc:ops",
"//tensorflow/cc:scope",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:testlib",
],
)
tf_cc_test(
name = "remote_fused_graph_execute_utils_test",
size = "small",
srcs = [
"remote_fused_graph_execute_utils_test.cc",
],
deps = [
":cwise_op",
":remote_fused_graph_execute_op_test_utils",
":remote_fused_graph_execute_utils",
"//tensorflow/cc:cc_ops",
"//tensorflow/cc:scope",
"//tensorflow/core:core_cpu",
"//tensorflow/core:direct_session",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
"//tensorflow/core:ops",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:remote_fused_graph_ops_op_lib",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_cc_test(
name = "remote_fused_graph_ops_test",
size = "small",
srcs = [
"remote_fused_graph_execute_op_test.cc",
],
deps = [
":ops_testutil",
":ops_util",
":remote_fused_graph_execute_op_test_utils",
":remote_fused_graph_execute_utils",
":remote_fused_graph_ops",
"//tensorflow/cc:cc_ops",
"//tensorflow/cc:ops",
"//tensorflow/cc:scope",
"//tensorflow/core:core_cpu",
"//tensorflow/core:direct_session",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:remote_fused_graph_ops_op_lib",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
cc_library(
name = "remote_fused_graph_rewriter_transform",
srcs = [
"remote_fused_graph_rewriter_transform.cc",
],
deps = [
":remote_fused_graph_execute_utils",
"//tensorflow/cc:cc_ops",
"//tensorflow/cc:remote_fused_graph_ops",
"//tensorflow/tools/graph_transforms:transform_utils",
],
alwayslink = 1,
)
tf_cc_test(
name = "remote_fused_graph_rewriter_transform_test",
size = "small",
srcs = ["remote_fused_graph_rewriter_transform_test.cc"],
deps = [
":remote_fused_graph_execute_op_test_utils",
":remote_fused_graph_execute_utils",
":remote_fused_graph_rewriter_transform",
"//tensorflow/cc:cc_ops",
"//tensorflow/core:core_cpu",
"//tensorflow/core:core_cpu_internal",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:tensorflow",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
"//tensorflow/tools/graph_transforms:transform_utils",
],
)
tf_mkl_kernel_library(
name = "mkl_qmatmul_op",
srcs = ["mkl_qmatmul_op.cc"],
hdrs = [
"mkl_quantized_conv_ops.h",
"no_op.h",
],
deps = [
":bounds_check",
":fill_functor",
":matmul_op",
":ops_util",
"//third_party/eigen3",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
"//tensorflow/core:math_ops_op_lib",
"//tensorflow/core:mkl_nn_ops_op_lib",
"//tensorflow/core:nn_ops_op_lib",
] + mkl_deps(),
)
tf_mkl_kernel_library(
name = "mkl_conv_op",
hdrs = [
"mkl_quantized_conv_ops.h",
"no_op.h",
],
prefix = "mkl_conv",
deps = [
":bounds_check",
":conv_ops",
":ops_util",
"@com_google_absl//absl/strings",
"//third_party/eigen3",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
] + mkl_deps(),
)
tf_cc_test(
name = "bias_op_test",
size = "small",
srcs = ["bias_op_test.cc"],
deps = [
":bias_op",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_cc_test_mkl(
name = "mkl_conv_ops_test",
size = "small",
srcs = ["mkl_conv_ops_test.cc"],
linkstatic = 1, # Fixes dyld error on MacOS.
deps = [
":ops_testutil",
":ops_util",
"//tensorflow/cc:cc_ops",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:framework_internal",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:tensorflow",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_mkl_kernel_library(
name = "mkl_tfconv_op",
prefix = "mkl_tfconv",
deps = [
":bounds_check",
":ops_util",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
] + mkl_deps(),
)
tf_mkl_kernel_library(
name = "mkl_input_conversion_op",
hdrs = ["mkl_tfconv_op.h"],
prefix = "mkl_input_conversion",
deps = [
":bounds_check",
":ops_util",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
] + mkl_deps(),
)
tf_mkl_kernel_library(
name = "mkl_pooling_ops",
srcs = [
"mkl_avgpooling_op.cc",
"mkl_maxpooling_op.cc",
"mkl_pooling_ops_common.cc",
],
hdrs = ["mkl_pooling_ops_common.h"],
deps = [
":bounds_check",
":ops_util",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
] + mkl_deps(),
)
tf_mkl_kernel_library(
name = "mkl_dequantize_op",
srcs = ["mkl_dequantize_op.cc"],
hdrs = [
"meta_support.h",
"reference_gemm.h",
],
deps = [
":concat_lib_hdrs",
":conv_ops",
":cwise_op",
":eigen_helpers",
":image_resizer_state",
":ops_util",
":pooling_ops",
":quantization_utils",
":quantized_ops",
":transpose_functor",
"//tensorflow/core:array_ops_op_lib",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:math_ops_op_lib",
"//tensorflow/core:mkl_graph_util",
"//tensorflow/core:nn_ops_op_lib",
"//third_party/eigen3",
"@gemmlowp",
] + mkl_deps(),
)
tf_cc_test_mkl(
name = "mkl_dequantize_op_test",
size = "small",
srcs = ["mkl_dequantize_op_test.cc"],
deps = [
":mkl_dequantize_op",
":ops_testutil",
":ops_util",
"//tensorflow/core:array_ops_op_lib",
"//tensorflow/core:framework",
"//tensorflow/core:math_ops_op_lib",
"//tensorflow/core:mkl_array_ops_op_lib",
"//tensorflow/core:nn_ops_op_lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_mkl_kernel_library(
name = "mkl_relu_op",
prefix = "mkl_relu",
deps = [
":bounds_check",
":ops_util",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
"//third_party/eigen3",
] + mkl_deps(),
)
tf_mkl_kernel_library(
name = "mkl_softmax_op",
prefix = "mkl_softmax",
deps = [
":bounds_check",
":ops_util",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
"//third_party/eigen3",
] + mkl_deps(),
)
tf_mkl_kernel_library(
name = "mkl_fused_batch_norm_op",
srcs = ["mkl_fused_batch_norm_op.cc"],
deps = NN_DEPS + mkl_deps(),
)
tf_mkl_kernel_library(
name = "mkl_aggregate_ops",
prefix = "mkl_aggregate_ops",
deps = MATH_DEPS + mkl_deps(),
)
tf_mkl_kernel_library(
name = "mkl_concat_op",
prefix = "mkl_concat_op",
deps = [":quantization_utils"] + ARRAY_DEPS + mkl_deps(),
)
tf_mkl_kernel_library(
name = "mkl_reshape_op",
prefix = "mkl_reshape_op",
deps = ARRAY_DEPS + mkl_deps(),
)
tf_mkl_kernel_library(
name = "mkl_slice_op",
prefix = "mkl_slice_op",
deps = ARRAY_DEPS + mkl_deps(),
)
tf_mkl_kernel_library(
name = "mkl_identity_op",
prefix = "mkl_identity_op",
deps = ARRAY_DEPS + mkl_deps(),
)
tf_mkl_kernel_library(
name = "mkl_lrn_op",
prefix = "mkl_lrn_op",
deps = NN_DEPS + mkl_deps(),
)
tf_mkl_kernel_library(
name = "mkl_cwise_ops_common",
hdrs = [
"cwise_ops.h",
"cwise_ops_common.h",
"cwise_ops_gradients.h",
],
prefix = "mkl_cwise_ops_common",
deps = NN_DEPS + mkl_deps() + [":cwise_op"],
)
tf_mkl_kernel_library(
name = "mkl_requantize_ops",
srcs = [
"mkl_requantization_range_per_channel_op.cc",
"mkl_requantize_per_channel_op.cc",
],
hdrs = [
"meta_support.h",
"no_op.h",
"reference_gemm.h",
],
deps = [
":concat_lib_hdrs",
":conv_ops",
":cwise_op",
":eigen_helpers",
":image_resizer_state",
":ops_util",
":pooling_ops",
":quantization_utils",
":transpose_functor",
"//third_party/eigen3",
"@gemmlowp",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
] + mkl_deps(),
)
tf_cc_test_mkl(
name = "mkl_requantize_ops_test",
size = "small",
srcs = ["mkl_requantize_ops_test.cc"],
linkstatic = 1, # Fixes dyld error on MacOS.
deps = [
":mkl_requantize_ops",
":ops_testutil",
":ops_util",
":quantization_utils",
":quantized_ops",
"//tensorflow/cc:cc_ops",
"//tensorflow/core:array_ops_op_lib",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:framework_internal",
"//tensorflow/core:lib",
"//tensorflow/core:math_ops_op_lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:tensorflow",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_cc_test_mkl(
name = "mkl_fused_ops_test",
size = "small",
srcs = ["mkl_fused_ops_test.cc"],
linkstatic = 1,
deps = [
":conv_ops",
":image",
":mkl_conv_op",
":mkl_tfconv_op",
":ops_testutil",
":ops_util",
"//tensorflow/cc:cc_ops",
"//tensorflow/core:core_cpu",
"//tensorflow/core:framework",
"//tensorflow/core:framework_internal",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:tensorflow",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
tf_mkl_kernel_library(
name = "mkl_transpose_op",
srcs = [
"mkl_transpose_op.cc",
],
hdrs = ["transpose_op.h"],
deps = ARRAY_DEPS + mkl_deps() + [":transpose_op"],
)
# NOTE(lespeholt): This rule is deprecated, please use:
# tensorflow/core/util/batch_util.h
cc_library(
name = "batch_util",
hdrs = ["batch_util.h"],
deps = [
"//tensorflow/core:framework",
"//tensorflow/core:lib",
],
)
tf_kernel_library(
name = "boosted_trees_ops",
deps = [
"//tensorflow/core/kernels/boosted_trees:boosted_trees_ops",
],
)
tf_kernel_library(
name = "tensor_forest_ops",
deps = [
"//tensorflow/core/kernels/tensor_forest:tensor_forest_ops",
],
)
tf_kernel_library(
name = "dataset_ops",
deps = [
"//tensorflow/core/kernels/data",
],
)
cc_library(
name = "summary_interface",
hdrs = ["summary_interface.h"],
deps = [
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
],
)
tf_kernel_library(
name = "summary_kernels",
srcs = ["summary_kernels.cc"],
deps = [
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core/lib/db:sqlite",
"//tensorflow/core/summary:schema",
"//tensorflow/core/summary:summary_db_writer",
"//tensorflow/core/summary:summary_file_writer",
],
)
tf_kernel_library(
name = "decode_proto_op",
srcs = [
"decode_proto_op.cc",
],
deps = [
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core/util/proto:decode",
"//tensorflow/core/util/proto:descriptors",
"//tensorflow/core/util/proto:proto_utils",
"//third_party/eigen3",
"@com_google_absl//absl/container:flat_hash_map",
],
)
tf_kernel_library(
name = "encode_proto_op",
srcs = ["encode_proto_op.cc"],
deps = [
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core/util/proto:descriptors",
"//tensorflow/core/util/proto:proto_utils",
"//third_party/eigen3",
],
)
tf_kernel_library(
name = "rpc_op",
srcs = [
"rpc_op.cc",
],
deps = [
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
"//tensorflow/core/util/rpc:call_container",
"//tensorflow/core/util/rpc:rpc_factory",
"//tensorflow/core/util/rpc:rpc_factory_registry",
"//third_party/eigen3",
],
)
tf_kernel_library(
name = "unicode_script_op",
srcs = ["unicode_script_op.cc"],
deps = [
"//tensorflow/core:framework",
"@icu//:common",
],
)
# Library to link with when compiling the cwise_op kernels directly,
# e.g. for selective registration.
# should not be linked by projects that also link the cwise_op library.
cc_library(
name = "cwise_lib",
srcs = [
"cwise_ops_common.cc",
"meta_support.cc",
],
hdrs = [
"cwise_ops.h",
"cwise_ops_common.h",
"cwise_ops_gpu_common.cu.h",
"cwise_ops_gpu_gradients.cu.h",
"cwise_ops_gradients.h",
"meta_support.h",
],
deps = [
":bounds_check",
":quantization_utils",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//third_party/eigen3",
"@gemmlowp",
],
)
# Header-only version of cwise_lib for clients that want to use the cwise_ops
# functionality in their own custom ops.
cc_header_only_library(
name = "cwise_lib_hdrs",
deps = [
":cwise_lib",
],
)
# Library to link with when compiling the quantize and dequantize kernels directly,
# e.g. for selective registration.
cc_header_only_library(
name = "quantize_and_dequantize_op_hdrs",
deps = [
":quantize_and_dequantize_op",
],
)
cc_library(
name = "kernel_platform_strings",
srcs = ["kernel_platform_strings.h"],
deps = [
"//tensorflow/core:platform_strings",
],
alwayslink = 1,
)
# Shared object that links all the kernels TF needs.
tf_cc_shared_object(
name = "libtfkernel_all_kernels.so",
visibility = ["//visibility:public"],
deps = [
":kernel_platform_strings",
"//tensorflow/core:all_kernels_impl",
],
)