STT-tensorflow/tensorflow/lite/micro/BUILD
Nick Kreeger 401dad16ea Add default values in MicroInterpreter constructors.
The MicroInterpreter uses a few values to check state - there is a scenario where these values are not always defaulted to internal states. This can cause an exception when the interpreter tries to run. To ensure things work properly, default values.

I also updated the MicroInterpreter test to use the new RecordingMicroAllocator. Two new tests have been added:

1.) Ensure that the interpreter fails to allocate with too small an arena at Invoke() (insured by recording allocation APIs)

2.) Ensure that the interpreter does not allocate anything at construction time - only at Invoke() (or manually with AllocateTensors()).

This will give us better coverage when we add more tenant use cases.

PiperOrigin-RevId: 316877994
Change-Id: I0582080a1fb649276076371be991a13392324801
2020-06-17 06:46:18 -07:00

399 lines
8.9 KiB
Python

load(
"//tensorflow/lite/micro/testing:micro_test.bzl",
"tflite_micro_cc_test",
)
load(
"//tensorflow/lite/micro:build_def.bzl",
"cc_library",
"micro_copts",
)
package(
default_visibility = ["//visibility:public"],
licenses = ["notice"], # Apache 2.0
)
cc_library(
name = "micro_compatibility",
hdrs = [
"compatibility.h",
],
build_for_embedded = True,
copts = micro_copts(),
)
cc_library(
name = "micro_framework",
srcs = [
"memory_helpers.cc",
"micro_allocator.cc",
"micro_interpreter.cc",
"micro_optional_debug_tools.cc",
"simple_memory_allocator.cc",
],
hdrs = [
"memory_helpers.h",
"micro_allocator.h",
"micro_interpreter.h",
"micro_optional_debug_tools.h",
"simple_memory_allocator.h",
],
build_for_embedded = True,
copts = micro_copts(),
deps = [
":micro_compatibility",
":op_resolvers",
"//tensorflow/lite:type_to_tflitetype",
"//tensorflow/lite/c:common",
"//tensorflow/lite/core/api",
"//tensorflow/lite/kernels/internal:compatibility",
"//tensorflow/lite/kernels/internal:tensor",
"//tensorflow/lite/micro:micro_profiler",
"//tensorflow/lite/micro/memory_planner",
"//tensorflow/lite/micro/memory_planner:greedy_memory_planner",
"//tensorflow/lite/schema:schema_fbs",
"@flatbuffers//:runtime_cc",
],
)
cc_library(
name = "test_helpers",
srcs = [
"test_helpers.cc",
],
hdrs = [
"test_helpers.h",
],
build_for_embedded = True,
copts = micro_copts(),
deps = [
":micro_utils",
":op_resolvers",
"//tensorflow/lite/c:common",
"//tensorflow/lite/core/api",
"//tensorflow/lite/kernels:kernel_util",
"//tensorflow/lite/kernels/internal:compatibility",
"//tensorflow/lite/kernels/internal:tensor",
"//tensorflow/lite/schema:schema_fbs",
"@flatbuffers//:runtime_cc",
],
)
cc_library(
name = "op_resolvers",
srcs = [
"all_ops_resolver.cc",
],
hdrs = [
"all_ops_resolver.h",
"micro_mutable_op_resolver.h",
"micro_op_resolver.h",
],
build_for_embedded = True,
copts = micro_copts(),
deps = [
":micro_compatibility",
"//tensorflow/lite/c:common",
"//tensorflow/lite/core/api",
"//tensorflow/lite/kernels:op_macros",
"//tensorflow/lite/kernels/internal:compatibility",
"//tensorflow/lite/micro/kernels:micro_ops",
"//tensorflow/lite/schema:schema_fbs",
],
)
# TODO(b/144176795): This target should really be handled differently so that we
# do not have a fork in the build graph. The bug has some initial ideas.
cc_library(
name = "portable_optimized_op_resolver",
srcs = [
"all_ops_resolver.cc",
"micro_mutable_op_resolver.h",
"micro_op_resolver.h",
],
hdrs = [
"all_ops_resolver.h",
],
copts = micro_copts(),
deps = [
":micro_compatibility",
"//tensorflow/lite/c:common",
"//tensorflow/lite/core/api",
"//tensorflow/lite/kernels:op_macros",
"//tensorflow/lite/kernels/internal:compatibility",
"//tensorflow/lite/micro/kernels:portable_optimized_micro_ops",
"//tensorflow/lite/schema:schema_fbs",
],
)
cc_library(
name = "debug_log",
srcs = [
"debug_log.cc",
],
hdrs = [
"debug_log.h",
],
build_for_embedded = True,
copts = micro_copts(),
)
cc_library(
name = "micro_error_reporter",
srcs = [
"micro_error_reporter.cc",
],
hdrs = [
"micro_error_reporter.h",
],
build_for_embedded = True,
copts = micro_copts(),
deps = [
":debug_log",
":micro_compatibility",
":micro_string",
"//tensorflow/lite/core/api",
],
)
cc_library(
name = "micro_string",
srcs = [
"micro_string.cc",
],
hdrs = [
"micro_string.h",
],
build_for_embedded = True,
copts = micro_copts(),
deps = ["//tensorflow/lite/c:common"],
)
cc_library(
name = "micro_time",
srcs = [
"posix/micro_time.cc",
],
hdrs = [
"micro_time.h",
],
build_for_embedded = True,
copts = micro_copts(),
deps = ["//tensorflow/lite/c:common"],
)
cc_library(
name = "micro_profiler",
srcs = [
"micro_profiler.cc",
],
hdrs = [
"micro_profiler.h",
],
build_for_embedded = True,
copts = micro_copts(),
deps = [
":micro_compatibility",
":micro_time",
"//tensorflow/lite/core/api",
"//tensorflow/lite/kernels/internal:compatibility",
],
)
cc_library(
name = "micro_utils",
srcs = [
"micro_utils.cc",
],
hdrs = [
"micro_utils.h",
],
build_for_embedded = True,
copts = micro_copts(),
deps = [
"//tensorflow/lite/c:common",
"//tensorflow/lite/kernels:op_macros",
],
)
cc_library(
name = "recording_allocators",
srcs = [
"recording_micro_allocator.cc",
"recording_simple_memory_allocator.cc",
],
hdrs = [
"recording_micro_allocator.h",
"recording_micro_interpreter.h",
"recording_simple_memory_allocator.h",
],
build_for_embedded = True,
copts = micro_copts(),
deps = [
":micro_compatibility",
":micro_framework",
"//tensorflow/lite/core/api",
"//tensorflow/lite/kernels/internal:compatibility",
],
)
tflite_micro_cc_test(
name = "micro_error_reporter_test",
srcs = [
"micro_error_reporter_test.cc",
],
deps = [
":micro_error_reporter",
],
)
tflite_micro_cc_test(
name = "micro_mutable_op_resolver_test",
srcs = [
"micro_mutable_op_resolver_test.cc",
],
deps = [
":micro_framework",
":op_resolvers",
"//tensorflow/lite/micro/testing:micro_test",
],
)
tflite_micro_cc_test(
name = "micro_interpreter_test",
srcs = [
"micro_interpreter_test.cc",
],
deps = [
":micro_framework",
":micro_utils",
":op_resolvers",
":recording_allocators",
":test_helpers",
"//tensorflow/lite/core/api",
"//tensorflow/lite/micro/testing:micro_test",
],
)
tflite_micro_cc_test(
name = "simple_memory_allocator_test",
srcs = [
"simple_memory_allocator_test.cc",
],
deps = [
":micro_framework",
":test_helpers",
"//tensorflow/lite/micro/testing:micro_test",
],
)
tflite_micro_cc_test(
name = "recording_simple_memory_allocator_test",
srcs = [
"recording_simple_memory_allocator_test.cc",
],
deps = [
":micro_framework",
":recording_allocators",
":test_helpers",
"//tensorflow/lite/micro/testing:micro_test",
],
)
tflite_micro_cc_test(
name = "micro_allocator_test",
srcs = [
"micro_allocator_test.cc",
],
deps = [
":micro_framework",
":test_helpers",
"//tensorflow/lite/micro/testing:micro_test",
],
)
tflite_micro_cc_test(
name = "recording_micro_allocator_test",
srcs = [
"recording_micro_allocator_test.cc",
],
deps = [
":micro_framework",
":op_resolvers",
":recording_allocators",
":test_helpers",
"//tensorflow/lite/micro/testing:micro_test",
"//tensorflow/lite/micro/testing:test_conv_model",
],
)
tflite_micro_cc_test(
name = "memory_helpers_test",
srcs = [
"memory_helpers_test.cc",
],
deps = [
":micro_framework",
":test_helpers",
"//tensorflow/lite/micro/testing:micro_test",
],
)
tflite_micro_cc_test(
name = "testing_helpers_test",
srcs = [
"testing_helpers_test.cc",
],
deps = [
":micro_framework",
"//tensorflow/lite/micro/testing:micro_test",
],
)
tflite_micro_cc_test(
name = "micro_utils_test",
srcs = [
"micro_utils_test.cc",
],
deps = [
":micro_utils",
"//tensorflow/lite/micro/testing:micro_test",
],
)
tflite_micro_cc_test(
name = "micro_string_test",
srcs = [
"micro_string_test.cc",
],
deps = [
":micro_string",
"//tensorflow/lite/micro/testing:micro_test",
],
)
tflite_micro_cc_test(
name = "micro_time_test",
srcs = [
"micro_time_test.cc",
],
deps = [
":micro_time",
"//tensorflow/lite/micro/testing:micro_test",
],
)
tflite_micro_cc_test(
name = "memory_arena_threshold_test",
srcs = [
"memory_arena_threshold_test.cc",
],
deps = [
":op_resolvers",
":recording_allocators",
"//tensorflow/lite/micro/benchmarks:keyword_scrambled_model_data",
"//tensorflow/lite/micro/testing:micro_test",
"//tensorflow/lite/micro/testing:test_conv_model",
],
)