|
Revision tags: llvmorg-21-init, llvmorg-19.1.7, llvmorg-19.1.6, llvmorg-19.1.5, llvmorg-19.1.4, llvmorg-19.1.3, llvmorg-19.1.2 |
|
| #
77f8297c |
| 13-Oct-2024 |
Matthias Springer <me@m-sp.org> |
[mlir][sparse] Improve sparse tensor type constraints (#112133)
Sparse tensors are always ranked tensors. Encodings cannot be attached
to unranked tensors. Change the type constraint to `RankedTens
[mlir][sparse] Improve sparse tensor type constraints (#112133)
Sparse tensors are always ranked tensors. Encodings cannot be attached
to unranked tensors. Change the type constraint to `RankedTensorOf`, so
that we generate `TypedValue<RankedTensorType>` instead of
`TypedValue<TensorType>`. This removes the need for type casting in some
cases.
Also improve the verifiers (missing `return` statements) and switch a
few other `AnyTensor` to `AnyRankedTensor`.
This commit is in preparation of a dialect conversion commit that
required fixes in the sparse dialect.
show more ...
|
|
Revision tags: llvmorg-19.1.1, llvmorg-19.1.0, llvmorg-19.1.0-rc4 |
|
| #
b48ef8d8 |
| 23-Aug-2024 |
Peiming Liu <peiming@google.com> |
[mlir][sparse] unify block arguments order between iterate/coiterate operations. (#105567)
|
| #
f607102a |
| 23-Aug-2024 |
Peiming Liu <peiming@google.com> |
[mlir][sparse] partially support lowering sparse coiteration loops to scf.while/for. (#105565)
|
| #
c4420257 |
| 20-Aug-2024 |
Peiming Liu <peiming@google.com> |
[mlir][sparse] support sparsification to coiterate operations. (#102546)
|
|
Revision tags: llvmorg-19.1.0-rc3, llvmorg-19.1.0-rc2 |
|
| #
785a24f1 |
| 31-Jul-2024 |
Peiming Liu <peiming@google.com> |
[mlir][sparse] introduce `sparse_tensor.coiterate` operation. (#101100)
This PR introduces `sparse_tensor.coiterate` operation, which represents
a loop that traverses multiple sparse iteration spac
[mlir][sparse] introduce `sparse_tensor.coiterate` operation. (#101100)
This PR introduces `sparse_tensor.coiterate` operation, which represents
a loop that traverses multiple sparse iteration space.
show more ...
|
| #
12189f80 |
| 30-Jul-2024 |
Peiming Liu <peiming@google.com> |
[mlir][sparse] introduce `sparse_tensor.extract_value` operation. (#101219)
|
|
Revision tags: llvmorg-19.1.0-rc1, llvmorg-20-init |
|
| #
a02010b3 |
| 17-Jun-2024 |
Peiming Liu <peiming@google.com> |
[mlir][sparse] support sparsifying sparse kernels to sparse-iterator-based loop (#95858)
|
|
Revision tags: llvmorg-18.1.8 |
|
| #
a43d79af |
| 14-Jun-2024 |
Peiming Liu <peiming@google.com> |
[mlir][sparse] add canonicalization patterns for IterateOp. (#95569)
|
| #
e276cf08 |
| 10-Jun-2024 |
Peiming Liu <peiming@google.com> |
[mlir][sparse] introduce `sparse_tensor.iterate` operation (#88955)
A `sparse_tensor.iterate` iterates over a sparse iteration space
extracted from `sparse_tensor.extract_iteration_space` operation
[mlir][sparse] introduce `sparse_tensor.iterate` operation (#88955)
A `sparse_tensor.iterate` iterates over a sparse iteration space
extracted from `sparse_tensor.extract_iteration_space` operation
introduced in https://github.com/llvm/llvm-project/pull/88554.
show more ...
|
|
Revision tags: llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4 |
|
| #
8aa061ff |
| 16-Apr-2024 |
Peiming Liu <peiming@google.com> |
[mlir][sparse][NFC] switching to using `let argments/results` in td files (#88994)
followed the same style used in "TensorOps.td".
|
| #
481bd5d4 |
| 16-Apr-2024 |
Peiming Liu <peiming@google.com> |
[mlir][sparse] introduce `sparse_tensor.extract_iteration_space` operation. (#88554)
A `sparse_tensor.extract_space %tensor at %iterator` extracts a *sparse*
iteration space defined `%tensor`, the
[mlir][sparse] introduce `sparse_tensor.extract_iteration_space` operation. (#88554)
A `sparse_tensor.extract_space %tensor at %iterator` extracts a *sparse*
iteration space defined `%tensor`, the operation to traverse the
iteration space will be introduced in following PRs.
show more ...
|
| #
b9556532 |
| 16-Apr-2024 |
Peiming Liu <peiming@google.com> |
Revert "[mlir][sparse] introduce sparse_tensor.iterate operation" (#88953)
Reverts llvm/llvm-project#88807 (merged by mistake)
|
| #
8debcf03 |
| 16-Apr-2024 |
Peiming Liu <peiming@google.com> |
[mlir][sparse] introduce sparse_tensor.iterate operation (#88807)
A `sparse_tensor.iterate` iterates over a sparse iteration space
extracted from `sparse_tensor.extract_iteration_space` operation
[mlir][sparse] introduce sparse_tensor.iterate operation (#88807)
A `sparse_tensor.iterate` iterates over a sparse iteration space
extracted from `sparse_tensor.extract_iteration_space` operation
introduced in https://github.com/llvm/llvm-project/pull/88554.
*DO NOT MERGE* before https://github.com/llvm/llvm-project/pull/88554
show more ...
|
| #
f388a3a4 |
| 10-Apr-2024 |
Aart Bik <ajcbik@google.com> |
[mlir][sparse] update doc and examples of the [dis]assemble operations (#88213)
The doc and examples of the [dis]assemble operations did not reflect all
the recent changes on order of the operands.
[mlir][sparse] update doc and examples of the [dis]assemble operations (#88213)
The doc and examples of the [dis]assemble operations did not reflect all
the recent changes on order of the operands. Also clarified some of the
text.
show more ...
|
|
Revision tags: llvmorg-18.1.3 |
|
| #
a54930e6 |
| 01-Apr-2024 |
Peiming Liu <peiming@google.com> |
[mlir][sparse] allow YieldOp to yield multiple values. (#87261)
|
|
Revision tags: llvmorg-18.1.2 |
|
| #
2e6b18b3 |
| 19-Mar-2024 |
Aart Bik <ajcbik@google.com> |
[mlir][sparse] add example to new operation doc, and roundtrip test (#85711)
|
| #
e8e8df4c |
| 15-Mar-2024 |
Matthias Springer <me@m-sp.org> |
[mlir][sparse] Add `has_runtime_library` test op (#85355)
This commit adds a new test-only op:
`sparse_tensor.has_runtime_library`. The op returns "1" if the sparse
compiler runs in runtime librar
[mlir][sparse] Add `has_runtime_library` test op (#85355)
This commit adds a new test-only op:
`sparse_tensor.has_runtime_library`. The op returns "1" if the sparse
compiler runs in runtime library mode.
This op is useful for writing test cases that require different IR
depending on whether the sparse compiler runs in runtime library or
codegen mode.
This commit fixes a memory leak in `sparse_pack_d.mlir`. This test case
uses `sparse_tensor.assemble` to create a sparse tensor SSA value from
existing buffers. This runtime library reallocates+copies the existing
buffers; the codegen path does not. Therefore, the test requires
additional deallocations when running in runtime library mode.
Alternatives considered:
- Make the codegen path allocate. "Codegen" is the "default" compilation
mode and it is handling `sparse_tensor.assemble` correctly. The issue is
with the runtime library path, which should not allocate. Therefore, it
is better to put a workaround in the runtime library path than to work
around the issue with a new flag in the codegen path.
- Add a `sparse_tensor.runtime_only` attribute to
`bufferization.dealloc_tensor`. Verifying that the attribute can only be
attached to `bufferization.dealloc_tensor` may introduce an unwanted
dependency of `MLIRSparseTensorDialect` on `MLIRBufferizationDialect`.
show more ...
|
| #
94e27c26 |
| 12-Mar-2024 |
Peiming Liu <peiming@google.com> |
[mlir][sparse] reuse tensor.insert operation to insert elements into … (#84987)
…a sparse tensor.
|
|
Revision tags: llvmorg-18.1.1 |
|
| #
fc9f1d49 |
| 06-Mar-2024 |
Peiming Liu <peiming@google.com> |
[mlir][sparse] use a consistent order between [dis]assembleOp and sto… (#84079)
…rage layout.
|
| #
6bc7c9df |
| 29-Feb-2024 |
Peiming Liu <36770114+PeimingLiu@users.noreply.github.com> |
[mlir][sparse] infer returned type for sparse_tensor.to_[buffer] ops (#83343)
The sparse structure buffers might not always be memrefs with rank == 1
with the presence of batch levels.
|
| #
d37affb0 |
| 28-Feb-2024 |
Aart Bik <39774503+aartbik@users.noreply.github.com> |
[mlir][sparse] add a sparse_tensor.print operation (#83321)
This operation is mainly used for testing and debugging purposes but
provides a very convenient way to quickly inspect the contents of a
[mlir][sparse] add a sparse_tensor.print operation (#83321)
This operation is mainly used for testing and debugging purposes but
provides a very convenient way to quickly inspect the contents of a
sparse tensor (all components over all stored levels).
Example:
[ [ 1, 0, 2, 0, 0, 0, 0, 0 ],
[ 0, 0, 0, 0, 0, 0, 0, 0 ],
[ 0, 0, 0, 0, 0, 0, 0, 0 ],
[ 0, 0, 3, 4, 0, 5, 0, 0 ]
when stored sparse as DCSC prints as
---- Sparse Tensor ----
nse = 5
pos[0] : ( 0, 4, )
crd[0] : ( 0, 2, 3, 5, )
pos[1] : ( 0, 1, 3, 4, 5, )
crd[1] : ( 0, 0, 3, 3, 3, )
values : ( 1, 2, 3, 4, 5, )
----
show more ...
|
|
Revision tags: llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init |
|
| #
98f8b1af |
| 29-Nov-2023 |
Aart Bik <39774503+aartbik@users.noreply.github.com> |
[mlir][sparse] remove COO test from trait and encoding (#73733)
This is a minor step towards moving ALL COO related tests into the
SparseTensorType class rather than
having it all over the place
[mlir][sparse] remove COO test from trait and encoding (#73733)
This is a minor step towards moving ALL COO related tests into the
SparseTensorType class rather than
having it all over the place (with risk of becoming inconsistent). Next
revision will move ALL COO related methods into this class.
show more ...
|
| #
110f927f |
| 29-Nov-2023 |
Aart Bik <39774503+aartbik@users.noreply.github.com> |
[mlir][sparse] refactor sparse tensor traits (#73726)
Slightly refactors the order of the sparse tensor
traits, and usage. Also makes minor doc improvements.
|
|
Revision tags: llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4 |
|
| #
d808d922 |
| 26-Oct-2023 |
Peiming Liu <36770114+PeimingLiu@users.noreply.github.com> |
[mlir][sparse] introduce sparse_tensor.reinterpret_map operation. (#70378)
|
| #
7e83a1af |
| 25-Oct-2023 |
Aart Bik <39774503+aartbik@users.noreply.github.com> |
[mlir][sparse] add verification of absent value in sparse_tensor.unary (#70248)
This value should always be a plain contant or something invariant
computed outside the surrounding linalg operation,
[mlir][sparse] add verification of absent value in sparse_tensor.unary (#70248)
This value should always be a plain contant or something invariant
computed outside the surrounding linalg operation, since there is no
co-iteration defined on anything done in this branch.
Fixes:
https://github.com/llvm/llvm-project/issues/69395
show more ...
|