xref: /aosp_15_r20/external/executorch/kernels/quantized/cpu/targets.bzl (revision 523fa7a60841cd1ecfb9cc4201f1ca8b03ed023a)
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