This allows to filter the target out when trying to build everything that can be built without gpu. PiperOrigin-RevId: 290921781 Change-Id: Ia1d1f96340fbf2e7fa2ef171011854d541dede8a
357 lines
12 KiB
Python
357 lines
12 KiB
Python
# 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",
|
|
tags = ["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 = [],
|
|
)
|