569 lines
16 KiB
Python
569 lines
16 KiB
Python
# buildifier: disable=same-origin-load
|
|
load("//tensorflow:tensorflow.bzl", "filegroup")
|
|
|
|
# buildifier: disable=same-origin-load
|
|
load("//tensorflow:tensorflow.bzl", "genrule")
|
|
load("//tensorflow/compiler/aot:tfcompile.bzl", "tf_library")
|
|
load("//tensorflow:tensorflow.bzl", "tf_cc_test")
|
|
load("//tensorflow/compiler/mlir:glob_lit_test.bzl", "glob_lit_tests")
|
|
|
|
package(
|
|
default_visibility = ["//visibility:private"],
|
|
licenses = ["notice"], # Apache 2.0
|
|
)
|
|
|
|
glob_lit_tests(
|
|
data = [":filecheck_test_utilities"],
|
|
driver = "@llvm-project//mlir:run_lit.sh",
|
|
tags_override = {
|
|
"test_error_message.lit.pbtxt": ["no_oss"], # TODO(b/150957738): to be fixed on oss.
|
|
},
|
|
test_file_exts = ["lit.pbtxt"],
|
|
)
|
|
|
|
# Bundle together all of the test utilities that are used by tests.
|
|
filegroup(
|
|
name = "filecheck_test_utilities",
|
|
testonly = True,
|
|
srcs = [
|
|
"test_error_message.lit.pbtxt.config.pbtxt",
|
|
"test_error_message.lit.pbtxt.debug.pbtxt",
|
|
"test_error_message.lit.pbtxt.fake_py.debug",
|
|
],
|
|
data = [
|
|
"//tensorflow/compiler/aot:tfcompile",
|
|
"@llvm-project//llvm:FileCheck",
|
|
"@llvm-project//llvm:not",
|
|
],
|
|
)
|
|
|
|
# We disable some tfcompile tests in the open source build with the
|
|
# "manual" tag to avoid making our OSS users build LLVM twice
|
|
# (once for host and once for target).
|
|
|
|
test_suite(
|
|
name = "all_tests",
|
|
tags = ["manual"],
|
|
tests = [
|
|
":test_graph_tfadd_test",
|
|
":test_graph_tfadd_with_ckpt_saver_test",
|
|
":test_graph_tfadd_with_ckpt_test",
|
|
":test_graph_tfassert_eq_test",
|
|
":test_graph_tfcond_test",
|
|
":test_graph_tffunction_test",
|
|
":test_graph_tfgather_test",
|
|
":test_graph_tfmatmul_test",
|
|
":test_graph_tfmatmulandadd_test",
|
|
":test_graph_tfsplits_test",
|
|
":test_graph_tftop_k_test",
|
|
":test_graph_tfvariable_readonly_test",
|
|
":test_graph_tfvariable_sequential_updates_test",
|
|
":test_graph_tfvariable_test",
|
|
":tfcompile_test",
|
|
],
|
|
)
|
|
|
|
py_binary(
|
|
name = "make_test_graphs",
|
|
testonly = 1,
|
|
srcs = ["make_test_graphs.py"],
|
|
python_version = "PY3",
|
|
srcs_version = "PY3",
|
|
deps = [
|
|
"//tensorflow/core:protos_all_py",
|
|
"//tensorflow/python", # TODO(b/34059704): remove when fixed
|
|
"//tensorflow/python:array_ops",
|
|
"//tensorflow/python:client",
|
|
"//tensorflow/python:control_flow_ops",
|
|
"//tensorflow/python:framework_for_generated_wrappers",
|
|
"//tensorflow/python:math_ops",
|
|
"//tensorflow/python:nn_ops",
|
|
"//tensorflow/python:platform",
|
|
"//tensorflow/python:session",
|
|
"//tensorflow/python:training",
|
|
"//tensorflow/python:variables",
|
|
"@six_archive//:six",
|
|
],
|
|
)
|
|
|
|
genrule(
|
|
name = "gen_test_graphs",
|
|
testonly = 1,
|
|
outs = [
|
|
"test_graph_tfadd.pb",
|
|
"test_debuginfo_tfadd.pb",
|
|
"test_graph_tfadd_with_ckpt.ckpt",
|
|
"test_graph_tfadd_with_ckpt.pb",
|
|
"test_graph_tfadd_with_ckpt_saver.ckpt",
|
|
"test_graph_tfadd_with_ckpt_saver.pb",
|
|
"test_graph_tfadd_with_ckpt_saver.saver",
|
|
"test_graph_tfassert_eq.pb",
|
|
"test_graph_tfcond.pb",
|
|
"test_graph_tffunction.pb",
|
|
"test_graph_tfgather.pb",
|
|
"test_graph_tfmatmul.pb",
|
|
"test_graph_tfmatmulandadd.pb",
|
|
"test_graph_tfsplits.pb",
|
|
"test_graph_tftop_k.pb",
|
|
"test_graph_tfvariable.pb",
|
|
"test_graph_tfvariable_readonly.pb",
|
|
"test_graph_tfvariable_sequential_updates.pb",
|
|
],
|
|
# Set CUDA_VISIBLE_DEVICES='' to prevent the code we launch from using any
|
|
# GPUs which might be present. This is important because builds may run
|
|
# concurrently with tests, and tests need to be able to assume that they
|
|
# have control of the full GPU.
|
|
cmd = "CUDA_VISIBLE_DEVICES='' " +
|
|
"$(location :make_test_graphs) --out_dir $(@D)",
|
|
exec_tools = [":make_test_graphs"],
|
|
tags = ["manual"],
|
|
)
|
|
|
|
tf_library(
|
|
name = "test_graph_tfadd",
|
|
testonly = 1,
|
|
config = "test_graph_tfadd.config.pbtxt",
|
|
cpp_class = "AddComp",
|
|
graph = "test_graph_tfadd.pb",
|
|
# This serves as a test for the list of minimal deps included even when
|
|
# include_standard_runtime_deps is False. If this target fails to
|
|
# compile but the others in this directory succeed, you may need to
|
|
# expand the "required by all tf_library targets" list in tfcompile.bzl.
|
|
include_standard_runtime_deps = False,
|
|
mlir_components = "None",
|
|
tags = [
|
|
"manual",
|
|
],
|
|
)
|
|
|
|
tf_library(
|
|
name = "test_graph_tfadd_with_ckpt",
|
|
testonly = 1,
|
|
config = "test_graph_tfadd_with_ckpt.config.pbtxt",
|
|
cpp_class = "AddWithCkptComp",
|
|
freeze_checkpoint = "test_graph_tfadd_with_ckpt.ckpt",
|
|
graph = "test_graph_tfadd_with_ckpt.pb",
|
|
mlir_components = "None",
|
|
tags = [
|
|
"manual",
|
|
],
|
|
)
|
|
|
|
tf_library(
|
|
name = "test_graph_tfadd_with_ckpt_saver",
|
|
testonly = 1,
|
|
config = "test_graph_tfadd_with_ckpt.config.pbtxt",
|
|
cpp_class = "AddWithCkptSaverComp",
|
|
freeze_checkpoint = "test_graph_tfadd_with_ckpt_saver.ckpt",
|
|
freeze_saver = "test_graph_tfadd_with_ckpt_saver.saver",
|
|
graph = "test_graph_tfadd_with_ckpt_saver.pb",
|
|
mlir_components = "None",
|
|
tags = [
|
|
"manual",
|
|
],
|
|
)
|
|
|
|
tf_library(
|
|
name = "test_graph_tfassert_eq",
|
|
testonly = 1,
|
|
config = "test_graph_tfassert_eq.config.pbtxt",
|
|
cpp_class = "AssertComp",
|
|
graph = "test_graph_tfassert_eq.pb",
|
|
mlir_components = "None",
|
|
tags = [
|
|
"manual",
|
|
],
|
|
)
|
|
|
|
tf_library(
|
|
name = "test_graph_tfcond",
|
|
testonly = 1,
|
|
config = "test_graph_tfcond.config.pbtxt",
|
|
cpp_class = "CondComp",
|
|
graph = "test_graph_tfcond.pb",
|
|
mlir_components = "None",
|
|
tags = [
|
|
"manual",
|
|
],
|
|
)
|
|
|
|
tf_library(
|
|
name = "test_graph_tffunction",
|
|
testonly = 1,
|
|
config = "test_graph_tffunction.config.pbtxt",
|
|
cpp_class = "FunctionComp",
|
|
graph = "test_graph_tffunction.pb",
|
|
mlir_components = "None",
|
|
tags = [
|
|
"manual",
|
|
],
|
|
)
|
|
|
|
tf_library(
|
|
name = "test_graph_tfgather",
|
|
testonly = 1,
|
|
config = "test_graph_tfgather.config.pbtxt",
|
|
cpp_class = "GatherComp",
|
|
graph = "test_graph_tfgather.pb",
|
|
mlir_components = "None",
|
|
tags = [
|
|
"manual",
|
|
],
|
|
)
|
|
|
|
tf_library(
|
|
name = "test_graph_tfmatmul",
|
|
testonly = 1,
|
|
config = "test_graph_tfmatmul.config.pbtxt",
|
|
cpp_class = "foo::bar::MatMulComp",
|
|
graph = "test_graph_tfmatmul.pb",
|
|
mlir_components = "None",
|
|
tags = [
|
|
"manual",
|
|
],
|
|
)
|
|
|
|
tf_library(
|
|
name = "test_graph_tfmatmulandadd",
|
|
testonly = 1,
|
|
config = "test_graph_tfmatmulandadd.config.pbtxt",
|
|
cpp_class = "::foo::bar::MatMulAndAddComp",
|
|
graph = "test_graph_tfmatmulandadd.pb",
|
|
mlir_components = "None",
|
|
tags = [
|
|
"manual",
|
|
],
|
|
tfcompile_flags = "--gen_name_to_index --gen_program_shape",
|
|
)
|
|
|
|
tf_library(
|
|
name = "test_graph_tfmatmulandadd_with_profiling",
|
|
testonly = 1,
|
|
config = "test_graph_tfmatmulandadd.config.pbtxt",
|
|
cpp_class = "MatMulAndAddCompWithProfiling",
|
|
enable_xla_hlo_profiling = True,
|
|
graph = "test_graph_tfmatmulandadd.pb",
|
|
mlir_components = "None",
|
|
tags = [
|
|
"manual",
|
|
],
|
|
)
|
|
|
|
tf_library(
|
|
name = "test_graph_tfsplits",
|
|
testonly = 1,
|
|
config = "test_graph_tfsplits.config.pbtxt",
|
|
cpp_class = "SplitsComp",
|
|
graph = "test_graph_tfsplits.pb",
|
|
mlir_components = "None",
|
|
tags = [
|
|
"manual",
|
|
],
|
|
)
|
|
|
|
tf_library(
|
|
name = "test_graph_tftop_k",
|
|
testonly = 1,
|
|
config = "test_graph_tftop_k.config.pbtxt",
|
|
cpp_class = "TopKComp",
|
|
graph = "test_graph_tftop_k.pb",
|
|
mlir_components = "None",
|
|
tags = [
|
|
"manual",
|
|
],
|
|
)
|
|
|
|
tf_library(
|
|
name = "test_graph_tfvariable",
|
|
testonly = 1,
|
|
config = "test_graph_tfvariable.config.pbtxt",
|
|
cpp_class = "VariableComp",
|
|
graph = "test_graph_tfvariable.pb",
|
|
mlir_components = "None",
|
|
tags = [
|
|
"manual",
|
|
],
|
|
)
|
|
|
|
tf_library(
|
|
name = "test_graph_tfvariable_readonly",
|
|
testonly = 1,
|
|
config = "test_graph_tfvariable_readonly.config.pbtxt",
|
|
cpp_class = "VariableReadonlyComp",
|
|
graph = "test_graph_tfvariable_readonly.pb",
|
|
mlir_components = "None",
|
|
tags = [
|
|
"manual",
|
|
],
|
|
)
|
|
|
|
tf_library(
|
|
name = "test_graph_tfvariable_sequential_updates",
|
|
testonly = 1,
|
|
config = "test_graph_tfvariable_sequential_updates.config.pbtxt",
|
|
cpp_class = "VariableSequentialUpdatesComp",
|
|
graph = "test_graph_tfvariable_sequential_updates.pb",
|
|
mlir_components = "None",
|
|
tags = [
|
|
"manual",
|
|
],
|
|
)
|
|
|
|
tf_cc_test(
|
|
name = "tfcompile_test",
|
|
srcs = ["tfcompile_test.cc"],
|
|
tags = [
|
|
"manual",
|
|
],
|
|
deps = [
|
|
":test_graph_tfadd",
|
|
":test_graph_tfadd_with_ckpt",
|
|
":test_graph_tfadd_with_ckpt_saver",
|
|
":test_graph_tfassert_eq",
|
|
":test_graph_tfcond",
|
|
":test_graph_tffunction",
|
|
":test_graph_tfgather",
|
|
":test_graph_tfmatmul",
|
|
":test_graph_tfmatmulandadd",
|
|
":test_graph_tfmatmulandadd_with_profiling",
|
|
":test_graph_tfsplits",
|
|
":test_graph_tftop_k",
|
|
":test_graph_tfvariable",
|
|
":test_graph_tfvariable_readonly",
|
|
":test_graph_tfvariable_sequential_updates",
|
|
"//tensorflow/compiler/xla:shape_util",
|
|
"//tensorflow/compiler/xla:test",
|
|
"//tensorflow/compiler/xla:xla_data_proto_cc",
|
|
"//tensorflow/compiler/xla/service:hlo_profile_printer",
|
|
"//tensorflow/core:lib",
|
|
"//tensorflow/core:test",
|
|
"//tensorflow/core:test_main",
|
|
"//tensorflow/core/platform:regexp",
|
|
"//third_party/eigen3",
|
|
"@com_google_absl//absl/strings",
|
|
],
|
|
)
|
|
|
|
tf_library(
|
|
name = "test_graph_tfadd_mlir_bridge",
|
|
testonly = 1,
|
|
config = "test_graph_tfadd.config.pbtxt",
|
|
cpp_class = "AddComp",
|
|
debug_info = "test_debuginfo_tfadd.pb",
|
|
graph = "test_graph_tfadd.pb",
|
|
include_standard_runtime_deps = False,
|
|
mlir_components = "Bridge",
|
|
tags = [
|
|
"manual",
|
|
],
|
|
)
|
|
|
|
tf_library(
|
|
name = "test_graph_tfadd_with_ckpt_mlir_bridge",
|
|
testonly = 1,
|
|
config = "test_graph_tfadd_with_ckpt.config.pbtxt",
|
|
cpp_class = "AddWithCkptComp",
|
|
freeze_checkpoint = "test_graph_tfadd_with_ckpt.ckpt",
|
|
graph = "test_graph_tfadd_with_ckpt.pb",
|
|
mlir_components = "Bridge",
|
|
tags = [
|
|
"manual",
|
|
],
|
|
)
|
|
|
|
tf_library(
|
|
name = "test_graph_tfadd_with_ckpt_saver_mlir_bridge",
|
|
testonly = 1,
|
|
config = "test_graph_tfadd_with_ckpt.config.pbtxt",
|
|
cpp_class = "AddWithCkptSaverComp",
|
|
freeze_checkpoint = "test_graph_tfadd_with_ckpt_saver.ckpt",
|
|
freeze_saver = "test_graph_tfadd_with_ckpt_saver.saver",
|
|
graph = "test_graph_tfadd_with_ckpt_saver.pb",
|
|
mlir_components = "Bridge",
|
|
tags = [
|
|
"manual",
|
|
],
|
|
)
|
|
|
|
tf_library(
|
|
name = "test_graph_tfcond_mlir_bridge",
|
|
testonly = 1,
|
|
config = "test_graph_tfcond.config.pbtxt",
|
|
cpp_class = "CondComp",
|
|
graph = "test_graph_tfcond.pb",
|
|
mlir_components = "Bridge",
|
|
tags = [
|
|
"manual",
|
|
],
|
|
)
|
|
|
|
tf_library(
|
|
name = "test_graph_tffunction_mlir_bridge",
|
|
testonly = 1,
|
|
config = "test_graph_tffunction.config.pbtxt",
|
|
cpp_class = "FunctionComp",
|
|
graph = "test_graph_tffunction.pb",
|
|
mlir_components = "Bridge",
|
|
tags = [
|
|
"manual",
|
|
],
|
|
)
|
|
|
|
tf_library(
|
|
name = "test_graph_tfassert_eq_mlir_bridge",
|
|
testonly = 1,
|
|
config = "test_graph_tfassert_eq.config.pbtxt",
|
|
cpp_class = "AssertComp",
|
|
graph = "test_graph_tfassert_eq.pb",
|
|
mlir_components = "Bridge",
|
|
tags = [
|
|
"manual",
|
|
],
|
|
)
|
|
|
|
tf_library(
|
|
name = "test_graph_tfgather_mlir_bridge",
|
|
testonly = 1,
|
|
config = "test_graph_tfgather.config.pbtxt",
|
|
cpp_class = "GatherComp",
|
|
graph = "test_graph_tfgather.pb",
|
|
mlir_components = "Bridge",
|
|
tags = [
|
|
"manual",
|
|
],
|
|
)
|
|
|
|
tf_library(
|
|
name = "test_graph_tfmatmul_mlir_bridge",
|
|
testonly = 1,
|
|
config = "test_graph_tfmatmul.config.pbtxt",
|
|
cpp_class = "foo::bar::MatMulComp",
|
|
graph = "test_graph_tfmatmul.pb",
|
|
mlir_components = "Bridge",
|
|
tags = [
|
|
"manual",
|
|
],
|
|
)
|
|
|
|
tf_library(
|
|
name = "test_graph_tfmatmulandadd_mlir_bridge",
|
|
testonly = 1,
|
|
config = "test_graph_tfmatmulandadd.config.pbtxt",
|
|
cpp_class = "::foo::bar::MatMulAndAddComp",
|
|
graph = "test_graph_tfmatmulandadd.pb",
|
|
mlir_components = "Bridge",
|
|
tags = [
|
|
"manual",
|
|
],
|
|
tfcompile_flags = "--gen_name_to_index --gen_program_shape",
|
|
)
|
|
|
|
tf_library(
|
|
name = "test_graph_tfmatmulandadd_with_profiling_mlir_bridge",
|
|
testonly = 1,
|
|
config = "test_graph_tfmatmulandadd.config.pbtxt",
|
|
cpp_class = "MatMulAndAddCompWithProfiling",
|
|
enable_xla_hlo_profiling = True,
|
|
graph = "test_graph_tfmatmulandadd.pb",
|
|
mlir_components = "Bridge",
|
|
tags = [
|
|
"manual",
|
|
],
|
|
)
|
|
|
|
tf_library(
|
|
name = "test_graph_tfsplits_mlir_bridge",
|
|
testonly = 1,
|
|
config = "test_graph_tfsplits.config.pbtxt",
|
|
cpp_class = "SplitsComp",
|
|
graph = "test_graph_tfsplits.pb",
|
|
mlir_components = "Bridge",
|
|
tags = [
|
|
"manual",
|
|
],
|
|
)
|
|
|
|
tf_library(
|
|
name = "test_graph_tftop_k_mlir_bridge",
|
|
testonly = 1,
|
|
config = "test_graph_tftop_k.config.pbtxt",
|
|
cpp_class = "TopKComp",
|
|
graph = "test_graph_tftop_k.pb",
|
|
mlir_components = "Bridge",
|
|
tags = [
|
|
"manual",
|
|
],
|
|
)
|
|
|
|
tf_library(
|
|
name = "test_graph_tfvariable_readonly_mlir_bridge",
|
|
testonly = 1,
|
|
config = "test_graph_tfvariable_readonly.config.pbtxt",
|
|
cpp_class = "VariableReadonlyComp",
|
|
graph = "test_graph_tfvariable_readonly.pb",
|
|
mlir_components = "Bridge",
|
|
tags = [
|
|
"manual",
|
|
],
|
|
)
|
|
|
|
tf_library(
|
|
name = "test_graph_tfvariable_mlir_bridge",
|
|
testonly = 1,
|
|
config = "test_graph_tfvariable.config.pbtxt",
|
|
cpp_class = "VariableComp",
|
|
graph = "test_graph_tfvariable.pb",
|
|
mlir_components = "Bridge",
|
|
tags = [
|
|
"manual",
|
|
],
|
|
)
|
|
|
|
tf_library(
|
|
name = "test_graph_tfvariable_sequential_updates_mlir_bridge",
|
|
testonly = 1,
|
|
config = "test_graph_tfvariable_sequential_updates.config.pbtxt",
|
|
cpp_class = "VariableSequentialUpdatesComp",
|
|
graph = "test_graph_tfvariable_sequential_updates.pb",
|
|
mlir_components = "Bridge",
|
|
tags = [
|
|
"manual",
|
|
],
|
|
)
|
|
|
|
tf_cc_test(
|
|
name = "tfcompile_test_mlir_bridge",
|
|
srcs = ["tfcompile_test.cc"],
|
|
extra_copts = ["-DENABLE_MLIR_BRIDGE_TEST"],
|
|
tags = [
|
|
"manual",
|
|
],
|
|
deps = [
|
|
":test_graph_tfadd_mlir_bridge",
|
|
":test_graph_tfadd_with_ckpt_mlir_bridge",
|
|
":test_graph_tfadd_with_ckpt_saver_mlir_bridge",
|
|
":test_graph_tfassert_eq_mlir_bridge",
|
|
":test_graph_tfcond_mlir_bridge",
|
|
":test_graph_tffunction_mlir_bridge",
|
|
":test_graph_tfgather_mlir_bridge",
|
|
":test_graph_tfmatmul_mlir_bridge",
|
|
":test_graph_tfmatmulandadd_mlir_bridge",
|
|
":test_graph_tfmatmulandadd_with_profiling_mlir_bridge",
|
|
":test_graph_tfsplits_mlir_bridge",
|
|
":test_graph_tftop_k_mlir_bridge",
|
|
":test_graph_tfvariable_mlir_bridge",
|
|
":test_graph_tfvariable_readonly_mlir_bridge",
|
|
":test_graph_tfvariable_sequential_updates_mlir_bridge",
|
|
"//tensorflow/compiler/xla:shape_util",
|
|
"//tensorflow/compiler/xla:test",
|
|
"//tensorflow/compiler/xla:xla_data_proto_cc",
|
|
"//tensorflow/compiler/xla/service:hlo_profile_printer",
|
|
"//tensorflow/core:lib",
|
|
"//tensorflow/core:test",
|
|
"//tensorflow/core:test_main",
|
|
"//tensorflow/core/platform:regexp",
|
|
"//third_party/eigen3",
|
|
"@com_google_absl//absl/strings",
|
|
],
|
|
)
|