summaryrefslogtreecommitdiff
path: root/mlir/lib/Dialect/SparseTensor/Transforms/SparseAssembler.cpp
AgeCommit message (Collapse)Author
2025-07-22[mlir][NFC] update `mlir/Dialect` create APIs (21/n) (#149928)Maksim Levental
See https://github.com/llvm/llvm-project/pull/147168 for more info.
2025-07-12[mlir] Remove unused includes (NFC) (#148396)Kazu Hirata
2024-09-13[mlir][sparse] fix bug with all-dense assembler (#108615)Aart Bik
When only all-dense "sparse" tensors occur in a function prototype, the assembler would skip the method conversion purely based on input/output counts. It should rewrite based on the presence of any annotation, however.
2024-04-19Switch member calls to `isa/dyn_cast/cast/...` to free function calls. (#89356)Christian Sigg
This change cleans up call sites. Next step is to mark the member functions deprecated. See https://mlir.llvm.org/deprecation and https://discourse.llvm.org/t/preferred-casting-style-going-forward.
2024-04-11[mlir][sparse] allow for direct-out passing of sparse tensor buffers (#88327)Aart Bik
In order to support various external frameworks (JAX vs PyTorch) we need a bit more flexibility in [dis]assembling external buffers to and from sparse tensors in MLIR land. This PR adds a direct-out option that avoids the rigid pre-allocated for copy-out semantics. Note that over time, we expect the [dis]assemble operations to converge into something that supports all sorts of external frameworks. Until then, this option helps in experimenting with different options.
2024-03-06[mlir][sparse] use a consistent order between [dis]assembleOp and sto… ↵Peiming Liu
(#84079) …rage layout.
2024-03-04[mlir][sparse] support sparsifying batch levels (#83898)Peiming Liu
2024-02-20[mlir][sparse] assemble SoA COO correctly. (#82449)Peiming Liu
2024-02-15[mlir][sparse] ensure [dis]assembler wrapper methods properly inline (#81907)Aart Bik
2024-02-05[mlir][sparse] refine sparse assembler strategy (#80521)Aart Bik
Rewrite *all* public methods, making original internal, private methods, and exposing wrappers under the original name. This works a bit better in practice (when combined with c-interface mechanism of torch-mlir for example).
2024-02-01[mlir][sparse] external entry method wrapper for sparse tensors (#80326)Aart Bik
Similar to the emit_c_interface, this pull request adds a pass that converts public entry methods that use sparse tensors as input parameters and/or output return values into wrapper functions that [dis]assemble the individual tensors that constitute the actual storage used externally into MLIR sparse tensors. This pass can be used to prepare the public entry methods of a program that is compiled by the MLIR sparsifier to interface with an external runtime, e.g., when passing sparse tensors as numpy arrays from and to Python. Note that eventual bufferization decisions (e.g. who [de]allocates the underlying memory) should be resolved in agreement with the external runtime (Python, PyTorch, JAX, etc.)