Pavani Chowdary
c51e2130f2
[onnx] support for lowering mod op from onnx to torch ( #2859 )
...
nod-ai/Shark-Turbine#267
---------
Authored-by: boddu.pavani@research.iiit.ac.in
Co-authored-by: Vivek Khandelwal <vivekkhandelwal1424@gmail.com>
2024-03-18 17:54:37 +05:30
Xinan Jiang(姜曦楠)
d8a52e82c2
[onnx] Fix onnx.cast cases between int32 and int64 ( #2982 )
...
2 modifications:
1. torch.int64 is enum 4 in TORCH_DTYPE_TO_INT
2. add int32 support
2024-03-15 17:14:09 +00:00
penguin_wwy
f34c187ac4
Normalize type hints to be compatible with multiple Python versions ( #3028 )
...
Although we provide a wheel package for Python 3.8, it may actually
throw the following exception:
`TypeError: 'type' object is not subscriptable`
2024-03-15 08:29:48 -07:00
Yuanqiang Liu
4282eb9e76
[Torch Dialect] support aten.fake_quantize_per_tensor_affine ( #3014 )
2024-03-15 08:53:29 +08:00
Nithin Meganathan
798bfd7dff
Adds accumulator types in TorchToLinalg for `AtenMmOp` and `AtenConvolutionOp` ( #3027 )
2024-03-14 16:40:40 -07:00
Sambhav Jain
0b2f9c89a2
Bring back `dynamic_shapes` constraints in fx importer API ( #3026 )
...
https://github.com/llvm/torch-mlir/pull/2992 dropped `constraints` from
the fx importer API,
[breaking](https://github.com/cruise-automation/mlir-tcp/actions/runs/8284385380/job/22669774071 )
downstream AOT compile tests in `mlir-tcp` that use it. This knob has
been soft-deprecated for a while now, replaced by `dynamic_shapes` - a
more ergonomic interface. This PR brings back dynamic_shapes constraints
in the new supported form. Also added a python lit test with dynamic
shaped annotations.
2024-03-14 10:26:34 -07:00
penguin_wwy
29ac23a790
Setuptools uses a separate build directory ( #3023 )
...
* setuptools not steal the build directory name
https://github.com/llvm/torch-mlir/pull/3021#issuecomment-1994447855
* support pre-built LLVM
* support CMAKE_BUILD_TYPE env
2024-03-13 20:41:48 -07:00
Yuanqiang Liu
870e63bc3c
[Torch Dialect] support decomposition of aten.linspace ( #3006 )
2024-03-14 08:28:33 +08:00
Yuanqiang Liu
43c6996a31
[Torch Dialect] add folder for aten.ceil and unify patterns of ceil, … ( #3010 )
...
…floor, round
2024-03-14 07:41:58 +08:00
ptrifunovic98
524ff99216
Implement lowering of torch.aten.linalg_cross ( #2986 )
...
Closes
[nod-ai/SHARK-Turbine#497 ](https://github.com/nod-ai/SHARK-Turbine/issues/497 )
2024-03-13 12:17:22 -07:00
aldesilv
6fa21bd8b1
OnnxToTorch lower celu op ( #2920 )
2024-03-13 20:34:10 +05:30
Nithin Meganathan
5ecc1d5c0d
Align softmax accumulation types with Torch's CUDA implementation ( #2996 )
2024-03-12 15:07:45 -07:00
Yuanqiang Liu
ad6159c7cb
[Stablehlo] lowering aten.round to stablehlo.round_nearest_even ( #3011 )
2024-03-12 08:58:20 +08:00
Rob Suderman
e78c99e74e
[torch] Update folders for splat operators ( #3012 )
...
Splat operators required the output is 1-D. This was not a required
restriction and was loosened to 2d.
2024-03-11 16:45:49 -04:00
Devjiu
4b1e87ce67
[TorchDynamo] Enable Elemtwise ops for Scalar arg ( #2744 )
...
This commit provides dummy solution to support elmentwise operations
(mul, add) with scalar argument. ( op(Tensor, Scalar) )
It replaces `torch.aten.add.Tensor` with `torch.aten.add.Scalar`.
```
Unexpected outcome summary: (torchdynamo)
****** Unexpectedly Passed tests - 22 tests
XPASS - "AddCDivModule_basic"
XPASS - "BatchNorm1DModule_basic"
XPASS - "BatchNorm1DStaticShapeModule_basic"
XPASS - "BatchNorm1DWith2DInputModule_basic"
XPASS - "BatchNorm2DModule_basic"
XPASS - "BatchNorm3DModule_basic"
XPASS - "ElementwiseAddScalarInt64Module_basic"
XPASS - "ElementwiseAddScalarIntModule_basic"
XPASS - "ElementwiseMulScalarModule_basic"
XPASS - "ElementwiseMulScalarModule_float"
XPASS - "ElementwiseMulScalarModule_int"
XPASS - "GroupNormModule_basic"
XPASS - "GroupNormNoWeightAndBiasModule_basic"
XPASS - "MobilenetV3Module_basic"
XPASS - "NativeBatchNorm1DModule_basic"
XPASS - "NativeBatchNorm2DModule_basic"
XPASS - "NativeBatchNorm3DModule_basic"
XPASS - "NativeBatchNormNoneWeightModule_basic"
XPASS - "NativeGroupNormBackwardModule_basic"
XPASS - "NativeGroupNormModule_basic"
XPASS - "ResNet18Module_basic"
XPASS - "ResNet18StaticModule_basic"
```
And segfault for test
"ElementwiseAddScalar_TensorLiteralInt32_Module_basic". Somehow this
change doesn't allow to use Tensors, that are not forward arguments, but
local variables of model.
e.g. `self.x = torch.tensor(..)`
See also: #2745
Signed-off-by: Dmitrii Makarenko <dmitrii.makarenko@intel.com>
2024-03-11 12:22:05 -07:00
Rob Suderman
8fb28661f9
[onnx] Fix onnx.ReduceMean lowering ( #3002 )
...
Reduce mean lowerings did not succesfully lower to `linalg` via torched.
There were two separate paths that could be consolidated to a single
simpler pass. This resulted in a significant improvement in test
coverage.
2024-03-11 11:32:53 -07:00
Yuanqiang Liu
229ca3a9e1
[Torch Dialect] emit aten::mul and add folder ( #3007 )
2024-03-11 19:59:34 +08:00
Yuanqiang Liu
a3fe130f73
[Torch Dialect] emit aten::warn ( #3003 )
...
* torch-mlir may not handle `aten.warn`. But it could be handled by
custom users' backend which involves torch-mlir.
2024-03-10 08:29:08 +08:00
Rob Suderman
bd7f1baa42
[onnx] Fix expand operation for dynamic shape max ( #3001 )
...
If the broadcast shape is length-1 at a dim while `?` in the input dim
then we need to broadcast to the dynamic dim. This is equivalent to
taking a max of two dimensions.
2024-03-08 16:23:07 -08:00
Rob Suderman
0723584936
[torch] Add folder for torch.aten.*.Scalar comparisons ( #3000 )
...
This folds small version of the tensor-scalar comparison operators as
they are commonly used for shape computations. This includes le, lt, ge,
gt, eq, and ne.
2024-03-08 13:44:00 -08:00
Daniel Garvey
80c7bc3f7a
fximporter: support newer torch versions ( #2999 )
...
uses version checking since attributes exist in both versions, the only
thing that changes is what we're receiving as an fx graph
2024-03-08 14:58:50 -06:00
Dmitry Babokin
6b3a7d07c2
Fix link to roadmap in README.md ( #2995 )
...
The file was renamed by PR https://github.com/llvm/torch-mlir/pull/2842 .
2024-03-07 20:26:53 -08:00
Andreas Falkenberg
551a4e45f3
[onnx] Add support for `onnx.Gemm` with no bias ( #2993 )
...
Previous gemm version required a bias vector.
This provides an alternate path to `Torch::AtenMm`
with no bias operation.
2024-03-07 15:58:38 -08:00
Rob Suderman
1964208d19
[onnx] Fix constant pad for dynamic shape ( #2989 )
...
The current padding operation was not functional for dynamic shapes.
Updated and enabled tests so that onnx.pad tests pass.
Work TBD for reflection padding.
2024-03-07 13:29:50 -08:00
Scott Todd
7b18646def
[onnx] Handle optional arguments in Clip op pattern. ( #2976 )
...
Spec: https://onnx.ai/onnx/operators/onnx__Clip.html
2024-03-07 17:25:14 +00:00
Vivek Khandelwal
6e84752c39
build: manually update PyTorch version ( #2992 )
...
Set PyTorch and TorchVision version to nightly release 2024-03-07.
This commit also removes the deprecated constraints API:
342e7929b8
Signed-Off By: Vivek Khandelwal <vivekkhandelwal1424@gmail.com>
2024-03-07 21:42:38 +05:30
penguin_wwy
d5693b3f51
[doc] fix broken links in documents ( #2990 )
...
Co-authored-by: wenyangwang <wenyangwang@tencent.com>
2024-03-06 19:52:34 -08:00
Rob Suderman
c15f1a2bd2
[onnx] Adding lowering for `onnx.Size` operation ( #2985 )
...
We can support `onnx.Size` by requesing the size of each dimensions and
taking the product of the results, then packing it into a tensor.
---------
Co-authored-by: Scott Todd <scott.todd0@gmail.com>
2024-03-06 17:01:05 -08:00
Rob Suderman
a78659742a
[onnx] Migrate `onnx.ReduceMax` to match `onnx.ReduceMin` ( #2981 )
...
This mostly copy-pastes the reduce minimum implementation to reduce max
to improve test coverage. We also improve the aten lowering for min/max
dim for unsigned types.
2024-03-06 16:48:21 -08:00
Andreas Falkenberg
ea76dd12ba
[onnx][torch] Gridsampler E2E test and corrections of gridsampler ( #2987 )
...
The addition of an e2e test is actually provided in the Shark-Testsuite.
This adds 2 test cases for the gridsampler e2e test.
Also as intended there were some items found which needed correction, so
the Gridsampler op has also a change.
2024-03-06 10:56:58 -08:00
Rob Suderman
06292d9429
[torch] Rework `aten.repeat` to use flatten and unsqueeze ( #2984 )
...
Current implementation depends on using `aten.view` which has issues
inferring tensor collapse/expand operations during the lowering to
`linalg`. Using flatten and unsqueeze better infers what the later
reshape behavior.
2024-03-06 10:19:18 -08:00
Ze Zhang
aa7c9a9653
e2e support aten.linalg_norm to aten.linalg_vector_norm ( #2953 )
...
Add e2d support for `aten.linalg_norm` by decompose it to
`aten.linalg_vector_norm`.
Lowering to `aten.linalg_matrix_norm` is still unsupported.
To Test:
`python -m e2e_testing.main -v`
---------
Co-authored-by: Ze Zhang <ze.zhang@getcruise.com>
2024-03-05 16:31:01 -08:00
Rob Suderman
bc0527676b
[torch] Add support for `torch.split_with_sizes` via decompose ( #2979 )
...
Convert to individiual slices and tuple together as a list.
---------
Co-authored-by: Scott Todd <scott.todd0@gmail.com>
2024-03-05 15:01:21 -08:00
Rob Suderman
933db87a07
[onnx] Add support for constants of `i1`s ( #2978 )
...
`getRawBuffer` expects a densely packed vector of `i1` values however
`onnx` does not densely pack the values. Include code to handle the
packing / unpacking.
2024-03-05 13:55:13 -08:00
Yuanqiang Liu
4d01b0f1a3
[FxImporter] remove dataclass slots to support python3.9 ( #2974 )
...
* that `dataclass`'s `slots` is supported after python 3.10.
2024-03-06 01:04:38 +08:00
Rob Suderman
a86e89ecb5
[torch] Additional folders for shape computations ( #2972 )
...
A handful of operations are commonly used in shape calculations (slice,
concat, broadcast). Added these additional folders to better propagate
simple shape computations.
2024-03-04 11:46:49 -08:00
Chi_Liu
09875fabd1
[MLIR][ONNX] Add ONNX ReduceProd support ( #2943 )
...
Alternatives to https://github.com/llvm/torch-mlir/pull/2908
Fix https://github.com/nod-ai/SHARK-Turbine/issues/353
2024-03-04 11:07:03 -08:00
Rob Suderman
19d4888278
[torch] Make torch.aten.unflatten lower directly to linalg ( #2971 )
...
Existing lowering via aten.view does not work as well for dynamic shapes
as the lowering to tensor.expand must re-infer dynamic shape matching.
Better to directly lower.
2024-03-04 10:17:42 -08:00
Rob Suderman
d51e80b648
[onnx] Fix onnx.gather lowering for rank-0 indices ( #2973 )
...
We assumed rank was atleast 1 however it can be rank-0, generating an
illegal pair of flatten / unflatten operations. Corrected this.
2024-03-04 08:25:19 -08:00
Yuanqiang Liu
916554f270
[Stablehlo] add torch_to_stablehlo::getBackendTypeForScalarType ( #2975 )
2024-03-04 23:31:54 +08:00
Rob Suderman
61f0a5facf
[torch] Add an `aten.cat` length-0 canonicalization ( #2966 )
...
If an input is length-0 along the dimension of canonicalization we can
remove the tensor from the list
2024-03-01 21:41:12 -08:00
Rob Suderman
d030bffc62
[torch] Support `aten.view` rank-0 collapse ( #2965 )
...
Collapsing to a rank-0 tensor using `aten.view` was currently bailing
out. Added the special case.
2024-03-01 12:31:07 -08:00
Scott Todd
e7d90a4b82
[onnx] Fix type on create_module() in onnx_importer.py. ( #2968 )
...
The type returned was changed in
https://github.com/llvm/torch-mlir/pull/2795 . This led to errors in the
downstream IREE project: https://github.com/openxla/iree/pull/16622 .
2024-02-29 13:01:13 -08:00
Vivek Khandelwal
579ac8b666
[MLIR][TORCH] Fix OnnxToLinalg lowering issue for sub and sum op ( #2954 )
...
This commit adds the support for scalar conversion to byte.
This commit also fixes the OnnxToLinalg lowering issue for Onnx.Sub and
Onnx.Sum op.
Fixes https://github.com/nod-ai/SHARK-Turbine/issues/466
Fixes https://github.com/nod-ai/SHARK-Turbine/issues/467
Signed-Off By: Vivek Khandelwal <vivekkhandelwal1424@gmail.com>
2024-02-29 21:48:46 +05:30
mmakevic
76b81e0ccd
Implement lowering of torch.aten.fmod.Tensor ( #2767 )
...
Closing https://github.com/nod-ai/SHARK-Turbine/issues/351
2024-02-29 11:22:03 +05:30
Aart Bik
f21b76b68a
[torch-mlir][sparse] fixed merge conflict ( #2967 )
2024-02-28 17:14:00 -08:00
Peiming Liu
e85a2a87c5
[torch-mlir][sparse] support e2e sparse kernels with COO inputs. ( #2939 )
2024-02-28 16:08:37 -08:00
Rob Suderman
ed6e75908b
Bump LLVM to llvm/llvm-project@e5ed7b6e2f ( #2964 )
2024-02-28 14:13:26 -08:00
Andreas Falkenberg
5437f32193
[onnx][torch] Lower `onnx.grid_sampler` to the `torch` equivalents ( #2952 )
...
This is the lowering of gridsampler from onnx to torch using our prior
implementation of AtenGridSamplerOp.
Here are several checks for cornercases implemented. We may decide to
have part of these checks in AtenGridSamplerOp instead of the onnx
lowering portion.
2024-02-28 13:52:15 -08:00
Rob Suderman
e48fe45886
[onnx] Import `onnx` import to pass remaining tests ( #2951 )
...
Finish supporting importing the vast majority of `onnx` operations. This
includes:
- region support
- region value inherentance
- `torch.string` support
- `torch.list` support
- `torch.optional` support
2024-02-28 12:18:02 -08:00