Skip to content

Commit 75caac3

Browse files
terryheocopybara-github
authored andcommitted
Introduce internal version of C++ Model, OpOptions API
Model API can be used by both internally (runtime) and externally. Introduced the internal version of C++ Model, OpOptions API to resolve a duplicated symbol issue. Also update litert_compiled_model_gpu_test into static / dynamic versions. LiteRT-PiperOrigin-RevId: 801037164
1 parent f754cd9 commit 75caac3

File tree

14 files changed

+242
-167
lines changed

14 files changed

+242
-167
lines changed

litert/BUILD

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ package_group(
4444
# copybara:uncomment "//third_party/odml/infra/ml_drift_delegate/...",
4545
# copybara:uncomment "//third_party/odml/litert_lm/...",
4646
"//litert/cc/...",
47+
"//litert/compiler/plugin/...",
4748
"//litert/google/...",
4849
"//litert/integration_test/...",
4950
"//litert/kotlin/...",
@@ -86,6 +87,7 @@ package_group(
8687
# TODO(b/424778444): Internal runtime should not call cc/internal. Remove below targets.
8788
"//litert/runtime/...",
8889
"//litert/compiler/...",
90+
"//litert/core/model/...",
8991
"//litert/tools/...",
9092
],
9193
)

litert/cc/BUILD

Lines changed: 102 additions & 112 deletions
Original file line numberDiff line numberDiff line change
@@ -111,56 +111,6 @@ cc_library(
111111
visibility = ["//litert:litert_public"],
112112
)
113113

114-
cc_library(
115-
name = "litert_model",
116-
srcs = ["litert_model.cc"],
117-
hdrs = ["litert_model.h"],
118-
visibility = [
119-
# copybara:uncomment_begin(oss litert_lm)
120-
# "//litert:litert_public",
121-
# copybara:uncomment_end_and_comment_begin
122-
"//visibility:public",
123-
# copybara:comment_end
124-
],
125-
deps = [
126-
":litert_buffer_ref",
127-
":litert_consts",
128-
":litert_detail",
129-
":litert_element_type",
130-
":litert_expected",
131-
":litert_handle",
132-
":litert_layout",
133-
":litert_macros",
134-
"//litert/c:litert_common",
135-
"//litert/c:litert_layout",
136-
"//litert/c:litert_model",
137-
"//litert/c:litert_op_code",
138-
"@com_google_absl//absl/container:inlined_vector",
139-
"@com_google_absl//absl/strings:string_view",
140-
"@com_google_absl//absl/types:span",
141-
],
142-
)
143-
144-
cc_test(
145-
name = "litert_model_test",
146-
srcs = ["litert_model_test.cc"],
147-
data = ["//litert/test:mlir_test_data"],
148-
deps = [
149-
":litert_element_type",
150-
":litert_layout",
151-
":litert_model",
152-
"//litert/c:litert_common",
153-
"//litert/c:litert_layout",
154-
"//litert/c:litert_model",
155-
"//litert/c:litert_op_code",
156-
"//litert/core/model",
157-
"//litert/test:common",
158-
"@com_google_absl//absl/strings:string_view",
159-
"@com_google_absl//absl/types:span",
160-
"@com_google_googletest//:gtest_main",
161-
],
162-
)
163-
164114
cc_library(
165115
name = "litert_handle",
166116
hdrs = ["litert_handle.h"],
@@ -417,47 +367,6 @@ cc_library(
417367
],
418368
)
419369

420-
cc_library(
421-
name = "litert_op_options",
422-
srcs = ["litert_op_options.cc"],
423-
hdrs = ["litert_op_options.h"],
424-
visibility = ["//litert:litert_public"],
425-
deps = [
426-
":litert_expected",
427-
":litert_macros",
428-
"//litert/c:litert_common",
429-
"//litert/c:litert_model",
430-
"//litert/c:litert_model_types",
431-
"//litert/c:litert_op_code",
432-
"//litert/c:litert_op_options",
433-
"@com_google_absl//absl/strings:string_view",
434-
"@flatbuffers//:runtime_cc",
435-
],
436-
)
437-
438-
cc_test(
439-
name = "litert_op_options_test",
440-
srcs = ["litert_op_options_test.cc"],
441-
data = [
442-
"//litert/test:mlir_test_data",
443-
"//litert/test:tflite_test_data",
444-
],
445-
deps = [
446-
":litert_buffer_ref",
447-
":litert_expected",
448-
":litert_op_options",
449-
"//litert/c:litert_common",
450-
"//litert/c:litert_op_code",
451-
"//litert/core/model",
452-
"//litert/core/model:buffer_manager",
453-
"//litert/core/util:flatbuffer_tools",
454-
"//litert/test:common",
455-
"//tflite/schema:schema_fbs",
456-
"@com_google_absl//absl/strings:string_view",
457-
"@com_google_googletest//:gtest_main",
458-
],
459-
)
460-
461370
cc_library(
462371
name = "litert_shared_library",
463372
srcs = ["litert_shared_library.cc"],
@@ -634,10 +543,12 @@ cc_library(
634543
### LiteRT C++ APIs which will use libLiteRtRuntimeCApi.so.
635544
# - litert::Environment
636545
# - litert::Event
546+
# - litert::Model
637547
# - litert::TensorBuffer
638548
# - litert::TensorBufferRequirements
639549
# - litert::CompiledModel
640550
# - litert::Options
551+
# - litert::OpOptions
641552
# - litert::CustomOpKernel
642553
# - litert::DispatchDelegate
643554
# - litert::ExternalLiteRtBufferContext
@@ -660,6 +571,7 @@ LITERT_C_API_DEPS = [
660571
"//litert/c:litert_profiler_event",
661572
"//litert/c:litert_opaque_options",
662573
"//litert/c:litert_options",
574+
"//litert/c:litert_op_code",
663575
"//litert/c:litert_profiler",
664576
"//litert/c:litert_custom_tensor_buffer",
665577
"//litert/c:litert_tensor_buffer",
@@ -772,6 +684,102 @@ litert_device_exec(
772684
target = ":litert_event_test",
773685
)
774686

687+
cc_library(
688+
name = "litert_model",
689+
srcs = ["litert_model.cc"],
690+
hdrs = ["litert_model.h"],
691+
visibility = [
692+
# copybara:uncomment_begin(oss litert_lm)
693+
# "//litert:litert_public",
694+
# copybara:uncomment_end_and_comment_begin
695+
"//visibility:public",
696+
# copybara:comment_end
697+
],
698+
deps = [
699+
":litert_buffer_ref",
700+
":litert_consts",
701+
":litert_detail",
702+
":litert_element_type",
703+
":litert_expected",
704+
":litert_handle",
705+
":litert_layout",
706+
":litert_macros",
707+
"@com_google_absl//absl/container:inlined_vector",
708+
"@com_google_absl//absl/strings:string_view",
709+
"@com_google_absl//absl/types:span",
710+
] + select({
711+
"@org_tensorflow//tensorflow:emscripten": LITERT_C_API_DEPS,
712+
"@org_tensorflow//tensorflow:macos": LITERT_C_API_DEPS,
713+
"@org_tensorflow//tensorflow:ios": LITERT_C_API_DEPS,
714+
"//conditions:default": [
715+
"//litert/c:litert_runtime_c_api_shared_lib",
716+
],
717+
}),
718+
)
719+
720+
cc_test(
721+
name = "litert_model_test",
722+
srcs = ["litert_model_test.cc"],
723+
data = ["//litert/test:mlir_test_data"],
724+
deps = [
725+
":litert_element_type",
726+
":litert_layout",
727+
":litert_model",
728+
"//litert/c:litert_common",
729+
"//litert/c:litert_layout",
730+
"//litert/c:litert_model",
731+
"//litert/c:litert_op_code",
732+
"//litert/core/model",
733+
"//litert/test:common",
734+
"@com_google_absl//absl/strings:string_view",
735+
"@com_google_absl//absl/types:span",
736+
"@com_google_googletest//:gtest_main",
737+
],
738+
)
739+
740+
cc_library(
741+
name = "litert_op_options",
742+
srcs = ["litert_op_options.cc"],
743+
hdrs = ["litert_op_options.h"],
744+
visibility = ["//litert:litert_public"],
745+
deps = [
746+
":litert_expected",
747+
":litert_macros",
748+
"@com_google_absl//absl/strings:string_view",
749+
"@flatbuffers//:runtime_cc",
750+
] + select({
751+
"@org_tensorflow//tensorflow:emscripten": LITERT_C_API_DEPS,
752+
"@org_tensorflow//tensorflow:macos": LITERT_C_API_DEPS,
753+
"@org_tensorflow//tensorflow:ios": LITERT_C_API_DEPS,
754+
"//conditions:default": [
755+
"//litert/c:litert_runtime_c_api_shared_lib",
756+
],
757+
}),
758+
)
759+
760+
cc_test(
761+
name = "litert_op_options_test",
762+
srcs = ["litert_op_options_test.cc"],
763+
data = [
764+
"//litert/test:mlir_test_data",
765+
"//litert/test:tflite_test_data",
766+
],
767+
deps = [
768+
":litert_buffer_ref",
769+
":litert_expected",
770+
":litert_op_options",
771+
"//litert/c:litert_common",
772+
"//litert/c:litert_op_code",
773+
"//litert/core/model",
774+
"//litert/core/model:buffer_manager",
775+
"//litert/core/util:flatbuffer_tools",
776+
"//litert/test:common",
777+
"//tflite/schema:schema_fbs",
778+
"@com_google_absl//absl/strings:string_view",
779+
"@com_google_googletest//:gtest_main",
780+
],
781+
)
782+
775783
cc_library(
776784
name = "litert_tensor_buffer",
777785
srcs = ["litert_tensor_buffer.cc"],
@@ -1067,22 +1075,15 @@ litert_device_test(
10671075
# ":litert_platform_support",
10681076
# ":litert_profiler",
10691077
# ":litert_tensor_buffer",
1070-
# "@com_google_googletest//:gtest_main",
1078+
# "@com_google_googletest//:gtest_main_no_heapcheck", # To workaround the memory leak in Nvidia's driver
10711079
# "@com_google_absl//absl/container:flat_hash_map",
1072-
# "@com_google_absl//absl/debugging:leak_check",
10731080
# "@com_google_absl//absl/log:absl_log",
10741081
# "@com_google_absl//absl/strings:string_view",
10751082
# "@com_google_absl//absl/types:span",
1076-
# "//litert/c:litert_common",
1077-
# "//litert/c:litert_environment_options",
1078-
# "//litert/c:litert_event",
1079-
# "//litert/c:litert_event_type",
1080-
# "//litert/c:litert_profiler_event",
1081-
# "//litert/c:litert_tensor_buffer",
1082-
# "//litert/c:litert_tensor_buffer_types",
1083+
# "//litert/c:litert_runtime_c_api_shared_lib",
10831084
# "//litert/cc/options:litert_gpu_options",
10841085
# "//litert/cc/options:litert_runtime_options",
1085-
# "//litert/runtime/accelerators/gpu:ml_drift_cl_accelerator", # buildcleaner: keep
1086+
# "//litert/runtime/accelerators/gpu:ml_drift_cl_accelerator_shared_lib", # buildcleaner: keep
10861087
# "//litert/test:common",
10871088
# "//litert/test:matchers",
10881089
# "//litert/test:simple_model",
@@ -1098,17 +1099,6 @@ litert_device_test(
10981099
# }),
10991100
# )
11001101
#
1101-
# litert_device_exec(
1102-
# name = "litert_compiled_model_gpu_device_test",
1103-
# backend_id = "gpu",
1104-
# data = [
1105-
# "//litert/test:testdata/constant_output_tensor.tflite",
1106-
# "//litert/test:testdata/simple_add3d_cst_int32.tflite",
1107-
# "//litert/test:testdata/simple_cast_and_add_op.tflite",
1108-
# "//litert/test:testdata/simple_model.tflite",
1109-
# ],
1110-
# target = ":litert_compiled_model_gpu_test",
1111-
# )
11121102
# copybara:uncomment_end
11131103

11141104
cc_library(

0 commit comments

Comments
 (0)