Yi Zhang
1ab2e3260b
Add mobilenetv2 and mobilenetv3 to e2e test
2022-02-10 19:45:32 -05:00
Prashant Kumar
258660deb6
Add aten.bernoulli decomposition.
...
aten.bernoulli is decomposed to aten.gtTensor(aten.uniform(x), x).
2022-02-11 00:35:33 +05:30
Prashant Kumar
102c497c4c
Add decomposition of _log_softmax op.
...
Decompose _log_softmax into log(softmax(x)).
2022-02-10 23:17:26 +05:30
Prateek Gupta
318946a650
[TORCH][MLIR] Add E2E support for `aten._unsafe_view` op.
...
This commit adds decomposition of `aten._unsafe_view` op into
`aten.view` op.
Signed-Off-By: Prateek Gupta<prateek@nod-labs.com>
2022-02-10 22:28:58 +05:30
Ramiro Leal-Cavazos
9b89f8eb3f
[TORCH][MLIR] Add E2E support for aten.clone ( #571 )
...
This commit adds support for the aten.clone op.
2022-02-09 19:31:03 -08:00
Gaurav Shukla
bd177bdfc7
[TORCH][MLIR] Add run-time assert support in Torch-dialect
...
- This commit adds `aten.assert` op in the Torch dialect.
- The `aten.assert` op is lowered to `mlir::Assert` op.
Signed-Off-by: Gaurav Shukla <gaurav@nod-labs.com>
2022-02-09 12:03:01 -05:00
Yi Zhang
e09e2cbe70
Include IR dump options on e2e failure report
2022-02-09 11:19:34 -05:00
Yi Zhang
6aa96f8c1e
Fix uniform argument type
...
Also change the 3rd dimension to be smaller so that CI can pass without
killing the process.
2022-02-08 22:13:42 +05:30
Gaurav Shukla
2fefe68ffd
[TORCH][MLIR] Add E2E support for `aten.native_batch_norm` op
...
- This commit adds support for `aten.native_batch_norm` operation.
- The current implementation only supports inference mode of
`aten.native_batch_norm` op.
Signed-Off-By: Gaurav Shukla <gaurav@nod-labs.com>
2022-02-08 02:54:03 +05:30
Prashant Kumar
d4ea39b616
Convert bool to float or integer type.
...
Conversion of torch.bool tensor type to float and integer type is
handled.
2022-02-07 21:22:22 +05:30
Anup Gangwar
f9f97ea184
* [tosa] Support for AtenNativeLayerNormOp
...
* [tosa] Support for AtenPermuteOp
Signed-off-by: Anup Gangwar <anup.gangwar@arm.com>
2022-02-04 14:46:31 -05:00
Prashant Kumar
ccf546f14c
Add aten::nll_loss_backward op
...
The lowering of aten::nll_loss_backward op has been added
from torch to linalg dialect. The changes has been made as
a part of -torch-convert-to-linalg pass.
Signed-off-by: Prashant Kumar prashant@nod-labs.com
2022-02-04 21:57:53 +05:30
Prashant Kumar
68acc8696e
Modify softmax decomposition to be more numerically stable.
...
The softmax decomposition is modified according to https://github.com/pytorch/functorch/blob/main/functorch/_src/decompositions.pytorch
to account for numerical stability. Also, modified aten.argmax lowering
to handle negative dimension.
2022-02-03 21:20:36 +05:30
Gaurav Shukla
0079901039
[TORCH][MLIR] Add E2E support for `aten.reshape` op
...
This commit decomposes `aten.reshape` into `aten.view` op in the case of
value tensor type operand.
Signed-Off-by: Gaurav Shukla <gaurav@nod-labs.com>
2022-02-02 20:41:47 +05:30
Suraj Sudhir
1b505cbac5
RefineTypes fixes for TOSA backend ( #557 )
...
Handles Linear, Adaptive_AvgPool2D and FlattenUsintInts
Adds ResNet18 static model for TOSA
Signed-off-by: Suraj Sudhir <suraj.sudhir@arm.com>
2022-02-01 14:08:54 -08:00
Yi Zhang
0cb216a1ad
[Torch][Linalg] Add basic support for RNG
...
This PR include the following pieces:
- Add torch `Generator` type. `Generator` type is converted to i64 in
refbackend type converter.
- Add seed managment support for the default global generator.
`torch_c.getNextSeed` op is used to get the seed. On refbackend, the
`torch_c.getNextSeed` is lowered to load/store from [0] of global
variable `default_generator` memref<i64> in `InsertRngGlobals` pass.
- Add `aten.uniform_` and testing as an example op for RNG ops. Add
`torch.pseudo.aten.uniform` op. It has the same operands and return as
the `aten.uniform_` from the op registry except for value semantics.
2022-01-31 18:56:42 -05:00
Suraj Sudhir
0f083e770a
[tosa] Add maxpool2d and adaptive_avgpool2d support ( #550 )
...
Signed-off-by: Suraj Sudhir <suraj.sudhir@arm.com>
2022-01-31 13:34:09 -08:00
Yi Zhang
5d9a15263a
[TORCH] Add aten.std e2e support
2022-01-31 15:17:49 -05:00
Prashant Kumar
e58b66bc3b
Add lowering of `aten.max.dim` op.
...
Lowering of `aten.max.dim` op has been added.
2022-01-31 21:41:22 +05:30
Anup Gangwar
454fa9d123
* [tosa] Support for AtenFlattenUsingIntsOp ( #548 )
2022-01-28 21:38:56 -08:00
Liam Fitzpatrick
8bc028af05
Fold __is__ and unchecked_cast of derefine
...
The added e2e maxpool testcase from #545 was not getting a static shape
due to an unfolded prim.If when RefineTypes was called. This was because
of unfolded torch.iaten.__is__ and torch.prim.unchecked_cast operators
with torch.derefine operands.
2022-01-28 17:54:40 -05:00
Yi Zhang
e1b3e5bc92
Fix build failure
2022-01-28 13:21:36 -05:00
stephenneuendorffer
52ed3313b4
Bump LLVM to 84fe34a0b7fdd7bbf179981d1583693d5d5ec68b ( #544 )
...
* external/llvm-project 881ff4e4ebe8...84fe34a0b7fd (466):
> [MLIR] Workaround for python detection problems.
2022-01-27 17:21:09 -08:00
Anup Gangwar
7a5736facd
* [tosa] Support for AtenReshapeOp ( #543 )
...
* [tosa] Support for AtenBatchNormOp
Signed-off-by: Anup Gangwar <anup.gangwar@arm.com>
Co-authored-by: Anup Gangwar <anup.gangwar@arm.com>
2022-01-27 14:38:59 -08:00
Gaurav Shukla
13b9fd62c6
[TBE] Add a test module for table batch embedding
...
This commit adds a test module specifically for table batch embedding
algorithm. This test case is in reference to the FBGEMM table batch
embedding:
https://github.com/pytorch/FBGEMM/blob/main/fbgemm_gpu/bench/split_table_batched_embeddings_benchmark.py#L270
Signed-Off-by: Gaurav Shukla <gaurav@nod-labs.com>
2022-01-28 02:24:28 +05:30
Suraj Sudhir
eb06d21765
[tosa] Implement conv2d support ( #541 )
...
Signed-off-by: Suraj Sudhir <suraj.sudhir@arm.com>
2022-01-26 19:16:13 -08:00
stephenneuendorffer
3fd9b7789e
Bump LLVM to 881ff4e4ebe8cc0cc045c7c167cffb01f94f27f8 ( #539 )
2022-01-25 22:16:30 -08:00
Nirvedh
17a4843cf7
Adding an e2e test for histogram binning calibration
2022-01-25 18:27:20 -05:00
Suraj Sudhir
cadea678e5
[tosa] Implement torch.linear support. ( #535 )
...
Refactor matmul into separate class and derive variants:
- matmul
- mm, bmm
- linear
Signed-off-by: Suraj Sudhir <suraj.sudhir@arm.com>
2022-01-25 08:48:58 -08:00
Yi Zhang
ad4b9e0369
Minor fixes
2022-01-24 19:21:15 -05:00
Anup Gangwar
f8080bd1c5
* [tosa] Support for AtenRsubScalarOp for scalar constants ( #531 )
...
* [tosa] Support for AtenCeilOp and AtenReciprocalOp
* [tosa] Support for comparator ops, Aten[Gt|Lt|Eq][Tensor|Scalar]Op with scalar constant
* [tosa] Support for Scalar variants of Aten[Mul|Div|Add|Sub] Ops with scalar constants
Signed-off-by: Anup Gangwar <anup.gangwar@arm.com>
Co-authored-by: Anup Gangwar <anup.gangwar@arm.com>
2022-01-20 10:58:30 -08:00
stephenneuendorffer
c8ee8d02eb
Install torch-mlir binaries ( #421 )
...
In addition, use add_llvm_executable so that the relative rpath of
the installed binaries is set properly.
2022-01-20 08:20:54 -08:00
Sean Silva
76728491cb
Polish readme.
2022-01-19 13:19:46 -08:00
Suraj Sudhir
5d6c4f48dc
[tosa] Enable tosa-to-linalg-named so Matmul works again ( #530 )
...
Signed-off-by: Suraj Sudhir <suraj.sudhir@arm.com>
2022-01-19 12:10:04 -08:00
Vivek Khandelwal
6fe70c7794
[MLIR][TORCH] Add E2E support for aten.index.Tensor op
...
This commit adds lowering of `aten.index.Tensor` op
Signed-Off By: Vivek Khandelwal <vivek@nod-labs.com>
2022-01-19 13:37:56 +05:30
Suraj Sudhir
0188ca5498
[tosa] Implement matmul, mm and bmm support ( #526 )
...
- Also handles braodcasting n-D tensors, dynamic shapes
Signed-off-by: Suraj Sudhir <suraj.sudhir@arm.com>
2022-01-18 13:37:32 -08:00
dan
3745f54489
Update external/llvm-project
...
- Add `qualified` to ods because of
https://reviews.llvm.org/D113873 and https://reviews.llvm.org/D116905
- Needed to revert https://github.com/llvm/torch-mlir/pull/520 as it
was based on an old torch version.
https://github.com/llvm/torch-mlir/pull/527 will bring this back with
a better design.
- Change ConvertAtenCatOp to use more accurate tensor shape info and
as much static info as possible to pass `tensor.insert_slice`
verification code added by https://reviews.llvm.org/D114715
- Other minor fixes
2022-01-18 13:25:42 -05:00
Yi Zhang
40efd2cb8e
Revert "Add non-RNG aten ops to aten dialect."
...
This reverts commit c9a343267c
.
2022-01-18 13:25:42 -05:00
Suraj Sudhir
edf4a0e729
[tosa] Add more common utility functions ( #525 )
...
- Common code as TF repository, being moved to MLIR core.
- Will support further legalizations to be published.
Signed-off-by: Suraj Sudhir <suraj.sudhir@arm.com>
2022-01-14 13:57:27 -08:00
Suraj Sudhir
5ded7d096f
[tosa] Add tosa-to-standard before tosa-to-linalg pass ( #524 )
...
Signed-off-by: Suraj Sudhir <suraj.sudhir@arm.com>
2022-01-14 11:05:11 -08:00
Prateek Gupta
c9a343267c
Add non-RNG aten ops to aten dialect.
...
This commit adds the aten ops which do not require random number
support to aten dialect. This commit also adds some of the missing
torch types.
Signed-Off-By: Prateek Gupta <prateek@nod-labs.com>
2022-01-14 14:20:33 +05:30
Anup Gangwar
abd61b4974
* Workaround for Issue 521, remove createTosaToStandard from Passes.cpp and
...
disable ElementwisePowModule_basic
* Update nll_loss_forward to align to the change in PyTorch
Signed-off-by: Anup Gangwar <anup.gangwar@arm.com>
2022-01-12 14:30:58 -06:00
Anup Gangwar
d69d29b7a6
* [tosa] Support for AtenPowTensorScalarOp with constant Scalar as input
...
Signed-off-by: Anup Gangwar <anup.gangwar@arm.com>
2022-01-11 22:55:54 -05:00
Liam Fitzpatrick
077e55d756
Add support for constant_pad_nd
...
Note that to enable folding of the code coming from an example
like the ConstantPad2dStaticModule e2e test, support for other
operations had to be added/improved:
- aten::neg.int
- aten::eq.float
- aten::eq.str
- prim::Uninitialized
2022-01-11 10:25:25 -05:00
Vivek Khandelwal
35cf8d18f7
Add support for two return values
...
This commit adds support for two return values of type
memref f32 and i64.
Signed-Off By: Vivek Khandelwal <vivek@nod-labs.com>
2022-01-11 11:07:10 +05:30
Vivek Khandelwal
ca662dc9cc
[MLIR][TORCH] Add E2E support for aten.threshold, aten.threshold_backward op
...
This commit adds lowering of `aten.threshold` op
This commit adds lowering of `aten.threshold_backward` op
Signed-Off By: Vivek Khandelwal <vivek@nod-labs.com>
2022-01-10 11:56:56 +05:30
Yi Zhang
7cf7b91664
[MLIR][TORCH] Fix tensor literal int elem type to be signless
...
The element type of tensor literal should be signless when converted to
builtin tensor types.
2022-01-07 16:34:24 -05:00
Suraj Sudhir
d6b6c0268c
[tosa] Add missing overrride-s to fix compiler warnings ( #514 )
...
Signed-off-by: Suraj Sudhir <suraj.sudhir@arm.com>
2022-01-07 10:57:54 -08:00
Yi Zhang
732a76f45c
Make broadcasting result shape more static
...
This involes the following 2 parts:
- Change refine type to propagate more static shape info.
- Get as much static shape info as possible when creating the result
tensor when converting to linalg.
2022-01-06 18:39:27 -05:00
Suraj Sudhir
b4842d9863
[tosa] Implement squeeze.dim support ( #511 )
...
Templated variants for squeeze and squeeze.dim
2022-01-06 08:31:29 -08:00