diff --git a/SharingWork.md b/SharingWork.md index f542bf4..1a20071 100644 --- a/SharingWork.md +++ b/SharingWork.md @@ -1,42 +1,195 @@ -# ONNX to KRNL work +# Please keep up to date. -Please add row in first table when adding a new ONNX operator, and move to second table when work is completed +- As you start working on a new operation, move it from the lower table to the top table, +- write your name under 'person working on it,' +- once you have pushed the functionality in the master branch, mark it as complete. -ONNX operations for which some work is needed. -* M for multi-broadcast, U for unidir-broadcast +# ONNX to KRNL work. +Update as you push code to the master branch. -| ONNX Oper | Person working on it | ONNX 2 KRNL | Basic functionality | Extended functionality (e.g. broadcast) | -| ---------- | --------------------- | -------------- | --------------------- | ---------------------------------------- | -| Add | Tung (updated) | v | v | M | -| And | Tung | v | v | M | -| Cosh | Tung | v | v | | -| Div | Tung | v | v | M | -| Elu | Tung | v | v | | -| Exp | Tung | v | v | | -| FullGemm | | | | noU | -| Gemm | Tung | v | | U | -| HardSigmoid | Tung | v | v | | -| LeakyRelu | Tung | v | v | | -| MatMul | | | | noM | -| Max | Tung | v | v | M | -| Min | Tung | v | v | M | -| Mul | Tung | v | v | M | -| Or | Tung | v | v | M | -| Reciprocal | Imai | v | v | | -| Relu | Tung | v | v | | -| Selu | Tung | v | v | | -| Sigmoid | Tung | v | v | | -| Sign | Imai | v | v | | -| Sinh | Tung | v | v | | -| Softmax | Tung | v | v | | -| Sub | Tung | v | v | M | -| Sum | Tung | v | v | M | -| Tanh | Tung | v | v | | -| Xor | Tung | v | v | M | +| ONNX Operation | Person working on it | ONNX Def | Shape Inference | ONNX to KRNL | Optimized |Extended Functionality | +|----------------|-----------------|----|---|---|----|-------| +| Abs | | v | v | v | | | +| Add | | v | v | v | | M | +| And | | v | v | v | | M | +| AveragePool | Tung | v | v | v | | nP | +| BatchNorm | | v | v | v | | | +| Constant | | v | v | v | | | +| Conv | | v | v | v | | nP | +| Cos | | v | v | v | | | +| Cosh | | v | v | v | | | +| Div | | v | v | v | | M | +| Elu | | v | v | v | | | +| Exp | | v | v | v | | | +| Gemm | | v | v | v | | U | +| HardSigmoid | | v | v | v | | | +| Identity | | v | v | v | | | +| LeakyRelu | | v | v | v | | | +| Log | | v | v | v | | | +| MatMul | | v | v | v | | noM | +| Max | | v | v | v | | M V | +| MaxPool | | v | v | v | | M noIdx | +| Min | | v | v | v | | M V | +| Mul | | v | v | v | | noM | +| Or | | v | v | v | | M | +| Pad | | v | V | v | | const only | +| Reciprocal | | v | v | v | | | +| ReduceMax | | v | v | v | | | +| ReduceL1 | | v | v | v | | | +| ReduceL2 | | v | v | v | | | +| ReduceLogSum | | v | v | v | | | +| ReduceMin | | v | v | v | | | +| ReduceProd | | v | v | v | | | +| ReduceSum | | v | v | v | | | +| Relu | | v | v | v | | | +| Reshape | | v | v | v | | const only | +| Selu | | v | v | v | | | +| Sigmoid | | v | v | v | | | +| Sign | | v | v | v | | | +| Sinh | | v | v | v | | | +| Softmax | | v | v | v | | | +| Softplus | | v | v | v | | | +| Softsign | | v | v | v | | | +| Sqrt | | v | v | v | | | +| Sub | | v | v | v | | M | +| Sum | | v | v | v | | M V | +| Tanh | | v | v | v | | | +| Transpose | | v | v | v | | | +| Unsqueeze | | v | v | v | | | +| Xor | | v | v | v | | M | +### Extended functionality info (noXXX: additional work is needed). -ONNX operations for which the work is completed (full functionality) and tested +* M / noM: multi-broadcast imlemented / not implemented +* U / noU: unidir-broadcast implemented / not implemented +* P / noP: padding implemented / not implemented +* V / noV: variadic input implemented / non implemented -| ONNX Oper | Person working on it | Initial work | Basic functionality | Extended functionality (e.g. broadcast) | -| ---------- | ---------------------- | -------------- | --------------------- | ---------------------------------------- | +# Operation not supported yet. + +Please pick new operations to work on, and make sure you utilize current code to minimize additional work needed to support new functionality. + +Typical sequence of work. + +1. Ensure the operation is properly parsed from ONNX and MLIR input. +2. Perform shape inference. +3. Lower to KRNL dialect. + +And add literal tests at each step, and end to end tests once completed. + +| ONNX Operation | Person working on it | ONNX Def | Shape Inference | ONNX to KRNL | Basic Functionality | Extended functionality | +|----------------|-----------------|----|---|---|----|-------| +| ACos | | | | | | | +| ACosh | | | | | | | +| ArgMax | | | | | | | +| ArgMin | | | | | | | +| ASin | | | | | | | +| ASinh | | | | | | | +| ATan | | | | | | | +| ATanh | | | | | | | +| BitShift | | | | | | M | +| Ceil | | | | | | | +| Celu | | | | | | | +| Clip | | | | | | | +| Compress | | | | | | | +| Concat | | | | | | V | +| ConcatFromSeq | | | | | | | +| ConstOfShape | | | | | | | +| ConvInt | | | | | | P | +| ConvTrans | | | | | | P | +| CumSum | | | | | | | +| DepthToSpace | | | | | | | +| DequantizeLin | | | | | | | +| Det | | | | | | | +| Dropout | | | | | | | +| DynQuantizeLin | | | | | | | +| Einsum | | | | | | V | +| Equal | | | | | | M | +| Erf | | | | | | | +| Expand | | | | | | | +| EyeLike | | | | | | | +| Flatten | | | | | | | +| Floor | | | | | | | +| GRU | | | | | | | +| GatherElements | | | | | | | +| GatherND | | | | | | | +| GlobalAvgPool | | | | | | | +| GlobalLpPool | | | | | | | +| GlobalMaxPool | | | | | | | +| Greater | | | | | | M | +| GreaterOrEq | | | | | | M | +| HardMax | | | | | | | +| If | | | | | | V | +| InstanceNorm | | | | | | | +| Inverse | | | | | | | +| IsInf | | | | | | | +| IsNaN | | | | | | | +| Less | | | | | | M | +| LessOrEq | | | | | | M | +| LSTM | | | | | | | +| LSTM | | | | | | | +| LSTM | | | | | | | +| LogSoftmax | | | | | | | +| Loop | | | | | | V | +| LpNorm | | | | | | | +| LpPool | | | | | | | +| MatMulInteger | | | | | | U | +| MaxRoiPool | | | | | | | +| MaxUnpool | | | | | | | +| Mean | | | | | | M V | +| MeanSquareDist | | | | | | M | +| MeanVarNorm | | | | | | | +| Mod | | | | | | M | +| Multinomial | | | | | | | +| Neg | | | | | | | +| NegLogLikeLoss | | | | | | | +| NonMaxSupress | | | | | | | +| NonZero | | | | | | | +| Not | | | | | | | +| OneHot | | | | | | | +| PRelu | | | | | | U | +| Power | | | | | | M | +| QLinearConv | | | | | | P | +| QLinearMatMul | | | | | | M | +| QuantizeLinear | | | | | | | +| RNN | | | | | | | +| RandomNormal | | | | | | | +| RandNormalLike | | | | | | | +| RandUniform | | | | | | | +| RandUniformLike| | | | | | | +| Range | | | | | | | +| ReduceLogSumExp| | | | | | | +| ReduceMean | | | | | | | +| ReduceSumSquare| | | | | | | +| Resize | | | | | | | +| ReverseSequence| | | | | | | +| RoiAlign | | | | | | | +| Round | | | | | | | +| Scan | | | | | | V | +| Scatter | | | | | | deprecated for Scatter Element | +| ScatterElem | | | | | | | +| ScatterND | | | | | | | +| SequenceAt | | | | | | | +| SeqConstruct | | | | | | V | +| SequenceErase | | | | | | | +| SequenceInsert | | | | | | | +| SequenceLength | | | | | | | +| Shape | | | | | | | +| Shrink | | | | | | | +| Slice | | | | | | | +| SoftMaxCross | | | | | | | +| SpaceToDepth | | | | | | | +| Split | | | | | | V | +| SplitToSequence| | | | | | | +| Squeeze | | | | | | | +| StringNorm | | | | | | | +| Tan | | | | | | | +| TfldfVect | | | | | | | +| ThresholdRelu | | | | | | | +| Tile | | | | | | | +| TopK | | | | | | | +| UnfoldToDepth | | | | | | | +| Unique | | | | | | | +| Upsample | | | | | | deprecated | +| Where | | | | | | M |