1*523fa7a6SAndroid Build Coastguard Workerload("@fbsource//xplat/executorch/build:runtime_wrapper.bzl", "runtime") 2*523fa7a6SAndroid Build Coastguard Workerload("@fbsource//xplat/executorch/kernels/portable:op_registration_util.bzl", "define_op_target", "op_target") 3*523fa7a6SAndroid Build Coastguard Worker 4*523fa7a6SAndroid Build Coastguard Worker_QUANT_OPS = ( 5*523fa7a6SAndroid Build Coastguard Worker op_target( 6*523fa7a6SAndroid Build Coastguard Worker name = "op_add", 7*523fa7a6SAndroid Build Coastguard Worker ), 8*523fa7a6SAndroid Build Coastguard Worker op_target( 9*523fa7a6SAndroid Build Coastguard Worker name = "op_choose_qparams", 10*523fa7a6SAndroid Build Coastguard Worker deps = [ 11*523fa7a6SAndroid Build Coastguard Worker "//executorch/kernels/portable/cpu:vec_ops", 12*523fa7a6SAndroid Build Coastguard Worker ], 13*523fa7a6SAndroid Build Coastguard Worker ), 14*523fa7a6SAndroid Build Coastguard Worker op_target( 15*523fa7a6SAndroid Build Coastguard Worker name = "op_dequantize", 16*523fa7a6SAndroid Build Coastguard Worker deps = [ 17*523fa7a6SAndroid Build Coastguard Worker "//executorch/kernels/portable/cpu/util:reduce_util", 18*523fa7a6SAndroid Build Coastguard Worker ], 19*523fa7a6SAndroid Build Coastguard Worker _aten_mode_deps = [ 20*523fa7a6SAndroid Build Coastguard Worker "//executorch/kernels/portable/cpu/util:reduce_util_aten", 21*523fa7a6SAndroid Build Coastguard Worker ], 22*523fa7a6SAndroid Build Coastguard Worker ), 23*523fa7a6SAndroid Build Coastguard Worker op_target( 24*523fa7a6SAndroid Build Coastguard Worker name = "op_embedding", 25*523fa7a6SAndroid Build Coastguard Worker ), 26*523fa7a6SAndroid Build Coastguard Worker op_target( 27*523fa7a6SAndroid Build Coastguard Worker name = "op_embedding2b", 28*523fa7a6SAndroid Build Coastguard Worker deps = ["//executorch/kernels/quantized/cpu:embeddingxb"], 29*523fa7a6SAndroid Build Coastguard Worker _aten_mode_deps = [ 30*523fa7a6SAndroid Build Coastguard Worker "//executorch/kernels/quantized/cpu:embeddingxb_aten", 31*523fa7a6SAndroid Build Coastguard Worker ], 32*523fa7a6SAndroid Build Coastguard Worker ), 33*523fa7a6SAndroid Build Coastguard Worker op_target( 34*523fa7a6SAndroid Build Coastguard Worker name = "op_embedding4b", 35*523fa7a6SAndroid Build Coastguard Worker deps = ["//executorch/kernels/quantized/cpu:embeddingxb"], 36*523fa7a6SAndroid Build Coastguard Worker _aten_mode_deps = [ 37*523fa7a6SAndroid Build Coastguard Worker "//executorch/kernels/quantized/cpu:embeddingxb_aten", 38*523fa7a6SAndroid Build Coastguard Worker ], 39*523fa7a6SAndroid Build Coastguard Worker ), 40*523fa7a6SAndroid Build Coastguard Worker op_target( 41*523fa7a6SAndroid Build Coastguard Worker name = "op_mixed_mm", 42*523fa7a6SAndroid Build Coastguard Worker deps = [ 43*523fa7a6SAndroid Build Coastguard Worker "//executorch/kernels/portable/cpu:vec_ops", 44*523fa7a6SAndroid Build Coastguard Worker ], 45*523fa7a6SAndroid Build Coastguard Worker ), 46*523fa7a6SAndroid Build Coastguard Worker op_target( 47*523fa7a6SAndroid Build Coastguard Worker name = "op_mixed_linear", 48*523fa7a6SAndroid Build Coastguard Worker deps = [ 49*523fa7a6SAndroid Build Coastguard Worker "//executorch/kernels/portable/cpu:vec_ops", 50*523fa7a6SAndroid Build Coastguard Worker ], 51*523fa7a6SAndroid Build Coastguard Worker ), 52*523fa7a6SAndroid Build Coastguard Worker op_target( 53*523fa7a6SAndroid Build Coastguard Worker name = "op_quantize", 54*523fa7a6SAndroid Build Coastguard Worker deps = [ 55*523fa7a6SAndroid Build Coastguard Worker "//executorch/kernels/portable/cpu/util:reduce_util", 56*523fa7a6SAndroid Build Coastguard Worker ], 57*523fa7a6SAndroid Build Coastguard Worker _aten_mode_deps = [ 58*523fa7a6SAndroid Build Coastguard Worker "//executorch/kernels/portable/cpu/util:reduce_util_aten", 59*523fa7a6SAndroid Build Coastguard Worker ], 60*523fa7a6SAndroid Build Coastguard Worker ), 61*523fa7a6SAndroid Build Coastguard Worker) 62*523fa7a6SAndroid Build Coastguard Worker 63*523fa7a6SAndroid Build Coastguard Workerdef define_common_targets(): 64*523fa7a6SAndroid Build Coastguard Worker for op in _QUANT_OPS: 65*523fa7a6SAndroid Build Coastguard Worker define_op_target(is_aten_op = False, **op) 66*523fa7a6SAndroid Build Coastguard Worker 67*523fa7a6SAndroid Build Coastguard Worker quant_op_targets = [":{}".format(op["name"]) for op in _QUANT_OPS] 68*523fa7a6SAndroid Build Coastguard Worker 69*523fa7a6SAndroid Build Coastguard Worker runtime.cxx_library( 70*523fa7a6SAndroid Build Coastguard Worker name = "quantized_cpu", 71*523fa7a6SAndroid Build Coastguard Worker srcs = [], 72*523fa7a6SAndroid Build Coastguard Worker visibility = [ 73*523fa7a6SAndroid Build Coastguard Worker "//executorch/kernels/quantized/...", 74*523fa7a6SAndroid Build Coastguard Worker "//executorch/extension/pybindings/test/...", 75*523fa7a6SAndroid Build Coastguard Worker ], 76*523fa7a6SAndroid Build Coastguard Worker exported_deps = quant_op_targets, 77*523fa7a6SAndroid Build Coastguard Worker ) 78*523fa7a6SAndroid Build Coastguard Worker 79*523fa7a6SAndroid Build Coastguard Worker runtime.cxx_library( 80*523fa7a6SAndroid Build Coastguard Worker name = "embeddingxb", 81*523fa7a6SAndroid Build Coastguard Worker srcs = ["embeddingxb.cpp"], 82*523fa7a6SAndroid Build Coastguard Worker exported_headers = ["embeddingxb.h"], 83*523fa7a6SAndroid Build Coastguard Worker visibility = [ 84*523fa7a6SAndroid Build Coastguard Worker "//executorch/kernels/quantized/...", 85*523fa7a6SAndroid Build Coastguard Worker ], 86*523fa7a6SAndroid Build Coastguard Worker deps = ["//executorch/runtime/kernel:kernel_includes"], 87*523fa7a6SAndroid Build Coastguard Worker ) 88*523fa7a6SAndroid Build Coastguard Worker 89*523fa7a6SAndroid Build Coastguard Worker runtime.cxx_library( 90*523fa7a6SAndroid Build Coastguard Worker name = "embeddingxb_aten", 91*523fa7a6SAndroid Build Coastguard Worker srcs = ["embeddingxb.cpp"], 92*523fa7a6SAndroid Build Coastguard Worker exported_headers = ["embeddingxb.h"], 93*523fa7a6SAndroid Build Coastguard Worker visibility = [ 94*523fa7a6SAndroid Build Coastguard Worker "//executorch/kernels/quantized/...", 95*523fa7a6SAndroid Build Coastguard Worker ], 96*523fa7a6SAndroid Build Coastguard Worker deps = ["//executorch/runtime/kernel:kernel_includes_aten"], 97*523fa7a6SAndroid Build Coastguard Worker ) 98*523fa7a6SAndroid Build Coastguard Worker 99*523fa7a6SAndroid Build Coastguard Worker runtime.cxx_library( 100*523fa7a6SAndroid Build Coastguard Worker name = "quantized_cpu_aten", 101*523fa7a6SAndroid Build Coastguard Worker srcs = [], 102*523fa7a6SAndroid Build Coastguard Worker visibility = ["//executorch/kernels/quantized/..."], 103*523fa7a6SAndroid Build Coastguard Worker exported_deps = [t + "_aten" for t in quant_op_targets], 104*523fa7a6SAndroid Build Coastguard Worker ) 105