Peiming Liu
85dbb3fc4b
[mlir][sparse] support sparse tensor element type conversion in codegen path
...
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D144578
2023-02-23 17:49:50 +00:00
Peiming Liu
e6758c81f8
[mlir][sparse] comment out test cases in sparse_conversion with similiar behavior.
...
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D144236
2023-02-17 01:15:35 +00:00
Peiming Liu
0af5f84a13
[mlir][sparse] split reshape.mlir into expand/collapse_shape.mlir.
...
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D144231
2023-02-17 00:07:41 +00:00
Peiming Liu
9e8d9316ce
[mlir][sparse] allow foreach operation to generate out-of-order loop on non-annotated tensor.
...
No need for a temp COO and sort even when converting dense -> CSC, we can instead rotate the loop to yield a ordered coordinates at beginning.
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D144213
2023-02-16 23:23:20 +00:00
bixia1
c2e248c6ae
[mlir][sparse] Remove the expansion of symmetric MTX in the sparse tensor storage.
...
We will support symmetric MTX without expanding the data in the sparse tensor
storage.
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D144059
2023-02-16 13:02:17 -08:00
Peiming Liu
e2e83f4c8f
[mlir][sparse] support coiteration over sparse tensor slices
...
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D140736
2023-02-15 23:52:22 +00:00
Peiming Liu
7d62bc9cd3
[mlir][sparse] disable sparse convolution test cases.
...
These test cases will be re-enabled after new algorithm is implemented.
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D144141
2023-02-15 23:21:35 +00:00
Peiming Liu
9ed587ea9b
[mlir][sparse] split sparse concatenate test cases smaller ones.
...
To allow a better parallelization.
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D144139
2023-02-15 22:54:18 +00:00
Markus Böck
9048ea28da
Reland "[mlir] Make the vast majority of intgration and runner tests work on 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-15 19:14:43 +01:00
Aart Bik
5561e17411
Revert "[mlir] Make the vast majority of integration and runner tests work 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 18:30:52 -08:00
Peiming Liu
ce9ce66b8d
[mlir][sparse] fix a memory leakage when converting from a tensor slice
...
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D143929
2023-02-13 22:44:12 +00:00
Markus Böck
161b9d741a
[mlir] Make the vast majority of integration and runner tests work on Windows
...
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
2023-02-13 22:24:20 +01:00
Peiming Liu
dc6427d687
[mlir][sparse] implement lowering rules for sparse_tensor::unpack
...
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D143672
2023-02-11 01:05:46 +00:00
Jim Kitchen
81d0d2b2a0
[mlir][sparse] Sparse reduction in lex order no longer produces dense output
...
Previously, when performing a reduction on a sparse tensor, the result
would be different depending on iteration order. For expanded access pattern,
an empty row would contribute no entry in the output. For lex ordering, the
identity would end up in the output.
This code changes that behavior and keeps track of whether any entries were
actually reduced in lex ordering, making the output consistent between the
two iteration styles.
Differential Revision: https://reviews.llvm.org/D142050
2023-02-10 13:09:28 -06:00
Aart Bik
c55e6afe81
[mlir][sparse] fix integration test with "VLA" run
...
Reviewed By: Peiming
Differential Revision: https://reviews.llvm.org/D143674
2023-02-09 12:50:24 -08:00
Andrzej Warzynski
bfe4ce3f83
[mlir][sparse] Port the remaining integration tests to use SVE
...
This patch updates the remaining SparseCompiler integration tests to
target SVE when available.
Two tests will require some investigation in the future:
* sparse_matmul.mlir
* sparse_tanh.mlir
The former passes regardless - that's due to how `CHECK` lines are
defined. The latter fails when SVE is enabled, but passes when it's
disabled. I marked it as UNSUPPORTED as there is no mechanism to XFAIL a
test conditionally. Also, see [1] for more details.
[1] https://github.com/llvm/llvm-project/issues/60626
Differential Revision: https://reviews.llvm.org/D143514
2023-02-09 10:14:53 +00:00
bixia1
a150766880
[mlir][sparse] Implement hybrid quick sort for sparse_tensor.sort.
...
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D143227
2023-02-08 14:06:31 -08:00
Peiming Liu
0352690421
[mlir][sparse] make foreach operation support sparse tensor slices.
...
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D140713
2023-02-08 18:58:35 +00:00
Peiming Liu
7a8edea69d
[mlir][sparse] fix bug when packing tensor with 32 bit pointer width.
...
Reviewed By: wrengr
Differential Revision: https://reviews.llvm.org/D143450
2023-02-07 02:00:40 +00:00
Peiming Liu
a41672e16a
[mlir][sparse] implement lowering rules for sparse_tensor.pack operation
...
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D143230
2023-02-03 23:51:36 +00:00
bixia1
3b1c86cd0f
[mlir][sparse] Implement heap sort for sparse_tensor.sort.
...
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D142913
2023-02-02 15:36:38 -08:00
bixia1
0c7f1c1520
[mlir][sparse] Extend sparse_tensor.sort with a enum attribute to specify a sorting implementation.
...
Currently, all the non-stable sorting algorithms are implemented via the
straightforward quick sort. This will be fixed in the following PR.
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D142678
2023-01-29 18:34:08 -08:00
bixia1
7cec4d169d
[mlir][sparse] Change the quick sort pivot selection.
...
Previously, we choose the value at (lo + hi)/2 as a pivot for partitioning the
data in [lo, hi). We now choose the median for the three values at lo, (lo +
hi)/2, and (hi-1) as a pivot to match the std::qsort implementation.
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D142679
2023-01-29 17:56:57 -08:00
Javier Setoain
66d555aa33
[mlir][sparse][ArmSVE] Enable sparse integration tests for ArmSVE
...
This patch adds the logic necessary to target the sparse-tensor dialect
integration tests for SVE. As the LLVM backend for AArch64 does not
currently support product reductions, the corresponding tests are
disabled for SVE.
Not all tests have been updated yet. The remaining tests will be
refactored in a separate patch shortly.
Differential Revision: https://reviews.llvm.org/D121304
Co-authored-by: Andrzej Warzynski <andrzej.warzynski@arm.com>
2023-01-24 15:21:08 +00:00
bixia1
3fdd85da06
[mlir][sparse] Add AOS optimization.
...
Use an array of structures to represent the indices for the tailing COO region
of a sparse tensor.
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D140870
2023-01-04 18:16:04 -08:00
Peiming Liu
988733c600
[mlir][sparse] use sparse_tensor::StorageSpecifier to store dim/memSizes
...
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D140130
2022-12-23 00:47:36 +00:00
Paul Robinson
977c6f7867
[mlir] Convert tests to check 'target=...'
...
Part of the project to eliminate special handling for triples in lit
expressions.
2022-12-15 14:49:54 -08:00
Aart Bik
78ba3aa765
[mlir][sparse] performs a tab cleanup (NFC)
...
Reviewed By: Peiming
Differential Revision: https://reviews.llvm.org/D140142
2022-12-15 12:12:06 -08:00
bixia1
089e120060
[mlir][sparse] Make the remaining integration tests run with vectorization.
...
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D140057
2022-12-14 15:13:12 -08:00
bixia1
bfad07268b
[mlir][sparse] Add another call to ConvertVectorToLLVMPass, to lower the vector operations added by ConvertMathToLLVMPass.
...
Run sparse_tanh with vectorization.
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D139958
2022-12-14 15:06:34 -08:00
bixia1
a229c162a1
[mlir][sparse] Make some integration tests run with vectorization.
...
Reviewed By: Peiming
Differential Revision: https://reviews.llvm.org/D139887
2022-12-13 13:26:36 -08:00
Jakub Kuderski
269177eedf
Revert "[mlir][sparse] Make some integration tests run with vectorization."
...
This reverts commit 2d7e3ec6b5e3d99de6ce79049d4bef96213109ee.
This broke buildbots [1] and I can also reproduce this locally.
[1] https://lab.llvm.org/buildbot#builders/61/builds/36953
2022-12-13 13:41:28 -05:00
bixia1
2d7e3ec6b5
[mlir][sparse] Make some integration tests run with vectorization.
...
Reviewed By: Peiming
Differential Revision: https://reviews.llvm.org/D139887
2022-12-13 10:02:44 -08:00
bixia1
efaa78cae0
[mlir][sparse] Replace vector.print with printMemref for some tests.
...
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D139489
2022-12-12 16:54:41 -08:00
bixia1
ea4be70cea
[mlir][sparse] Fix problems in creating complex zero for initialization.
...
Reviewed By: aartbik, wrengr
Differential Revision: https://reviews.llvm.org/D139591
2022-12-08 07:49:27 -08:00
wren romano
2af2e4dbb7
[mlir][sparse] Breaking up openSparseTensor to better support non-permutations
...
This commit updates how the `SparseTensorConversion` pass handles `NewOp`. It breaks up the underlying `openSparseTensor` function into two parts (`SparseTensorReader::create` and `SparseTensorReader::readSparseTensor`) so that the pass can inject code for constructing `lvlSizes` between those two parts. Migrating the construction of `lvlSizes` out of the runtime and into the pass is a necessary first step toward fully supporting non-permutations. (The alternative would be for the pass to generate a `FuncOp` for performing the construction and then passing that to the runtime; which doesn't seem to have any benefits over the design of this commit.) And since the pass now generates the code to call these two functions, this change also removes the `Action::kFromFile` value from the enum used by `_mlir_ciface_newSparseTensor`.
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D138363
2022-12-02 11:10:57 -08:00
bixia1
101a0c84f7
[mlir][sparse] Improve concatenate operator rewrite for annotated all dense dimensions results.
...
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D138823
2022-11-29 12:25:52 -08:00
Hanhan Wang
0a1569a400
[mlir][NFC] Remove trailing whitespaces from *.td and *.mlir files.
...
This is generated by running
```
sed --in-place 's/[[:space:]]\+$//' mlir/**/*.td
sed --in-place 's/[[:space:]]\+$//' mlir/**/*.mlir
```
Reviewed By: rriddle, dcaballe
Differential Revision: https://reviews.llvm.org/D138866
2022-11-28 15:26:30 -08:00
bixia1
974b4bf9fd
[mlir][sparse] Add expand_symmetry attribute to the new operator.
...
The attribute tells the operator to handle symmetric structures for 2D tensors.
By default, the operator assumes the input tensor is not symmetric.
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D138230
2022-11-23 16:32:15 -08:00
Peiming Liu
e5e4deca5e
[mlir][sparse] support affine expression on sparse dimensions (codegen implementation)
...
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D138172
2022-11-23 00:04:55 +00:00
bixia1
ee74d371a3
[mlir][sparse] Make three integration tests run with the codegen path.
...
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D138233
2022-11-17 13:22:04 -08:00
bixia1
96b3bf4292
[mlir][sparse] Fix a problem in the new operator rewriter.
...
The getSparseTensorReaderNextX functions should return void.
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D138226
2022-11-17 13:21:10 -08:00
Peiming Liu
8d615a23ef
[mlir][sparse] fix crash on sparse_tensor.foreach operation on tensors with complex<T> elements.
...
Reviewed By: aartbik, bixia
Differential Revision: https://reviews.llvm.org/D138223
2022-11-17 19:36:15 +00:00
bixia1
c374ef2eb7
[mlir][sparse] Extend the operator new rewriter to handle isSymmetric flag.
...
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D138214
2022-11-17 10:48:24 -08:00
bixia1
b5276b50e9
[mlir][sparse] Run an integration test with codegen.
...
Reviewed By: Peiming
Differential Revision: https://reviews.llvm.org/D138213
2022-11-17 09:59:53 -08:00
bixia1
b5d74f0e83
[mlir][sparse] Make integration tests run on both library and codegen pathes.
...
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D138145
2022-11-16 12:01:14 -08:00
bixia1
555e7835f4
[mlir][sparse] Fix rewriting for convert op and concatenate op.
...
Fix a problem in convert op rewriting where it used the original index for
ToIndicesOp.
Extend the concatenate op rewriting to handle dense destination and dynamic
shape destination.
Make the concatenate op integration test run on the codegen path.
Reviewed By: Peiming
Differential Revision: https://reviews.llvm.org/D138057
2022-11-15 14:45:21 -08:00
bixia1
13c41757b1
[mlir][sparse] Only insert non-zero values to the result of the concatenate operation.
...
Modify the integration test to check number_of_entries and use it to limit for
outputing sparse tensor values.
Reviewed By: aartbik, Peiming
Differential Revision: https://reviews.llvm.org/D138046
2022-11-15 11:52:52 -08:00
Peiming Liu
2d9d805c74
[mlir][sparse] fix memory leak in test cases
...
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D137985
2022-11-14 23:03:46 +00:00
bixia1
40edb8b4ab
[mlir][sparse] Make three tests run with the codegen path.
...
Reviewed By: aartbik, Peiming
Differential Revision: https://reviews.llvm.org/D137964
2022-11-14 14:22:25 -08:00