@@ -2,12 +2,252 @@ load("@fbsource//tools/build_defs:platform_defs.bzl", "CXX")
2
2
load ("@fbsource//xplat/executorch/build:runtime_wrapper.bzl" , "runtime" )
3
3
4
4
def define_common_targets ():
5
+ # Individual operator targets with optimized dependencies
6
+
7
+ # Basic operators (need broadcast_util and scalar_utils)
8
+ runtime .cxx_library (
9
+ name = "op_add" ,
10
+ srcs = ["op_add.cpp" ],
11
+ platforms = CXX ,
12
+ deps = [
13
+ "//executorch/kernels/portable/cpu/util:broadcast_util" ,
14
+ "//executorch/runtime/kernel:kernel_includes" ,
15
+ "//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" ,
101
+ "//executorch/backends/cadence/generic/kernels:cadence_kernels" ,
102
+ ],
103
+ visibility = [
104
+ "//executorch/backends/cadence/..." ,
105
+ ],
106
+ )
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
+ # NOTE: cadence_aot_lib now uses individual targets directly for better linking
5
245
runtime .cxx_library (
6
246
name = "cadence_generic_ops" ,
7
247
srcs = glob ([
8
248
"*.cpp" ,
9
249
]),
10
- exported_headers = glob ([
250
+ exported_headers = glob ([
11
251
"*.h" ,
12
252
]),
13
253
platforms = CXX ,
@@ -19,5 +259,6 @@ def define_common_targets():
19
259
],
20
260
visibility = [
21
261
"//executorch/backends/cadence/..." ,
262
+ "@EXECUTORCH_CLIENTS" ,
22
263
],
23
264
)
0 commit comments