Skip to content

Commit ccedde7

Browse files
Matthias Cremonfacebook-github-bot
authored andcommitted
Split OSS generic ops into their own dependencies
Summary: As titled. Differential Revision: D82319999
1 parent d2783d0 commit ccedde7

File tree

1 file changed

+253
-7
lines changed

1 file changed

+253
-7
lines changed

backends/cadence/generic/operators/targets.bzl

Lines changed: 253 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,268 @@ load("@fbsource//tools/build_defs:platform_defs.bzl", "CXX")
22
load("@fbsource//xplat/executorch/build:runtime_wrapper.bzl", "runtime")
33

44
def define_common_targets():
5+
# Individual operator targets with optimized dependencies
6+
7+
# Basic operators (need broadcast_util and scalar_utils)
58
runtime.cxx_library(
6-
name = "cadence_generic_ops",
7-
srcs = glob([
8-
"*.cpp",
9-
]),
10-
exported_headers =glob([
11-
"*.h",
12-
]),
9+
name = "op_add",
10+
srcs = ["op_add.cpp"],
1311
platforms = CXX,
1412
deps = [
1513
"//executorch/kernels/portable/cpu/util:broadcast_util",
1614
"//executorch/runtime/kernel:kernel_includes",
1715
"//executorch/kernels/portable/cpu:scalar_utils",
16+
],
17+
visibility = [
18+
"//executorch/backends/cadence/...",
19+
"@EXECUTORCH_CLIENTS",
20+
],
21+
)
22+
23+
runtime.cxx_library(
24+
name = "op_full",
25+
srcs = ["op_full.cpp"],
26+
platforms = CXX,
27+
deps = [
28+
"//executorch/runtime/kernel:kernel_includes",
29+
"//executorch/kernels/portable/cpu:scalar_utils",
30+
],
31+
visibility = [
32+
"//executorch/backends/cadence/...",
33+
"@EXECUTORCH_CLIENTS",
34+
],
35+
)
36+
37+
# Simple operators (only need kernel_includes)
38+
runtime.cxx_library(
39+
name = "op_embedding",
40+
srcs = ["op_embedding.cpp"],
41+
platforms = CXX,
42+
deps = [
43+
"//executorch/runtime/kernel:kernel_includes",
44+
],
45+
visibility = [
46+
"//executorch/backends/cadence/...",
47+
"@EXECUTORCH_CLIENTS",
48+
],
49+
)
50+
51+
runtime.cxx_library(
52+
name = "op_view_copy",
53+
srcs = ["op_view_copy.cpp"],
54+
platforms = CXX,
55+
deps = [
56+
"//executorch/runtime/kernel:kernel_includes",
57+
],
58+
visibility = [
59+
"//executorch/backends/cadence/...",
60+
"@EXECUTORCH_CLIENTS",
61+
],
62+
)
63+
64+
# Operators that need the operators.h header and basic runtime
65+
runtime.cxx_library(
66+
name = "im2row_out",
67+
srcs = ["im2row_out.cpp"],
68+
exported_headers = ["operators.h"],
69+
platforms = CXX,
70+
deps = [
71+
"//executorch/runtime/kernel:kernel_includes",
72+
],
73+
visibility = [
74+
"//executorch/backends/cadence/...",
75+
"@EXECUTORCH_CLIENTS",
76+
],
77+
)
78+
79+
runtime.cxx_library(
80+
name = "op_requantize_out",
81+
srcs = ["op_requantize_out.cpp"],
82+
platforms = CXX,
83+
deps = [
84+
"//executorch/runtime/kernel:kernel_includes",
85+
"//executorch/backends/cadence/generic/kernels:cadence_kernels",
86+
],
87+
visibility = [
88+
"//executorch/backends/cadence/...",
89+
"@EXECUTORCH_CLIENTS",
90+
],
91+
)
92+
93+
# Quantized operators that need cadence kernels for quantize/dequantize
94+
runtime.cxx_library(
95+
name = "dequantize_per_tensor",
96+
srcs = ["dequantize_per_tensor.cpp"],
97+
exported_headers = ["quantized_ops.h"],
98+
platforms = CXX,
99+
deps = [
100+
"//executorch/runtime/kernel:kernel_includes",
18101
"//executorch/backends/cadence/generic/kernels:cadence_kernels",
19102
],
20103
visibility = [
21104
"//executorch/backends/cadence/...",
22105
],
23106
)
107+
108+
runtime.cxx_library(
109+
name = "quantize_per_tensor",
110+
srcs = ["quantize_per_tensor.cpp"],
111+
exported_headers = ["quantized_ops.h"],
112+
platforms = CXX,
113+
deps = [
114+
"//executorch/runtime/kernel:kernel_includes",
115+
"//executorch/backends/cadence/generic/kernels:cadence_kernels",
116+
],
117+
visibility = [
118+
"//executorch/backends/cadence/...",
119+
"@EXECUTORCH_CLIENTS",
120+
],
121+
)
122+
123+
runtime.cxx_library(
124+
name = "quantized_add_out",
125+
srcs = ["quantized_add_out.cpp"],
126+
exported_headers = ["operators.h", "quantized_ops.h"],
127+
platforms = CXX,
128+
deps = [
129+
"//executorch/runtime/kernel:kernel_includes",
130+
"//executorch/backends/cadence/generic/kernels:cadence_kernels",
131+
],
132+
visibility = [
133+
"//executorch/backends/cadence/...",
134+
"@EXECUTORCH_CLIENTS",
135+
],
136+
)
137+
138+
runtime.cxx_library(
139+
name = "quantized_conv_nchw_out",
140+
srcs = ["quantized_conv_nchw_out.cpp"],
141+
exported_headers = ["operators.h", "quantized_ops.h"],
142+
platforms = CXX,
143+
deps = [
144+
"//executorch/runtime/kernel:kernel_includes",
145+
"//executorch/backends/cadence/generic/kernels:cadence_kernels",
146+
],
147+
visibility = [
148+
"//executorch/backends/cadence/...",
149+
"@EXECUTORCH_CLIENTS",
150+
],
151+
)
152+
153+
runtime.cxx_library(
154+
name = "quantized_conv_nhwc_out",
155+
srcs = ["quantized_conv_nhwc_out.cpp"],
156+
exported_headers = ["operators.h", "quantized_ops.h"],
157+
platforms = CXX,
158+
deps = [
159+
"//executorch/runtime/kernel:kernel_includes",
160+
"//executorch/backends/cadence/generic/kernels:cadence_kernels",
161+
],
162+
visibility = [
163+
"//executorch/backends/cadence/...",
164+
"@EXECUTORCH_CLIENTS",
165+
],
166+
)
167+
168+
runtime.cxx_library(
169+
name = "quantized_fully_connected_out",
170+
srcs = ["quantized_fully_connected_out.cpp"],
171+
exported_headers = ["operators.h", "quantized_ops.h"],
172+
platforms = CXX,
173+
deps = [
174+
"//executorch/runtime/kernel:kernel_includes",
175+
"//executorch/backends/cadence/generic/kernels:cadence_kernels",
176+
],
177+
visibility = [
178+
"//executorch/backends/cadence/...",
179+
"@EXECUTORCH_CLIENTS",
180+
],
181+
)
182+
183+
runtime.cxx_library(
184+
name = "quantized_layer_norm",
185+
srcs = ["quantized_layer_norm.cpp"],
186+
exported_headers = ["operators.h", "quantized_ops.h"],
187+
platforms = CXX,
188+
deps = [
189+
"//executorch/runtime/kernel:kernel_includes",
190+
"//executorch/backends/cadence/generic/kernels:cadence_kernels",
191+
],
192+
visibility = [
193+
"//executorch/backends/cadence/...",
194+
"@EXECUTORCH_CLIENTS",
195+
],
196+
)
197+
198+
runtime.cxx_library(
199+
name = "quantized_linear_out",
200+
srcs = ["quantized_linear_out.cpp"],
201+
exported_headers = ["operators.h", "quantized_ops.h"],
202+
platforms = CXX,
203+
deps = [
204+
"//executorch/runtime/kernel:kernel_includes",
205+
"//executorch/backends/cadence/generic/kernels:cadence_kernels",
206+
],
207+
visibility = [
208+
"//executorch/backends/cadence/...",
209+
"@EXECUTORCH_CLIENTS",
210+
],
211+
)
212+
213+
runtime.cxx_library(
214+
name = "quantized_matmul_out",
215+
srcs = ["quantized_matmul_out.cpp"],
216+
exported_headers = ["operators.h", "quantized_ops.h"],
217+
platforms = CXX,
218+
deps = [
219+
"//executorch/runtime/kernel:kernel_includes",
220+
"//executorch/backends/cadence/generic/kernels:cadence_kernels",
221+
],
222+
visibility = [
223+
"//executorch/backends/cadence/...",
224+
"@EXECUTORCH_CLIENTS",
225+
],
226+
)
227+
228+
runtime.cxx_library(
229+
name = "quantized_relu_out",
230+
srcs = ["quantized_relu_out.cpp"],
231+
exported_headers = ["operators.h", "quantized_ops.h"],
232+
platforms = CXX,
233+
deps = [
234+
"//executorch/runtime/kernel:kernel_includes",
235+
"//executorch/backends/cadence/generic/kernels:cadence_kernels",
236+
],
237+
visibility = [
238+
"//executorch/backends/cadence/...",
239+
"@EXECUTORCH_CLIENTS",
240+
],
241+
)
242+
243+
# Combined target for backward compatibility
244+
runtime.cxx_library(
245+
name = "cadence_generic_ops",
246+
platforms = CXX,
247+
deps = [
248+
":op_add",
249+
":op_embedding",
250+
":op_full",
251+
":op_requantize_out",
252+
":op_view_copy",
253+
":im2row_out",
254+
":dequantize_per_tensor",
255+
":quantize_per_tensor",
256+
":quantized_add_out",
257+
":quantized_conv_nchw_out",
258+
":quantized_conv_nhwc_out",
259+
":quantized_fully_connected_out",
260+
":quantized_layer_norm",
261+
":quantized_linear_out",
262+
":quantized_matmul_out",
263+
":quantized_relu_out",
264+
],
265+
visibility = [
266+
"//executorch/backends/cadence/...",
267+
"@EXECUTORCH_CLIENTS",
268+
],
269+
)

0 commit comments

Comments
 (0)