270 lines
5.5 KiB
Python
270 lines
5.5 KiB
Python
load("@rules_cc//cc:cc_library.bzl", "cc_library")
|
|
load("@rules_cc//cc:cc_test.bzl", "cc_test")
|
|
|
|
# StableHLO Reference Library
|
|
load("build_def.bzl", "shlo_ref_linkopts")
|
|
|
|
package(
|
|
# copybara:uncomment default_applicable_licenses = ["//tensorflow:LICENSE"],
|
|
default_visibility = ["//visibility:public"],
|
|
)
|
|
|
|
cc_library(
|
|
name = "shlo",
|
|
deps = [
|
|
":tensor",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "tensor",
|
|
srcs = ["tensor.cc"],
|
|
hdrs = ["tensor.h"],
|
|
deps = [
|
|
":data_type",
|
|
":overload",
|
|
":quantized_tensor_element_type",
|
|
":shape",
|
|
"@com_google_absl//absl/log:absl_check",
|
|
"@com_google_absl//absl/types:span",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "i4",
|
|
hdrs = ["i4.h"],
|
|
deps = [],
|
|
)
|
|
|
|
cc_test(
|
|
name = "i4_test",
|
|
srcs = ["i4_test.cc"],
|
|
deps = [
|
|
":i4",
|
|
"@com_google_googletest//:gtest_main",
|
|
],
|
|
)
|
|
|
|
cc_test(
|
|
name = "tensor_test",
|
|
srcs = ["tensor_test.cc"],
|
|
deps = [
|
|
":data_type",
|
|
":tensor",
|
|
"@com_google_googletest//:gtest_main",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "shape",
|
|
srcs = ["shape.cc"],
|
|
hdrs = ["shape.h"],
|
|
deps = [
|
|
"@com_google_absl//absl/algorithm:container",
|
|
"@com_google_absl//absl/container:inlined_vector",
|
|
"@com_google_absl//absl/log:absl_check",
|
|
"@com_google_absl//absl/types:span",
|
|
],
|
|
)
|
|
|
|
cc_test(
|
|
name = "shape_test",
|
|
srcs = ["shape_test.cc"],
|
|
linkopts = shlo_ref_linkopts(),
|
|
deps = [
|
|
":shape",
|
|
"@com_google_absl//absl/types:span",
|
|
"@com_google_googletest//:gtest_main",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "quantized_tensor_element_type",
|
|
srcs = ["quantized_tensor_element_type.cc"],
|
|
hdrs = ["quantized_tensor_element_type.h"],
|
|
deps = [
|
|
":data_type",
|
|
":shape",
|
|
"@com_google_absl//absl/algorithm:container",
|
|
"@com_google_absl//absl/container:inlined_vector",
|
|
"@com_google_absl//absl/log:absl_check",
|
|
"@com_google_absl//absl/log:absl_log",
|
|
"@com_google_absl//absl/types:span",
|
|
],
|
|
)
|
|
|
|
cc_test(
|
|
name = "quantized_tensor_element_type_test",
|
|
srcs = ["quantized_tensor_element_type_test.cc"],
|
|
linkopts = shlo_ref_linkopts(),
|
|
deps = [
|
|
":data_type",
|
|
":quantized_tensor_element_type",
|
|
"@com_google_googletest//:gtest_main",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "bf16",
|
|
hdrs = ["bf16.h"],
|
|
deps = [
|
|
"@com_google_absl//absl/base",
|
|
"@com_google_absl//absl/log:absl_check",
|
|
],
|
|
)
|
|
|
|
cc_test(
|
|
name = "bf16_test",
|
|
srcs = ["bf16_test.cc"],
|
|
linkopts = shlo_ref_linkopts(),
|
|
deps = [
|
|
":bf16",
|
|
"@com_google_absl//absl/base",
|
|
"@com_google_googletest//:gtest_main",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "f16",
|
|
hdrs = ["f16.h"],
|
|
deps = ["@FP16"],
|
|
)
|
|
|
|
cc_library(
|
|
name = "f16_emulated",
|
|
hdrs = ["f16.h"],
|
|
copts = ["-DSHLO_REF_EMULATE_F16=1"],
|
|
deps = ["@FP16"],
|
|
)
|
|
|
|
cc_test(
|
|
name = "f16_test",
|
|
srcs = ["f16_test.cc"],
|
|
linkopts = shlo_ref_linkopts(),
|
|
deps = [
|
|
":f16",
|
|
"@com_google_absl//absl/base",
|
|
"@com_google_googletest//:gtest_main",
|
|
],
|
|
)
|
|
|
|
cc_test(
|
|
name = "f16_emulated_test",
|
|
srcs = ["f16_test.cc"],
|
|
linkopts = shlo_ref_linkopts(),
|
|
deps = [
|
|
":f16_emulated",
|
|
"@com_google_absl//absl/base",
|
|
"@com_google_googletest//:gtest_main",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "data_type",
|
|
hdrs = ["data_type.h"],
|
|
deps = [
|
|
":bf16",
|
|
":f16",
|
|
":i4",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "dispatch",
|
|
hdrs = ["dispatch.h"],
|
|
visibility = ["//tensorflow/lite/experimental/shlo:__subpackages__"],
|
|
)
|
|
|
|
cc_test(
|
|
name = "dispatch_test",
|
|
srcs = ["dispatch_test.cc"],
|
|
linkopts = shlo_ref_linkopts(),
|
|
deps = [
|
|
":dispatch",
|
|
":status_matcher",
|
|
"@com_google_absl//absl/status",
|
|
"@com_google_googletest//:gtest_main",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "overload",
|
|
hdrs = ["overload.h"],
|
|
visibility = ["//tensorflow/lite/experimental/shlo:__subpackages__"],
|
|
)
|
|
|
|
cc_test(
|
|
name = "overload_test",
|
|
srcs = ["overload_test.cc"],
|
|
deps = [
|
|
":overload",
|
|
"@com_google_absl//absl/strings",
|
|
"@com_google_absl//absl/strings:string_view",
|
|
"@com_google_googletest//:gtest_main",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "quantize",
|
|
hdrs = ["quantize.h"],
|
|
deps = [":data_type"],
|
|
)
|
|
|
|
cc_test(
|
|
name = "quantize_test",
|
|
srcs = ["quantize_test.cc"],
|
|
linkopts = shlo_ref_linkopts(),
|
|
deps = [
|
|
":data_type",
|
|
":quantize",
|
|
"@com_google_googletest//:gtest_main",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "status_matcher",
|
|
testonly = True,
|
|
hdrs = ["status_matcher.h"],
|
|
deps = [
|
|
"@com_google_absl//absl/status",
|
|
"@com_google_googletest//:gtest_main",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "tensor_with_data",
|
|
testonly = True,
|
|
hdrs = ["tensor_with_data.h"],
|
|
deps = [
|
|
":data_type",
|
|
":quantize",
|
|
":quantized_tensor_element_type",
|
|
":shape",
|
|
":tensor",
|
|
"@com_google_absl//absl/types:span",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "tensor_matcher",
|
|
testonly = True,
|
|
hdrs = ["tensor_matcher.h"],
|
|
deps = [
|
|
":data_type",
|
|
"@com_google_googletest//:gtest_main",
|
|
],
|
|
)
|
|
|
|
cc_test(
|
|
name = "tensor_matcher_test",
|
|
srcs = ["tensor_matcher_test.cc"],
|
|
linkopts = shlo_ref_linkopts(),
|
|
deps = [
|
|
":data_type",
|
|
":shape",
|
|
":tensor_matcher",
|
|
":tensor_with_data",
|
|
"@com_google_googletest//:gtest_main",
|
|
],
|
|
)
|