1*523fa7a6SAndroid Build Coastguard Workerload("@fbsource//xplat/executorch/build:runtime_wrapper.bzl", "runtime") 2*523fa7a6SAndroid Build Coastguard Worker 3*523fa7a6SAndroid Build Coastguard Workerdef _operator_registry_preprocessor_flags(): 4*523fa7a6SAndroid Build Coastguard Worker max_kernel_num = native.read_config("executorch", "max_kernel_num", None) 5*523fa7a6SAndroid Build Coastguard Worker if max_kernel_num != None: 6*523fa7a6SAndroid Build Coastguard Worker return ["-DMAX_KERNEL_NUM=" + max_kernel_num] 7*523fa7a6SAndroid Build Coastguard Worker elif not runtime.is_oss: 8*523fa7a6SAndroid Build Coastguard Worker return select({ 9*523fa7a6SAndroid Build Coastguard Worker "DEFAULT": [], 10*523fa7a6SAndroid Build Coastguard Worker "fbsource//xplat/executorch/build/constraints:executorch-max-kernel-num-256": ["-DMAX_KERNEL_NUM=256"], 11*523fa7a6SAndroid Build Coastguard Worker "fbsource//xplat/executorch/build/constraints:executorch-max-kernel-num-64": ["-DMAX_KERNEL_NUM=64"], 12*523fa7a6SAndroid Build Coastguard Worker }) 13*523fa7a6SAndroid Build Coastguard Worker else: 14*523fa7a6SAndroid Build Coastguard Worker return [] 15*523fa7a6SAndroid Build Coastguard Worker 16*523fa7a6SAndroid Build Coastguard Workerdef define_common_targets(): 17*523fa7a6SAndroid Build Coastguard Worker """Defines targets that should be shared between fbcode and xplat. 18*523fa7a6SAndroid Build Coastguard Worker 19*523fa7a6SAndroid Build Coastguard Worker The directory containing this targets.bzl file should also contain both 20*523fa7a6SAndroid Build Coastguard Worker TARGETS and BUCK files that call this function. 21*523fa7a6SAndroid Build Coastguard Worker """ 22*523fa7a6SAndroid Build Coastguard Worker 23*523fa7a6SAndroid Build Coastguard Worker runtime.cxx_library( 24*523fa7a6SAndroid Build Coastguard Worker name = "operator_registry", 25*523fa7a6SAndroid Build Coastguard Worker srcs = ["operator_registry.cpp"], 26*523fa7a6SAndroid Build Coastguard Worker exported_headers = ["operator_registry.h"], 27*523fa7a6SAndroid Build Coastguard Worker visibility = [ 28*523fa7a6SAndroid Build Coastguard Worker "//executorch/...", 29*523fa7a6SAndroid Build Coastguard Worker "@EXECUTORCH_CLIENTS", 30*523fa7a6SAndroid Build Coastguard Worker ], 31*523fa7a6SAndroid Build Coastguard Worker exported_deps = [ 32*523fa7a6SAndroid Build Coastguard Worker "//executorch/runtime/core:core", 33*523fa7a6SAndroid Build Coastguard Worker "//executorch/runtime/core:evalue", 34*523fa7a6SAndroid Build Coastguard Worker ], 35*523fa7a6SAndroid Build Coastguard Worker preprocessor_flags = _operator_registry_preprocessor_flags(), 36*523fa7a6SAndroid Build Coastguard Worker ) 37*523fa7a6SAndroid Build Coastguard Worker 38*523fa7a6SAndroid Build Coastguard Worker runtime.cxx_library( 39*523fa7a6SAndroid Build Coastguard Worker name = "operator_registry_MAX_NUM_KERNELS_TEST_ONLY", 40*523fa7a6SAndroid Build Coastguard Worker srcs = ["operator_registry.cpp"], 41*523fa7a6SAndroid Build Coastguard Worker exported_headers = ["operator_registry.h"], 42*523fa7a6SAndroid Build Coastguard Worker visibility = [ 43*523fa7a6SAndroid Build Coastguard Worker "//executorch/...", 44*523fa7a6SAndroid Build Coastguard Worker "@EXECUTORCH_CLIENTS", 45*523fa7a6SAndroid Build Coastguard Worker ], 46*523fa7a6SAndroid Build Coastguard Worker exported_deps = [ 47*523fa7a6SAndroid Build Coastguard Worker "//executorch/runtime/core:core", 48*523fa7a6SAndroid Build Coastguard Worker "//executorch/runtime/core:evalue", 49*523fa7a6SAndroid Build Coastguard Worker ], 50*523fa7a6SAndroid Build Coastguard Worker preprocessor_flags = ["-DMAX_KERNEL_NUM=1"], 51*523fa7a6SAndroid Build Coastguard Worker ) 52*523fa7a6SAndroid Build Coastguard Worker 53*523fa7a6SAndroid Build Coastguard Worker for aten_mode in (True, False): 54*523fa7a6SAndroid Build Coastguard Worker aten_suffix = "_aten" if aten_mode else "" 55*523fa7a6SAndroid Build Coastguard Worker 56*523fa7a6SAndroid Build Coastguard Worker runtime.cxx_library( 57*523fa7a6SAndroid Build Coastguard Worker name = "kernel_runtime_context" + aten_suffix, 58*523fa7a6SAndroid Build Coastguard Worker exported_headers = [ 59*523fa7a6SAndroid Build Coastguard Worker "kernel_runtime_context.h", 60*523fa7a6SAndroid Build Coastguard Worker ], 61*523fa7a6SAndroid Build Coastguard Worker visibility = [ 62*523fa7a6SAndroid Build Coastguard Worker "//executorch/kernels/...", 63*523fa7a6SAndroid Build Coastguard Worker "//executorch/runtime/executor/...", 64*523fa7a6SAndroid Build Coastguard Worker "//executorch/runtime/kernel/...", 65*523fa7a6SAndroid Build Coastguard Worker "@EXECUTORCH_CLIENTS", 66*523fa7a6SAndroid Build Coastguard Worker ], 67*523fa7a6SAndroid Build Coastguard Worker exported_deps = [ 68*523fa7a6SAndroid Build Coastguard Worker "//executorch/runtime/core:core", 69*523fa7a6SAndroid Build Coastguard Worker "//executorch/runtime/platform:platform", 70*523fa7a6SAndroid Build Coastguard Worker "//executorch/runtime/core:memory_allocator", 71*523fa7a6SAndroid Build Coastguard Worker "//executorch/runtime/core:event_tracer" + aten_suffix, 72*523fa7a6SAndroid Build Coastguard Worker # TODO(T147221312): This will eventually depend on exec_aten 73*523fa7a6SAndroid Build Coastguard Worker # once KernelRuntimeContext support tensor resizing, which is 74*523fa7a6SAndroid Build Coastguard Worker # why this target supports aten mode. 75*523fa7a6SAndroid Build Coastguard Worker ], 76*523fa7a6SAndroid Build Coastguard Worker ) 77*523fa7a6SAndroid Build Coastguard Worker 78*523fa7a6SAndroid Build Coastguard Worker runtime.cxx_library( 79*523fa7a6SAndroid Build Coastguard Worker name = "kernel_includes" + aten_suffix, 80*523fa7a6SAndroid Build Coastguard Worker exported_headers = [ 81*523fa7a6SAndroid Build Coastguard Worker "kernel_includes.h", 82*523fa7a6SAndroid Build Coastguard Worker ], 83*523fa7a6SAndroid Build Coastguard Worker visibility = [ 84*523fa7a6SAndroid Build Coastguard Worker "//executorch/runtime/kernel/...", 85*523fa7a6SAndroid Build Coastguard Worker "//executorch/kernels/...", 86*523fa7a6SAndroid Build Coastguard Worker "//executorch/kernels/prim_ops/...", # Prim kernels 87*523fa7a6SAndroid Build Coastguard Worker "@EXECUTORCH_CLIENTS", 88*523fa7a6SAndroid Build Coastguard Worker ], 89*523fa7a6SAndroid Build Coastguard Worker exported_deps = [ 90*523fa7a6SAndroid Build Coastguard Worker ":kernel_runtime_context" + aten_suffix, 91*523fa7a6SAndroid Build Coastguard Worker "//executorch/runtime/core/exec_aten:lib" + aten_suffix, 92*523fa7a6SAndroid Build Coastguard Worker "//executorch/runtime/core/exec_aten/util:scalar_type_util" + aten_suffix, 93*523fa7a6SAndroid Build Coastguard Worker "//executorch/runtime/core/exec_aten/util:tensor_util" + aten_suffix, 94*523fa7a6SAndroid Build Coastguard Worker ], 95*523fa7a6SAndroid Build Coastguard Worker ) 96