summaryrefslogtreecommitdiff
path: root/mlir/test/Integration/Dialect/SparseTensor/python/test_SDDMM.py
AgeCommit message (Collapse)Author
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-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-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-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-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-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] 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-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-02-22[mlir][sparse] refactor sparse compiler pipeline to single placeAart Bik
Reviewed By: bixia Differential Revision: https://reviews.llvm.org/D120347
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
2022-01-30[mlir][bufferize] Merge tensor-constant-bufferize into arith-bufferizeMatthias Springer
The bufferization of arith.constant ops is also switched over to BufferizableOpInterface-based bufferization. The old implementation is deleted. Both implementations utilize GlobalCreator, now renamed to just `getGlobalFor`. GlobalCreator no longer maintains a set of all created allocations to avoid duplicate allocations of the same constant. Instead, `getGlobalFor` scans the module to see if there is already a global allocation with the same constant value. For compatibility reasons, it is still possible to create a pass that bufferizes only `arith.constant`. This pass (createConstantBufferizePass) could be deleted once all users were switched over to One-Shot bufferization. Differential Revision: https://reviews.llvm.org/D118483
2021-12-13[mlir][sparse] python driven test for SDDMMAart Bik
explores various sparsity combinations of the SDMM kernel and verifies that the computed result is the same for all cases Reviewed By: bixia Differential Revision: https://reviews.llvm.org/D115476