Files
tensorflow--tensorflow/tensorflow/lite/kernels/variants/BUILD
T
wehub-resource-sync 8a852e4b4e
cffconvert / validate (push) Has been skipped
License Check / license-check (push) Failing after 2s
chore: import upstream snapshot with attribution
2026-07-13 12:14:16 +08:00

377 lines
12 KiB
Python

load("@rules_cc//cc:cc_binary.bzl", "cc_binary")
load("@rules_cc//cc:cc_library.bzl", "cc_library")
load("@rules_cc//cc:cc_test.bzl", "cc_test")
load("//tensorflow:tensorflow.default.bzl", "get_compatible_with_portable")
load("//tensorflow/lite:build_def.bzl", "tflite_copts", "tflite_copts_warnings", "tflite_linkopts")
# copybara:uncomment package(default_applicable_licenses = ["//tensorflow:LICENSE"])
common_copts = tflite_copts() + tflite_copts_warnings()
# Library of list ops.
cc_library(
name = "list_ops_lib",
srcs = glob(
["list_kernels/*.cc"],
exclude = ["list_kernels/*test*"],
) + ["register_list_ops.cc"],
hdrs = [
"list_ops_lib.h",
"register_list_ops.h",
],
visibility = ["//visibility:public"],
deps = [
":list_ops_util",
":tensor_array",
"//tensorflow/lite:array",
"//tensorflow/lite:mutable_op_resolver",
"//tensorflow/lite:util",
"//tensorflow/lite/c:c_api_types",
"//tensorflow/lite/core/c:c_api_types",
"//tensorflow/lite/core/c:common",
"//tensorflow/lite/kernels:cpu_backend_context",
"//tensorflow/lite/kernels:kernel_util",
"//tensorflow/lite/kernels/internal:optimized_base",
"//tensorflow/lite/kernels/internal:runtime_shape",
"//tensorflow/lite/kernels/internal:tensor",
"//tensorflow/lite/kernels/internal:tensor_ctypes",
"//tensorflow/lite/schema:schema_fbs",
],
)
# Utils for simple kernel unit tests.
cc_library(
name = "test_util",
testonly = True,
srcs = ["list_kernels/test_util.cc"],
hdrs = ["list_kernels/test_util.h"],
deps = [
":tensor_array",
"//tensorflow/lite:array",
"//tensorflow/lite:type_to_tflitetype",
"//tensorflow/lite:util",
"//tensorflow/lite/c:common",
"//tensorflow/lite/core/c:c_api_types",
"//tensorflow/lite/core/c:common",
"//tensorflow/lite/kernels:kernel_util",
"//tensorflow/lite/kernels:op_macros",
"//tensorflow/lite/kernels:test_util",
"//tensorflow/lite/schema:schema_fbs",
"@com_google_absl//absl/types:span",
"@com_google_googletest//:gtest_main",
],
)
cc_test(
name = "list_reserve_test",
srcs = ["list_kernels/list_reserve_test.cc"],
deps = [
":list_ops_lib",
":tensor_array",
"//tensorflow/lite/core/c:c_api_types",
"//tensorflow/lite/core/c:common",
"//tensorflow/lite/kernels:test_util",
"//tensorflow/lite/schema:schema_fbs",
"@com_google_googletest//:gtest_main",
],
)
cc_test(
name = "list_stack_test",
srcs = ["list_kernels/list_stack_test.cc"],
deps = [
":list_ops_lib",
":test_util",
"//tensorflow/lite/core/c:c_api_types",
"//tensorflow/lite/core/c:common",
"//tensorflow/lite/kernels:test_util",
"//tensorflow/lite/schema:schema_fbs",
"@com_google_googletest//:gtest_main",
],
)
cc_test(
name = "list_set_item_test",
srcs = ["list_kernels/list_set_item_test.cc"],
deps = [
":list_ops_lib",
":tensor_array",
":test_util",
"//tensorflow/lite:type_to_tflitetype",
"//tensorflow/lite/core/c:c_api_types",
"//tensorflow/lite/core/c:common",
"//tensorflow/lite/kernels:test_util",
"//tensorflow/lite/kernels/internal:compatibility",
"//tensorflow/lite/schema:schema_fbs",
"@com_google_googletest//:gtest_main",
],
)
cc_test(
name = "list_from_tensor_test",
srcs = ["list_kernels/list_from_tensor_test.cc"],
deps = [
":list_ops_lib",
":tensor_array",
"//tensorflow/lite/c:common",
"//tensorflow/lite/core/c:c_api_types",
"//tensorflow/lite/core/c:common",
"//tensorflow/lite/kernels:test_util",
"//tensorflow/lite/kernels/internal:compatibility",
"//tensorflow/lite/kernels/internal:tensor_ctypes",
"//tensorflow/lite/schema:schema_fbs",
"@com_google_googletest//:gtest_main",
],
)
cc_test(
name = "list_get_item_test",
srcs = ["list_kernels/list_get_item_test.cc"],
deps = [
":list_ops_lib",
":test_util",
"//tensorflow/lite/core/c:c_api_types",
"//tensorflow/lite/core/c:common",
"//tensorflow/lite/kernels:test_util",
"//tensorflow/lite/kernels/internal:tensor_ctypes",
"//tensorflow/lite/schema:schema_fbs",
"@com_google_googletest//:gtest_main",
],
)
cc_test(
name = "list_length_test",
srcs = ["list_kernels/list_length_test.cc"],
deps = [
":list_ops_lib",
":tensor_array",
":test_util",
"//tensorflow/lite/core/c:c_api_types",
"//tensorflow/lite/core/c:common",
"//tensorflow/lite/kernels:test_util",
"//tensorflow/lite/schema:schema_fbs",
"@com_google_googletest//:gtest_main",
],
)
cc_test(
name = "list_element_shape_test",
srcs = ["list_kernels/list_element_shape_test.cc"],
deps = [
":list_ops_lib",
":tensor_array",
":test_util",
"//tensorflow/lite/core/c:c_api_types",
"//tensorflow/lite/core/c:common",
"//tensorflow/lite/kernels:test_util",
"//tensorflow/lite/schema:schema_fbs",
"@com_google_googletest//:gtest_main",
],
)
cc_test(
name = "list_pop_back_test",
srcs = ["list_kernels/list_pop_back_test.cc"],
deps = [
":list_ops_lib",
":tensor_array",
":test_util",
"//tensorflow/lite/core/c:c_api_types",
"//tensorflow/lite/core/c:common",
"//tensorflow/lite/kernels:test_util",
"//tensorflow/lite/kernels/internal:tensor_ctypes",
"//tensorflow/lite/schema:schema_fbs",
"@com_google_googletest//:gtest_main",
],
)
cc_test(
name = "list_push_back_test",
srcs = ["list_kernels/list_push_back_test.cc"],
deps = [
":list_ops_lib",
":tensor_array",
":test_util",
"//tensorflow/lite:type_to_tflitetype",
"//tensorflow/lite/core/c:c_api_types",
"//tensorflow/lite/core/c:common",
"//tensorflow/lite/kernels:kernel_util",
"//tensorflow/lite/kernels:test_util",
"//tensorflow/lite/kernels/internal:compatibility",
"//tensorflow/lite/schema:schema_fbs",
"@com_google_googletest//:gtest_main",
],
)
cc_test(
name = "variant_add_n_test",
srcs = ["list_kernels/variant_add_n_test.cc"],
deps = [
":list_ops_lib",
":tensor_array",
":test_util",
"//tensorflow/lite:type_to_tflitetype",
"//tensorflow/lite/core/c:c_api_types",
"//tensorflow/lite/core/c:common",
"//tensorflow/lite/kernels:kernel_util",
"//tensorflow/lite/kernels:test_util",
"//tensorflow/lite/kernels/internal:compatibility",
"//tensorflow/lite/schema:schema_fbs",
"@com_google_googletest//:gtest_main",
],
)
cc_test(
name = "variant_zeros_like_test",
srcs = ["list_kernels/variant_zeros_like_test.cc"],
deps = [
":list_ops_lib",
":tensor_array",
":test_util",
"//tensorflow/lite/core/c:c_api_types",
"//tensorflow/lite/core/c:common",
"//tensorflow/lite/kernels:kernel_util",
"//tensorflow/lite/kernels:test_util",
"//tensorflow/lite/kernels/internal:compatibility",
"//tensorflow/lite/schema:schema_fbs",
"@com_google_googletest//:gtest_main",
],
)
cc_library(
name = "list_ops_util",
srcs = ["list_ops_util.cc"],
hdrs = ["list_ops_util.h"],
visibility = ["//tensorflow/lite/kernels/variants:__subpackages__"],
deps = [
":tensor_array",
"//tensorflow/lite:array",
"//tensorflow/lite:util",
"//tensorflow/lite/c:c_api_types",
"//tensorflow/lite/core/c:common",
],
)
cc_test(
name = "list_ops_util_test",
srcs = ["list_ops_util_test.cc"],
deps = [
":list_ops_util",
":tensor_array",
"//tensorflow/lite:array",
"//tensorflow/lite:util",
"//tensorflow/lite/core/c:c_api_types",
"//tensorflow/lite/core/c:common",
"//tensorflow/lite/kernels:test_util",
"@com_google_googletest//:gtest_main",
],
)
# Utils for testing complex multi-op subgraphs.
cc_library(
name = "list_ops_subgraph_test_util",
testonly = True,
srcs = ["list_ops_subgraph_test_util.cc"],
hdrs = ["list_ops_subgraph_test_util.h"],
deps = [
":list_ops_lib",
"//tensorflow/lite:builtin_ops",
"//tensorflow/lite/c:c_api_types",
"//tensorflow/lite/c:common",
"//tensorflow/lite/core:cc_api_stable",
"//tensorflow/lite/core:subgraph",
"//tensorflow/lite/core/c:common",
"//tensorflow/lite/kernels:builtin_ops",
"//tensorflow/lite/kernels:op_macros",
"//tensorflow/lite/kernels:subgraph_test_util",
"//tensorflow/lite/schema:schema_fbs",
"@com_google_absl//absl/types:span",
"@com_google_googletest//:gtest",
],
)
cc_test(
name = "list_ops_subgraph_test",
srcs = ["list_ops_subgraph_test.cc"],
deps = [
":list_ops_subgraph_test_util",
":tensor_array",
"//tensorflow/lite:array",
"//tensorflow/lite:interpreter_test_util",
"//tensorflow/lite:util",
"//tensorflow/lite/c:c_api_types",
"//tensorflow/lite/c:common",
"//tensorflow/lite/kernels:kernel_util",
"//tensorflow/lite/kernels:op_macros",
"//tensorflow/lite/kernels:test_util",
"//tensorflow/lite/kernels/internal:compatibility",
"//tensorflow/lite/schema:schema_fbs",
"@com_google_absl//absl/types:span",
"@com_google_googletest//:gtest_main",
],
)
# Type erased class that sits behind the `data.data` of variant tensors.
cc_library(
name = "tensor_array",
srcs = ["tensor_array.cc"],
hdrs = ["tensor_array.h"],
compatible_with = get_compatible_with_portable(),
visibility = ["//visibility:private"],
deps = [
"//tensorflow/lite:array",
"//tensorflow/lite:util",
"//tensorflow/lite/c:common",
"//tensorflow/lite/core/c:common",
],
)
cc_test(
name = "tensor_array_test",
srcs = ["tensor_array_test.cc"],
deps = [
":tensor_array",
"//tensorflow/lite:array",
"//tensorflow/lite:type_to_tflitetype",
"//tensorflow/lite:util",
"//tensorflow/lite/c:c_api_types",
"//tensorflow/lite/c:common",
"//tensorflow/lite/core/c:c_api_types",
"//tensorflow/lite/core/c:common",
"//tensorflow/lite/kernels:test_util",
"@com_google_googletest//:gtest_main",
],
)
# Benchmark tool override with registered custom tensorlist ops.
cc_library(
name = "register_list_ops_for_benchmark",
srcs = ["register_list_ops.cc"],
visibility = ["//visibility:public"],
deps = [
":list_ops_lib",
"//tensorflow/lite:mutable_op_resolver",
"//tensorflow/lite:op_resolver",
"//tensorflow/lite/tools/benchmark:register_custom_op",
],
alwayslink = 1,
)
cc_binary(
name = "benchmark_model_with_list_ops",
copts = common_copts,
linkopts = tflite_linkopts() + select({
"//tensorflow:android": [
"-pie", # Android 5.0 and later supports only PIE
"-lm", # some builtin ops, e.g., tanh, need -lm
"-Wl,--rpath=/data/local/tmp/", # Hexagon delegate libraries should be in /data/local/tmp
],
"//conditions:default": [],
}),
tags = ["builder_default_android_arm64"],
deps = [
":register_list_ops_for_benchmark",
"//tensorflow/lite/tools/benchmark:benchmark_model_main",
],
)