summaryrefslogtreecommitdiff
path: root/mlir/test/Integration/Dialect/SparseTensor/python
AgeCommit message (Collapse)Author
2024-10-02[MLIR][sparse] Fix SparseTensor `test_output.py` test (#110882)Mateusz Sokół
This PR fixes a test failure introduced in https://github.com/llvm/llvm-project/pull/109135
2024-10-02[MLIR][sparse] Add `soa` property to `sparse_tensor` Python bindings (#109135)Mateusz Sokół
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-02-13[mlir][sparse][pybind][CAPI] remove LevelType enum from CAPI, constru… ↵Peiming Liu
(#81682) …ct LevelType from LevelFormat and properties instead. **Rationale** We used to explicitly declare every possible combination between `LevelFormat` and `LevelProperties`, and it now becomes difficult to scale as more properties/level formats are going to be introduced.
2023-11-27[mlir][sparse] rename DimLevelType to LevelType (#73561)Aart Bik
The "Dim" prefix is a legacy left-over that no longer makes sense, since we have a very strict "Dimension" vs. "Level" definition for sparse tensor types and their storage.
2023-11-15[mlir][sparse] Capitalize class comment (#72436)Aart Bik
2023-11-15Changed all code and comments that used the phrase "sparse compiler" to ↵Tim Harvey
instead use "sparsifier" (#71875) The changes in this p.r. mostly center around the tests that use the flag sparse_compiler (also: sparse-compiler).
2023-11-14[mlir][sparse] enable Python BSR test (#72325)Aart Bik
2023-11-07Changed the phrase sparse-compiler to sparsifier in comments (#71578)Tim Harvey
When the Powers That Be decided that the name "sparse compiler" should be changed to "sparsifier", we negected to change some of the comments in the code; this pull request completes the name change.
2023-11-03[MLIR][LLVM] Remove typed pointer remnants from integration tests (#71208)Christian Ulmann
This commit removes all LLVM dialect typed pointers from the integration tests. Typed pointers have been deprecated for a while now and it's planned to soon remove them from the LLVM dialect. Related PSA: https://discourse.llvm.org/t/psa-removal-of-typed-pointers-from-the-llvm-dialect/74502
2023-10-27[mlir][sparse] unify sparse_tensor.out rewriting rules (#70518)Peiming Liu
2023-10-24[mlir][sparse] add COO to python tests (#70090)Aart Bik
also typo fix
2023-10-23[mlir][sparse] extend sparse output test (#69986)Aart Bik
This adds COO and loose compressed to output testing. Also prepares BSR for output testing, but needs the conversion to work first. Cleanup of stale TODOs
2023-10-17[mlir][sparse] Populate lvlToDim (#68937)Yinying Li
Updates: 1. Infer lvlToDim from dimToLvl 2. Add more tests for block sparsity 3. Finish TODOs related to lvlToDim, including adding lvlToDim to python binding Verification of lvlToDim that user provides will be implemented in the next PR.
2023-10-12[mlir][sparse] implement sparse_tensor.reorder_coo (#68916)Peiming Liu
As a side effect of the change, it also unifies the convertOp implementation between lib/codegen path.
2023-09-13[mlir][sparse] remove sparse output python example (#66298)Aart Bik
Rationale: This was actually just a pure "string based" test with very little actual python usage. The output sparse tensor was handled via the deprecated convertFromMLIRSparseTensor method.
2023-05-30[mlir][sparse] Combining `dimOrdering`+`higherOrdering` fields into `dimToLvl`wren romano
This is a major step along the way towards the new STEA design. While a great deal of this patch is simple renaming, there are several significant changes as well. I've done my best to ensure that this patch retains the previous behavior and error-conditions, even though those are at odds with the eventual intended semantics of the `dimToLvl` mapping. Since the majority of the compiler does not yet support non-permutations, I've also added explicit assertions in places that previously had implicitly assumed it was dealing with permutations. Reviewed By: aartbik Differential Revision: https://reviews.llvm.org/D151505
2023-05-26[NFC][Py Reformat] Reformat python files in mlir subdirTobias Hieta
This is an ongoing series of commits that are reformatting our Python code. Reformatting is done with `black`. If you end up having problems merging this commit because you have made changes to a python file, the best way to handle that is to run git checkout --ours <yourfile> and then reformat it with black. If you run into any problems, post to discourse about it and we will try to help. RFC Thread below: https://discourse.llvm.org/t/rfc-document-and-standardize-python-code-style Differential Revision: https://reviews.llvm.org/D150782
2023-05-17[mlir][sparse] Renaming the STEA field `dimLevelType` to `lvlTypes`wren romano
This commit is part of the migration of towards the new STEA syntax/design. In particular, this commit includes the following changes: * Renaming compiler-internal functions/methods: * `SparseTensorEncodingAttr::{getDimLevelType => getLvlTypes}` * `Merger::{getDimLevelType => getLvlType}` (for consistency) * `sparse_tensor::{getDimLevelType => buildLevelType}` (to help reduce confusion vs actual getter methods) * Renaming external facets to match: * the STEA parser and printer * the C and Python bindings * PyTACO However, the actual renaming of the `DimLevelType` itself (along with all the "dlt" names) will be handled in a separate commit. Reviewed By: aartbik Differential Revision: https://reviews.llvm.org/D150330
2023-03-01[mlir][python] Allow running pass manager on any operationrkayaith
`PassManager.run` is currently restricted to running on `builtin.module` ops, but this restriction doesn't exist on the C++ side. This updates it to take `ir.Operation/OpView` instead of `ir.Module`. Depends on D143354 Reviewed By: mehdi_amini Differential Revision: https://reviews.llvm.org/D143356
2023-02-16[mlir][sparse] reduce the input size in stress_test.py to make it finish in ↵Peiming Liu
time. Reviewed By: aartbik Differential Revision: https://reviews.llvm.org/D144150
2023-02-15Reland "[mlir] Make the vast majority of intgration and runner tests work on ↵Markus Böck
Windows" This reverts commit 5561e174117ff395d65b6978d04b62c1a1275138 The logic was moved from cmake into lit fixing the issue that lead to the revert and potentially others with multi-config cmake generators Differential Revision: https://reviews.llvm.org/D143925
2023-02-13Revert "[mlir] Make the vast majority of integration and runner tests work ↵Aart Bik
on Windows" This reverts commit 161b9d741a3c25f7bd79620598c5a2acf3f0f377. REASON: cmake --build . --target check-mlir-integration Failed Tests (186):   MLIR :: Integration/Dialect/Arith/CPU/test-wide-int-emulation-addi-i16.mlir   MLIR :: Integration/Dialect/Arith/CPU/test-wide-int-emulation-cmpi-i16.mlir   MLIR :: Integration/Dialect/Arith/CPU/test-wide-int-emulation-compare-results-i16.mlir   MLIR :: Integration/Dialect/Arith/CPU/test-wide-int-emulation-constants-i16.mlir   MLIR :: Integration/Dialect/Arith/CPU/test-wide-int-emulation-max-min-i16.mlir   MLIR :: Integration/Dialect/Arith/CPU/test-wide-int-emulation-muli-i16.mlir   MLIR :: Integration/Dialect/Arith/CPU/test-wide-int-emulation-shli-i16.mlir   MLIR :: Integration/Dialect/Arith/CPU/test-wide-int-emulation-shrsi-i16.mlir   MLIR :: Integration/Dialect/Arith/CPU/test-wide-int-emulation-shrui-i16.mlir   MLIR :: Integration/Dialect/Async/CPU/microbench-linalg-async-parallel-for.mlir   MLIR :: Integration/Dialect/Async/CPU/microbench-scf-async-parallel-for.mlir   MLIR :: Integration/Dialect/Async/CPU/test-async-parallel-for-1d.mlir   MLIR :: Integration/Dialect/Async/CPU/test-async-parallel-for-2d.mlir   MLIR :: Integration/Dialect/Complex/CPU/correctness.mlir   MLIR :: Integration/Dialect/LLVMIR/CPU/X86/test-inline-asm-vector.mlir   MLIR :: Integration/Dialect/LLVMIR/CPU/X86/test-inline-asm.mlir   MLIR :: Integration/Dialect/LLVMIR/CPU/test-vector-reductions-fp.mlir   MLIR :: Integration/Dialect/LLVMIR/CPU/test-vector-reductions-int.mlir   MLIR :: Integration/Dialect/Linalg/CPU/matmul-vs-matvec.mlir   MLIR :: Integration/Dialect/Linalg/CPU/rank-reducing-subview.mlir   MLIR :: Integration/Dialect/Linalg/CPU/test-collapse-tensor.mlir   MLIR :: Integration/Dialect/Linalg/CPU/test-conv-1d-call.mlir   MLIR :: Integration/Dialect/Linalg/CPU/test-conv-1d-nwc-wcf-call.mlir   MLIR :: Integration/Dialect/Linalg/CPU/test-conv-2d-call.mlir   MLIR :: Integration/Dialect/Linalg/CPU/test-conv-2d-nhwc-hwcf-call.mlir   MLIR :: Integration/Dialect/Linalg/CPU/test-conv-3d-call.mlir   MLIR :: Integration/Dialect/Linalg/CPU/test-conv-3d-ndhwc-dhwcf-call.mlir   MLIR :: Integration/Dialect/Linalg/CPU/test-elementwise.mlir   MLIR :: Integration/Dialect/Linalg/CPU/test-expand-tensor.mlir   MLIR :: Integration/Dialect/Linalg/CPU/test-one-shot-bufferize.mlir   MLIR :: Integration/Dialect/Linalg/CPU/test-padtensor.mlir   MLIR :: Integration/Dialect/Linalg/CPU/test-subtensor-insert-multiple-uses.mlir   MLIR :: Integration/Dialect/Linalg/CPU/test-subtensor-insert.mlir   MLIR :: Integration/Dialect/Linalg/CPU/test-tensor-e2e.mlir   MLIR :: Integration/Dialect/Linalg/CPU/test-tensor-matmul.mlir   MLIR :: Integration/Dialect/Memref/cast-runtime-verification.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/concatenate.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/dense_output.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/dense_output_bf16.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/dense_output_f16.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_abs.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_binary.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_cast.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_codegen_dim.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_codegen_foreach.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_complex32.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_complex64.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_complex_ops.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_constant_to_sparse_tensor.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_conv_1d_nwc_wcf.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_conv_2d.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_conv_2d_nhwc_hwcf.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_conv_3d.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_conv_3d_ndhwc_dhwcf.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_conversion.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_conversion_dyn.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_conversion_ptr.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_conversion_sparse2dense.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_conversion_sparse2sparse.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_dot.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_expand.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_file_io.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_filter_conv2d.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_flatten.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_foreach_slices.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_index.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_index_dense.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_insert_1d.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_insert_2d.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_insert_3d.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_matmul.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_matrix_ops.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_matvec.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_mttkrp.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_out_mult_elt.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_out_reduction.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_out_simple.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_pack.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_quantized_matmul.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_re_im.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_reduce_custom.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_reduce_custom_prod.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_reductions.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_reductions_prod.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_reshape.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_rewrite_push_back.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_rewrite_sort.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_rewrite_sort_coo.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_sampled_matmul.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_sampled_mm_fusion.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_scale.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_scf_nested.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_select.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_sign.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_sorted_coo.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_spmm.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_storage.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_sum.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_sum_bf16.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_sum_c32.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_sum_f16.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_tanh.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_tensor_mul.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_tensor_ops.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_transpose.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_unary.mlir   MLIR :: Integration/Dialect/SparseTensor/CPU/sparse_vector_ops.mlir   MLIR :: Integration/Dialect/SparseTensor/python/test_SDDMM.py   MLIR :: Integration/Dialect/SparseTensor/python/test_SpMM.py   MLIR :: Integration/Dialect/SparseTensor/python/test_elementwise_add_sparse_output.py   MLIR :: Integration/Dialect/SparseTensor/python/test_output.py   MLIR :: Integration/Dialect/SparseTensor/python/test_stress.py   MLIR :: Integration/Dialect/SparseTensor/taco/test_MTTKRP.py   MLIR :: Integration/Dialect/SparseTensor/taco/test_SDDMM.py   MLIR :: Integration/Dialect/SparseTensor/taco/test_SpMM.py   MLIR :: Integration/Dialect/SparseTensor/taco/test_SpMV.py   MLIR :: Integration/Dialect/SparseTensor/taco/test_Tensor.py   MLIR :: Integration/Dialect/SparseTensor/taco/test_scalar_tensor_algebra.py   MLIR :: Integration/Dialect/SparseTensor/taco/test_simple_tensor_algebra.py   MLIR :: Integration/Dialect/SparseTensor/taco/test_tensor_complex.py   MLIR :: Integration/Dialect/SparseTensor/taco/test_tensor_types.py   MLIR :: Integration/Dialect/SparseTensor/taco/test_tensor_unary_ops.py   MLIR :: Integration/Dialect/SparseTensor/taco/test_true_dense_tensor_algebra.py   MLIR :: Integration/Dialect/SparseTensor/taco/unit_test_tensor_core.py   MLIR :: Integration/Dialect/SparseTensor/taco/unit_test_tensor_io.py   MLIR :: Integration/Dialect/SparseTensor/taco/unit_test_tensor_utils.py   MLIR :: Integration/Dialect/Standard/CPU/test-ceil-floor-pos-neg.mlir   MLIR :: Integration/Dialect/Standard/CPU/test_subview.mlir   MLIR :: Integration/Dialect/Vector/CPU/AMX/test-mulf-full.mlir   MLIR :: Integration/Dialect/Vector/CPU/AMX/test-mulf.mlir   MLIR :: Integration/Dialect/Vector/CPU/AMX/test-muli-ext.mlir   MLIR :: Integration/Dialect/Vector/CPU/AMX/test-muli-full.mlir   MLIR :: Integration/Dialect/Vector/CPU/AMX/test-muli.mlir   MLIR :: Integration/Dialect/Vector/CPU/AMX/test-tilezero-block.mlir   MLIR :: Integration/Dialect/Vector/CPU/AMX/test-tilezero.mlir   MLIR :: Integration/Dialect/Vector/CPU/X86Vector/test-dot.mlir   MLIR :: Integration/Dialect/Vector/CPU/X86Vector/test-inline-asm-vector-avx512.mlir   MLIR :: Integration/Dialect/Vector/CPU/X86Vector/test-mask-compress.mlir   MLIR :: Integration/Dialect/Vector/CPU/X86Vector/test-rsqrt.mlir   MLIR :: Integration/Dialect/Vector/CPU/X86Vector/test-sparse-dot-product.mlir   MLIR :: Integration/Dialect/Vector/CPU/X86Vector/test-vp2intersect-i32.mlir   MLIR :: Integration/Dialect/Vector/CPU/test-0-d-vectors.mlir   MLIR :: Integration/Dialect/Vector/CPU/test-broadcast.mlir   MLIR :: Integration/Dialect/Vector/CPU/test-compress.mlir   MLIR :: Integration/Dialect/Vector/CPU/test-constant-mask.mlir   MLIR :: Integration/Dialect/Vector/CPU/test-contraction.mlir   MLIR :: Integration/Dialect/Vector/CPU/test-create-mask-v4i1.mlir   MLIR :: Integration/Dialect/Vector/CPU/test-create-mask.mlir   MLIR :: Integration/Dialect/Vector/CPU/test-expand.mlir   MLIR :: Integration/Dialect/Vector/CPU/test-extract-strided-slice.mlir   MLIR :: Integration/Dialect/Vector/CPU/test-flat-transpose-col.mlir   MLIR :: Integration/Dialect/Vector/CPU/test-flat-transpose-row.mlir   MLIR :: Integration/Dialect/Vector/CPU/test-fma.mlir   MLIR :: Integration/Dialect/Vector/CPU/test-gather.mlir   MLIR :: Integration/Dialect/Vector/CPU/test-index-vectors.mlir   MLIR :: Integration/Dialect/Vector/CPU/test-insert-strided-slice.mlir   MLIR :: Integration/Dialect/Vector/CPU/test-maskedload.mlir   MLIR :: Integration/Dialect/Vector/CPU/test-maskedstore.mlir   MLIR :: Integration/Dialect/Vector/CPU/test-matrix-multiply-col.mlir   MLIR :: Integration/Dialect/Vector/CPU/test-matrix-multiply-row.mlir   MLIR :: Integration/Dialect/Vector/CPU/test-outerproduct-f32.mlir   MLIR :: Integration/Dialect/Vector/CPU/test-outerproduct-i64.mlir   MLIR :: Integration/Dialect/Vector/CPU/test-print-int.mlir   MLIR :: Integration/Dialect/Vector/CPU/test-realloc.mlir   MLIR :: Integration/Dialect/Vector/CPU/test-reductions-f32-reassoc.mlir   MLIR :: Integration/Dialect/Vector/CPU/test-reductions-f32.mlir   MLIR :: Integration/Dialect/Vector/CPU/test-reductions-f64-reassoc.mlir   MLIR :: Integration/Dialect/Vector/CPU/test-reductions-f64.mlir   MLIR :: Integration/Dialect/Vector/CPU/test-reductions-i32.mlir   MLIR :: Integration/Dialect/Vector/CPU/test-reductions-i4.mlir   MLIR :: Integration/Dialect/Vector/CPU/test-reductions-i64.mlir   MLIR :: Integration/Dialect/Vector/CPU/test-reductions-si4.mlir   MLIR :: Integration/Dialect/Vector/CPU/test-reductions-ui4.mlir   MLIR :: Integration/Dialect/Vector/CPU/test-scan.mlir   MLIR :: Integration/Dialect/Vector/CPU/test-scatter.mlir   MLIR :: Integration/Dialect/Vector/CPU/test-shape-cast.mlir   MLIR :: Integration/Dialect/Vector/CPU/test-shuffle.mlir   MLIR :: Integration/Dialect/Vector/CPU/test-sparse-dot-matvec.mlir   MLIR :: Integration/Dialect/Vector/CPU/test-sparse-saxpy-jagged-matvec.mlir   MLIR :: Integration/Dialect/Vector/CPU/test-transfer-read-1d.mlir   MLIR :: Integration/Dialect/Vector/CPU/test-transfer-read-2d.mlir   MLIR :: Integration/Dialect/Vector/CPU/test-transfer-read-3d.mlir   MLIR :: Integration/Dialect/Vector/CPU/test-transfer-read.mlir   MLIR :: Integration/Dialect/Vector/CPU/test-transfer-to-loops.mlir   MLIR :: Integration/Dialect/Vector/CPU/test-transfer-write.mlir   MLIR :: Integration/Dialect/Vector/CPU/test-transpose.mlir Testing Time: 0.29s   Unsupported:  31   Passed     :   5   Failed     : 186 Differential Revision: https://reviews.llvm.org/D143970
2023-02-13[mlir] Make the vast majority of integration and runner tests work on WindowsMarkus Böck
This patch contains the changes required to make the vast majority of integration and runner tests run on Windows. Historically speaking, the JIT support for Windows has been lacking behind, but recent versions of ORC JIT have now caught up and works for basically all examples in repo. Sadly due to these tests previously not working on Windows, basically all of them are making unix-like assumptions about things like filenames, paths, shell syntax etc. This patch fixes all these issues in one big swoop and enables Windows support for the vast majority of integration tests. More specifically, following changes had to be done: * The various JIT runners used paths to the runtime libraries that assumed a Unix toolchain layout and filenames. I abstracted the specific path and filename of these runtime libraries away by making the paths to the runtime libraries be passed from cmake into lit. This now also allows a much more convenient syntax: `--shared-libs=%mlir_c_runner_utils` instead of `--shared-libs=%mlir_lib_dir/lib/libmlir_c_runner_utils%shlibext` * Some tests using python set environment variables using the `ENV=VALUE cmd` format. This works on Unix, but on Windows it has to prefixed using `env ENV=VALUE cmd` * Some tests used C functions that are simply not available or exported on Windows (`fabsf`, `aligned_alloc`). These tests have either been adjusted or explicitly marked as `UNSUPPORTED` Some tests remain disabled on Windows as before: * In SparseTensor some tests have non-trivial logic for finding the runtime libraries which seems to be required for the use of emulators. I do not have the time to port these so I simply kept them disabled * Some tests requiring special hardware which I simply cannot test remain disabled on Windows. These include usage of AVX512 or AMX The tests for `mlir-vulkan-runner` and `mlir-spirv-runner` all work now as well and so do the vast majority of `mlir-cpu-runner`. Differential Revision: https://reviews.llvm.org/D143925
2022-11-03[mlir][python] Include anchor op in PassManager.parserkayaith
The pipeline string must now include the pass manager's anchor op. This makes the parse API properly roundtrip the printed form of a pass manager. Reviewed By: mehdi_amini Differential Revision: https://reviews.llvm.org/D136405
2022-10-19[mlir][sparse] remove vector support in sparsificationPeiming Liu
Sparse compiler used to generate vectorized code for sparse tensors computation, but it should really be delegated to other vectorization passes for better progressive lowering. https://discourse.llvm.org/t/rfc-structured-codegen-beyond-rectangular-arrays/64707 Reviewed By: aartbik Differential Revision: https://reviews.llvm.org/D136183
2022-10-05[mlir][sparse] further implement singleton dimension level typewren romano
Handle more cases of singleton DLT including direct sparse2sparse conversion. (Followup to D134096) Depends On D134926 Reviewed By: aartbik Differential Revision: https://reviews.llvm.org/D134933
2022-10-05[mlir][sparse] introduce a higher-order tensor mappingAart Bik
This extension to the sparse tensor type system in MLIR opens up a whole new set of sparse storage schemes, such as block sparse storage (e.g. BCSR) and ELL (aka jagged diagonals). This revision merely introduces the type extension and initial documentation. The actual interpretation of the type (reading in tensors, lowering to code, etc.) will follow. Reviewed By: Peiming Differential Revision: https://reviews.llvm.org/D135206
2022-09-07[mlir][sparse] fix python indentation in testAart Bik
Reviewed By: bixia Differential Revision: https://reviews.llvm.org/D133385
2022-09-06[MLIR] Fix for commit 0f2ec35Christian Sigg
Fix incorrectly formatted python file.
2022-09-06[MLIR] Switch lit tests to %mlir_lib_dir and %mlir_src_dir replacements.Christian Sigg
The old replacements will be removed soon: - `%linalg_test_lib_dir` - `%cuda_wrapper_library_dir` - `%spirv_wrapper_library_dir` - `%vulkan_wrapper_library_dir` - `%mlir_runner_utils_dir` - `%mlir_integration_test_dir` Reviewed By: herhut Differential Revision: https://reviews.llvm.org/D133270
2022-09-04[mlir][sparse] Expose SparseTensor passes as enums instead of opaque numbers ↵Nick Kreeger
for vectorization and parallelization options. The SparseTensor passes currently use opaque numbers for the CLI, despite using an enum internally. This patch exposes the enums instead of numbered items that are matched back to the enum. Fixes https://github.com/llvm/llvm-project/issues/53389 Differential Revision: https://reviews.llvm.org/D123876 Please also see: https://reviews.llvm.org/D118379 https://reviews.llvm.org/D117919
2022-09-03Revert "[mlir][sparse] Expose SparseTensor passes as enums instead of opaque"Nick Kreeger
This reverts commit ef25b5d93d0b5621eb5d0482abd30a4e127e9223.
2022-09-03[mlir][sparse] Expose SparseTensor passes as enums instead of opaqueNick Kreeger
numbers for vectorization and parallelization options. The SparseTensor passes currently use opaque numbers for the CLI, despite using an enum internally. This patch exposes the enums instead of numbered items that are matched back to the enum. Fixes https://github.com/llvm/llvm-project/issues/53389 Differential Revision: https://reviews.llvm.org/D123876 Please also see: https://reviews.llvm.org/D118379 https://reviews.llvm.org/D117919
2022-07-19[mlir][bufferization][NFC] Move sparse_tensor.release to bufferization dialectMatthias Springer
This op used to belong to the sparse dialect, but there are use cases for dense bufferization as well. (E.g., when a tensor alloc is returned from a function and should be deallocated at the call site.) This change moves the op to the bufferization dialect, which now has an `alloc_tensor` and a `dealloc_tensor` op. Differential Revision: https://reviews.llvm.org/D129985
2022-07-16[NFC] Remove obsolete all_passes_registration from integration tests.Stella Laurenzo
After https://reviews.llvm.org/D128593 this is not needed (and not available). Was missed in original landing because integration tests do not run on pre-merge.
2022-06-02[mlir][sparse][NFC] Switch InitOp to bufferization::AllocTensorOpMatthias Springer
Now that we have an AllocTensorOp (previously InitTensorOp) in the bufferization dialect, the InitOp in the sparse dialect is no longer needed. Differential Revision: https://reviews.llvm.org/D126180
2022-05-16[mlir][sparse] Enhancing sparse=>sparse conversion.wren romano
Fixes: https://github.com/llvm/llvm-project/issues/51652 Depends On D122060 Reviewed By: aartbik Differential Revision: https://reviews.llvm.org/D122061
2022-04-23Revert "[mlir][sparse] Expose SpareTensor passes as enums instead of opaque ↵Nick Kreeger
numbers for vectorization and parallelization options." This reverts commit d59cf901cbae7991f7847eb038d825efff1221ad. Build fails on NVIDIA Sparse tests: https://lab.llvm.org/buildbot/#/builders/61/builds/25447
2022-04-23[mlir][sparse] Expose SpareTensor passes as enums instead of opaque numbers ↵Nick Kreeger
for vectorization and parallelization options. The SparseTensor passes currently use opaque numbers for the CLI, despite using an enum internally. This patch exposes the enums instead of numbered items that are matched back to the enum. Fixes GitHub issue #53389 Reviewed by: aartbik, mehdi_amini Differential Revision: https://reviews.llvm.org/D123876
2022-04-20[mlir][NFC] Update textual references of `func` to `func.func` in ↵River Riddle
examples+python scripts The special case parsing of `func` operations is being removed.
2022-04-12[mlir][sparse] refactored python setup of sparse compilerAart Bik
Reviewed By: bixia Differential Revision: https://reviews.llvm.org/D123419
2022-03-16[mlir] Move the Builtin FuncOp to the Func dialectRiver Riddle
This commit moves FuncOp out of the builtin dialect, and into the Func dialect. This move has been planned in some capacity from the moment we made FuncOp an operation (years ago). This commit handles the functional aspects of the move, but various aspects are left untouched to ease migration: func::FuncOp is re-exported into mlir to reduce the actual API churn, the assembly format still accepts the unqualified `func`. These temporary measures will remain for a little while to simplify migration before being removed. Differential Revision: https://reviews.llvm.org/D121266
2022-03-01[mlir] Rename the Standard dialect to the Func dialectRiver Riddle
The last remaining operations in the standard dialect all revolve around FuncOp/function related constructs. This patch simply handles the initial renaming (which by itself is already huge), but there are a large number of cleanups unlocked/necessary afterwards: * Removing a bunch of unnecessary dependencies on Func * Cleaning up the From/ToStandard conversion passes * Preparing for the move of FuncOp to the Func dialect See the discussion at https://discourse.llvm.org/t/standard-dialect-the-final-chapter/6061 Differential Revision: https://reviews.llvm.org/D120624
2022-02-22[mlir][sparse] refactor sparse compiler pipeline to single placeAart Bik
Reviewed By: bixia Differential Revision: https://reviews.llvm.org/D120347
2022-02-18[mlir][sparse] provide more types for external to/from MLIR routinesAart Bik
These routines will need to be specialized a lot more based on value types, index types, pointer types, and permutation/dimension ordering. This is a careful first step, providing some functionality needed in PyTACO bridge. Reviewed By: bixia Differential Revision: https://reviews.llvm.org/D120154
2022-02-17[mlir][linalg][sparse] add linalg optimization passes "upstream"Aart Bik
It is time to compose Linalg related optimizations with SparseTensor related optimizations. This is a careful first start by adding some general Linalg optimizations "upstream" of the sparse compiler in the full sparse compiler pipeline. Some minor changes were needed to make those optimizations aware of sparsity. Note that after this, we will add a sparse specific fusion rule, just to demonstrate the power of the new composition. Reviewed By: bixia Differential Revision: https://reviews.llvm.org/D119971
2022-02-17[NFC] Correct typo `interger` to `integer`Shao-Ce SUN
2022-02-04[mlir][sparse] Updating sparse-compiler pipeline for python usagewren romano
Explicitly nests passes for FuncOp, adds more options to the sparse-compiler pipeline, and updates python integration tests. This should be sufficient to close https://github.com/llvm/llvm-project/issues/51751 Reviewed By: aartbik Differential Revision: https://reviews.llvm.org/D118658
2022-02-02[mlir] Move SelectOp from Standard to ArithmeticRiver Riddle
This is part of splitting up the standard dialect. See https://llvm.discourse.group/t/standard-dialect-the-final-chapter/ for discussion. Differential Revision: https://reviews.llvm.org/D118648