Skip to content

Commit 4a5bcc0

Browse files
authored
Update op definitions to make them work with the new bufferization (#2780)
* Update op definition to make it work with the new bufferization Signed-off-by: Tung D. Le <[email protected]> * Reword the option --nnpa-enable-scalar-bcast-binary Signed-off-by: Tung D. Le <[email protected]> --------- Signed-off-by: Tung D. Le <[email protected]>
1 parent c2bd1fa commit 4a5bcc0

File tree

6 files changed

+396
-30
lines changed

6 files changed

+396
-30
lines changed

src/Accelerators/NNPA/Compiler/NNPACompilerOptions.cpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,9 @@ llvm::cl::opt<bool> nnpaEnableCompilerStickUnstick(
5757

5858
llvm::cl::opt<bool> nnpaEnableScalarBcastBinary(
5959
"nnpa-enable-scalar-bcast-binary",
60-
llvm::cl::desc("Enable the lowering to NNPA the broadcasting binary ops "
61-
"whose one of the operands is scalar. Currently support "
62-
"ONNXDiv only. Default is false."),
60+
llvm::cl::desc("Enable the lowering to NNPA of binary operations with "
61+
"broadcasting of a scalar operand."
62+
"Currently only enable ONNXDiv. Default is false."),
6363
llvm::cl::init(false), llvm::cl::cat(OnnxMlirCommonOptions));
6464

6565
llvm::cl::opt<std::string> nnpaLoadDevicePlacementFile{

src/Accelerators/NNPA/Dialect/ZLow/ZLow.td

+48-24
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,8 @@ def ZMemRef : MemRefOf<[DLF16]>;
4545

4646
include "mlir/Interfaces/SideEffectInterfaces.td"
4747

48-
def ZLowAddOp:ZLow_Op<"add", [MemRefsNormalizable]> {
48+
def ZLowAddOp:ZLow_Op<"add", [MemRefsNormalizable,
49+
DeclareOpInterfaceMethods<MemoryEffectsOpInterface>]> {
4950
let summary = "ZLow add operation";
5051
let description = [{
5152
ZLow operation to perform an add.
@@ -57,7 +58,8 @@ def ZLowAddOp:ZLow_Op<"add", [MemRefsNormalizable]> {
5758
StrAttr:$layout);
5859
}
5960

60-
def ZLowSubOp:ZLow_Op<"sub", [MemRefsNormalizable]> {
61+
def ZLowSubOp:ZLow_Op<"sub", [MemRefsNormalizable,
62+
DeclareOpInterfaceMethods<MemoryEffectsOpInterface>]> {
6163
let summary = "ZLow sub operation";
6264
let description = [{
6365
ZLow operation to perform a sub.
@@ -69,7 +71,8 @@ def ZLowSubOp:ZLow_Op<"sub", [MemRefsNormalizable]> {
6971
StrAttr:$layout);
7072
}
7173

72-
def ZLowMulOp:ZLow_Op<"mul", [MemRefsNormalizable]> {
74+
def ZLowMulOp:ZLow_Op<"mul", [MemRefsNormalizable,
75+
DeclareOpInterfaceMethods<MemoryEffectsOpInterface>]> {
7376
let summary = "ZLow mul operation";
7477
let description = [{
7578
ZLow operation to perform a mul.
@@ -81,7 +84,8 @@ def ZLowMulOp:ZLow_Op<"mul", [MemRefsNormalizable]> {
8184
StrAttr:$layout);
8285
}
8386

84-
def ZLowDivOp:ZLow_Op<"div", [MemRefsNormalizable]> {
87+
def ZLowDivOp:ZLow_Op<"div", [MemRefsNormalizable,
88+
DeclareOpInterfaceMethods<MemoryEffectsOpInterface>]> {
8589
let summary = "ZLow div operation";
8690
let description = [{
8791
ZLow operation to perform a div.
@@ -93,7 +97,8 @@ def ZLowDivOp:ZLow_Op<"div", [MemRefsNormalizable]> {
9397
StrAttr:$layout);
9498
}
9599

96-
def ZLowLogOp:ZLow_Op<"log", [MemRefsNormalizable]> {
100+
def ZLowLogOp:ZLow_Op<"log", [MemRefsNormalizable,
101+
DeclareOpInterfaceMethods<MemoryEffectsOpInterface>]> {
97102
let summary = "ZLow log operation";
98103
let description = [{
99104
ZLow operation to perform a log.
@@ -104,7 +109,8 @@ def ZLowLogOp:ZLow_Op<"log", [MemRefsNormalizable]> {
104109
StrAttr:$layout);
105110
}
106111

107-
def ZLowExpOp:ZLow_Op<"exp", [MemRefsNormalizable]> {
112+
def ZLowExpOp:ZLow_Op<"exp", [MemRefsNormalizable,
113+
DeclareOpInterfaceMethods<MemoryEffectsOpInterface>]> {
108114
let summary = "ZLow exp operation";
109115
let description = [{
110116
ZLow operation to perform a exp.
@@ -115,7 +121,8 @@ def ZLowExpOp:ZLow_Op<"exp", [MemRefsNormalizable]> {
115121
StrAttr:$layout);
116122
}
117123

118-
def ZLowMinOp:ZLow_Op<"min", [MemRefsNormalizable]> {
124+
def ZLowMinOp:ZLow_Op<"min", [MemRefsNormalizable,
125+
DeclareOpInterfaceMethods<MemoryEffectsOpInterface>]> {
119126
let summary = "ZLow min operation";
120127
let description = [{
121128
ZLow operation to perform a min.
@@ -127,7 +134,8 @@ def ZLowMinOp:ZLow_Op<"min", [MemRefsNormalizable]> {
127134
StrAttr:$layout);
128135
}
129136

130-
def ZLowMaxOp:ZLow_Op<"max", [MemRefsNormalizable]> {
137+
def ZLowMaxOp:ZLow_Op<"max", [MemRefsNormalizable,
138+
DeclareOpInterfaceMethods<MemoryEffectsOpInterface>]> {
131139
let summary = "ZLow max operation";
132140
let description = [{
133141
ZLow operation to perform a max.
@@ -139,7 +147,8 @@ def ZLowMaxOp:ZLow_Op<"max", [MemRefsNormalizable]> {
139147
StrAttr:$layout);
140148
}
141149

142-
def ZLowReluOp:ZLow_Op<"relu", [MemRefsNormalizable]> {
150+
def ZLowReluOp:ZLow_Op<"relu", [MemRefsNormalizable,
151+
DeclareOpInterfaceMethods<MemoryEffectsOpInterface>]> {
143152
let summary = "ZLow relu operation";
144153
let description = [{
145154
ZLow operation to perform a relu.
@@ -150,7 +159,8 @@ def ZLowReluOp:ZLow_Op<"relu", [MemRefsNormalizable]> {
150159
StrAttr:$layout);
151160
}
152161

153-
def ZLowTanhOp:ZLow_Op<"tanh", [MemRefsNormalizable]> {
162+
def ZLowTanhOp:ZLow_Op<"tanh", [MemRefsNormalizable,
163+
DeclareOpInterfaceMethods<MemoryEffectsOpInterface>]> {
154164
let summary = "ZLow tanh operation";
155165
let description = [{
156166
ZLow operation to perform a tanh.
@@ -161,7 +171,8 @@ def ZLowTanhOp:ZLow_Op<"tanh", [MemRefsNormalizable]> {
161171
StrAttr:$layout);
162172
}
163173

164-
def ZLowSigmoidOp:ZLow_Op<"sigmoid", [MemRefsNormalizable]> {
174+
def ZLowSigmoidOp:ZLow_Op<"sigmoid", [MemRefsNormalizable,
175+
DeclareOpInterfaceMethods<MemoryEffectsOpInterface>]> {
165176
let summary = "ZLow sigmoid operation";
166177
let description = [{
167178
ZLow operation to perform a sigmoid.
@@ -172,7 +183,8 @@ def ZLowSigmoidOp:ZLow_Op<"sigmoid", [MemRefsNormalizable]> {
172183
StrAttr:$layout);
173184
}
174185

175-
def ZLowSoftmaxOp:ZLow_Op<"softmax", [MemRefsNormalizable]> {
186+
def ZLowSoftmaxOp:ZLow_Op<"softmax", [MemRefsNormalizable,
187+
DeclareOpInterfaceMethods<MemoryEffectsOpInterface>]> {
176188
let summary = "ZLow softmax operation";
177189
let description = [{
178190
ZLow operation to perform a softmax.
@@ -186,7 +198,8 @@ def ZLowSoftmaxOp:ZLow_Op<"softmax", [MemRefsNormalizable]> {
186198
StrAttr:$act_func);
187199
}
188200

189-
def ZLowMatMulOp:ZLow_Op<"matmul", [MemRefsNormalizable]> {
201+
def ZLowMatMulOp:ZLow_Op<"matmul", [MemRefsNormalizable,
202+
DeclareOpInterfaceMethods<MemoryEffectsOpInterface>]> {
190203
let summary = "ZLow matmul operation";
191204
let description = [{
192205
ZLow operation to perform a matmul.
@@ -214,7 +227,8 @@ def ZLowMatMulOp:ZLow_Op<"matmul", [MemRefsNormalizable]> {
214227
DefaultValuedAttr<SI64Attr, "-1">:$is_stacked);
215228
}
216229

217-
def ZLowLSTMOp:ZLow_Op<"lstm", [MemRefsNormalizable]> {
230+
def ZLowLSTMOp:ZLow_Op<"lstm", [MemRefsNormalizable,
231+
DeclareOpInterfaceMethods<MemoryEffectsOpInterface>]> {
218232
let summary = "ZLow lstm operation";
219233
let description = [{
220234
ZLow operation to perform a lstm.
@@ -245,7 +259,8 @@ def ZLowLSTMOp:ZLow_Op<"lstm", [MemRefsNormalizable]> {
245259
DefaultValuedStrAttr<StrAttr, "none">:$prev_layer);
246260
}
247261

248-
def ZLowGRUOp:ZLow_Op<"gru", [MemRefsNormalizable]> {
262+
def ZLowGRUOp:ZLow_Op<"gru", [MemRefsNormalizable,
263+
DeclareOpInterfaceMethods<MemoryEffectsOpInterface>]> {
249264
let summary = "ZLow gru operation";
250265
let description = [{
251266
ZLow operation to perform a gru.
@@ -274,7 +289,8 @@ def ZLowGRUOp:ZLow_Op<"gru", [MemRefsNormalizable]> {
274289
DefaultValuedStrAttr<StrAttr, "none">:$prev_layer);
275290
}
276291

277-
def ZLowStickOp:ZLow_Op<"stick", [MemRefsNormalizable]> {
292+
def ZLowStickOp:ZLow_Op<"stick", [MemRefsNormalizable,
293+
DeclareOpInterfaceMethods<MemoryEffectsOpInterface>]> {
278294
let summary = "ZLow stick operation";
279295
let description = [{
280296
"ZLow operation to perform a stick."
@@ -289,7 +305,8 @@ def ZLowStickOp:ZLow_Op<"stick", [MemRefsNormalizable]> {
289305
];
290306
}
291307

292-
def ZLowStickForLSTMOp:ZLow_Op<"stickForLSTM", [MemRefsNormalizable]> {
308+
def ZLowStickForLSTMOp:ZLow_Op<"stickForLSTM", [MemRefsNormalizable,
309+
DeclareOpInterfaceMethods<MemoryEffectsOpInterface>]> {
293310
let summary = "ZLow stick operation for LSTM";
294311
let description = [{
295312
ZLow operation to perform a stick for LSTM.
@@ -304,7 +321,8 @@ def ZLowStickForLSTMOp:ZLow_Op<"stickForLSTM", [MemRefsNormalizable]> {
304321
DefaultValuedStrAttr<StrAttr, "none">:$prev_layer);
305322
}
306323

307-
def ZLowStickForGRUOp:ZLow_Op<"stickForGRU", [MemRefsNormalizable]> {
324+
def ZLowStickForGRUOp:ZLow_Op<"stickForGRU", [MemRefsNormalizable,
325+
DeclareOpInterfaceMethods<MemoryEffectsOpInterface>]> {
308326
let summary = "ZLow stick operation for GRU";
309327
let description = [{
310328
ZLow operation to perform a stick for GRU.
@@ -318,7 +336,8 @@ def ZLowStickForGRUOp:ZLow_Op<"stickForGRU", [MemRefsNormalizable]> {
318336
DefaultValuedStrAttr<StrAttr, "none">:$prev_layer);
319337
}
320338

321-
def ZLowUnstickOp:ZLow_Op<"unstick", [MemRefsNormalizable]> {
339+
def ZLowUnstickOp:ZLow_Op<"unstick", [MemRefsNormalizable,
340+
DeclareOpInterfaceMethods<MemoryEffectsOpInterface>]> {
322341
let summary = "ZLow unstick operation";
323342
let description = [{
324343
ZLow operation to perform a unstick.
@@ -333,7 +352,8 @@ def ZLowUnstickOp:ZLow_Op<"unstick", [MemRefsNormalizable]> {
333352
];
334353
}
335354

336-
def ZLowConv2DOp:ZLow_Op<"conv2d", [MemRefsNormalizable]> {
355+
def ZLowConv2DOp:ZLow_Op<"conv2d", [MemRefsNormalizable,
356+
DeclareOpInterfaceMethods<MemoryEffectsOpInterface>]> {
337357
let summary = "ZLow 2D convolution operation";
338358
let description = [{
339359
ZLow operation to perform 2D convolution.
@@ -361,7 +381,8 @@ def ZLowConv2DOp:ZLow_Op<"conv2d", [MemRefsNormalizable]> {
361381
DefaultValuedStrAttr<StrAttr, "ACT_NONE">:$act_func);
362382
}
363383

364-
def ZLowAvgPool2DOp:ZLow_Op<"avgpool2d", [MemRefsNormalizable]> {
384+
def ZLowAvgPool2DOp:ZLow_Op<"avgpool2d", [MemRefsNormalizable,
385+
DeclareOpInterfaceMethods<MemoryEffectsOpInterface>]> {
365386
let summary = "ZLow 2D average pooling operation";
366387
let description = [{
367388
ZLow operation to perform 2D average pooling.
@@ -385,7 +406,8 @@ def ZLowAvgPool2DOp:ZLow_Op<"avgpool2d", [MemRefsNormalizable]> {
385406
);
386407
}
387408

388-
def ZLowMaxPool2DOp:ZLow_Op<"maxpool2d", [MemRefsNormalizable]> {
409+
def ZLowMaxPool2DOp:ZLow_Op<"maxpool2d", [MemRefsNormalizable,
410+
DeclareOpInterfaceMethods<MemoryEffectsOpInterface>]> {
389411
let summary = "ZLow 2D max pooling operation";
390412
let description = [{
391413
ZLow operation to perform 2D max pooling.
@@ -409,7 +431,8 @@ def ZLowMaxPool2DOp:ZLow_Op<"maxpool2d", [MemRefsNormalizable]> {
409431
);
410432
}
411433

412-
def ZLowMeanReduce2DOp:ZLow_Op<"meanreduce2d", [MemRefsNormalizable]> {
434+
def ZLowMeanReduce2DOp:ZLow_Op<"meanreduce2d", [MemRefsNormalizable,
435+
DeclareOpInterfaceMethods<MemoryEffectsOpInterface>]> {
413436
let summary = "ZLow 2D mean reduce operation";
414437
let description = [{
415438
ZLow operation to perform 2D mean reduce.
@@ -424,7 +447,8 @@ def ZLowMeanReduce2DOp:ZLow_Op<"meanreduce2d", [MemRefsNormalizable]> {
424447
ZMemRef:$output);
425448
}
426449

427-
def ZLowBatchNormOp:ZLow_Op<"batchnorm", [MemRefsNormalizable]> {
450+
def ZLowBatchNormOp:ZLow_Op<"batchnorm", [MemRefsNormalizable,
451+
DeclareOpInterfaceMethods<MemoryEffectsOpInterface>]> {
428452
let summary = "ZLow batchnorm operation";
429453
let description = [{
430454
ZLow operation to perform batchnorm.

0 commit comments

Comments
 (0)