| # 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 = [], |
| ) |