# 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/...", "//third_party/car/...", ], ) load( "//tensorflow:tensorflow.bzl", "if_android", "tf_cc_test", "tf_cc_test_mkl", "tf_cc_tests", "tf_cc_binary", "tf_copts", "tf_cuda_library", "tf_opts_nortti_if_android", "tf_kernel_library", "tf_mkl_kernel_library", "cc_header_only_library", "if_not_windows", "if_override_eigen_strong_inline", ) load("@local_config_sycl//sycl:build_defs.bzl", "if_sycl") load("//tensorflow:tensorflow.bzl", "tf_cuda_cc_test") load("//tensorflow:tensorflow.bzl", "tf_cuda_cc_tests") load( "//tensorflow/core:platform/default/build_config.bzl", "tf_proto_library", "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", "if_mkl_ml", "mkl_deps", ) load("@local_config_cuda//cuda:build_defs.bzl", "if_cuda") 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", }, ) # 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.cu.cc", ], deps = [ ":bounds_check", ":dense_update_functor", ":ops_util", ":training_op_helpers", ":variable_ops", "//tensorflow/core:framework", "//tensorflow/core:lib", "//third_party/eigen3", ], ) tf_kernel_library( name = "collective_ops", prefix = "collective_ops", deps = [ "//tensorflow/core:collective_ops_op_lib", "//tensorflow/core:framework", "//tensorflow/core:lib", "//tensorflow/core:protos_all_cc", ], ) tf_kernel_library( name = "concat_lib", srcs = [ "concat_lib_cpu.cc", "concat_lib_gpu.cc", ], hdrs = [ "concat_lib.h", "concat_lib_cpu.h", ], gpu_srcs = [ "concat_lib_gpu_impl.cu.cc", "concat_lib.h", "cuda_device_array.h", "cuda_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"], ) cc_library( name = "conv_2d", hdrs = ["conv_2d.h"], deps = [ ":eigen_helpers", ":gpu_util_hdrs", "//tensorflow/core:framework", "//third_party/eigen3", ], ) 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_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", srcs = ["ops_util.cc"], hdrs = ["ops_util.h"], copts = if_not_windows(["-Wno-sign-compare"]), deps = [ "//tensorflow/core:framework", "//tensorflow/core:lib", "//tensorflow/core:protos_all_cc", "//third_party/eigen3", ], ) 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"], ) cc_library( name = "gpu_util_hdrs", hdrs = ["gpu_utils.h"], ) 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 = [ "//tensorflow/core:batch_ops_op_lib", "//tensorflow/core:framework_headers_lib", "//tensorflow/core:protos_all_cc", "//tensorflow/core/kernels:concat_lib_hdrs", "//tensorflow/core/kernels:ops_util_hdrs", "//tensorflow/core/kernels:split_lib_hdrs", "//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", ], deps = [ ":cuda_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", ], ) cc_library( name = "bounds_check", hdrs = ["bounds_check.h"], visibility = [":friends"], deps = [ "//tensorflow/core:framework_lite", "//third_party/eigen3", ], ) # Private support libraries --------------------------------------------------- cc_header_only_library( name = "bounds_check_lib", deps = [":bounds_check"], ) cc_library( name = "cuda_device_array", hdrs = [ "cuda_device_array.h", "cuda_device_array_gpu.h", ], visibility = ["//tensorflow:__subpackages__"], deps = [ "//tensorflow/core:framework", "//tensorflow/core:gpu_headers_lib", "//tensorflow/core:lib", ], ) 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_softmax.h", "eigen_spatial_convolutions.h", "eigen_volume_patch.h", ], deps = [ "//third_party/eigen3", ], ) 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"], ) # OpKernel libraries ---------------------------------------------------------- ARRAY_DEPS = [ ":bounds_check", ":concat_lib", ":fill_functor", ":gather_functor", ":ops_util", ":transpose_functor", "//tensorflow/core:array_grad", "//tensorflow/core:array_ops_op_lib", "//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", "//tensorflow/core:set_ops_op_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", ":bitcast_op", ":broadcast_to_op", ":concat_op", ":constant_op", ":depth_space_ops", ":diag_op", ":edit_distance_op", ":extract_image_patches_op", ":extract_volume_patches_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", prefix = "bitcast_op", deps = ARRAY_DEPS, ) 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 = "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, ) 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 = ["cuda_device_array.h"], prefix = "split_op", deps = ARRAY_DEPS + [":split_lib"], ) tf_kernel_library( name = "split_v_op", gpu_srcs = ["cuda_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.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 + if_mkl([":mkl_transpose_op"]), ) 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", ], deps = if_cuda([ ":cuda_solvers", "@cub_archive//:cub", ]) + ARRAY_DEPS, ) cc_library( name = "ragged_ops", deps = [ ":ragged_gather_op", ], ) tf_kernel_library( name = "ragged_gather_op", srcs = ["ragged_gather_op.cc"], deps = [ "//tensorflow/core:framework", "//tensorflow/core:ragged_array_ops_op_lib", ], ) tf_cc_test( name = "ragged_gather_op_test", size = "small", srcs = ["ragged_gather_op_test.cc"], deps = [ ":ragged_gather_op", "//tensorflow/core:framework", "//tensorflow/core:ragged_array_ops_op_lib", "//tensorflow/core:test", "//tensorflow/core:test_main", "//tensorflow/core:testlib", "//tensorflow/core/kernels:ops_testutil", ], ) tf_kernel_library( name = "cudnn_rnn_kernels", srcs = ["cudnn_rnn_ops.cc"], visibility = ["//visibility:public"], deps = [ ":gpu_util_hdrs", "//tensorflow/core:cudnn_rnn_ops_op_lib", "//tensorflow/core:framework", "//tensorflow/core:lib", "//tensorflow/core:lib_internal", "//tensorflow/core:stream_executor", "//tensorflow/core/kernels:bounds_check_lib", "//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:math_ops_op_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_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", ], ) 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", ], ) 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"], ) 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:darwin": ["-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_ops", ":ops_util", "//tensorflow/core:framework", "//tensorflow/core:lib", "//tensorflow/core:protos_all_cc", "//third_party/eigen3", ], alwayslink = 0, ) 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:candidate_sampling_ops_op_lib", "//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:control_flow_ops_op_lib", "//tensorflow/core:framework", "//tensorflow/core:lib", ], ) tf_kernel_library( name = "ctc_ops", prefix = "ctc", deps = [ ":bounds_check", ":ops_util", "//tensorflow/core:ctc_ops_op_lib", "//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:data_flow_ops_op_lib", "//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", "//tensorflow/core:scoped_allocator_ops_op_lib", ], ) 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:math_ops_op_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, ) tf_kernel_library( name = "stack_ops", prefix = "stack_ops", deps = DATA_FLOW_DEPS, ) 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:data_flow_ops_op_lib", "//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"]), ) tf_kernel_library( name = "dynamic_stitch_op", gpu_srcs = [ "cuda_device_array.h", "cuda_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", "//tensorflow/core:lookup_ops_op_lib", ] 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:checkpoint_ops_op_lib", "//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:checkpoint_ops_op_lib", "//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", ":mutex_ops", ":scatter_functor", ":state", ":training_op_helpers", ":variable_ops", "//tensorflow/core:framework", "//tensorflow/core:lib", "//tensorflow/core:lib_internal", "//tensorflow/core:resource_variable_ops_op_lib", ], ) 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", "//tensorflow/core:framework", "//tensorflow/core:lib", "//tensorflow/core:list_ops_op_lib", "//third_party/eigen3", ], ) tf_kernel_library( name = "fact_op", prefix = "fact_op", deps = [ "//tensorflow/core:framework", "//tensorflow/core:lib", "//tensorflow/core:user_ops_op_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", ], ) tf_kernel_library( name = "functional_ops", prefix = "functional_ops", deps = [ "//tensorflow/core:core_cpu", "//tensorflow/core:core_cpu_internal", "//tensorflow/core:framework", "//tensorflow/core:functional_ops_op_lib", "//tensorflow/core:lib", "//tensorflow/core:lib_internal", "//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:functional_ops_op_lib", "//tensorflow/core:lib", ], ) 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", ], ) IMAGE_DEPS = [ ":bounds_check", ":eigen_helpers", ":image_resizer_state", "//third_party/eigen3", "//tensorflow/core:framework", "//tensorflow/core:gif_internal", "//tensorflow/core:image_ops_op_lib", "//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, ) 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, ) 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:audio_ops_op_lib", "//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:audio_ops_op_lib", "//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_softmax_test.cc", "eigen_spatial_convolutions_test.cc", ], deps = [ ":eigen_helpers", "//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 = "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_bilinear_op_test.cc", "resize_nearest_neighbor_op_test.cc", ], linkopts = select({ "//tensorflow:darwin": ["-headerpad_max_install_names"], "//conditions:default": [], }), deps = [ ":image", ":ops_testutil", ":ops_util", "//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 = "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:io_ops_op_lib", "//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, ) 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:io_ops_op_lib", "//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, ) 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", ":matrix_exponential_op", ":matrix_inverse_op", ":matrix_logarithm_op", ":matrix_solve_ls_op", ":matrix_solve_op", ":matrix_triangular_solve_op", ":qr_op", ":self_adjoint_eig_op", ":self_adjoint_eig_v2_op", ":svd_op", ], ) tf_kernel_library( name = "cuda_solvers", srcs = ["cuda_solvers.cc"], hdrs = ["cuda_solvers.h"], # @local_config_cuda//cuda:cusolver, //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:darwin": [], "//tensorflow:windows": [], "//conditions:default": ["-Wl,-z,muldefs"], }), visibility = [":friends"], deps = [ "//tensorflow/core:framework", "//tensorflow/core:lib", "//tensorflow/core/platform/default/build_config:cublas_plugin", "@local_config_cuda//cuda:cublas", "@local_config_cuda//cuda:cusolver", ], ) LINALG_DEPS = [ ":linalg_ops_common", "//third_party/eigen3", "//tensorflow/core:framework", "//tensorflow/core:lib", "//tensorflow/core:linalg_ops_op_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_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 = "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, ) 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:logging_ops_op_lib", "//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", prefix = "roll_op", deps = [ ":bounds_check", "//tensorflow/core:framework", "//tensorflow/core:lib", "//tensorflow/core:manip_ops_op_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", "//tensorflow/core:math_ops_op_lib", "//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 + 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", ":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", srcs = if_mkl_ml([ "mkl_batch_matmul_op.cc", ]), # *impl.h are excluded by default from the CPU build, add explicitly. hdrs = ["batch_matmul_op_impl.h"], # Override EIGEN_STRONG_INLINE to inline when --define=override_eigen_strong_inline=true, # to avoid long compiling time. See https://github.com/tensorflow/tensorflow/issues/10521 copts = if_override_eigen_strong_inline(["/DEIGEN_STRONG_INLINE=inline"]), prefix = "batch_matmul_op", deps = MATH_DEPS + if_mkl_ml([ "//third_party/mkl:intel_binary_blob", ]), ) tf_kernel_library( name = "betainc_op", prefix = "betainc_op", deps = MATH_DEPS, ) tf_kernel_library( name = "bucketize_op", gpu_srcs = ["cuda_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 + ["//tensorflow/core:bitwise_ops_op_lib"], ) 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 + [ "//tensorflow/core:spectral_ops_op_lib", ] + if_cuda([ "//tensorflow/core/platform/default/build_config:cufft_plugin", ]), ) tf_kernel_library( name = "matmul_op", srcs = [ "matmul_op.cc", ] + if_mkl([ "mkl_matmul_op.cc", ]), hdrs = ["matmul_op.h"], # Override EIGEN_STRONG_INLINE to inline when --define=override_eigen_strong_inline=true, # to avoid long compiling time. See https://github.com/tensorflow/tensorflow/issues/10521 copts = if_override_eigen_strong_inline(["/DEIGEN_STRONG_INLINE=inline"]), defines = select({ ":xsmm": [ "TENSORFLOW_USE_LIBXSMM", "EIGEN_USE_LIBXSMM", ], "//conditions:default": [], }), deps = MATH_DEPS + [ ":gpu_util_hdrs", ] + select({ ":xsmm": [ "@libxsmm_archive//:xsmm_avx", ], "//conditions:default": [], }) + mkl_deps() + if_cuda([ "//tensorflow/core/platform/default/build_config:cublas_plugin", ]), ) 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"]), ) tf_kernel_library( name = "segment_reduction_ops", prefix = "segment_reduction_ops", deps = MATH_DEPS + if_cuda([ ":cuda_solvers", ]), ) tf_kernel_library( name = "scan_ops", prefix = "scan_ops", deps = MATH_DEPS, ) 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: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_cuda_cc_test( name = "batch_matmul_op_test", size = "small", srcs = ["batch_matmul_op_test.cc"], deps = [ ":batch_matmul_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 = "reduction_ops_test", size = "small", srcs = ["reduction_ops_test.cc"], linkopts = select({ "//tensorflow:darwin": ["-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_cc_test( name = "shape_op_test", srcs = ["shape_op_test.cc"], deps = [ ":array", ":ops_testutil", ":ops_util", "//tensorflow/cc:cc_ops", "//tensorflow/cc:client_session", "//tensorflow/core:core_cpu", "//tensorflow/core:direct_session", "//tensorflow/core:framework", "//tensorflow/core:lib", "//tensorflow/core:ops", "//tensorflow/core:protos_all_cc", "//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": [], }), # Override EIGEN_STRONG_INLINE to inline when --define=override_eigen_strong_inline=true, # to avoid long compiling time. See https://github.com/tensorflow/tensorflow/issues/10521 copts = if_override_eigen_strong_inline(["/DEIGEN_STRONG_INLINE=inline"]), 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", ":image_resizer_state", ":fill_functor", ":ops_util", "//tensorflow/core:core_cpu", "//tensorflow/core:framework", "//tensorflow/core:lib", "//tensorflow/core:lib_internal", "//tensorflow/core:nn_ops_op_lib", ] + 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", ]), ) tf_kernel_library( name = "depthwise_conv_op", prefix = "depthwise_conv_op", deps = [ ":bounds_check", ":conv_ops", ":ops_util", "//tensorflow/core:core_cpu", "//tensorflow/core:framework", "//tensorflow/core:lib", "//tensorflow/core:nn_ops_op_lib", ] + if_cuda([ "@cub_archive//:cub", "@local_config_cuda//cuda:cudnn_header", ]), ) 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", "//tensorflow/core:nn_ops_op_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", ":fused_batch_norm_util_gpu", ":ops_util", ":pooling_ops", "//tensorflow/core:framework", "//tensorflow/core:lib", "//tensorflow/core:lib_internal", "//tensorflow/core:nn_grad", "//tensorflow/core:nn_ops_op_lib", "//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 + if_cuda([ ":reduction_ops", "@cub_archive//:cub", ]), ) tf_kernel_library( name = "fused_batch_norm_op", prefix = "fused_batch_norm_op", deps = NN_DEPS + [ ":fill_functor", ], ) tf_kernel_library( name = "in_topk_op", prefix = "in_topk_op", deps = NN_DEPS, ) tf_kernel_library( name = "lrn_op", # Override EIGEN_STRONG_INLINE to inline when --define=override_eigen_strong_inline=true, # to avoid long compiling time. See https://github.com/tensorflow/tensorflow/issues/10521 copts = if_override_eigen_strong_inline(["/DEIGEN_STRONG_INLINE=inline"]), prefix = "lrn_op", deps = NN_DEPS, ) 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([ ":reduction_ops", "@cub_archive//:cub", ]), ) 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", prefix = "topk_op", deps = NN_DEPS + if_cuda(["@cub_archive//:cub"]), ) 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"]), ) 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"]), ) 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", "//tensorflow/core:nn_ops_op_lib", ] + if_cuda(["@cub_archive//:cub"]), ) 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", "//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:nn_ops_op_lib", "//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, ) tf_kernel_library( name = "fused_batch_norm_util", gpu_srcs = [ "fused_batch_norm_op.h", "fused_batch_norm_op.cu.cc", ], deps = [ "//tensorflow/core:framework", "//tensorflow/core:lib", "//third_party/eigen3", ], ) 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", "//tensorflow/core:nn_ops_op_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_raw_op", ":example_parsing_ops", ":parse_tensor_op", ":string_to_number_op", ], ) PARSING_DEPS = [ "//tensorflow/core:framework", "//tensorflow/core:lib", "//tensorflow/core:parsing_ops_op_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_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", "//tensorflow/core:random_ops_op_lib", ] 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 = "stateless_random_ops", prefix = "stateless_random_ops", deps = [ ":bounds_check", ":random_op", "//tensorflow/core:framework", "//tensorflow/core:lib", "//tensorflow/core:stateless_random_ops_op_lib", ], ) cc_library( name = "required", deps = [ ":no_op", ":sendrecv_ops", ], ) REQUIRED_DEPS = [ "//tensorflow/core:framework", "//tensorflow/core:lib", "//tensorflow/core:no_op_op_lib", "//tensorflow/core:sendrecv_ops_op_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", "//tensorflow/core:sparse_ops_op_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", ], ) 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", "//tensorflow/core:sdca_ops_op_lib", "//third_party/eigen3", "@farmhash_archive//:farmhash", ], alwayslink = 1, ) cc_library( name = "sdca_internal", srcs = ["sdca_internal.cc"], hdrs = ["sdca_internal.h"], deps = [ ":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:state_ops_op_lib", ] + 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_srcs = [ "scatter_nd_op.h", "scatter_nd_op_gpu.cu.cc", ], deps = STATE_DEPS + [ ":dense_update_functor", ":training_op_helpers", ":variable_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_split_op", ":string_strip_op", ":string_to_hash_bucket_op", ":substr_op", ":unicode_script_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", "//tensorflow/core:string_ops_op_lib", ] 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 = "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 = [ ":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", "//tensorflow/core/kernels:ops_testutil", "//tensorflow/core/kernels:ops_util", ], ) 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 = [ ":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", "//tensorflow/core/kernels:ops_testutil", "//tensorflow/core/kernels:ops_util", ], ) 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 = [ ":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", "//tensorflow/core/kernels:ops_testutil", "//tensorflow/core/kernels:ops_util", ], ) tf_kernel_library( name = "string_strip_op", prefix = "string_strip_op", deps = STRING_DEPS, ) 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 = [ ":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", "//tensorflow/core/kernels:ops_testutil", "//tensorflow/core/kernels:ops_util", ], ) tf_kernel_library( name = "as_string_op", prefix = "as_string_op", deps = STRING_DEPS, ) 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", "//tensorflow/core:training_ops_op_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", "//tensorflow/core:framework", "//tensorflow/core:lib", "//tensorflow/core:lib_internal", "//third_party/eigen3", ], ) 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", prefix = "parameterized_truncated_normal_op", deps = [ "//tensorflow/core:core_cpu", "//tensorflow/core:framework", "//tensorflow/core:lib", "//tensorflow/core:lib_internal", "//tensorflow/core:random_ops_op_lib", ], ) 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_poisson_op", prefix = "random_poisson_op", deps = [ ":random_ops", "//tensorflow/core:framework", "//tensorflow/core:lib", "//tensorflow/core:lib_internal", "//tensorflow/core:random_ops_op_lib", ], ) 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:audio_ops_op_lib", "//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:audio_ops_op_lib", "//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", "bounds_check.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_cuboid_convolution.h", "eigen_pooling.h", "eigen_softmax.h", "eigen_spatial_convolutions.h", "eigen_volume_patch.h", "fifo_queue.h", "maxpooling_op.h", "ops_util.cc", "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", "bounds_check.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_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", "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", ], ) # 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_ops.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", "lookup_table_init_op.h", "lookup_table_op.h", "lookup_util.h", "maxpooling_op.h", "mfcc.h", "mfcc_dct.h", "mfcc_mel_filterbank.h", "mirror_pad_op.h", "mirror_pad_op_cpu_impl.h", "pad_op.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", "segment_reduction_ops.h", "softplus_op.h", "softsign_op.h", "spacetobatch_functor.h", "spacetodepth_op.h", "spectrogram.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_fused.cc", "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_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_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_sqrt.cc", "cwise_op_square.cc", "cwise_op_squared_difference.cc", "cwise_op_sub.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", "fake_quant_ops.cc", "fifo_queue.cc", "fifo_queue_op.cc", "fused_batch_norm_op.cc", "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", "in_topk_op.cc", "initializable_lookup_table.cc", "logging_ops.cc", "lookup_table_init_op.cc", "lookup_table_op.cc", "lookup_util.cc", "lrn_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", "pad_op.cc", "padding_fifo_queue.cc", "padding_fifo_queue_op.cc", "queue_base.cc", "queue_op.cc", "queue_ops.cc", "random_op.cc", "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", "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_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 = [ "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 = glob( [ "*.cc", "*.h", ], exclude = [ "*test.cc", "*test_util*", "*testutil*", "*testlib*", "*main.cc", "*_gpu*", "*_3d*", "*.cu.*", # Ops already in android_srcs "ops_util.cc", "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", "partitioned_function_ops.cc", # Excluded due to experimental status: "debug_ops.*", "mutex_ops.*", "batch_kernels.*", "regex_full_match_op.cc", "regex_replace_op.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", ] + ANDROID_TEXTUAL_HDRS, ), 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", "@fft2d", "@gemmlowp", "@protobuf_archive//:protobuf", ], 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: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", "//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( 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", ], ) # 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_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( 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", "//tensorflow/core:remote_fused_graph_ops_op_lib", ], ) 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 = [ ":remote_fused_graph_execute_utils", "//tensorflow/cc:cc_ops", "//tensorflow/cc:ops", "//tensorflow/cc:scope", "//tensorflow/core:framework", "//tensorflow/core:lib", "//tensorflow/core:testlib", "//tensorflow/core/kernels:cwise_op", ], ) tf_cc_test( name = "remote_fused_graph_execute_utils_test", size = "small", srcs = [ "remote_fused_graph_execute_utils_test.cc", ], deps = [ ":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", "//tensorflow/core/kernels:cwise_op", ], ) 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_conv_op", prefix = "mkl_conv", deps = [ ":bounds_check", ":conv_ops", ":ops_util", "//tensorflow/core:core_cpu", "//tensorflow/core:framework", "//tensorflow/core:lib", "//tensorflow/core:lib_internal", "//tensorflow/core:nn_ops_op_lib", ] + mkl_deps(), ) tf_cc_test_mkl( name = "mkl_conv_ops_test", size = "small", srcs = ["mkl_conv_ops_test.cc"], 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", "//tensorflow/core:nn_ops_op_lib", ] + 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", "//tensorflow/core:nn_ops_op_lib", ] + 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", "//tensorflow/core:nn_ops_op_lib", ] + mkl_deps(), ) 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", "//tensorflow/core:nn_ops_op_lib", "//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", "//tensorflow/core:nn_ops_op_lib", "//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 = 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_transpose_op", srcs = [ "mkl_transpose_op.cc", ], hdrs = ["transpose_op.h"], deps = ARRAY_DEPS + mkl_deps(), ) # 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", ], ) cc_library( name = "captured_function", hdrs = ["captured_function.h"], deps = [ "//tensorflow/core/kernels/data:captured_function", ], ) cc_library( name = "dataset", hdrs = ["dataset.h"], deps = [ "//tensorflow/core/kernels/data:dataset", ], ) 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/contrib/tensorboard/db:schema", "//tensorflow/contrib/tensorboard/db:summary_db_writer", "//tensorflow/contrib/tensorboard/db:summary_file_writer", "//tensorflow/core:framework", "//tensorflow/core:lib", "//tensorflow/core:protos_all_cc", "//tensorflow/core:summary_ops_op_lib", "//tensorflow/core/lib/db:sqlite", ], ) tf_kernel_library( name = "decode_proto_op", srcs = [ "decode_proto_op.cc", ], deps = [ "//tensorflow/core:decode_proto_ops_op_lib", "//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", ], ) tf_kernel_library( name = "encode_proto_op", srcs = ["encode_proto_op.cc"], deps = [ "//tensorflow/core:encode_proto_ops_op_lib", "//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:rpc_ops_op_lib", "//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", "//tensorflow/core:string_ops_op_lib", "@icu//:common", ], ) # ----------------------------------------------------------------------------- # Google-internal targets. These must be at the end for syncrepo. # 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", ], )