552 lines
14 KiB
Python
552 lines
14 KiB
Python
load("@flatbuffers//:build_defs.bzl", "flatbuffer_cc_library")
|
|
load("@rules_cc//cc:cc_library.bzl", "cc_library")
|
|
load("@rules_cc//cc:cc_test.bzl", "cc_test")
|
|
load("//tensorflow:tensorflow.bzl", "workspace_root")
|
|
load("//tensorflow/core/platform:build_config.bzl", "tf_platform_alias")
|
|
|
|
package(
|
|
# copybara:uncomment default_applicable_licenses = ["//tensorflow:LICENSE"],
|
|
default_visibility = ["//visibility:public"],
|
|
licenses = ["notice"],
|
|
)
|
|
|
|
cc_library(
|
|
name = "convert",
|
|
srcs = ["convert.cc"],
|
|
hdrs = ["convert.h"],
|
|
deps = [
|
|
":data_type",
|
|
":shape",
|
|
":status",
|
|
":tensor",
|
|
":types",
|
|
":util",
|
|
"@FP16",
|
|
"@com_google_absl//absl/strings",
|
|
"@com_google_absl//absl/types:span",
|
|
],
|
|
)
|
|
|
|
exports_files(
|
|
[
|
|
"custom_parsers.h",
|
|
"custom_transformations.h",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "access_type",
|
|
hdrs = ["access_type.h"],
|
|
)
|
|
|
|
cc_library(
|
|
name = "gpu_info",
|
|
srcs = ["gpu_info.cc"],
|
|
hdrs = ["gpu_info.h"],
|
|
deps = [
|
|
":data_type",
|
|
"@com_google_absl//absl/container:flat_hash_set",
|
|
"@com_google_absl//absl/status",
|
|
"@com_google_absl//absl/strings",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "gpu_model",
|
|
srcs = ["gpu_model.cc"],
|
|
hdrs = ["gpu_model.h"],
|
|
deps = [
|
|
":model",
|
|
":model_hints",
|
|
":operations",
|
|
":status",
|
|
"//tensorflow/lite/delegates/gpu/common:gpu_model_cc_fbs",
|
|
"//tensorflow/lite/delegates/gpu/common/selectors:operation_selector",
|
|
"//tensorflow/lite/delegates/gpu/common/selectors:special_selector",
|
|
"//tensorflow/lite/delegates/gpu/common/selectors:subgraph",
|
|
"//tensorflow/lite/delegates/gpu/common/task:gpu_operation",
|
|
"//tensorflow/lite/delegates/gpu/common/task:serialization_base",
|
|
"//tensorflow/lite/delegates/gpu/common/transformations:add_bias",
|
|
"//tensorflow/lite/delegates/gpu/common/transformations:global_pooling_to_reduce_op",
|
|
"//tensorflow/lite/delegates/gpu/common/transformations:merge_padding_with",
|
|
"@com_google_absl//absl/container:flat_hash_map",
|
|
"@com_google_absl//absl/container:flat_hash_set",
|
|
],
|
|
)
|
|
|
|
flatbuffer_cc_library(
|
|
name = "gpu_model_cc_fbs",
|
|
srcs = ["gpu_model.fbs"],
|
|
flatc_args = [
|
|
"--scoped-enums",
|
|
"-I " + workspace_root,
|
|
],
|
|
includes = [
|
|
"//tensorflow/lite/delegates/gpu/common/task:serialization_base_cc_fbs_includes",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "gpu_model_test_util",
|
|
testonly = True,
|
|
srcs = ["gpu_model_test_util.cc"],
|
|
hdrs = ["gpu_model_test_util.h"],
|
|
deps = [
|
|
":gpu_model",
|
|
":operations",
|
|
":status",
|
|
"//tensorflow/lite/delegates/gpu/common/task:testing_util",
|
|
"//tensorflow/lite/delegates/gpu/common/tasks:cast",
|
|
"//tensorflow/lite/delegates/gpu/common/tasks:concat_z",
|
|
"//tensorflow/lite/delegates/gpu/common/tasks:conv_generic",
|
|
"//tensorflow/lite/delegates/gpu/common/tasks:elementwise",
|
|
"//tensorflow/lite/delegates/gpu/common/tasks:prelu",
|
|
"//tensorflow/lite/delegates/gpu/common/tasks:reshape",
|
|
"//tensorflow/lite/delegates/gpu/common/tasks:strided_slice",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "kernel_info",
|
|
hdrs = ["kernel_info.h"],
|
|
)
|
|
|
|
cc_library(
|
|
name = "data_type",
|
|
srcs = ["data_type.cc"],
|
|
hdrs = ["data_type.h"],
|
|
deps = [
|
|
"@com_google_absl//absl/strings",
|
|
],
|
|
)
|
|
|
|
cc_test(
|
|
name = "data_type_test",
|
|
srcs = ["data_type_test.cc"],
|
|
deps = [
|
|
":data_type",
|
|
"@com_google_googletest//:gtest_main",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "flops_util",
|
|
srcs = ["flops_util.cc"],
|
|
hdrs = ["flops_util.h"],
|
|
deps = [
|
|
":shape",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "memory_management",
|
|
srcs = [
|
|
"memory_management.cc",
|
|
"memory_management/greedy_by_breadth_assignment.cc",
|
|
"memory_management/greedy_by_size_assignment.cc",
|
|
"memory_management/internal.cc",
|
|
"memory_management/min_cost_flow_assignment.cc",
|
|
"memory_management/types.cc",
|
|
],
|
|
hdrs = [
|
|
"memory_management.h",
|
|
"memory_management/equality_assignment.h",
|
|
"memory_management/greedy_by_breadth_assignment.h",
|
|
"memory_management/greedy_by_size_assignment.h",
|
|
"memory_management/greedy_in_order_assignment.h",
|
|
"memory_management/internal.h",
|
|
"memory_management/min_cost_flow_assignment.h",
|
|
"memory_management/naive_assignment.h",
|
|
"memory_management/types.h",
|
|
],
|
|
deps = [
|
|
":shape",
|
|
":status",
|
|
":types",
|
|
":util",
|
|
"@com_google_absl//absl/container:flat_hash_map",
|
|
"@com_google_absl//absl/memory",
|
|
"@com_google_absl//absl/status",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "model",
|
|
srcs = ["model.cc"],
|
|
hdrs = ["model.h"],
|
|
deps = [
|
|
":shape",
|
|
":status",
|
|
":tensor",
|
|
"@com_google_absl//absl/memory",
|
|
"@com_google_absl//absl/status",
|
|
"@com_google_absl//absl/strings",
|
|
"@com_google_absl//absl/types:any",
|
|
"@com_google_absl//absl/types:optional",
|
|
],
|
|
)
|
|
|
|
cc_test(
|
|
name = "model_test",
|
|
srcs = ["model_test.cc"],
|
|
deps = [
|
|
":model",
|
|
"@com_google_absl//absl/status",
|
|
"@com_google_googletest//:gtest_main",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "lstm_parser",
|
|
srcs = ["lstm_parser.cc"],
|
|
hdrs = ["lstm_parser.h"],
|
|
deps = [
|
|
":data_type",
|
|
":model",
|
|
":model_builder_helper",
|
|
":object_reader",
|
|
":operations",
|
|
":shape",
|
|
":status",
|
|
":tensor",
|
|
"//tensorflow/lite:string",
|
|
"//tensorflow/lite/core/c:common",
|
|
"//tensorflow/lite/kernels:lstm_shared",
|
|
"//tensorflow/lite/kernels/internal:quantization_util",
|
|
"//tensorflow/lite/kernels/internal:tensor",
|
|
"//tensorflow/lite/kernels/internal:tensor_utils",
|
|
"//tensorflow/lite/kernels/internal:types",
|
|
"@com_google_absl//absl/container:flat_hash_map",
|
|
"@com_google_absl//absl/strings",
|
|
"@com_google_absl//absl/types:any",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "model_builder",
|
|
srcs = ["model_builder.cc"],
|
|
hdrs = [
|
|
"model_builder.h",
|
|
"model_builder_internal.h",
|
|
],
|
|
deps = [
|
|
":data_type",
|
|
":lstm_parser",
|
|
":model",
|
|
":model_builder_helper",
|
|
":model_transformer",
|
|
":object_reader",
|
|
":operation_parser",
|
|
":operations",
|
|
":shape",
|
|
":status",
|
|
":tensor",
|
|
"//tensorflow/lite:framework",
|
|
"//tensorflow/lite:kernel_api",
|
|
"//tensorflow/lite:util",
|
|
"//tensorflow/lite/core:framework",
|
|
"//tensorflow/lite/core/api",
|
|
"//tensorflow/lite/core/c:c_api_types",
|
|
"//tensorflow/lite/core/c:common",
|
|
"//tensorflow/lite/delegates:utils",
|
|
"//tensorflow/lite/delegates/gpu/common/transformations:model_transformations",
|
|
"//tensorflow/lite/kernels:kernel_util",
|
|
"//tensorflow/lite/kernels/internal:reference_base",
|
|
"//tensorflow/lite/kernels/internal:tensor",
|
|
"//tensorflow/lite/tools/versioning:gpu_compatibility",
|
|
"@com_google_absl//absl/base:core_headers",
|
|
"@com_google_absl//absl/container:flat_hash_map",
|
|
"@com_google_absl//absl/container:flat_hash_set",
|
|
"@com_google_absl//absl/status",
|
|
"@com_google_absl//absl/strings",
|
|
] + tf_platform_alias("custom_parsers", "//tensorflow/lite/delegates/gpu/common/"),
|
|
)
|
|
|
|
cc_test(
|
|
name = "model_builder_test",
|
|
srcs = ["model_builder_test.cc"],
|
|
deps = [
|
|
":data_type",
|
|
":model_builder",
|
|
":shape",
|
|
":tensor",
|
|
"//tensorflow/lite:framework",
|
|
"//tensorflow/lite:kernel_api",
|
|
"//tensorflow/lite/core/c:common",
|
|
"@com_google_absl//absl/container:flat_hash_set",
|
|
"@com_google_absl//absl/status",
|
|
"@com_google_absl//absl/types:span",
|
|
"@com_google_googletest//:gtest_main",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "model_builder_helper",
|
|
srcs = ["model_builder_helper.cc"],
|
|
hdrs = ["model_builder_helper.h"],
|
|
deps = [
|
|
":data_type",
|
|
":model",
|
|
":operations",
|
|
":shape",
|
|
":status",
|
|
":tensor",
|
|
"//tensorflow/lite:kernel_api",
|
|
"//tensorflow/lite/core/c:common",
|
|
"//tensorflow/lite/kernels:kernel_util",
|
|
"//tensorflow/lite/kernels/internal:reference_base",
|
|
"//tensorflow/lite/kernels/internal:tensor",
|
|
"//tensorflow/lite/kernels/internal:types",
|
|
"@FP16",
|
|
"@com_google_absl//absl/strings",
|
|
],
|
|
)
|
|
|
|
cc_test(
|
|
name = "model_builder_helper_test",
|
|
srcs = ["model_builder_helper_test.cc"],
|
|
deps = [
|
|
":model_builder_helper",
|
|
"//tensorflow/lite/core/c:private_common",
|
|
"@com_google_googletest//:gtest_main",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "model_hints",
|
|
hdrs = ["model_hints.h"],
|
|
)
|
|
|
|
cc_library(
|
|
name = "model_transformer",
|
|
srcs = ["model_transformer.cc"],
|
|
hdrs = ["model_transformer.h"],
|
|
deps = [
|
|
":model",
|
|
"@com_google_absl//absl/container:flat_hash_set",
|
|
"@com_google_absl//absl/strings",
|
|
],
|
|
)
|
|
|
|
# TODO(impjdi): Add unit test for model_transformer.
|
|
|
|
cc_library(
|
|
name = "object_reader",
|
|
srcs = ["object_reader.cc"],
|
|
hdrs = ["object_reader.h"],
|
|
deps = [
|
|
":model",
|
|
":model_builder_helper",
|
|
":status",
|
|
":tensor",
|
|
"//tensorflow/lite/core/c:common",
|
|
"//tensorflow/lite/delegates:utils",
|
|
"//tensorflow/lite/kernels:kernel_util",
|
|
"//tensorflow/lite/kernels/internal/utils:sparsity_format_converter",
|
|
"@FP16",
|
|
"@com_google_absl//absl/container:flat_hash_map",
|
|
"@com_google_absl//absl/strings",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "operations",
|
|
srcs = ["operations.cc"],
|
|
hdrs = ["operations.h"],
|
|
deps = [
|
|
":data_type",
|
|
":shape",
|
|
":status",
|
|
":tensor",
|
|
"@com_google_absl//absl/container:flat_hash_map",
|
|
"@com_google_absl//absl/types:variant",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "precision",
|
|
srcs = ["precision.cc"],
|
|
hdrs = ["precision.h"],
|
|
deps = [
|
|
"//tensorflow/lite/delegates/gpu/common:data_type",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "quantization_util",
|
|
srcs = ["quantization_util.cc"],
|
|
hdrs = ["quantization_util.h"],
|
|
deps = [
|
|
":status",
|
|
"//tensorflow/lite/core/c:common",
|
|
"//tensorflow/lite/kernels/internal:optimized_base",
|
|
"//tensorflow/lite/kernels/internal:tensor",
|
|
"//tensorflow/lite/kernels/internal:types",
|
|
"@com_google_absl//absl/container:flat_hash_map",
|
|
"@com_google_absl//absl/status",
|
|
],
|
|
)
|
|
|
|
cc_test(
|
|
name = "quantization_util_test",
|
|
srcs = ["quantization_util_test.cc"],
|
|
deps = [
|
|
":quantization_util",
|
|
"//tensorflow/lite:array",
|
|
"//tensorflow/lite/core/c:common",
|
|
"@com_google_absl//absl/container:flat_hash_map",
|
|
"@com_google_absl//absl/status",
|
|
"@com_google_googletest//:gtest_main",
|
|
],
|
|
)
|
|
|
|
# TODO(impjdi): Add unit test for operations.
|
|
|
|
cc_library(
|
|
name = "shape",
|
|
srcs = ["shape.cc"],
|
|
hdrs = ["shape.h"],
|
|
deps = ["@com_google_absl//absl/strings"],
|
|
)
|
|
|
|
cc_test(
|
|
name = "shape_test",
|
|
srcs = ["shape_test.cc"],
|
|
deps = [
|
|
":shape",
|
|
"@com_google_googletest//:gtest_main",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "status",
|
|
hdrs = ["status.h"],
|
|
deps = [
|
|
"//tensorflow/lite/delegates/gpu/common/google:status_macros",
|
|
"@com_google_absl//absl/status",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "tensor",
|
|
hdrs = ["tensor.h"],
|
|
deps = [
|
|
":data_type",
|
|
":shape",
|
|
":types",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "types",
|
|
hdrs = ["types.h"],
|
|
deps = [
|
|
"@FP16",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "util",
|
|
hdrs = ["util.h"],
|
|
deps = [
|
|
":types",
|
|
],
|
|
)
|
|
|
|
cc_test(
|
|
name = "memory_management_test",
|
|
srcs = ["memory_management_test.cc"],
|
|
deps = [
|
|
":memory_management",
|
|
":shape",
|
|
":types",
|
|
"@com_google_absl//absl/status",
|
|
"@com_google_googletest//:gtest_main",
|
|
],
|
|
)
|
|
|
|
cc_test(
|
|
name = "memory_management_internal_test",
|
|
srcs = ["memory_management/internal_test.cc"],
|
|
deps = [
|
|
":memory_management",
|
|
"@com_google_googletest//:gtest_main",
|
|
],
|
|
)
|
|
|
|
cc_test(
|
|
name = "memory_management_types_test",
|
|
srcs = ["memory_management/types_test.cc"],
|
|
deps = [
|
|
":memory_management",
|
|
"@com_google_googletest//:gtest_main",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "operation_parser",
|
|
srcs = ["operation_parser.cc"],
|
|
hdrs = ["operation_parser.h"],
|
|
deps = [
|
|
":model",
|
|
":object_reader",
|
|
":operations",
|
|
":shape",
|
|
":status",
|
|
"//tensorflow/lite/core/c:common",
|
|
"@com_google_absl//absl/container:flat_hash_map",
|
|
"@com_google_absl//absl/strings",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "unimplemented_operation_parser",
|
|
hdrs = ["unimplemented_operation_parser.h"],
|
|
deps = [
|
|
":operation_parser",
|
|
":status",
|
|
"@com_google_absl//absl/memory",
|
|
"@com_google_absl//absl/strings",
|
|
"@com_google_absl//absl/types:any",
|
|
],
|
|
)
|
|
|
|
cc_test(
|
|
name = "util_test",
|
|
srcs = ["util_test.cc"],
|
|
deps = [
|
|
":util",
|
|
"@com_google_googletest//:gtest_main",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "winograd_util",
|
|
srcs = ["winograd_util.cc"],
|
|
hdrs = ["winograd_util.h"],
|
|
deps = [
|
|
":data_type",
|
|
":operations",
|
|
":shape",
|
|
":tensor",
|
|
],
|
|
)
|
|
|
|
cc_test(
|
|
name = "winograd_util_test",
|
|
srcs = ["winograd_util_test.cc"],
|
|
deps = [
|
|
":operations",
|
|
":shape",
|
|
":winograd_util",
|
|
"@com_google_googletest//:gtest_main",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "workgroup_selection",
|
|
srcs = ["workgroup_selection.cc"],
|
|
hdrs = ["workgroup_selection.h"],
|
|
deps = [":util"],
|
|
)
|