102 lines
2.9 KiB
Python
102 lines
2.9 KiB
Python
load("@rules_cc//cc:cc_library.bzl", "cc_library")
|
|
load("@rules_cc//cc:cc_test.bzl", "cc_test")
|
|
|
|
# Custom Ops useful for GenAI models.
|
|
load("//tensorflow:tensorflow.default.bzl", "pybind_extension")
|
|
load("//tensorflow/lite:build_def.bzl", "tflite_copts")
|
|
load("//tensorflow/lite:special_rules.bzl", "tflite_portable_test_suite")
|
|
|
|
# copybara:uncomment package(default_applicable_licenses = ["//tensorflow:LICENSE"])
|
|
|
|
cc_library(
|
|
name = "genai_ops",
|
|
srcs = [
|
|
"external_kvcache.cc",
|
|
"genai_ops.cc",
|
|
"kvcache.cc",
|
|
"sdpa.cc",
|
|
],
|
|
hdrs = [
|
|
"genai_ops.h",
|
|
],
|
|
visibility = ["//visibility:public"],
|
|
deps = [
|
|
"//tensorflow/lite:framework",
|
|
"//tensorflow/lite/c:c_api_types",
|
|
"//tensorflow/lite/c:common",
|
|
"//tensorflow/lite/core:subgraph",
|
|
"//tensorflow/lite/core/c:common",
|
|
"//tensorflow/lite/experimental/resource",
|
|
"//tensorflow/lite/experimental/resource:cache_buffer",
|
|
"//tensorflow/lite/kernels:kernel_util",
|
|
"//tensorflow/lite/kernels/internal:common",
|
|
"//tensorflow/lite/kernels/internal:reference_base",
|
|
"//tensorflow/lite/kernels/internal:tensor",
|
|
"//tensorflow/lite/kernels/internal:types",
|
|
"@flatbuffers",
|
|
],
|
|
)
|
|
|
|
cc_test(
|
|
name = "kvcache_test",
|
|
srcs = ["kvcache_test.cc"],
|
|
copts = tflite_copts(),
|
|
deps = [
|
|
":genai_ops",
|
|
"//tensorflow/lite/c:c_api_types",
|
|
"//tensorflow/lite/kernels:test_util",
|
|
"//tensorflow/lite/schema:schema_fbs",
|
|
"@com_google_googletest//:gtest_main",
|
|
],
|
|
)
|
|
|
|
cc_test(
|
|
name = "external_kvcache_test",
|
|
srcs = ["external_kvcache_test.cc"],
|
|
copts = tflite_copts(),
|
|
deps = [
|
|
":genai_ops",
|
|
"//tensorflow/lite:framework",
|
|
"//tensorflow/lite:util",
|
|
"//tensorflow/lite/c:c_api_types",
|
|
"//tensorflow/lite/c:common",
|
|
"//tensorflow/lite/kernels:test_util",
|
|
"//tensorflow/lite/kernels/internal:tensor",
|
|
"//tensorflow/lite/kernels/internal:types",
|
|
"//tensorflow/lite/schema:schema_fbs",
|
|
"@com_google_absl//absl/types:span",
|
|
"@com_google_googletest//:gtest_main",
|
|
],
|
|
)
|
|
|
|
pybind_extension(
|
|
name = "pywrap_genai_ops",
|
|
srcs = [
|
|
"genai_ops_wrapper.cc",
|
|
],
|
|
hdrs = ["genai_ops.h"],
|
|
additional_exported_symbols = ["GenAIOpsRegisterer"],
|
|
common_lib_packages = [
|
|
"litert/python",
|
|
"tensorflow/lite/python",
|
|
],
|
|
enable_stub_generation = True,
|
|
link_in_framework = True,
|
|
module_name = "pywrap_genai_ops",
|
|
pytype_srcs = [
|
|
"pywrap_genai_ops.pyi",
|
|
],
|
|
visibility = ["//visibility:public"],
|
|
wrap_py_init = True,
|
|
deps = [
|
|
":genai_ops",
|
|
"//tensorflow/lite:framework_stable",
|
|
"//tensorflow/lite:mutable_op_resolver",
|
|
"//tensorflow/lite/c:common",
|
|
"@pybind11",
|
|
"@xla//third_party/python_runtime:headers",
|
|
],
|
|
)
|
|
|
|
tflite_portable_test_suite()
|