blob: 598460088366eeaf7f0116c54558f25271c1f99c [file]
# HAL implementation running on the CPU using the IREE bytecode.
package(
default_visibility = ["//visibility:public"],
licenses = ["notice"], # Apache 2.0
)
cc_library(
name = "bytecode_cache",
srcs = ["bytecode_cache.cc"],
hdrs = ["bytecode_cache.h"],
deps = [
":bytecode_executable",
"///base:source_location",
"///base:status",
"///base:tracing",
"///hal:allocator",
"///hal:executable",
"///hal:executable_cache",
"///hal:executable_format",
"///rt",
],
)
cc_library(
name = "bytecode_dispatch",
srcs = [
"bytecode_dispatch.cc",
"bytecode_dispatch_conversion.h",
"bytecode_dispatch_util.cc",
"bytecode_dispatch_util.h",
],
hdrs = ["bytecode_dispatch.h"],
deps = [
":bytecode_kernels",
"///base:logging",
"///base:memory",
"///base:status",
"///hal:allocator",
"///hal:buffer_view",
"///hal:heap_buffer",
"///rt",
"///schemas/bytecode:interpreter_bytecode_v0",
"///vm:bytecode_module",
"///vm:bytecode_reader",
"///vm:bytecode_tables_interpreter",
"///vm:bytecode_util",
"///vm:opcode_info",
"///vm:type",
"@com_google_absl//absl/base:core_headers",
"@com_google_absl//absl/container:inlined_vector",
"@com_google_absl//absl/types:span",
],
)
cc_library(
name = "bytecode_executable",
srcs = ["bytecode_executable.cc"],
hdrs = ["bytecode_executable.h"],
deps = [
":interpreter_module",
"///base:status",
"///hal:allocator",
"///hal:executable",
"///hal:executable_spec",
"///rt",
"///vm:bytecode_tables_interpreter",
"@com_google_absl//absl/types:span",
],
)
cc_library(
name = "bytecode_kernels",
hdrs = ["bytecode_kernels.h"],
textual_hdrs = [
# TODO(benvanik): SIMD variants.
"bytecode_kernels_generic.h",
"bytecode_kernels_ruy.h",
],
deps = [
"///base:shape",
"///base:status",
"///hal:buffer_view",
"@com_google_absl//absl/algorithm",
"@com_google_absl//absl/base:core_headers",
"@com_google_absl//absl/container:flat_hash_set",
"@com_google_absl//absl/container:inlined_vector",
"@com_google_absl//absl/memory",
"@com_google_absl//absl/types:span",
"@org_tensorflow//tensorflow/lite/experimental/ruy",
"@org_tensorflow//tensorflow/lite/experimental/ruy:context",
],
)
cc_test(
name = "bytecode_kernels_test",
srcs = ["bytecode_kernels_test.cc"],
deps = [
":bytecode_kernels",
"///base:memory",
"///base:status_matchers",
"@com_google_googletest//:gtest_main",
],
)
cc_library(
name = "interpreter_command_processor",
srcs = ["interpreter_command_processor.cc"],
hdrs = ["interpreter_command_processor.h"],
deps = [
":bytecode_executable",
"///base:source_location",
"///base:status",
"///base:tracing",
"///hal:buffer_view",
"///hal/host:host_local_command_processor",
"///rt",
"@com_google_absl//absl/container:inlined_vector",
"@com_google_absl//absl/types:span",
],
)
cc_library(
name = "interpreter_device",
srcs = ["interpreter_device.cc"],
hdrs = ["interpreter_device.h"],
deps = [
":bytecode_cache",
":bytecode_kernels",
":interpreter_command_processor",
"///base:memory",
"///base:status",
"///base:tracing",
"///hal:command_buffer_validation",
"///hal:command_queue",
"///hal:device",
"///hal:fence",
"///hal/host:async_command_queue",
"///hal/host:host_event",
"///hal/host:host_local_allocator",
"///hal/host:host_submission_queue",
"///hal/host:inproc_command_buffer",
"///rt",
"@com_google_absl//absl/container:inlined_vector",
"@com_google_absl//absl/memory",
"@com_google_absl//absl/types:span",
],
)
cc_library(
name = "interpreter_driver",
srcs = ["interpreter_driver.cc"],
hdrs = ["interpreter_driver.h"],
deps = [
":interpreter_device",
"///hal:device_info",
"///hal:driver",
],
)
cc_library(
name = "interpreter_driver_module",
srcs = ["interpreter_driver_module.cc"],
deps = [
":interpreter_driver",
"///base:init",
"///base:status",
"///hal:driver_registry",
],
alwayslink = 1,
)
cc_library(
name = "interpreter_module",
srcs = ["interpreter_module.cc"],
hdrs = ["interpreter_module.h"],
deps = [
":bytecode_dispatch",
":bytecode_kernels",
"///base:flatbuffer_util",
"///base:status",
"///base:tracing",
"///hal:allocator",
"///hal:buffer_view",
"///rt",
"///vm:bytecode_module",
"///vm:bytecode_tables_interpreter",
"@com_google_absl//absl/types:span",
],
)