@@ -2,22 +2,268 @@ load("@fbsource//tools/build_defs:platform_defs.bzl", "CXX")
22load ("@fbsource//xplat/executorch/build:runtime_wrapper.bzl" , "runtime" )
33
44def 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