1load("//tensorflow/lite:special_rules.bzl", "tflite_portable_test_suite") 2load("//tensorflow:tensorflow.bzl", "get_compatible_with_portable") 3 4package( 5 default_visibility = [ 6 "//visibility:public", 7 ], 8 licenses = ["notice"], 9) 10 11# Client of this library is responsible to provide an implementation of 12# for headers in //third_party/tensorflow/lite/nnapi:nnapi_implementation_headers 13cc_library( 14 name = "nnapi_delegate_no_nnapi_implementation", 15 srcs = select({ 16 "//tensorflow:ios": [ 17 "nnapi_delegate_disabled.cc", 18 ], 19 "//tensorflow:windows": [ 20 "nnapi_delegate_disabled.cc", 21 ], 22 "//conditions:default": [ 23 "nnapi_delegate.cc", 24 "quant_lstm_sup.h", 25 "quant_lstm_sup.cc", 26 ], 27 }), 28 hdrs = [ 29 "nnapi_delegate.h", 30 "nnapi_delegate_kernel.h", 31 ], 32 compatible_with = get_compatible_with_portable(), 33 deps = [ 34 "//tensorflow/lite:allocation", 35 "//tensorflow/lite:kernel_api", 36 "//tensorflow/lite:minimal_logging", 37 "//tensorflow/lite:util", 38 "//tensorflow/lite/c:c_api_types", 39 "//tensorflow/lite/c:common", 40 "//tensorflow/lite/delegates:serialization", 41 "//tensorflow/lite/delegates:utils", 42 "//tensorflow/lite/kernels:kernel_util", 43 "//tensorflow/lite/nnapi:nnapi_implementation_headers", 44 "//tensorflow/lite/nnapi:nnapi_lib", 45 "//tensorflow/lite/nnapi:nnapi_util", 46 "//tensorflow/lite/nnapi/sl:nnapi_support_library_headers", 47 "//tensorflow/lite/schema:schema_fbs", 48 "//tensorflow/lite/tools/optimize/sparsity:format_converter", 49 "@FP16", 50 "@farmhash_archive//:farmhash", 51 ], 52) 53 54cc_library( 55 name = "nnapi_delegate", 56 hdrs = [ 57 "nnapi_delegate.h", 58 "nnapi_delegate_kernel.h", 59 ], 60 compatible_with = get_compatible_with_portable(), 61 deps = [ 62 ":nnapi_delegate_no_nnapi_implementation", 63 "//tensorflow/lite:allocation", 64 "//tensorflow/lite/c:common", 65 "//tensorflow/lite/delegates:serialization", 66 "//tensorflow/lite/nnapi:nnapi_implementation", 67 "//tensorflow/lite/nnapi:nnapi_lib", 68 "@FP16", 69 ], 70) 71 72cc_library( 73 name = "nnapi_delegate_verbose_validation", 74 srcs = select({ 75 "//tensorflow:ios": [ 76 "nnapi_delegate_disabled.cc", 77 ], 78 "//tensorflow:windows": [ 79 "nnapi_delegate_disabled.cc", 80 ], 81 "//conditions:default": [ 82 "nnapi_delegate.cc", 83 "quant_lstm_sup.h", 84 "quant_lstm_sup.cc", 85 ], 86 }), 87 hdrs = [ 88 "nnapi_delegate.h", 89 "nnapi_delegate_kernel.h", 90 ], 91 copts = ["-DNNAPI_VERBOSE_VALIDATION"], 92 deps = [ 93 "//tensorflow/lite:allocation", 94 "//tensorflow/lite:kernel_api", 95 "//tensorflow/lite:minimal_logging", 96 "//tensorflow/lite:util", 97 "//tensorflow/lite/c:c_api_types", 98 "//tensorflow/lite/c:common", 99 "//tensorflow/lite/delegates:serialization", 100 "//tensorflow/lite/delegates:utils", 101 "//tensorflow/lite/kernels:kernel_util", 102 "//tensorflow/lite/nnapi:nnapi_implementation", 103 "//tensorflow/lite/nnapi:nnapi_lib", 104 "//tensorflow/lite/nnapi:nnapi_util", 105 "//tensorflow/lite/nnapi/sl:nnapi_support_library_headers", 106 "//tensorflow/lite/schema:schema_fbs", 107 "//tensorflow/lite/tools/optimize/sparsity:format_converter", 108 "@FP16", 109 "@farmhash_archive//:farmhash", 110 ], 111) 112 113cc_library( 114 name = "acceleration_test_util", 115 testonly = 1, 116 srcs = [ 117 "acceleration_test_list.cc", 118 "acceleration_test_util.cc", 119 ], 120 hdrs = ["acceleration_test_util.h"], 121 deps = [ 122 ":nnapi_delegate", 123 "//tensorflow/lite/kernels:acceleration_test_util_internal", 124 "@com_google_absl//absl/types:optional", 125 "@com_google_googletest//:gtest", 126 ], 127) 128 129cc_library( 130 name = "nnapi_delegate_mock_test", 131 testonly = 1, 132 hdrs = [ 133 "nnapi_delegate_mock_test.h", 134 ], 135 copts = select({ 136 "//tensorflow:ios": [ 137 "-DNNAPI_DELEGATE_DISABLED", 138 ], 139 "//tensorflow:windows": [ 140 "-DNNAPI_DELEGATE_DISABLED", 141 ], 142 "//conditions:default": [], 143 }), 144 deps = [ 145 ":nnapi_delegate", 146 "//tensorflow/lite/nnapi:nnapi_handler", 147 "//tensorflow/lite/nnapi:nnapi_implementation", 148 "//tensorflow/lite/nnapi:nnapi_lib", 149 "@com_google_absl//absl/memory", 150 "@com_google_googletest//:gtest", 151 ], 152) 153 154cc_test( 155 name = "nnapi_delegate_test", 156 size = "small", 157 srcs = [ 158 "nnapi_delegate_test.cc", 159 ], 160 tags = [ 161 "no_windows", 162 "tflite_not_portable_ios", 163 ], 164 deps = [ 165 ":nnapi_delegate", 166 ":nnapi_delegate_mock_test", 167 "//tensorflow/lite:framework", 168 "//tensorflow/lite/c:common", 169 "//tensorflow/lite/kernels:deprecated_backends", 170 "//tensorflow/lite/kernels:test_util", 171 "//tensorflow/lite/nnapi:nnapi_implementation", 172 "//tensorflow/lite/nnapi:nnapi_lib", 173 "@com_google_googletest//:gtest_main", 174 ], 175) 176 177cc_test( 178 name = "nnapi_delegate_errno_test", 179 size = "small", 180 srcs = [ 181 "nnapi_delegate_errno_test.cc", 182 ], 183 tags = [ 184 "no_mac", 185 "no_windows", 186 "tflite_not_portable_ios", 187 ], 188 deps = [ 189 ":nnapi_delegate", 190 ":nnapi_delegate_mock_test", 191 "//tensorflow/lite:framework", 192 "//tensorflow/lite/c:common", 193 "//tensorflow/lite/kernels:test_util", 194 "//tensorflow/lite/nnapi:nnapi_implementation", 195 "//tensorflow/lite/nnapi:nnapi_lib", 196 "@com_google_googletest//:gtest_main", 197 ], 198) 199 200cc_test( 201 name = "nnapi_delegate_device_selection_test", 202 size = "small", 203 srcs = [ 204 "nnapi_delegate_device_selection_test.cc", 205 ], 206 tags = [ 207 "no_mac", 208 "no_windows", 209 "tflite_not_portable_ios", 210 ], 211 deps = [ 212 ":nnapi_delegate", 213 ":nnapi_delegate_mock_test", 214 "//tensorflow/lite:framework", 215 "//tensorflow/lite:kernel_api", 216 "//tensorflow/lite/c:common", 217 "//tensorflow/lite/kernels:test_util", 218 "//tensorflow/lite/nnapi:nnapi_implementation", 219 "//tensorflow/lite/nnapi:nnapi_lib", 220 "@com_google_googletest//:gtest_main", 221 ], 222) 223 224cc_test( 225 name = "nnapi_delegate_nnapi_failure_handling_test", 226 size = "small", 227 srcs = [ 228 "nnapi_delegate_nnapi_failure_handling_test.cc", 229 ], 230 tags = [ 231 "no_mac", 232 "no_windows", 233 "tflite_not_portable_ios", 234 ], 235 deps = [ 236 ":nnapi_delegate", 237 ":nnapi_delegate_mock_test", 238 "//tensorflow/lite:framework", 239 "//tensorflow/lite:kernel_api", 240 "//tensorflow/lite/c:common", 241 "//tensorflow/lite/kernels:test_util", 242 "//tensorflow/lite/nnapi:nnapi_implementation", 243 "//tensorflow/lite/nnapi:nnapi_lib", 244 "@com_google_googletest//:gtest_main", 245 ], 246) 247 248cc_test( 249 name = "nnapi_delegate_signed_quantization_test", 250 size = "small", 251 srcs = [ 252 "nnapi_delegate_signed_quantization_test.cc", 253 ], 254 tags = [ 255 "no_mac", 256 "no_windows", 257 "tflite_not_portable_ios", 258 ], 259 deps = [ 260 ":nnapi_delegate", 261 ":nnapi_delegate_mock_test", 262 "//tensorflow/lite:framework", 263 "//tensorflow/lite:kernel_api", 264 "//tensorflow/lite/c:common", 265 "//tensorflow/lite/kernels:builtin_ops", 266 "//tensorflow/lite/kernels:test_util", 267 "//tensorflow/lite/nnapi:nnapi_implementation", 268 "//tensorflow/lite/nnapi:nnapi_lib", 269 "@com_google_googletest//:gtest_main", 270 ], 271) 272 273cc_test( 274 name = "quant_lstm_sup_test", 275 size = "small", 276 srcs = [ 277 "quant_lstm_sup.cc", 278 "quant_lstm_sup.h", 279 "quant_lstm_sup_test.cc", 280 ], 281 deps = [ 282 ":nnapi_delegate", 283 "//tensorflow/lite:framework", 284 "//tensorflow/lite/c:common", 285 "//tensorflow/lite/kernels:kernel_util", 286 "//tensorflow/lite/testing:util", 287 "@com_google_googletest//:gtest_main", 288 ], 289) 290 291tflite_portable_test_suite() 292