1*523fa7a6SAndroid Build Coastguard Workerload("@fbcode//target_determinator/macros:ci.bzl", "ci") 2*523fa7a6SAndroid Build Coastguard Workerload("@fbcode_macros//build_defs:native_rules.bzl", "buck_genrule") 3*523fa7a6SAndroid Build Coastguard Workerload("@fbsource//xplat/executorch/build:runtime_wrapper.bzl", "runtime") 4*523fa7a6SAndroid Build Coastguard Workerload("@fbsource//tools/build_defs:platform_defs.bzl", "ANDROID", "CXX", "FBCODE") 5*523fa7a6SAndroid Build Coastguard Worker 6*523fa7a6SAndroid Build Coastguard Worker 7*523fa7a6SAndroid Build Coastguard Workerdef get_vulkan_compiler_flags(): 8*523fa7a6SAndroid Build Coastguard Worker return ["-Wno-missing-prototypes", "-Wno-global-constructors"] 9*523fa7a6SAndroid Build Coastguard Worker 10*523fa7a6SAndroid Build Coastguard Workerdef get_labels(no_volk): 11*523fa7a6SAndroid Build Coastguard Worker if no_volk: 12*523fa7a6SAndroid Build Coastguard Worker return ci.labels(ci.linux(ci.mode("fbsource//arvr/mode/android/mac/dbg"))) 13*523fa7a6SAndroid Build Coastguard Worker else: 14*523fa7a6SAndroid Build Coastguard Worker return [] 15*523fa7a6SAndroid Build Coastguard Worker 16*523fa7a6SAndroid Build Coastguard Workerdef get_platforms(no_volk): 17*523fa7a6SAndroid Build Coastguard Worker if no_volk: 18*523fa7a6SAndroid Build Coastguard Worker return [ANDROID] 19*523fa7a6SAndroid Build Coastguard Worker else: 20*523fa7a6SAndroid Build Coastguard Worker return [ANDROID, CXX] 21*523fa7a6SAndroid Build Coastguard Worker 22*523fa7a6SAndroid Build Coastguard Workerdef vulkan_spv_shader_lib(name, spv_filegroups, is_fbcode = False, no_volk = False): 23*523fa7a6SAndroid Build Coastguard Worker gen_vulkan_spv_target = "//xplat/executorch/backends/vulkan:gen_vulkan_spv_bin" 24*523fa7a6SAndroid Build Coastguard Worker glslc_path = "//xplat/caffe2/fb/vulkan/dotslash:glslc" 25*523fa7a6SAndroid Build Coastguard Worker 26*523fa7a6SAndroid Build Coastguard Worker if is_fbcode: 27*523fa7a6SAndroid Build Coastguard Worker gen_vulkan_spv_target = "//executorch/backends/vulkan:gen_vulkan_spv_bin" 28*523fa7a6SAndroid Build Coastguard Worker glslc_path = "//caffe2/fb/vulkan/tools:glslc" 29*523fa7a6SAndroid Build Coastguard Worker 30*523fa7a6SAndroid Build Coastguard Worker glsl_paths = [] 31*523fa7a6SAndroid Build Coastguard Worker 32*523fa7a6SAndroid Build Coastguard Worker # TODO(ssjia): remove the need for subpath once subdir_glob is enabled in OSS 33*523fa7a6SAndroid Build Coastguard Worker for target, subpath in spv_filegroups.items(): 34*523fa7a6SAndroid Build Coastguard Worker glsl_paths.append("$(location {})/{}".format(target, subpath)) 35*523fa7a6SAndroid Build Coastguard Worker 36*523fa7a6SAndroid Build Coastguard Worker genrule_cmd = ( 37*523fa7a6SAndroid Build Coastguard Worker "$(exe {}) ".format(gen_vulkan_spv_target) + 38*523fa7a6SAndroid Build Coastguard Worker "--glsl-paths {} ".format(" ".join(glsl_paths)) + 39*523fa7a6SAndroid Build Coastguard Worker "--output-path $OUT " + 40*523fa7a6SAndroid Build Coastguard Worker "--glslc-path=$(exe {}) ".format(glslc_path) + 41*523fa7a6SAndroid Build Coastguard Worker "--tmp-dir-path=$OUT " + 42*523fa7a6SAndroid Build Coastguard Worker select({ 43*523fa7a6SAndroid Build Coastguard Worker "DEFAULT": "", 44*523fa7a6SAndroid Build Coastguard Worker "ovr_config//os:android": "--optimize", 45*523fa7a6SAndroid Build Coastguard Worker "ovr_config//os:linux": "--replace-u16vecn", 46*523fa7a6SAndroid Build Coastguard Worker }) 47*523fa7a6SAndroid Build Coastguard Worker ) 48*523fa7a6SAndroid Build Coastguard Worker 49*523fa7a6SAndroid Build Coastguard Worker genrule_name = "gen_{}_cpp".format(name) 50*523fa7a6SAndroid Build Coastguard Worker buck_genrule( 51*523fa7a6SAndroid Build Coastguard Worker name = genrule_name, 52*523fa7a6SAndroid Build Coastguard Worker outs = { 53*523fa7a6SAndroid Build Coastguard Worker "{}.cpp".format(name): ["spv.cpp"], 54*523fa7a6SAndroid Build Coastguard Worker }, 55*523fa7a6SAndroid Build Coastguard Worker cmd = genrule_cmd, 56*523fa7a6SAndroid Build Coastguard Worker default_outs = ["."], 57*523fa7a6SAndroid Build Coastguard Worker labels = ["uses_dotslash"], 58*523fa7a6SAndroid Build Coastguard Worker ) 59*523fa7a6SAndroid Build Coastguard Worker 60*523fa7a6SAndroid Build Coastguard Worker suffix = "_no_volk" if no_volk else "" 61*523fa7a6SAndroid Build Coastguard Worker runtime.cxx_library( 62*523fa7a6SAndroid Build Coastguard Worker name = name, 63*523fa7a6SAndroid Build Coastguard Worker srcs = [ 64*523fa7a6SAndroid Build Coastguard Worker ":{}[{}.cpp]".format(genrule_name, name), 65*523fa7a6SAndroid Build Coastguard Worker ], 66*523fa7a6SAndroid Build Coastguard Worker compiler_flags = get_vulkan_compiler_flags(), 67*523fa7a6SAndroid Build Coastguard Worker labels = get_labels(no_volk), 68*523fa7a6SAndroid Build Coastguard Worker platforms = get_platforms(no_volk), 69*523fa7a6SAndroid Build Coastguard Worker define_static_target = True, 70*523fa7a6SAndroid Build Coastguard Worker # Static initialization is used to register shaders to the global shader registry, 71*523fa7a6SAndroid Build Coastguard Worker # therefore link_whole must be True to make sure unused symbols are not discarded. 72*523fa7a6SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT: Avoid `link_whole=True` 73*523fa7a6SAndroid Build Coastguard Worker link_whole = True, 74*523fa7a6SAndroid Build Coastguard Worker # Define a soname that can be used for dynamic loading in Java, Python, etc. 75*523fa7a6SAndroid Build Coastguard Worker soname = "lib{}.$(ext)".format(name), 76*523fa7a6SAndroid Build Coastguard Worker exported_deps = [ 77*523fa7a6SAndroid Build Coastguard Worker "//executorch/backends/vulkan:vulkan_compute_api{}".format(suffix), 78*523fa7a6SAndroid Build Coastguard Worker ], 79*523fa7a6SAndroid Build Coastguard Worker ) 80*523fa7a6SAndroid Build Coastguard Worker 81*523fa7a6SAndroid Build Coastguard Workerdef define_common_targets(is_fbcode = False): 82*523fa7a6SAndroid Build Coastguard Worker runtime.python_library( 83*523fa7a6SAndroid Build Coastguard Worker name = "gen_vulkan_spv_lib", 84*523fa7a6SAndroid Build Coastguard Worker srcs = [ 85*523fa7a6SAndroid Build Coastguard Worker "runtime/gen_vulkan_spv.py", 86*523fa7a6SAndroid Build Coastguard Worker ], 87*523fa7a6SAndroid Build Coastguard Worker base_module = "", 88*523fa7a6SAndroid Build Coastguard Worker external_deps = ["torchgen"], 89*523fa7a6SAndroid Build Coastguard Worker ) 90*523fa7a6SAndroid Build Coastguard Worker 91*523fa7a6SAndroid Build Coastguard Worker runtime.python_binary( 92*523fa7a6SAndroid Build Coastguard Worker name = "gen_vulkan_spv_bin", 93*523fa7a6SAndroid Build Coastguard Worker main_module = "runtime.gen_vulkan_spv", 94*523fa7a6SAndroid Build Coastguard Worker visibility = [ 95*523fa7a6SAndroid Build Coastguard Worker "//executorch/backends/vulkan/...", 96*523fa7a6SAndroid Build Coastguard Worker "@EXECUTORCH_CLIENTS", 97*523fa7a6SAndroid Build Coastguard Worker ], 98*523fa7a6SAndroid Build Coastguard Worker deps = [ 99*523fa7a6SAndroid Build Coastguard Worker ":gen_vulkan_spv_lib", 100*523fa7a6SAndroid Build Coastguard Worker ], 101*523fa7a6SAndroid Build Coastguard Worker ) 102*523fa7a6SAndroid Build Coastguard Worker 103*523fa7a6SAndroid Build Coastguard Worker runtime.filegroup( 104*523fa7a6SAndroid Build Coastguard Worker name = "vulkan_graph_runtime_shaders", 105*523fa7a6SAndroid Build Coastguard Worker srcs = native.glob([ 106*523fa7a6SAndroid Build Coastguard Worker "runtime/graph/ops/glsl/*", 107*523fa7a6SAndroid Build Coastguard Worker ]), 108*523fa7a6SAndroid Build Coastguard Worker ) 109*523fa7a6SAndroid Build Coastguard Worker 110*523fa7a6SAndroid Build Coastguard Worker for no_volk in [True, False]: 111*523fa7a6SAndroid Build Coastguard Worker # No volk builds only available on xplat to build for Android 112*523fa7a6SAndroid Build Coastguard Worker if no_volk and is_fbcode: 113*523fa7a6SAndroid Build Coastguard Worker continue 114*523fa7a6SAndroid Build Coastguard Worker 115*523fa7a6SAndroid Build Coastguard Worker suffix = "_no_volk" if no_volk else "" 116*523fa7a6SAndroid Build Coastguard Worker 117*523fa7a6SAndroid Build Coastguard Worker VK_API_PREPROCESSOR_FLAGS = [] 118*523fa7a6SAndroid Build Coastguard Worker VK_API_DEPS = [ 119*523fa7a6SAndroid Build Coastguard Worker "fbsource//third-party/VulkanMemoryAllocator/3.0.1:VulkanMemoryAllocator_xplat", 120*523fa7a6SAndroid Build Coastguard Worker ] 121*523fa7a6SAndroid Build Coastguard Worker 122*523fa7a6SAndroid Build Coastguard Worker default_deps = [] 123*523fa7a6SAndroid Build Coastguard Worker android_deps = ["fbsource//third-party/toolchains:android"] 124*523fa7a6SAndroid Build Coastguard Worker default_flags = [] 125*523fa7a6SAndroid Build Coastguard Worker android_flags = [] 126*523fa7a6SAndroid Build Coastguard Worker 127*523fa7a6SAndroid Build Coastguard Worker if no_volk: 128*523fa7a6SAndroid Build Coastguard Worker android_deps.append("fbsource//third-party/toolchains:vulkan") 129*523fa7a6SAndroid Build Coastguard Worker else: 130*523fa7a6SAndroid Build Coastguard Worker for deps in [default_deps, android_deps]: 131*523fa7a6SAndroid Build Coastguard Worker deps.append("fbsource//third-party/volk:volk") 132*523fa7a6SAndroid Build Coastguard Worker for flags in [default_flags, android_flags]: 133*523fa7a6SAndroid Build Coastguard Worker flags.append("-DUSE_VULKAN_WRAPPER") 134*523fa7a6SAndroid Build Coastguard Worker flags.append("-DUSE_VULKAN_VOLK") 135*523fa7a6SAndroid Build Coastguard Worker android_flags.append("-DVK_ANDROID_external_memory_android_hardware_buffer") 136*523fa7a6SAndroid Build Coastguard Worker 137*523fa7a6SAndroid Build Coastguard Worker if is_fbcode: 138*523fa7a6SAndroid Build Coastguard Worker VK_API_DEPS += [ 139*523fa7a6SAndroid Build Coastguard Worker "fbsource//third-party/swiftshader:swiftshader_vk_headers", 140*523fa7a6SAndroid Build Coastguard Worker "fbsource//third-party/swiftshader/lib/linux-x64:libvk_swiftshader_fbcode", 141*523fa7a6SAndroid Build Coastguard Worker "fbsource//third-party/swiftshader/lib/linux-x64:libvk_swiftshader_so", 142*523fa7a6SAndroid Build Coastguard Worker ] 143*523fa7a6SAndroid Build Coastguard Worker else: 144*523fa7a6SAndroid Build Coastguard Worker VK_API_DEPS += select({ 145*523fa7a6SAndroid Build Coastguard Worker "DEFAULT": default_deps, 146*523fa7a6SAndroid Build Coastguard Worker "ovr_config//os:android": android_deps, 147*523fa7a6SAndroid Build Coastguard Worker "ovr_config//os:macos": [ 148*523fa7a6SAndroid Build Coastguard Worker "//third-party/khronos:moltenVK_static" 149*523fa7a6SAndroid Build Coastguard Worker ], 150*523fa7a6SAndroid Build Coastguard Worker }) 151*523fa7a6SAndroid Build Coastguard Worker VK_API_PREPROCESSOR_FLAGS += select({ 152*523fa7a6SAndroid Build Coastguard Worker "DEFAULT": default_flags, 153*523fa7a6SAndroid Build Coastguard Worker "ovr_config//os:android": android_flags, 154*523fa7a6SAndroid Build Coastguard Worker "ovr_config//os:macos": [] 155*523fa7a6SAndroid Build Coastguard Worker }) 156*523fa7a6SAndroid Build Coastguard Worker 157*523fa7a6SAndroid Build Coastguard Worker runtime.cxx_library( 158*523fa7a6SAndroid Build Coastguard Worker name = "vulkan_compute_api{}".format(suffix), 159*523fa7a6SAndroid Build Coastguard Worker compiler_flags = get_vulkan_compiler_flags(), 160*523fa7a6SAndroid Build Coastguard Worker srcs = native.glob([ 161*523fa7a6SAndroid Build Coastguard Worker "runtime/api/**/*.cpp", 162*523fa7a6SAndroid Build Coastguard Worker "runtime/utils/**/*.cpp", 163*523fa7a6SAndroid Build Coastguard Worker "runtime/vk_api/**/*.cpp", 164*523fa7a6SAndroid Build Coastguard Worker ]), 165*523fa7a6SAndroid Build Coastguard Worker exported_headers = native.glob([ 166*523fa7a6SAndroid Build Coastguard Worker "runtime/api/**/*.h", 167*523fa7a6SAndroid Build Coastguard Worker "runtime/utils/**/*.h", 168*523fa7a6SAndroid Build Coastguard Worker "runtime/vk_api/**/*.h", 169*523fa7a6SAndroid Build Coastguard Worker ]), 170*523fa7a6SAndroid Build Coastguard Worker labels = get_labels(no_volk), 171*523fa7a6SAndroid Build Coastguard Worker platforms = get_platforms(no_volk), 172*523fa7a6SAndroid Build Coastguard Worker visibility = [ 173*523fa7a6SAndroid Build Coastguard Worker "//executorch/backends/vulkan/...", 174*523fa7a6SAndroid Build Coastguard Worker "@EXECUTORCH_CLIENTS", 175*523fa7a6SAndroid Build Coastguard Worker ], 176*523fa7a6SAndroid Build Coastguard Worker exported_preprocessor_flags = VK_API_PREPROCESSOR_FLAGS, 177*523fa7a6SAndroid Build Coastguard Worker exported_deps = VK_API_DEPS, 178*523fa7a6SAndroid Build Coastguard Worker ) 179*523fa7a6SAndroid Build Coastguard Worker 180*523fa7a6SAndroid Build Coastguard Worker runtime.cxx_library( 181*523fa7a6SAndroid Build Coastguard Worker name = "vulkan_graph_runtime{}".format(suffix), 182*523fa7a6SAndroid Build Coastguard Worker srcs = native.glob([ 183*523fa7a6SAndroid Build Coastguard Worker "runtime/graph/**/*.cpp", 184*523fa7a6SAndroid Build Coastguard Worker ]), 185*523fa7a6SAndroid Build Coastguard Worker compiler_flags = get_vulkan_compiler_flags(), 186*523fa7a6SAndroid Build Coastguard Worker exported_headers = native.glob([ 187*523fa7a6SAndroid Build Coastguard Worker "runtime/graph/**/*.h", 188*523fa7a6SAndroid Build Coastguard Worker ]), 189*523fa7a6SAndroid Build Coastguard Worker labels = get_labels(no_volk), 190*523fa7a6SAndroid Build Coastguard Worker platforms = get_platforms(no_volk), 191*523fa7a6SAndroid Build Coastguard Worker visibility = [ 192*523fa7a6SAndroid Build Coastguard Worker "//executorch/backends/...", 193*523fa7a6SAndroid Build Coastguard Worker "//executorch/extension/pybindings/...", 194*523fa7a6SAndroid Build Coastguard Worker "//executorch/test/...", 195*523fa7a6SAndroid Build Coastguard Worker "@EXECUTORCH_CLIENTS", 196*523fa7a6SAndroid Build Coastguard Worker ], 197*523fa7a6SAndroid Build Coastguard Worker exported_deps = [ 198*523fa7a6SAndroid Build Coastguard Worker ":vulkan_graph_runtime_shaderlib{}".format(suffix), 199*523fa7a6SAndroid Build Coastguard Worker ], 200*523fa7a6SAndroid Build Coastguard Worker define_static_target = True, 201*523fa7a6SAndroid Build Coastguard Worker # Static initialization is used to register operators to the global operator registry, 202*523fa7a6SAndroid Build Coastguard Worker # therefore link_whole must be True to make sure unused symbols are not discarded. 203*523fa7a6SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT: Avoid `link_whole=True` 204*523fa7a6SAndroid Build Coastguard Worker link_whole = True, 205*523fa7a6SAndroid Build Coastguard Worker # Define an soname that can be used for dynamic loading in Java, Python, etc. 206*523fa7a6SAndroid Build Coastguard Worker soname = "libvulkan_graph_runtime.$(ext)", 207*523fa7a6SAndroid Build Coastguard Worker ) 208*523fa7a6SAndroid Build Coastguard Worker 209*523fa7a6SAndroid Build Coastguard Worker vulkan_spv_shader_lib( 210*523fa7a6SAndroid Build Coastguard Worker name = "vulkan_graph_runtime_shaderlib{}".format(suffix), 211*523fa7a6SAndroid Build Coastguard Worker spv_filegroups = { 212*523fa7a6SAndroid Build Coastguard Worker ":vulkan_graph_runtime_shaders": "runtime/graph/ops/glsl", 213*523fa7a6SAndroid Build Coastguard Worker }, 214*523fa7a6SAndroid Build Coastguard Worker is_fbcode = is_fbcode, 215*523fa7a6SAndroid Build Coastguard Worker no_volk = no_volk, 216*523fa7a6SAndroid Build Coastguard Worker ) 217*523fa7a6SAndroid Build Coastguard Worker 218*523fa7a6SAndroid Build Coastguard Worker runtime.cxx_library( 219*523fa7a6SAndroid Build Coastguard Worker name = "vulkan_backend_lib{}".format(suffix), 220*523fa7a6SAndroid Build Coastguard Worker srcs = native.glob([ 221*523fa7a6SAndroid Build Coastguard Worker "runtime/*.cpp", 222*523fa7a6SAndroid Build Coastguard Worker ]), 223*523fa7a6SAndroid Build Coastguard Worker compiler_flags = get_vulkan_compiler_flags(), 224*523fa7a6SAndroid Build Coastguard Worker headers = native.glob([ 225*523fa7a6SAndroid Build Coastguard Worker "runtime/*.h", 226*523fa7a6SAndroid Build Coastguard Worker ]), 227*523fa7a6SAndroid Build Coastguard Worker labels = get_labels(no_volk), 228*523fa7a6SAndroid Build Coastguard Worker platforms = get_platforms(no_volk), 229*523fa7a6SAndroid Build Coastguard Worker visibility = [ 230*523fa7a6SAndroid Build Coastguard Worker "//executorch/backends/...", 231*523fa7a6SAndroid Build Coastguard Worker "//executorch/extension/pybindings/...", 232*523fa7a6SAndroid Build Coastguard Worker "//executorch/test/...", 233*523fa7a6SAndroid Build Coastguard Worker "@EXECUTORCH_CLIENTS", 234*523fa7a6SAndroid Build Coastguard Worker ], 235*523fa7a6SAndroid Build Coastguard Worker deps = [ 236*523fa7a6SAndroid Build Coastguard Worker ":vulkan_graph_runtime{}".format(suffix), 237*523fa7a6SAndroid Build Coastguard Worker "//executorch/backends/vulkan/serialization:vk_delegate_schema", 238*523fa7a6SAndroid Build Coastguard Worker "//executorch/runtime/core:event_tracer", 239*523fa7a6SAndroid Build Coastguard Worker "//executorch/runtime/backend:interface", 240*523fa7a6SAndroid Build Coastguard Worker "//executorch/runtime/core/exec_aten/util:tensor_util", 241*523fa7a6SAndroid Build Coastguard Worker ], 242*523fa7a6SAndroid Build Coastguard Worker define_static_target = True, 243*523fa7a6SAndroid Build Coastguard Worker # VulkanBackend.cpp needs to compile with executor as whole 244*523fa7a6SAndroid Build Coastguard Worker # @lint-ignore BUCKLINT: Avoid `link_whole=True` (https://fburl.com/avoid-link-whole) 245*523fa7a6SAndroid Build Coastguard Worker link_whole = True, 246*523fa7a6SAndroid Build Coastguard Worker ) 247*523fa7a6SAndroid Build Coastguard Worker 248*523fa7a6SAndroid Build Coastguard Worker ## 249*523fa7a6SAndroid Build Coastguard Worker ## AOT targets 250*523fa7a6SAndroid Build Coastguard Worker ## 251*523fa7a6SAndroid Build Coastguard Worker if is_fbcode: 252*523fa7a6SAndroid Build Coastguard Worker runtime.python_library( 253*523fa7a6SAndroid Build Coastguard Worker name = "utils_lib", 254*523fa7a6SAndroid Build Coastguard Worker srcs = [ 255*523fa7a6SAndroid Build Coastguard Worker "utils.py", 256*523fa7a6SAndroid Build Coastguard Worker ], 257*523fa7a6SAndroid Build Coastguard Worker visibility = [ 258*523fa7a6SAndroid Build Coastguard Worker "//executorch/backends/vulkan/...", 259*523fa7a6SAndroid Build Coastguard Worker ], 260*523fa7a6SAndroid Build Coastguard Worker deps = [ 261*523fa7a6SAndroid Build Coastguard Worker "//caffe2:torch", 262*523fa7a6SAndroid Build Coastguard Worker "//executorch/exir:tensor", 263*523fa7a6SAndroid Build Coastguard Worker "//executorch/backends/vulkan/serialization:lib", 264*523fa7a6SAndroid Build Coastguard Worker ] 265*523fa7a6SAndroid Build Coastguard Worker ) 266*523fa7a6SAndroid Build Coastguard Worker 267*523fa7a6SAndroid Build Coastguard Worker runtime.python_library( 268*523fa7a6SAndroid Build Coastguard Worker name = "custom_ops_lib", 269*523fa7a6SAndroid Build Coastguard Worker srcs = [ 270*523fa7a6SAndroid Build Coastguard Worker "custom_ops_lib.py" 271*523fa7a6SAndroid Build Coastguard Worker ], 272*523fa7a6SAndroid Build Coastguard Worker visibility = [ 273*523fa7a6SAndroid Build Coastguard Worker "//executorch/...", 274*523fa7a6SAndroid Build Coastguard Worker "//executorch/vulkan/...", 275*523fa7a6SAndroid Build Coastguard Worker "@EXECUTORCH_CLIENTS", 276*523fa7a6SAndroid Build Coastguard Worker ], 277*523fa7a6SAndroid Build Coastguard Worker deps = [ 278*523fa7a6SAndroid Build Coastguard Worker "//caffe2:torch", 279*523fa7a6SAndroid Build Coastguard Worker ] 280*523fa7a6SAndroid Build Coastguard Worker ) 281*523fa7a6SAndroid Build Coastguard Worker 282*523fa7a6SAndroid Build Coastguard Worker runtime.python_library( 283*523fa7a6SAndroid Build Coastguard Worker name = "op_registry", 284*523fa7a6SAndroid Build Coastguard Worker srcs = [ 285*523fa7a6SAndroid Build Coastguard Worker "op_registry.py", 286*523fa7a6SAndroid Build Coastguard Worker ], 287*523fa7a6SAndroid Build Coastguard Worker visibility = [ 288*523fa7a6SAndroid Build Coastguard Worker "//executorch/...", 289*523fa7a6SAndroid Build Coastguard Worker "//executorch/vulkan/...", 290*523fa7a6SAndroid Build Coastguard Worker "@EXECUTORCH_CLIENTS", 291*523fa7a6SAndroid Build Coastguard Worker ], 292*523fa7a6SAndroid Build Coastguard Worker deps = [ 293*523fa7a6SAndroid Build Coastguard Worker ":custom_ops_lib", 294*523fa7a6SAndroid Build Coastguard Worker ":utils_lib", 295*523fa7a6SAndroid Build Coastguard Worker "//caffe2:torch", 296*523fa7a6SAndroid Build Coastguard Worker "//executorch/exir/dialects:lib", 297*523fa7a6SAndroid Build Coastguard Worker "//executorch/backends/vulkan/serialization:lib", 298*523fa7a6SAndroid Build Coastguard Worker ] 299*523fa7a6SAndroid Build Coastguard Worker ) 300*523fa7a6SAndroid Build Coastguard Worker 301*523fa7a6SAndroid Build Coastguard Worker runtime.python_library( 302*523fa7a6SAndroid Build Coastguard Worker name = "vulkan_preprocess", 303*523fa7a6SAndroid Build Coastguard Worker srcs = [ 304*523fa7a6SAndroid Build Coastguard Worker "vulkan_preprocess.py", 305*523fa7a6SAndroid Build Coastguard Worker ], 306*523fa7a6SAndroid Build Coastguard Worker visibility = [ 307*523fa7a6SAndroid Build Coastguard Worker "//executorch/...", 308*523fa7a6SAndroid Build Coastguard Worker "//executorch/vulkan/...", 309*523fa7a6SAndroid Build Coastguard Worker "@EXECUTORCH_CLIENTS", 310*523fa7a6SAndroid Build Coastguard Worker ], 311*523fa7a6SAndroid Build Coastguard Worker deps = [ 312*523fa7a6SAndroid Build Coastguard Worker "//executorch/backends/transforms:addmm_mm_to_linear", 313*523fa7a6SAndroid Build Coastguard Worker "//executorch/backends/transforms:fuse_batch_norm_with_conv", 314*523fa7a6SAndroid Build Coastguard Worker "//executorch/backends/transforms:fuse_conv_with_clamp", 315*523fa7a6SAndroid Build Coastguard Worker "//executorch/backends/transforms:fuse_dequant_linear", 316*523fa7a6SAndroid Build Coastguard Worker "//executorch/backends/transforms:fuse_view_copy", 317*523fa7a6SAndroid Build Coastguard Worker "//executorch/backends/transforms:remove_clone_ops", 318*523fa7a6SAndroid Build Coastguard Worker "//executorch/backends/vulkan/_passes:vulkan_passes", 319*523fa7a6SAndroid Build Coastguard Worker "//executorch/backends/vulkan/serialization:lib", 320*523fa7a6SAndroid Build Coastguard Worker "//executorch/exir/backend:backend_details", 321*523fa7a6SAndroid Build Coastguard Worker ], 322*523fa7a6SAndroid Build Coastguard Worker ) 323