# Description: # ROCm-platform specific StreamExecutor support code. load("//tensorflow/core/platform:rules_cc.bzl", "cc_library") load( "//tensorflow/stream_executor:build_defs.bzl", "stream_executor_friends", ) load("//tensorflow:tensorflow.bzl", "tf_copts") load("//tensorflow:tensorflow.bzl", "filegroup") load("@local_config_rocm//rocm:build_defs.bzl", "if_rocm_is_configured") load("//tensorflow/core/platform:build_config_root.bzl", "if_static") package( default_visibility = [":friends"], licenses = ["notice"], # Apache 2.0 ) package_group( name = "friends", packages = stream_executor_friends(), ) # Filegroup used to collect source files for the dependency check. filegroup( name = "c_srcs", data = glob([ "**/*.cc", "**/*.h", ]), ) cc_library( name = "rocm_diagnostics", srcs = if_rocm_is_configured(["rocm_diagnostics.cc"]), hdrs = if_rocm_is_configured(["rocm_diagnostics.h"]), deps = if_rocm_is_configured([ "@com_google_absl//absl/container:inlined_vector", "@com_google_absl//absl/strings", "@com_google_absl//absl/strings:str_format", "//tensorflow/stream_executor/gpu:gpu_diagnostics_header", "//tensorflow/stream_executor/lib", "//tensorflow/stream_executor/platform", ]), ) cc_library( name = "rocm_driver", srcs = if_rocm_is_configured(["rocm_driver.cc"]), hdrs = if_rocm_is_configured(["rocm_driver_wrapper.h"]), deps = if_rocm_is_configured([ ":rocm_diagnostics", "@com_google_absl//absl/base", "@com_google_absl//absl/container:inlined_vector", "@com_google_absl//absl/strings", "//tensorflow/stream_executor:device_options", "//tensorflow/stream_executor/gpu:gpu_driver_header", "//tensorflow/stream_executor/lib", "//tensorflow/stream_executor/platform", "//tensorflow/stream_executor/platform:dso_loader", "@local_config_rocm//rocm:rocm_headers", ]), ) cc_library( name = "rocm_activation", srcs = [], hdrs = if_rocm_is_configured(["rocm_activation.h"]), deps = if_rocm_is_configured([ ":rocm_driver", "@local_config_rocm//rocm:rocm_headers", "//tensorflow/stream_executor", "//tensorflow/stream_executor:stream_executor_internal", "//tensorflow/stream_executor/gpu:gpu_activation", "//tensorflow/stream_executor/platform", ]), ) cc_library( name = "rocm_event", srcs = if_rocm_is_configured(["rocm_event.cc"]), hdrs = [], deps = if_rocm_is_configured([ ":rocm_driver", "//tensorflow/stream_executor:stream_executor_headers", "//tensorflow/stream_executor/gpu:gpu_event_header", "//tensorflow/stream_executor/gpu:gpu_executor_header", "//tensorflow/stream_executor/gpu:gpu_stream_header", "//tensorflow/stream_executor/lib", ]), ) cc_library( name = "rocm_gpu_executor", srcs = if_rocm_is_configured(["rocm_gpu_executor.cc"]), hdrs = [], deps = if_rocm_is_configured([ ":rocm_diagnostics", ":rocm_driver", ":rocm_event", ":rocm_kernel", ":rocm_platform_id", "@com_google_absl//absl/strings", "//tensorflow/stream_executor:event", "//tensorflow/stream_executor:plugin_registry", "//tensorflow/stream_executor:stream_executor_internal", "//tensorflow/stream_executor:stream_executor_pimpl_header", "//tensorflow/stream_executor:timer", "//tensorflow/stream_executor/gpu:gpu_activation_header", "//tensorflow/stream_executor/gpu:gpu_event", "//tensorflow/stream_executor/gpu:gpu_kernel_header", "//tensorflow/stream_executor/gpu:gpu_stream", "//tensorflow/stream_executor/gpu:gpu_timer", "//tensorflow/stream_executor/lib", "//tensorflow/stream_executor/platform", "//tensorflow/stream_executor/platform:dso_loader", ]), alwayslink = True, ) cc_library( name = "rocm_kernel", srcs = if_rocm_is_configured(["rocm_kernel.cc"]), hdrs = [], visibility = ["//visibility:public"], deps = if_rocm_is_configured([ "//tensorflow/stream_executor/gpu:gpu_kernel_header", ]), alwayslink = True, ) cc_library( name = "rocm_platform", srcs = if_rocm_is_configured(["rocm_platform.cc"]), hdrs = if_rocm_is_configured(["rocm_platform.h"]), visibility = ["//visibility:public"], deps = if_rocm_is_configured([ ":rocm_driver", ":rocm_gpu_executor", ":rocm_platform_id", "@com_google_absl//absl/base", "@com_google_absl//absl/memory", "//tensorflow/core:lib", "//tensorflow/stream_executor", # buildcleaner: keep "//tensorflow/stream_executor:executor_cache", "//tensorflow/stream_executor:multi_platform_manager", "//tensorflow/stream_executor:stream_executor_pimpl_header", "//tensorflow/stream_executor/lib", "//tensorflow/stream_executor/platform", ]), alwayslink = True, # Registers itself with the MultiPlatformManager. ) cc_library( name = "rocm_platform_id", srcs = ["rocm_platform_id.cc"], hdrs = ["rocm_platform_id.h"], deps = ["//tensorflow/stream_executor:platform"], ) cc_library( name = "rocblas_if_static", deps = if_static([ "@local_config_rocm//rocm:rocblas", ]), ) cc_library( name = "rocblas_plugin", srcs = if_rocm_is_configured(["rocm_blas.cc"]), hdrs = if_rocm_is_configured(["rocm_blas.h"]), visibility = ["//visibility:public"], deps = if_rocm_is_configured([ ":rocblas_if_static", ":rocm_gpu_executor", ":rocm_platform_id", "//third_party/eigen3", "//tensorflow/core:lib", "//tensorflow/core:lib_internal", "//tensorflow/stream_executor", "//tensorflow/stream_executor:event", "//tensorflow/stream_executor:host_or_device_scalar", "//tensorflow/stream_executor:plugin_registry", "//tensorflow/stream_executor:scratch_allocator", "//tensorflow/stream_executor:timer", "//tensorflow/stream_executor/gpu:gpu_activation", "//tensorflow/stream_executor/gpu:gpu_helpers_header", "//tensorflow/stream_executor/gpu:gpu_stream_header", "//tensorflow/stream_executor/gpu:gpu_timer_header", "//tensorflow/stream_executor/lib", "//tensorflow/stream_executor/platform", "//tensorflow/stream_executor/platform:dso_loader", "@com_google_absl//absl/strings", "@local_config_rocm//rocm:rocm_headers", ]), alwayslink = True, ) cc_library( name = "rocfft_if_static", deps = if_static([ "@local_config_rocm//rocm:rocfft", ]), ) cc_library( name = "rocfft_plugin", srcs = if_rocm_is_configured(["rocm_fft.cc"]), hdrs = if_rocm_is_configured(["rocm_fft.h"]), visibility = ["//visibility:public"], deps = if_rocm_is_configured([ ":rocfft_if_static", ":rocm_platform_id", "//tensorflow/stream_executor:event", "//tensorflow/stream_executor:fft", "//tensorflow/stream_executor:plugin_registry", "//tensorflow/stream_executor:scratch_allocator", "//tensorflow/stream_executor/gpu:gpu_activation", "//tensorflow/stream_executor/gpu:gpu_helpers_header", "//tensorflow/stream_executor/gpu:gpu_executor_header", "//tensorflow/stream_executor/gpu:gpu_stream_header", "//tensorflow/stream_executor/gpu:gpu_kernel_header", "//tensorflow/stream_executor/lib", "//tensorflow/stream_executor/platform", "//tensorflow/stream_executor/platform:dso_loader", "@local_config_rocm//rocm:rocm_headers", ]), alwayslink = True, ) cc_library( name = "miopen_if_static", deps = if_static([ "@local_config_rocm//rocm:miopen", ]), ) cc_library( name = "miopen_plugin", srcs = if_rocm_is_configured(["rocm_dnn.cc"]), hdrs = if_rocm_is_configured(["rocm_dnn.h"]), copts = [ # STREAM_EXECUTOR_CUDNN_WRAP would fail on Clang with the default # setting of template depth 256 "-ftemplate-depth-512", ], visibility = ["//visibility:public"], deps = if_rocm_is_configured([ ":miopen_if_static", ":rocm_diagnostics", ":rocm_driver", ":rocm_gpu_executor", ":rocm_platform_id", "//third_party/eigen3", "//tensorflow/core:lib", "//tensorflow/core:lib_internal", "//tensorflow/stream_executor:dnn", "//tensorflow/stream_executor:event", "//tensorflow/stream_executor:plugin_registry", "//tensorflow/stream_executor:scratch_allocator", "//tensorflow/stream_executor:stream_executor_pimpl_header", "//tensorflow/stream_executor:temporary_device_memory", "//tensorflow/stream_executor/gpu:gpu_activation_header", "//tensorflow/stream_executor/gpu:gpu_stream_header", "//tensorflow/stream_executor/gpu:gpu_timer_header", "//tensorflow/stream_executor/lib", "//tensorflow/stream_executor/platform", "//tensorflow/stream_executor/platform:dso_loader", "@com_google_absl//absl/strings", "@local_config_rocm//rocm:rocm_headers", ]), alwayslink = True, ) cc_library( name = "hiprand_if_static", deps = if_static([ "@local_config_rocm//rocm:hiprand", ]), ) cc_library( name = "rocrand_plugin", srcs = if_rocm_is_configured(["rocm_rng.cc"]), hdrs = if_rocm_is_configured([]), deps = if_rocm_is_configured([ ":hiprand_if_static", ":rocm_gpu_executor", ":rocm_platform_id", "@local_config_rocm//rocm:rocm_headers", "//tensorflow/stream_executor:event", "//tensorflow/stream_executor:plugin_registry", "//tensorflow/stream_executor:rng", "//tensorflow/stream_executor/gpu:gpu_activation_header", "//tensorflow/stream_executor/gpu:gpu_helpers_header", "//tensorflow/stream_executor/gpu:gpu_executor_header", "//tensorflow/stream_executor/gpu:gpu_rng_header", "//tensorflow/stream_executor/gpu:gpu_stream_header", "//tensorflow/stream_executor/lib", "//tensorflow/stream_executor/platform", "//tensorflow/stream_executor/platform:dso_loader", ]), alwayslink = True, ) cc_library( name = "hipsparse_if_static", deps = if_static([ "@local_config_rocm//rocm:hipsparse", ]), ) cc_library( name = "hipsparse_wrapper", srcs = if_rocm_is_configured(["hipsparse_wrapper.h"]), hdrs = if_rocm_is_configured(["hipsparse_wrapper.h"]), deps = if_rocm_is_configured([ ":hipsparse_if_static", ":rocm_gpu_executor", ":rocm_platform_id", "@local_config_rocm//rocm:rocm_headers", "//tensorflow/stream_executor/lib", "//tensorflow/stream_executor/platform", "//tensorflow/stream_executor/platform:dso_loader", ]), alwayslink = True, ) cc_library( name = "all_runtime", copts = tf_copts(), visibility = ["//visibility:public"], deps = if_rocm_is_configured([ ":miopen_plugin", ":rocfft_plugin", ":rocblas_plugin", ":rocrand_plugin", ":rocm_driver", ":rocm_platform", ]), alwayslink = 1, )