284 lines
8.0 KiB
Python
284 lines
8.0 KiB
Python
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")
|
|
load("//tensorflow/lite/core/shims:cc_library_with_tflite.bzl", "cc_library_with_tflite", "cc_test_with_tflite")
|
|
|
|
package(
|
|
# copybara:uncomment default_applicable_licenses = ["//tensorflow:LICENSE"],
|
|
default_visibility = [
|
|
"//visibility:public",
|
|
],
|
|
licenses = ["notice"],
|
|
)
|
|
|
|
common_copts = tflite_copts() + tflite_copts_warnings()
|
|
|
|
cc_library_with_tflite(
|
|
name = "delegate_provider_hdr",
|
|
hdrs = [
|
|
"delegate_provider.h",
|
|
],
|
|
compatible_with = get_compatible_with_portable(),
|
|
copts = common_copts,
|
|
tflite_deps = [
|
|
"//tensorflow/lite/c:common",
|
|
],
|
|
deps = [
|
|
"//tensorflow/lite/tools:command_line_flags",
|
|
"//tensorflow/lite/tools:logging",
|
|
"//tensorflow/lite/tools:tool_params",
|
|
],
|
|
)
|
|
|
|
cc_library_with_tflite(
|
|
name = "delegate_provider_lib",
|
|
srcs = [
|
|
"delegate_provider.cc",
|
|
],
|
|
copts = common_copts,
|
|
tflite_deps = [
|
|
":delegate_provider_hdr",
|
|
],
|
|
)
|
|
|
|
# A convenient library for all inference execution providers.
|
|
cc_library_with_tflite(
|
|
name = "tflite_execution_providers",
|
|
copts = tflite_copts(),
|
|
tflite_deps = [
|
|
":xnnpack_delegate_provider",
|
|
":delegate_provider_lib",
|
|
],
|
|
deps = [
|
|
":coreml_delegate_provider",
|
|
":default_execution_provider",
|
|
":external_delegate_provider",
|
|
":gpu_delegate_provider",
|
|
":hexagon_delegate_provider",
|
|
":nnapi_delegate_provider",
|
|
":ynnpack_delegate_provider",
|
|
"//tensorflow/lite/tools/delegates/experimental/stable_delegate:delegate_provider",
|
|
],
|
|
alwayslink = 1,
|
|
)
|
|
|
|
cc_library_with_tflite(
|
|
name = "default_execution_provider",
|
|
srcs = ["default_execution_provider.cc"],
|
|
copts = tflite_copts(),
|
|
linkstatic = True,
|
|
tflite_deps = [
|
|
":delegate_provider_hdr",
|
|
],
|
|
visibility = ["//visibility:public"],
|
|
alwayslink = 1,
|
|
)
|
|
|
|
cc_library(
|
|
name = "gpu_delegate_provider",
|
|
srcs = ["gpu_delegate_provider.cc"],
|
|
copts = common_copts + select({
|
|
"//tensorflow:ios": [
|
|
"-xobjective-c++",
|
|
],
|
|
"//tensorflow:macos_arm64": [
|
|
"-xobjective-c++",
|
|
],
|
|
"//conditions:default": [],
|
|
}),
|
|
deps = [
|
|
":delegate_provider_hdr",
|
|
"//tensorflow/lite/tools/evaluation:utils",
|
|
] + select({
|
|
"//tensorflow/lite/delegates/gpu:supports_gpu_delegate": [
|
|
"//tensorflow/lite/delegates/gpu:delegate",
|
|
],
|
|
"//conditions:default": [],
|
|
}) + select({
|
|
"//tensorflow:ios": [
|
|
"//tensorflow/lite/delegates/gpu:metal_delegate",
|
|
],
|
|
"//tensorflow:macos_arm64": [
|
|
"//tensorflow/lite/delegates/gpu:metal_delegate",
|
|
],
|
|
"//conditions:default": [],
|
|
}),
|
|
alwayslink = 1,
|
|
)
|
|
|
|
cc_library(
|
|
name = "nnapi_delegate_provider",
|
|
srcs = select({
|
|
"//tensorflow:windows": [],
|
|
"//conditions:default": ["nnapi_delegate_provider.cc"],
|
|
}),
|
|
copts = common_copts,
|
|
deps = select({
|
|
"//tensorflow:windows": [],
|
|
"//conditions:default": [
|
|
":delegate_provider_hdr",
|
|
"//tensorflow/lite/delegates/nnapi:nnapi_delegate",
|
|
"//tensorflow/lite/nnapi:nnapi_implementation",
|
|
"//tensorflow/lite/nnapi:nnapi_util",
|
|
"//tensorflow/lite/nnapi/sl:nnapi_support_library",
|
|
"//tensorflow/lite/nnapi/sl:nnapi_support_library_headers",
|
|
],
|
|
}),
|
|
alwayslink = 1,
|
|
)
|
|
|
|
cc_library(
|
|
name = "hexagon_delegate_provider",
|
|
srcs = ["hexagon_delegate_provider.cc"],
|
|
copts = common_copts,
|
|
deps = [
|
|
":delegate_provider_hdr",
|
|
"//tensorflow/lite/tools/evaluation:utils",
|
|
] + select({
|
|
"//tensorflow:arm_any": [
|
|
"//tensorflow/lite/delegates/hexagon:hexagon_delegate",
|
|
],
|
|
"//conditions:default": [],
|
|
}),
|
|
alwayslink = 1,
|
|
)
|
|
|
|
cc_library(
|
|
name = "coreml_delegate_provider",
|
|
srcs = ["coreml_delegate_provider.cc"],
|
|
copts = common_copts + select({
|
|
"//tensorflow:ios": [
|
|
"-xobjective-c++",
|
|
],
|
|
"//tensorflow:macos_arm64": [
|
|
"-xobjective-c++",
|
|
],
|
|
"//conditions:default": [],
|
|
}),
|
|
deps = [
|
|
":delegate_provider_hdr",
|
|
"//tensorflow/lite/tools/evaluation:utils",
|
|
] + select({
|
|
"//tensorflow:ios": [
|
|
"//tensorflow/lite/delegates/coreml:coreml_delegate",
|
|
],
|
|
"//tensorflow:macos_arm64": [
|
|
"//tensorflow/lite/delegates/coreml:coreml_delegate",
|
|
],
|
|
"//conditions:default": [],
|
|
}),
|
|
alwayslink = 1,
|
|
)
|
|
|
|
cc_library_with_tflite(
|
|
name = "xnnpack_delegate_provider",
|
|
srcs = ["xnnpack_delegate_provider.cc"],
|
|
copts = tflite_copts(),
|
|
linkstatic = True,
|
|
tflite_deps = [
|
|
":delegate_provider_hdr",
|
|
"//tensorflow/lite/tools/evaluation:utils",
|
|
],
|
|
visibility = ["//visibility:public"],
|
|
deps = [
|
|
"//tensorflow/lite/delegates/xnnpack:xnnpack_delegate",
|
|
"//tensorflow/lite/tools:tool_params",
|
|
],
|
|
alwayslink = 1,
|
|
)
|
|
|
|
cc_library_with_tflite(
|
|
name = "ynnpack_delegate_provider",
|
|
srcs = ["ynnpack_delegate_provider.cc"],
|
|
copts = tflite_copts(),
|
|
linkstatic = True,
|
|
tflite_deps = [
|
|
":delegate_provider_hdr",
|
|
],
|
|
visibility = ["//visibility:public"],
|
|
deps = [
|
|
"//tensorflow/lite/c:c_api_types",
|
|
"//tensorflow/lite/delegates/ynnpack:ynnpack_delegate",
|
|
"//tensorflow/lite/tools:command_line_flags",
|
|
"//tensorflow/lite/tools:tool_params",
|
|
],
|
|
alwayslink = 1,
|
|
)
|
|
|
|
cc_test(
|
|
name = "xnnpack_delegate_provider_test",
|
|
srcs = ["xnnpack_delegate_provider_test.cc"],
|
|
copts = tflite_copts(),
|
|
visibility = ["//visibility:public"],
|
|
deps = [
|
|
":delegate_provider_hdr",
|
|
":xnnpack_delegate_provider",
|
|
"//tensorflow/lite/delegates/xnnpack:xnnpack_delegate",
|
|
"//tensorflow/lite/tools:tool_params",
|
|
"@com_google_googletest//:gtest_main",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "external_delegate_provider",
|
|
srcs = ["external_delegate_provider.cc"],
|
|
copts = tflite_copts(),
|
|
linkopts = select({
|
|
"//tensorflow:windows": [],
|
|
"//conditions:default": ["-ldl"],
|
|
}),
|
|
linkstatic = True,
|
|
visibility = ["//visibility:public"],
|
|
deps = [
|
|
":delegate_provider_hdr",
|
|
"//tensorflow/lite/delegates/external:external_delegate",
|
|
],
|
|
alwayslink = 1,
|
|
)
|
|
|
|
cc_test_with_tflite(
|
|
name = "delegate_provider_lib_test",
|
|
size = "small",
|
|
srcs = ["delegate_provider_test.cc"],
|
|
copts = tflite_copts(),
|
|
# See details in https://github.com/bazelbuild/bazel/issues/11552 to avoid
|
|
# lazy symbol binding failure on macOS.
|
|
linkstatic = select({
|
|
"//tensorflow:macos": True,
|
|
"//conditions:default": False,
|
|
}),
|
|
tflite_deps = [
|
|
":default_execution_provider",
|
|
":delegate_provider_hdr",
|
|
":delegate_provider_lib",
|
|
":xnnpack_delegate_provider",
|
|
"//tensorflow/lite/c:test_util",
|
|
],
|
|
deps = [
|
|
":nnapi_delegate_provider",
|
|
"//tensorflow/lite/delegates/utils/dummy_delegate:dummy_delegate_provider",
|
|
"//tensorflow/lite/tools:tool_params",
|
|
"@com_google_googletest//:gtest_main",
|
|
],
|
|
)
|
|
|
|
# copybara:uncomment_begin(google-only)
|
|
# cc_library(
|
|
# name = "hexagon_ynn_delegate_provider",
|
|
# srcs = ["hexagon_ynn_delegate_provider.cc"],
|
|
# copts = common_copts,
|
|
# deps = [
|
|
# ":delegate_provider_hdr",
|
|
# "//tensorflow/lite/tools:command_line_flags",
|
|
# "//tensorflow/lite/tools:tool_params",
|
|
# ] + select({
|
|
# "//tensorflow:arm_any": [
|
|
# "//tensorflow/lite/delegates/hexagon_ynn:hexagon_ynn_delegate",
|
|
# ],
|
|
# "//conditions:default": [],
|
|
# }),
|
|
# alwayslink = 1,
|
|
# )
|
|
# copybara:uncomment_end
|