618 lines
16 KiB
Python
618 lines
16 KiB
Python
load("@flatbuffers//:build_defs.bzl", "flatbuffer_cc_library")
|
|
load(
|
|
"//tensorflow/core/platform:build_config_root.bzl",
|
|
"tf_gpu_tests_tags",
|
|
)
|
|
|
|
package(
|
|
default_visibility = ["//visibility:public"],
|
|
licenses = ["notice"], # Apache 2.0
|
|
)
|
|
|
|
config_setting(
|
|
name = "opencl_delegate_no_gl",
|
|
values = {"copt": "-DCL_DELEGATE_NO_GL"},
|
|
)
|
|
|
|
cc_library(
|
|
name = "api",
|
|
srcs = ["api.cc"],
|
|
hdrs = ["api.h"],
|
|
deps = select({
|
|
":opencl_delegate_no_gl": [],
|
|
"//conditions:default": [
|
|
":egl_sync",
|
|
":gl_interop",
|
|
],
|
|
}) + [
|
|
":cl_command_queue",
|
|
":cl_errors",
|
|
":cl_event",
|
|
":environment",
|
|
":inference_context",
|
|
":opencl_wrapper",
|
|
":precision",
|
|
":tensor",
|
|
":tensor_type",
|
|
":tensor_type_util",
|
|
"@com_google_absl//absl/memory",
|
|
"@com_google_absl//absl/types:span",
|
|
"//tensorflow/lite/delegates/gpu:api",
|
|
"//tensorflow/lite/delegates/gpu/cl/kernels:converter",
|
|
"//tensorflow/lite/delegates/gpu/common:data_type",
|
|
"//tensorflow/lite/delegates/gpu/common:model",
|
|
"//tensorflow/lite/delegates/gpu/common:shape",
|
|
"//tensorflow/lite/delegates/gpu/common:status",
|
|
"//tensorflow/lite/delegates/gpu/common:tensor",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "arguments",
|
|
srcs = ["arguments.cc"],
|
|
hdrs = ["arguments.h"],
|
|
deps = [
|
|
":cl_device",
|
|
":gpu_object",
|
|
":opencl_wrapper",
|
|
":serialization_cc_fbs",
|
|
":tensor_type",
|
|
":util",
|
|
"//tensorflow/lite/delegates/gpu/common:access_type",
|
|
"//tensorflow/lite/delegates/gpu/common:data_type",
|
|
"//tensorflow/lite/delegates/gpu/common:status",
|
|
"//tensorflow/lite/delegates/gpu/common:types",
|
|
"//tensorflow/lite/delegates/gpu/common:util",
|
|
"@com_google_absl//absl/strings",
|
|
],
|
|
)
|
|
|
|
cc_test(
|
|
name = "arguments_test",
|
|
srcs = ["arguments_test.cc"],
|
|
linkstatic = True,
|
|
tags = tf_gpu_tests_tags() + [
|
|
"linux",
|
|
"local",
|
|
],
|
|
deps = [
|
|
":arguments",
|
|
":buffer",
|
|
":device_info",
|
|
":gpu_object",
|
|
":tensor",
|
|
":tensor_type",
|
|
"//tensorflow/lite/delegates/gpu/common:data_type",
|
|
"@com_google_absl//absl/strings",
|
|
"@com_google_googletest//:gtest_main",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "buffer",
|
|
srcs = ["buffer.cc"],
|
|
hdrs = ["buffer.h"],
|
|
deps = [
|
|
":cl_command_queue",
|
|
":cl_context",
|
|
":gpu_object",
|
|
":opencl_wrapper",
|
|
":util",
|
|
"//tensorflow/lite/delegates/gpu/common:data_type",
|
|
"//tensorflow/lite/delegates/gpu/common:status",
|
|
"@com_google_absl//absl/strings",
|
|
"@com_google_absl//absl/types:span",
|
|
],
|
|
)
|
|
|
|
cc_test(
|
|
name = "buffer_test",
|
|
srcs = ["buffer_test.cc"],
|
|
linkstatic = True,
|
|
tags = tf_gpu_tests_tags() + [
|
|
"linux",
|
|
"local",
|
|
],
|
|
deps = [
|
|
":buffer",
|
|
":cl_test",
|
|
"//tensorflow/lite/delegates/gpu/common:status",
|
|
"@com_google_googletest//:gtest_main",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "cl_test",
|
|
testonly = 1,
|
|
hdrs = ["cl_test.h"],
|
|
deps = [
|
|
":environment",
|
|
":opencl_wrapper",
|
|
"@com_google_googletest//:gtest",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "cl_command_queue",
|
|
srcs = ["cl_command_queue.cc"],
|
|
hdrs = ["cl_command_queue.h"],
|
|
deps = [
|
|
":cl_context",
|
|
":cl_device",
|
|
":cl_event",
|
|
":cl_kernel",
|
|
":opencl_wrapper",
|
|
":util",
|
|
"//tensorflow/lite/delegates/gpu/common:status",
|
|
"//tensorflow/lite/delegates/gpu/common:types",
|
|
"@com_google_absl//absl/strings",
|
|
"@com_google_absl//absl/time",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "cl_context",
|
|
srcs = ["cl_context.cc"],
|
|
hdrs = ["cl_context.h"],
|
|
deps = [
|
|
":cl_device",
|
|
":cl_image_format",
|
|
":opencl_wrapper",
|
|
":util",
|
|
"//tensorflow/lite/delegates/gpu/common:data_type",
|
|
"//tensorflow/lite/delegates/gpu/common:status",
|
|
"@com_google_absl//absl/strings",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "cl_device",
|
|
srcs = ["cl_device.cc"],
|
|
hdrs = ["cl_device.h"],
|
|
deps = [
|
|
":device_info",
|
|
":opencl_wrapper",
|
|
":util",
|
|
"//tensorflow/lite/delegates/gpu/common:status",
|
|
"//tensorflow/lite/delegates/gpu/common:types",
|
|
"@com_google_absl//absl/strings",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "cl_errors",
|
|
hdrs = ["cl_errors.h"],
|
|
deps = [
|
|
":util",
|
|
"//tensorflow/lite/delegates/gpu/common:status",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "cl_event",
|
|
srcs = ["cl_event.cc"],
|
|
hdrs = ["cl_event.h"],
|
|
deps = [
|
|
":opencl_wrapper",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "cl_image_format",
|
|
srcs = ["cl_image_format.cc"],
|
|
hdrs = ["cl_image_format.h"],
|
|
deps = [
|
|
":opencl_wrapper",
|
|
"//tensorflow/lite/delegates/gpu/common:data_type",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "cl_kernel",
|
|
srcs = ["cl_kernel.cc"],
|
|
hdrs = ["cl_kernel.h"],
|
|
deps = [
|
|
":cl_context",
|
|
":cl_device",
|
|
":cl_program",
|
|
":opencl_wrapper",
|
|
":util",
|
|
"//tensorflow/lite/delegates/gpu/common:status",
|
|
"@com_google_absl//absl/strings",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "cl_memory",
|
|
srcs = ["cl_memory.cc"],
|
|
hdrs = ["cl_memory.h"],
|
|
deps = [
|
|
":opencl_wrapper",
|
|
"//tensorflow/lite/delegates/gpu/common:access_type",
|
|
"//tensorflow/lite/delegates/gpu/common:status",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "cl_program",
|
|
srcs = ["cl_program.cc"],
|
|
hdrs = ["cl_program.h"],
|
|
deps = [
|
|
":cl_context",
|
|
":cl_device",
|
|
":opencl_wrapper",
|
|
":util",
|
|
"//tensorflow/lite/delegates/gpu/common:status",
|
|
"@com_google_absl//absl/strings",
|
|
"@com_google_absl//absl/types:span",
|
|
],
|
|
)
|
|
|
|
flatbuffer_cc_library(
|
|
name = "compiled_program_cache_cc_fbs",
|
|
srcs = ["compiled_program_cache.fbs"],
|
|
flatc_args = [
|
|
"--scoped-enums",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "device_info",
|
|
srcs = ["device_info.cc"],
|
|
hdrs = ["device_info.h"],
|
|
deps = [
|
|
"//tensorflow/lite/delegates/gpu/common:data_type",
|
|
"@com_google_absl//absl/strings",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "egl_sync",
|
|
srcs = ["egl_sync.cc"],
|
|
hdrs = ["egl_sync.h"],
|
|
defines = [
|
|
"EGL_EGLEXT_PROTOTYPES",
|
|
],
|
|
deps = [
|
|
"//tensorflow/lite/delegates/gpu/common:status",
|
|
"//tensorflow/lite/delegates/gpu/gl:gl_call",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "environment",
|
|
srcs = ["environment.cc"],
|
|
hdrs = ["environment.h"],
|
|
deps = [
|
|
":cl_command_queue",
|
|
":cl_context",
|
|
":cl_device",
|
|
":device_info",
|
|
":precision",
|
|
":program_cache",
|
|
":tensor",
|
|
":tensor_type",
|
|
":util",
|
|
"//tensorflow/lite/delegates/gpu/common:data_type",
|
|
"//tensorflow/lite/delegates/gpu/common:shape",
|
|
"//tensorflow/lite/delegates/gpu/common:status",
|
|
"//tensorflow/lite/delegates/gpu/common:tensor",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "gl_interop",
|
|
srcs = ["gl_interop.cc"],
|
|
hdrs = ["gl_interop.h"],
|
|
deps = [
|
|
":cl_command_queue",
|
|
":cl_context",
|
|
":cl_device",
|
|
":cl_errors",
|
|
":cl_event",
|
|
":cl_memory",
|
|
":egl_sync",
|
|
":environment",
|
|
":opencl_wrapper",
|
|
"//tensorflow/lite/delegates/gpu:spi",
|
|
"//tensorflow/lite/delegates/gpu/common:access_type",
|
|
"//tensorflow/lite/delegates/gpu/common:status",
|
|
"//tensorflow/lite/delegates/gpu/gl:gl_call",
|
|
"//tensorflow/lite/delegates/gpu/gl:gl_sync",
|
|
"//tensorflow/lite/delegates/gpu/gl:portable",
|
|
"@com_google_absl//absl/strings",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "gpu_api_delegate",
|
|
srcs = ["gpu_api_delegate.cc"],
|
|
hdrs = ["gpu_api_delegate.h"],
|
|
linkopts = select({
|
|
"//tensorflow:android": [
|
|
"-lEGL",
|
|
"-lGLESv3",
|
|
],
|
|
"//conditions:default": [],
|
|
}),
|
|
deps = [
|
|
":api",
|
|
":opencl_wrapper",
|
|
":tensor_type_util",
|
|
"//tensorflow/lite:kernel_api",
|
|
"//tensorflow/lite/c:common",
|
|
"//tensorflow/lite/delegates/gpu:api",
|
|
"//tensorflow/lite/delegates/gpu:delegate",
|
|
"//tensorflow/lite/delegates/gpu/common:model",
|
|
"//tensorflow/lite/delegates/gpu/common:model_builder",
|
|
"//tensorflow/lite/delegates/gpu/common:model_transformer",
|
|
"//tensorflow/lite/delegates/gpu/common:status",
|
|
"//tensorflow/lite/delegates/gpu/common/transformations:model_transformations",
|
|
"@com_google_absl//absl/types:span",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "gpu_object",
|
|
srcs = ["gpu_object.cc"],
|
|
hdrs = ["gpu_object.h"],
|
|
deps = [
|
|
":cl_context",
|
|
":opencl_wrapper",
|
|
":serialization_cc_fbs",
|
|
"//tensorflow/lite/delegates/gpu/common:access_type",
|
|
"//tensorflow/lite/delegates/gpu/common:data_type",
|
|
"//tensorflow/lite/delegates/gpu/common:status",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "inference_context",
|
|
srcs = [
|
|
"inference_context.cc",
|
|
"serialization.cc",
|
|
],
|
|
hdrs = [
|
|
"inference_context.h",
|
|
"serialization.h",
|
|
],
|
|
deps = [
|
|
":arguments",
|
|
":buffer",
|
|
":cl_command_queue",
|
|
":cl_context",
|
|
":cl_device",
|
|
":environment",
|
|
":gpu_object",
|
|
":linear_storage",
|
|
":model_hints",
|
|
":opencl_wrapper",
|
|
":precision",
|
|
":serialization_cc_fbs",
|
|
":storage_type_util",
|
|
":tensor_type",
|
|
":texture2d",
|
|
"//tensorflow/lite/delegates/gpu/cl/kernels:gpu_operation",
|
|
"//tensorflow/lite/delegates/gpu/cl/selectors:operation_selector",
|
|
"//tensorflow/lite/delegates/gpu/cl/selectors:special_selector",
|
|
"//tensorflow/lite/delegates/gpu/common:data_type",
|
|
"//tensorflow/lite/delegates/gpu/common:memory_management",
|
|
"//tensorflow/lite/delegates/gpu/common:model",
|
|
"//tensorflow/lite/delegates/gpu/common:model_transformer",
|
|
"//tensorflow/lite/delegates/gpu/common:operations",
|
|
"//tensorflow/lite/delegates/gpu/common:shape",
|
|
"//tensorflow/lite/delegates/gpu/common:status",
|
|
"//tensorflow/lite/delegates/gpu/common:tensor",
|
|
"//tensorflow/lite/delegates/gpu/common:types",
|
|
"//tensorflow/lite/delegates/gpu/common:util",
|
|
"//tensorflow/lite/delegates/gpu/common/transformations:add_bias",
|
|
"//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",
|
|
"@com_google_absl//absl/types:span",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "linear_storage",
|
|
srcs = ["linear_storage.cc"],
|
|
hdrs = ["linear_storage.h"],
|
|
deps = [
|
|
":gpu_object",
|
|
":opencl_wrapper",
|
|
":tensor_type",
|
|
":util",
|
|
"//tensorflow/lite/delegates/gpu/common:data_type",
|
|
"//tensorflow/lite/delegates/gpu/common:status",
|
|
"//tensorflow/lite/delegates/gpu/common:types",
|
|
"@com_google_absl//absl/strings",
|
|
"@com_google_absl//absl/types:span",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "model_hints",
|
|
hdrs = ["model_hints.h"],
|
|
)
|
|
|
|
cc_library(
|
|
name = "opencl_wrapper",
|
|
srcs = ["opencl_wrapper.cc"],
|
|
hdrs = ["opencl_wrapper.h"],
|
|
linkopts = select({
|
|
"//tensorflow:android": [
|
|
"-ldl", # opencl_wrapper calls dlopen()
|
|
"-lm",
|
|
],
|
|
"//conditions:default": ["-ldl"], # opencl_wrapper calls dlopen()
|
|
}),
|
|
deps = [
|
|
"//tensorflow/lite/delegates/gpu/common:status",
|
|
"@com_google_absl//absl/strings",
|
|
"@opencl_headers",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "precision",
|
|
srcs = ["precision.cc"],
|
|
hdrs = ["precision.h"],
|
|
deps = [
|
|
"//tensorflow/lite/delegates/gpu/common:data_type",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "program_cache",
|
|
srcs = ["program_cache.cc"],
|
|
hdrs = ["program_cache.h"],
|
|
deps = [
|
|
":cl_context",
|
|
":cl_device",
|
|
":cl_kernel",
|
|
":cl_program",
|
|
":compiled_program_cache_cc_fbs",
|
|
":util",
|
|
"//tensorflow/lite/delegates/gpu/common:status",
|
|
"@com_google_absl//absl/container:flat_hash_map",
|
|
"@com_google_absl//absl/types:span",
|
|
"@farmhash_archive//:farmhash",
|
|
"@flatbuffers",
|
|
],
|
|
)
|
|
|
|
flatbuffer_cc_library(
|
|
name = "serialization_cc_fbs",
|
|
srcs = ["serialization.fbs"],
|
|
flatc_args = [
|
|
"--scoped-enums",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "storage_type_util",
|
|
srcs = ["storage_type_util.cc"],
|
|
hdrs = ["storage_type_util.h"],
|
|
deps = [
|
|
":device_info",
|
|
":tensor_type",
|
|
"//tensorflow/lite/delegates/gpu/common:data_type",
|
|
"//tensorflow/lite/delegates/gpu/common:shape",
|
|
"//tensorflow/lite/delegates/gpu/common:util",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "tensor",
|
|
srcs = ["tensor.cc"],
|
|
hdrs = ["tensor.h"],
|
|
deps = [
|
|
":buffer",
|
|
":cl_command_queue",
|
|
":cl_context",
|
|
":cl_device",
|
|
":cl_image_format",
|
|
":cl_memory",
|
|
":gpu_object",
|
|
":tensor_type",
|
|
":util",
|
|
"//tensorflow/lite/delegates/gpu/common:data_type",
|
|
"//tensorflow/lite/delegates/gpu/common:shape",
|
|
"//tensorflow/lite/delegates/gpu/common:status",
|
|
"//tensorflow/lite/delegates/gpu/common:tensor",
|
|
"//tensorflow/lite/delegates/gpu/common:types",
|
|
"@com_google_absl//absl/strings",
|
|
"@com_google_absl//absl/types:span",
|
|
],
|
|
)
|
|
|
|
cc_test(
|
|
name = "tensor_test",
|
|
srcs = ["tensor_test.cc"],
|
|
linkstatic = True,
|
|
tags = tf_gpu_tests_tags() + [
|
|
"linux",
|
|
"local",
|
|
],
|
|
deps = [
|
|
":cl_test",
|
|
":tensor",
|
|
":tensor_type",
|
|
"//tensorflow/lite/delegates/gpu/common:data_type",
|
|
"//tensorflow/lite/delegates/gpu/common:shape",
|
|
"//tensorflow/lite/delegates/gpu/common:status",
|
|
"@com_google_googletest//:gtest_main",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "tensor_type",
|
|
srcs = ["tensor_type.cc"],
|
|
hdrs = ["tensor_type.h"],
|
|
deps = [
|
|
":gpu_object",
|
|
"//tensorflow/lite/delegates/gpu/common:data_type",
|
|
"//tensorflow/lite/delegates/gpu/common:shape",
|
|
"@com_google_absl//absl/strings",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "tensor_type_util",
|
|
srcs = ["tensor_type_util.cc"],
|
|
hdrs = ["tensor_type_util.h"],
|
|
deps = [
|
|
":tensor_type",
|
|
"//tensorflow/lite/delegates/gpu:api",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "texture2d",
|
|
srcs = ["texture2d.cc"],
|
|
hdrs = ["texture2d.h"],
|
|
deps = [
|
|
":cl_command_queue",
|
|
":cl_context",
|
|
":gpu_object",
|
|
":opencl_wrapper",
|
|
":tensor_type",
|
|
":util",
|
|
"//tensorflow/lite/delegates/gpu/common:data_type",
|
|
"//tensorflow/lite/delegates/gpu/common:status",
|
|
"@com_google_absl//absl/strings",
|
|
"@com_google_absl//absl/types:span",
|
|
],
|
|
)
|
|
|
|
cc_test(
|
|
name = "texture2d_test",
|
|
srcs = ["texture2d_test.cc"],
|
|
linkstatic = True,
|
|
tags = tf_gpu_tests_tags() + [
|
|
"linux",
|
|
"local",
|
|
],
|
|
deps = [
|
|
":cl_test",
|
|
":texture2d",
|
|
"//tensorflow/lite/delegates/gpu/common:status",
|
|
"@com_google_googletest//:gtest_main",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "util",
|
|
srcs = ["util.cc"],
|
|
hdrs = ["util.h"],
|
|
deps = [
|
|
":opencl_wrapper",
|
|
"//tensorflow/lite/delegates/gpu/common:data_type",
|
|
"//tensorflow/lite/delegates/gpu/common:status",
|
|
"//tensorflow/lite/delegates/gpu/common:tensor",
|
|
"//tensorflow/lite/delegates/gpu/common:util",
|
|
"@com_google_absl//absl/strings",
|
|
"@com_google_absl//absl/types:span",
|
|
],
|
|
)
|