blob: bbca402580e7b805bc2d117542bcbc6cf893f81d [file] [log] [blame]
# Tools and utilities that aid in XLA development and usage.
load(
"//tensorflow:tensorflow.bzl",
"if_cuda_or_rocm",
"tf_cc_binary",
"tf_cc_test",
)
package(
default_visibility = ["//tensorflow/compiler/xla:internal"],
licenses = ["notice"], # Apache 2.0
)
# Filegroup used to collect source files for dependency checking.
filegroup(
name = "c_srcs",
data = glob([
"**/*.cc",
"**/*.h",
]),
visibility = ["//tensorflow/compiler/xla:internal"],
)
tf_cc_binary(
name = "hex_floats_to_packed_literal",
srcs = ["hex_floats_to_packed_literal.cc"],
deps = [
"//tensorflow/compiler/xla:types",
"//tensorflow/core:framework_internal",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
"@com_google_absl//absl/base",
"@com_google_absl//absl/strings",
],
)
tf_cc_binary(
name = "show_signature",
srcs = ["show_signature.cc"],
deps = [
"//tensorflow/compiler/xla:shape_util",
"//tensorflow/compiler/xla:statusor",
"//tensorflow/compiler/xla:types",
"//tensorflow/compiler/xla:xla_data_proto_cc",
"//tensorflow/compiler/xla/client",
"//tensorflow/compiler/xla/client:client_library",
"//tensorflow/compiler/xla/client:local_client",
"//tensorflow/compiler/xla/service:hlo_proto_cc",
"//tensorflow/compiler/xla/service:interpreter_plugin",
"//tensorflow/core:lib",
"@com_google_absl//absl/types:span",
],
)
cc_library(
name = "replay_computation_library",
srcs = ["replay_computation.cc"],
deps = [
"//tensorflow/compiler/xla:debug_options_flags",
"//tensorflow/compiler/xla:execution_options_util",
"//tensorflow/compiler/xla:literal",
"//tensorflow/compiler/xla:shape_util",
"//tensorflow/compiler/xla:status_macros",
"//tensorflow/compiler/xla:statusor",
"//tensorflow/compiler/xla:types",
"//tensorflow/compiler/xla:xla_data_proto_cc",
"//tensorflow/compiler/xla/client",
"//tensorflow/compiler/xla/client:client_library",
"//tensorflow/compiler/xla/client:global_data",
"//tensorflow/compiler/xla/client:local_client",
"//tensorflow/compiler/xla/client:xla_computation",
"//tensorflow/compiler/xla/client/lib:testing",
"//tensorflow/compiler/xla/service:hlo_parser",
"//tensorflow/compiler/xla/service:hlo_proto_cc",
"//tensorflow/compiler/xla/service/gpu:infeed_manager",
"//tensorflow/compiler/xla/service/gpu:outfeed_manager",
"//tensorflow/compiler/xla/tests:test_utils",
"//tensorflow/core:framework_internal",
"//tensorflow/core:lib",
"//third_party/eigen3",
"@com_google_absl//absl/types:span",
],
alwayslink = True,
)
tf_cc_binary(
name = "replay_computation_cpu",
deps = [
":replay_computation_library",
"//tensorflow/compiler/xla/service:cpu_plugin",
],
)
# To run with MLIR GPU plugin enabled, pass --define=with_mlir_gpu_support=true.
tf_cc_binary(
name = "replay_computation_gpu",
deps = [
":replay_computation_library",
"//tensorflow/compiler/xla/service:gpu_plugin",
],
)
tf_cc_binary(
name = "replay_computation_interpreter",
deps = [
":replay_computation_library",
"//tensorflow/compiler/xla/service:interpreter_plugin",
],
)
tf_cc_binary(
name = "show_literal",
srcs = ["show_literal.cc"],
deps = [
"//tensorflow/compiler/xla:literal",
"//tensorflow/compiler/xla:types",
"//tensorflow/compiler/xla:xla_data_proto_cc",
"//tensorflow/core:lib",
],
)
tf_cc_binary(
name = "convert_computation",
srcs = ["convert_computation.cc"],
deps = [
"//tensorflow/compiler/xla:statusor",
"//tensorflow/compiler/xla:types",
"//tensorflow/compiler/xla/service:hlo_proto_cc",
"//tensorflow/core:lib",
],
)
tf_cc_binary(
name = "show_text_literal",
srcs = ["show_text_literal.cc"],
deps = [
"//tensorflow/compiler/xla:literal",
"//tensorflow/compiler/xla:statusor",
"//tensorflow/compiler/xla:text_literal_reader",
"//tensorflow/compiler/xla:types",
"//tensorflow/compiler/xla:xla_data_proto_cc",
"//tensorflow/core:lib",
],
)
tf_cc_binary(
name = "dumped_computation_to_text",
srcs = ["dumped_computation_to_text.cc"],
deps = [
"//tensorflow/compiler/xla:statusor",
"//tensorflow/compiler/xla:types",
"//tensorflow/compiler/xla:xla_data_proto_cc",
"//tensorflow/compiler/xla/client",
"//tensorflow/compiler/xla/client:client_library",
"//tensorflow/compiler/xla/client:local_client",
"//tensorflow/compiler/xla/client:xla_computation",
"//tensorflow/compiler/xla/service",
"//tensorflow/compiler/xla/service:hlo_proto_cc",
"//tensorflow/compiler/xla/service:interpreter_plugin",
"//tensorflow/core:lib",
"@com_google_absl//absl/types:span",
],
)
tf_cc_binary(
name = "dumped_computation_to_operation_list",
srcs = ["dumped_computation_to_operation_list.cc"],
deps = [
"//tensorflow/compiler/xla:statusor",
"//tensorflow/compiler/xla:types",
"//tensorflow/compiler/xla:xla_data_proto_cc",
"//tensorflow/compiler/xla/client",
"//tensorflow/compiler/xla/client:client_library",
"//tensorflow/compiler/xla/client:local_client",
"//tensorflow/compiler/xla/client:xla_computation",
"//tensorflow/compiler/xla/service",
"//tensorflow/compiler/xla/service:hlo",
"//tensorflow/compiler/xla/service:hlo_proto_cc",
"//tensorflow/compiler/xla/service:interpreter_plugin",
"//tensorflow/core:lib",
"@com_google_absl//absl/strings",
"@com_google_absl//absl/strings:str_format",
"@com_google_absl//absl/types:span",
],
)
tf_cc_binary(
name = "hlo_proto_to_json",
srcs = ["hlo_proto_to_json.cc"],
deps = [
"//tensorflow/compiler/xla:statusor",
"//tensorflow/compiler/xla:util",
"//tensorflow/compiler/xla/service:hlo_proto_cc",
"//tensorflow/core:framework_internal",
"//tensorflow/core:lib",
],
)
tf_cc_test(
name = "hlo_extractor_test",
srcs = ["hlo_extractor_test.cc"],
deps = [
":hlo_extractor",
"//tensorflow/compiler/xla/service:hlo_matchers",
"//tensorflow/compiler/xla/tests:hlo_test_base",
"//tensorflow/compiler/xla/tests:xla_internal_test_main",
"//tensorflow/core:test",
],
)
cc_library(
name = "hlo_extractor",
srcs = ["hlo_extractor.cc"],
hdrs = ["hlo_extractor.h"],
deps = [
"//tensorflow/compiler/xla:status",
"//tensorflow/compiler/xla/service:hlo",
"//tensorflow/compiler/xla/service:hlo_verifier",
"@com_google_absl//absl/container:flat_hash_map",
"@com_google_absl//absl/container:flat_hash_set",
"@com_google_absl//absl/memory",
],
)
tf_cc_binary(
name = "interactive_graphviz",
srcs = ["interactive_graphviz.cc"],
deps = [
":hlo_extractor",
"//tensorflow/compiler/xla/service:hlo_graph_dumper",
"@com_google_absl//absl/algorithm:container",
"@com_google_absl//absl/strings",
"//tensorflow/compiler/xla/client:client_library",
"//tensorflow/compiler/xla/client:local_client",
"//tensorflow/compiler/xla/service:compiler",
"//tensorflow/compiler/xla/service:cpu_plugin",
"//tensorflow/compiler/xla/service:hlo_proto_cc",
"//tensorflow/compiler/xla/service:hlo_runner",
"//tensorflow/compiler/xla/service:local_service",
"//tensorflow/compiler/xla/service:platform_util",
"//tensorflow/core:framework_internal",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
] + if_cuda_or_rocm([
"//tensorflow/compiler/xla/service:gpu_plugin",
]),
)
sh_test(
name = "interactive_graphviz_build_only_test",
srcs = ["interactive_graphviz_test.sh"],
data = [":interactive_graphviz"],
)
cc_library(
name = "hlo_module_loader",
srcs = ["hlo_module_loader.cc"],
hdrs = ["hlo_module_loader.h"],
deps = [
"//tensorflow/compiler/xla:debug_options_flags",
"//tensorflow/compiler/xla:statusor",
"//tensorflow/compiler/xla/service:hlo",
"//tensorflow/compiler/xla/service:hlo_parser",
"//tensorflow/core:lib",
"//tensorflow/core:regexp_internal",
"@com_google_absl//absl/strings",
"@com_google_protobuf//:protobuf_headers",
],
)
tf_cc_test(
name = "hlo_module_loader_test",
srcs = ["hlo_module_loader_test.cc"],
deps = [
":hlo_module_loader",
"//tensorflow/compiler/xla/tests:hlo_test_base",
"//tensorflow/compiler/xla/tests:xla_internal_test_main", # fixdeps: keep
"//tensorflow/core:test",
],
)
cc_library(
name = "prepare_reference_module",
srcs = ["prepare_reference_module.cc"],
hdrs = ["prepare_reference_module.h"],
deps = [
"//tensorflow/compiler/xla:debug_options_flags",
"//tensorflow/compiler/xla:statusor",
"//tensorflow/compiler/xla:xla_proto_cc",
"//tensorflow/compiler/xla/service:despecializer",
"//tensorflow/compiler/xla/service:hlo",
"//tensorflow/compiler/xla/service:hlo_module_config",
"//tensorflow/core/platform:errors",
"//tensorflow/stream_executor:platform",
"//tensorflow/stream_executor/lib",
],
)
cc_library(
name = "run_hlo_module_lib",
testonly = True,
srcs = ["run_hlo_module.cc"],
hdrs = ["run_hlo_module.h"],
deps = [
":hlo_module_loader",
":prepare_reference_module",
"//tensorflow/compiler/xla:debug_options_flags",
"//tensorflow/compiler/xla:error_spec",
"//tensorflow/compiler/xla:util",
"//tensorflow/compiler/xla/client/lib:testing",
"//tensorflow/compiler/xla/service:hlo",
"//tensorflow/compiler/xla/service:hlo_runner",
"//tensorflow/compiler/xla/service:hlo_verifier",
"//tensorflow/compiler/xla/service:platform_util",
"//tensorflow/compiler/xla/tests:literal_test_util",
"//tensorflow/compiler/xla/tests:test_utils",
"//tensorflow/core/platform:logging",
"//tensorflow/core/platform:status",
"//tensorflow/core/platform:test",
"//tensorflow/stream_executor:platform",
"@com_google_absl//absl/strings",
"@com_google_absl//absl/types:span",
],
)
# To run with MLIR GPU plugin enabled, pass --define=with_mlir_gpu_support=true.
tf_cc_binary(
name = "run_hlo_module",
testonly = True,
srcs = ["run_hlo_module_main.cc"],
deps = [
":run_hlo_module_lib",
"@com_google_absl//absl/strings",
"//tensorflow/compiler/xla:debug_options_flags",
"//tensorflow/compiler/xla/service:cpu_plugin",
"//tensorflow/compiler/xla/service:interpreter_plugin",
"//tensorflow/core:framework_internal",
"//tensorflow/core/platform:logging",
"//tensorflow/core/platform:platform_port",
"//tensorflow/core/platform:status",
"//tensorflow/core/platform:test",
] + if_cuda_or_rocm([
"//tensorflow/compiler/xla/service:gpu_plugin",
]),
)
# This target is used to reproduce miscompiles in OSS outside of TF, and it can
# not have any dependencies apart from the standard library.
cc_library(
name = "driver",
srcs = ["driver.cc"],
tags = ["nofixdeps"],
deps = [],
)