1load("@bazel_skylib//:bzl_library.bzl", "bzl_library") 2 3licenses(["restricted"]) # MPL2, portions GPL v3, LGPL v3, BSD-like 4 5package(default_visibility = ["//visibility:public"]) 6 7config_setting( 8 name = "using_hipcc", 9 values = { 10 "define": "using_rocm_hipcc=true", 11 }, 12) 13 14cc_library( 15 name = "rocm_headers", 16 hdrs = [ 17 "rocm/rocm_config.h", 18 %{rocm_headers} 19 ], 20 includes = [ 21 ".", 22 "rocm/include", 23 "rocm/include/rocrand", 24 "rocm/include/roctracer", 25 ], 26 visibility = ["//visibility:public"], 27) 28 29cc_library( 30 name = "hip", 31 srcs = ["rocm/lib/%{hip_lib}"], 32 data = ["rocm/lib/%{hip_lib}"], 33 includes = [ 34 ".", 35 "rocm/include", 36 ], 37 linkstatic = 1, 38 visibility = ["//visibility:public"], 39) 40 41cc_library( 42 name = "rocblas", 43 srcs = ["rocm/lib/%{rocblas_lib}"], 44 data = ["rocm/lib/%{rocblas_lib}"], 45 includes = [ 46 ".", 47 "rocm/include", 48 ], 49 linkstatic = 1, 50 visibility = ["//visibility:public"], 51) 52 53cc_library( 54 name = "%{hipfft_or_rocfft}", 55 srcs = ["rocm/lib/%{hipfft_or_rocfft_lib}"], 56 data = ["rocm/lib/%{hipfft_or_rocfft_lib}"], 57 includes = [ 58 ".", 59 "rocm/include", 60 ], 61 linkstatic = 1, 62 visibility = ["//visibility:public"], 63) 64 65cc_library( 66 name = "hiprand", 67 srcs = ["rocm/lib/%{hiprand_lib}"], 68 data = ["rocm/lib/%{hiprand_lib}"], 69 includes = [ 70 ".", 71 "rocm/include", 72 "rocm/include/rocrand", 73 ], 74 linkstatic = 1, 75 visibility = ["//visibility:public"], 76) 77 78cc_library( 79 name = "miopen", 80 srcs = ["rocm/lib/%{miopen_lib}"], 81 data = ["rocm/lib/%{miopen_lib}"], 82 includes = [ 83 ".", 84 "rocm/include", 85 ], 86 linkstatic = 1, 87 visibility = ["//visibility:public"], 88) 89 90cc_library( 91 name = "rccl", 92 srcs = ["rocm/lib/%{rccl_lib}"], 93 data = ["rocm/lib/%{rccl_lib}"], 94 includes = [ 95 ".", 96 "rocm/include", 97 ], 98 linkstatic = 1, 99 visibility = ["//visibility:public"], 100) 101 102cc_library( 103 name = "rocm", 104 visibility = ["//visibility:public"], 105 deps = [ 106 ":rocm_headers", 107 ":hip", 108 ":rocblas", 109 ":hipblas", 110 ":%{hipfft_or_rocfft}", 111 ":hiprand", 112 ":miopen", 113 ":hipsparse", 114 ":roctracer", 115 ":rocsolver", 116 ":hipsolver", 117 ], 118) 119 120bzl_library( 121 name = "build_defs_bzl", 122 srcs = ["build_defs.bzl"], 123) 124 125cc_library( 126 name = "rocprim", 127 srcs = [ 128 "rocm/include/hipcub/hipcub_version.hpp", 129 "rocm/include/rocprim/rocprim_version.hpp", 130 ], 131 hdrs = glob([ 132 "rocm/include/hipcub/**", 133 "rocm/include/rocprim/**", 134 ]), 135 includes = [ 136 ".", 137 "rocm/include/hipcub", 138 "rocm/include/rocprim", 139 ], 140 visibility = ["//visibility:public"], 141 deps = [ 142 "@local_config_rocm//rocm:rocm_headers", 143 ], 144) 145 146cc_library( 147 name = "hipsparse", 148 srcs = ["rocm/lib/%{hipsparse_lib}"], 149 data = ["rocm/lib/%{hipsparse_lib}"], 150) 151 152cc_library( 153 name = "roctracer", 154 data = ["rocm/lib/%{roctracer_lib}"], 155) 156 157cc_library( 158 name = "rocsolver", 159 srcs = ["rocm/lib/%{rocsolver_lib}"], 160 data = ["rocm/lib/%{rocsolver_lib}"], 161) 162 163cc_library( 164 name = "hipsolver", 165 srcs = ["rocm/lib/%{hipsolver_lib}"], 166 data = ["rocm/lib/%{hipsolver_lib}"], 167) 168 169cc_library( 170 name = "hipblas", 171 srcs = ["rocm/lib/%{hipblas_lib}"], 172 data = ["rocm/lib/%{hipblas_lib}"], 173) 174 175filegroup( 176 name = "rocm_root", 177 srcs = [ 178 "rocm/bin/clang-offload-bundler", 179 ], 180) 181 182%{copy_rules} 183