Skip to content

Commit 5d12f5c

Browse files
hsharma35facebook-github-bot
authored andcommitted
Separate buck targets per operator. (#7314)
Summary: Keep targets separate so we only compile the operators we need. Reviewed By: zonglinpeng Differential Revision: D67128598
1 parent b1d7e6c commit 5d12f5c

File tree

1 file changed

+46
-19
lines changed

1 file changed

+46
-19
lines changed
Lines changed: 46 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,45 @@
11
load("@fbsource//tools/build_defs:platform_defs.bzl", "CXX")
22
load("@fbsource//xplat/executorch/build:runtime_wrapper.bzl", "runtime")
33

4+
def define_operator(name: str, deps: list[str] | None = None) -> None:
5+
op_name = "op_{}".format(name)
6+
7+
# Deps used by all operators.
8+
common_deps = [
9+
"//executorch/kernels/portable/cpu/util:all_deps",
10+
"//executorch/kernels/portable/cpu/pattern:all_deps",
11+
"//executorch/runtime/kernel:kernel_includes",
12+
"//executorch/kernels/portable/cpu:scalar_utils",
13+
"fbsource//third-party/nnlib-FusionG3/xa_nnlib:libxa_nnlib_common",
14+
"fbsource//third-party/nnlib-FusionG3/xa_nnlib:libxa_nnlib",
15+
]
16+
if deps == None:
17+
deps = []
18+
19+
runtime.cxx_library(
20+
name = op_name,
21+
srcs = [op_name + ".cpp"],
22+
platforms = CXX,
23+
visibility = [
24+
"//executorch/backends/cadence/...",
25+
"@EXECUTORCH_CLIENTS",
26+
],
27+
deps = deps + common_deps,
28+
exported_deps = [
29+
":operators_header",
30+
],
31+
)
32+
33+
OPERATORS = [
34+
"add",
35+
"cat",
36+
"dequantize",
37+
"mul",
38+
"native_layer_norm",
39+
"quantize",
40+
"softmax",
41+
]
42+
443
def define_common_targets():
544
"""Defines targets that should be shared between fbcode and xplat.
645
@@ -11,28 +50,16 @@ def define_common_targets():
1150
# Define build targets for all operators registered in the tables above.
1251

1352
runtime.cxx_library(
14-
name = "cadence_g3_ops",
15-
srcs = glob([
16-
"*.cpp",
17-
]),
18-
exported_headers = glob([
19-
"*.h",
20-
]),
21-
platforms = CXX,
22-
deps = [
23-
"//executorch/kernels/portable/cpu/util:all_deps",
24-
"//executorch/kernels/portable/cpu/pattern:all_deps",
25-
"//executorch/runtime/kernel:kernel_includes",
26-
"//executorch/kernels/portable/cpu:scalar_utils",
27-
"fbsource//third-party/nnlib-FusionG3/xa_nnlib:libxa_nnlib_common",
28-
"fbsource//third-party/nnlib-FusionG3/xa_nnlib:libxa_nnlib",
29-
],
53+
name = "operators_header",
54+
exported_headers = ["operators.h"],
3055
visibility = [
3156
"//executorch/backends/cadence/...",
32-
"@EXECUTORCH_CLIENTS",
3357
],
3458
exported_deps = [
35-
"fbsource//third-party/nnlib-FusionG3/xa_nnlib:libxa_nnlib_common",
36-
"fbsource//third-party/nnlib-FusionG3/xa_nnlib:libxa_nnlib",
59+
"//executorch/runtime/core/exec_aten:lib",
60+
"//executorch/runtime/kernel:kernel_runtime_context",
3761
],
3862
)
63+
64+
for op in OPERATORS:
65+
define_operator(op)

0 commit comments

Comments
 (0)