[Mlir-commits] [mlir] [mlir][sparse] Migrate more tests to use sparse_tensor.print (PR #84833)
llvmlistbot at llvm.org
llvmlistbot at llvm.org
Mon Mar 11 15:26:29 PDT 2024
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-mlir-sparse
Author: Yinying Li (yinying-lisa-li)
<details>
<summary>Changes</summary>
Continuous efforts following #<!-- -->84249.
---
Patch is 112.24 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/84833.diff
19 Files Affected:
- (modified) mlir/test/Integration/Dialect/SparseTensor/CPU/concatenate_dim_0_permute.mlir (+28-50)
- (modified) mlir/test/Integration/Dialect/SparseTensor/CPU/concatenate_dim_1.mlir (+28-30)
- (modified) mlir/test/Integration/Dialect/SparseTensor/CPU/concatenate_dim_1_permute.mlir (+28-44)
- (modified) mlir/test/Integration/Dialect/SparseTensor/CPU/dual_sparse_conv_2d.mlir (+48-51)
- (modified) mlir/test/Integration/Dialect/SparseTensor/CPU/reshape_dot.mlir (+2-2)
- (modified) mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_block3d.mlir (+24-14)
- (modified) mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_cast.mlir (+2-2)
- (modified) mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_cmp.mlir (+30-19)
- (modified) mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_codegen_dim.mlir (+2-2)
- (modified) mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_codegen_foreach.mlir (+9-2)
- (modified) mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_collapse_shape.mlir (+77-51)
- (modified) mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_constant_to_sparse_tensor.mlir (+15-16)
- (modified) mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_conv_1d_nwc_wcf.mlir (+31-22)
- (modified) mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_conv_2d.mlir (+62-63)
- (modified) mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_conv_2d_55.mlir (+2-2)
- (modified) mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_conv_2d_nchw_fchw.mlir (+2-2)
- (modified) mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_conv_2d_nhwc_hwcf.mlir (+89-77)
- (modified) mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_conv_3d.mlir (+173-171)
- (modified) mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_conv_3d_ndhwc_dhwcf.mlir (+125-87)
``````````diff
diff --git a/mlir/test/Integration/Dialect/SparseTensor/CPU/concatenate_dim_0_permute.mlir b/mlir/test/Integration/Dialect/SparseTensor/CPU/concatenate_dim_0_permute.mlir
index 11edd854ec08a5..9c9b0e3330c9cc 100644
--- a/mlir/test/Integration/Dialect/SparseTensor/CPU/concatenate_dim_0_permute.mlir
+++ b/mlir/test/Integration/Dialect/SparseTensor/CPU/concatenate_dim_0_permute.mlir
@@ -10,7 +10,7 @@
// DEFINE: %{compile} = mlir-opt %s --sparsifier="%{sparsifier_opts}"
// DEFINE: %{compile_sve} = mlir-opt %s --sparsifier="%{sparsifier_opts_sve}"
// DEFINE: %{run_libs} = -shared-libs=%mlir_c_runner_utils,%mlir_runner_utils
-// DEFINE: %{run_opts} = -e entry -entry-point-result=void
+// DEFINE: %{run_opts} = -e main -entry-point-result=void
// DEFINE: %{run} = mlir-cpu-runner %{run_opts} %{run_libs}
// DEFINE: %{run_sve} = %mcr_aarch64_cmd --march=aarch64 --mattr="+sve" %{run_opts} %{run_libs}
@@ -99,20 +99,6 @@ module {
return
}
- func.func @dump_mat_perm_9x4(%A: tensor<9x4xf64, #MAT_C_C_P>) {
- %c = sparse_tensor.convert %A : tensor<9x4xf64, #MAT_C_C_P> to tensor<9x4xf64>
- %cu = tensor.cast %c : tensor<9x4xf64> to tensor<*xf64>
- call @printMemrefF64(%cu) : (tensor<*xf64>) -> ()
-
- %n = sparse_tensor.number_of_entries %A : tensor<9x4xf64, #MAT_C_C_P>
- vector.print %n : index
-
- %1 = sparse_tensor.values %A : tensor<9x4xf64, #MAT_C_C_P> to memref<?xf64>
- call @printMemref1dF64(%1) : (memref<?xf64>) -> ()
-
- return
- }
-
func.func @dump_mat_dense_9x4(%A: tensor<9x4xf64>) {
%u = tensor.cast %A : tensor<9x4xf64> to tensor<*xf64>
call @printMemrefF64(%u) : (tensor<*xf64>) -> ()
@@ -120,18 +106,8 @@ module {
return
}
- func.func @dump_mat_annotated_dense_9x4(%A: tensor<9x4xf64, #MAT_D_D>) {
- %n = sparse_tensor.number_of_entries %A : tensor<9x4xf64, #MAT_D_D>
- vector.print %n : index
-
- %1 = sparse_tensor.values %A : tensor<9x4xf64, #MAT_D_D> to memref<?xf64>
- call @printMemref1dF64(%1) : (memref<?xf64>) -> ()
-
- return
- }
-
// Driver method to call and verify kernels.
- func.func @entry() {
+ func.func @main() {
%m42 = arith.constant dense<
[ [ 1.0, 0.0 ],
[ 3.1, 0.0 ],
@@ -163,20 +139,21 @@ module {
%sm34cdp = sparse_tensor.convert %m34 : tensor<3x4xf64> to tensor<3x4xf64, #MAT_C_D_P>
%sm44dcp = sparse_tensor.convert %m44 : tensor<4x4xf64> to tensor<4x4xf64, #MAT_D_C_P>
- // CHECK: {{\[}}[1, 0, 3, 0],
- // CHECK-NEXT: [0, 2, 0, 0],
- // CHECK-NEXT: [1, 0, 1, 1],
- // CHECK-NEXT: [0, 0.5, 0, 0],
- // CHECK-NEXT: [1, 5, 2, 0],
- // CHECK-NEXT: [0, 0, 1.5, 1],
- // CHECK-NEXT: [0, 3.5, 0, 0],
- // CHECK-NEXT: [1, 5, 2, 0],
- // CHECK-NEXT: [1, 0.5, 0, 0]]
- // CHECK-NEXT: 18
- // CHECK: [1, 1, 1, 1, 1, 2, 0.5, 5, 3.5, 5, 0.5, 3, 1, 2, 1.5, 2, 1, 1
+ //
+ // CHECK: ---- Sparse Tensor ----
+ // CHECK-NEXT: nse = 18
+ // CHECK-NEXT: dim = ( 9, 4 )
+ // CHECK-NEXT: lvl = ( 4, 9 )
+ // CHECK-NEXT: pos[0] : ( 0, 4
+ // CHECK-NEXT: crd[0] : ( 0, 1, 2, 3
+ // CHECK-NEXT: pos[1] : ( 0, 5, 11, 16, 18
+ // CHECK-NEXT: crd[1] : ( 0, 2, 4, 7, 8, 1, 3, 4, 6, 7, 8, 0, 2, 4, 5, 7, 2, 5
+ // CHECK-NEXT: values : ( 1, 1, 1, 1, 1, 2, 0.5, 5, 3.5, 5, 0.5, 3, 1, 2, 1.5, 2, 1, 1
+ // CHECK-NEXT: ----
+ //
%4 = call @concat_sparse_sparse_perm(%sm24ccp, %sm34cd, %sm44dc)
: (tensor<2x4xf64, #MAT_C_C_P>, tensor<3x4xf64, #MAT_C_D>, tensor<4x4xf64, #MAT_D_C>) -> tensor<9x4xf64, #MAT_C_C_P>
- call @dump_mat_perm_9x4(%4) : (tensor<9x4xf64, #MAT_C_C_P>) -> ()
+ sparse_tensor.print %4 : tensor<9x4xf64, #MAT_C_C_P>
// CHECK: {{\[}}[1, 0, 3, 0],
// CHECK-NEXT: [0, 2, 0, 0],
@@ -191,20 +168,21 @@ module {
: (tensor<2x4xf64, #MAT_C_C_P>, tensor<3x4xf64, #MAT_C_D_P>, tensor<4x4xf64, #MAT_D_C>) -> tensor<9x4xf64>
call @dump_mat_dense_9x4(%5) : (tensor<9x4xf64>) -> ()
- // CHECK: {{\[}}[1, 0, 3, 0],
- // CHECK-NEXT: [0, 2, 0, 0],
- // CHECK-NEXT: [1, 0, 1, 1],
- // CHECK-NEXT: [0, 0.5, 0, 0],
- // CHECK-NEXT: [1, 5, 2, 0],
- // CHECK-NEXT: [0, 0, 1.5, 1],
- // CHECK-NEXT: [0, 3.5, 0, 0],
- // CHECK-NEXT: [1, 5, 2, 0],
- // CHECK-NEXT: [1, 0.5, 0, 0]]
- // CHECK-NEXT: 18
- // CHECK: [1, 3, 2, 1, 1, 1, 0.5, 1, 5, 2, 1.5, 1, 3.5, 1, 5, 2, 1, 0.5
+ //
+ // CHECK: ---- Sparse Tensor ----
+ // CHECK-NEXT: nse = 18
+ // CHECK-NEXT: dim = ( 9, 4 )
+ // CHECK-NEXT: lvl = ( 9, 4 )
+ // CHECK-NEXT: pos[0] : ( 0, 9
+ // CHECK-NEXT: crd[0] : ( 0, 1, 2, 3, 4, 5, 6, 7, 8
+ // CHECK-NEXT: pos[1] : ( 0, 2, 3, 6, 7, 10, 12, 13, 16, 18
+ // CHECK-NEXT: crd[1] : ( 0, 2, 1, 0, 2, 3, 1, 0, 1, 2, 2, 3, 1, 0, 1, 2, 0, 1
+ // CHECK-NEXT: values : ( 1, 3, 2, 1, 1, 1, 0.5, 1, 5, 2, 1.5, 1, 3.5, 1, 5, 2, 1, 0.5
+ // CHECK-NEXT: ----
+ //
%6 = call @concat_mix_sparse_perm(%m24, %sm34cdp, %sm44dc)
: (tensor<2x4xf64>, tensor<3x4xf64, #MAT_C_D_P>, tensor<4x4xf64, #MAT_D_C>) -> tensor<9x4xf64, #MAT_C_C>
- call @dump_mat_9x4(%6) : (tensor<9x4xf64, #MAT_C_C>) -> ()
+ sparse_tensor.print %6 : tensor<9x4xf64, #MAT_C_C>
// CHECK: {{\[}}[1, 0, 3, 0],
// CHECK-NEXT: [0, 2, 0, 0],
diff --git a/mlir/test/Integration/Dialect/SparseTensor/CPU/concatenate_dim_1.mlir b/mlir/test/Integration/Dialect/SparseTensor/CPU/concatenate_dim_1.mlir
index 48d38257009201..ae067bf18527b7 100644
--- a/mlir/test/Integration/Dialect/SparseTensor/CPU/concatenate_dim_1.mlir
+++ b/mlir/test/Integration/Dialect/SparseTensor/CPU/concatenate_dim_1.mlir
@@ -10,7 +10,7 @@
// DEFINE: %{compile} = mlir-opt %s --sparsifier="%{sparsifier_opts}"
// DEFINE: %{compile_sve} = mlir-opt %s --sparsifier="%{sparsifier_opts_sve}"
// DEFINE: %{run_libs} = -shared-libs=%mlir_c_runner_utils,%mlir_runner_utils
-// DEFINE: %{run_opts} = -e entry -entry-point-result=void
+// DEFINE: %{run_opts} = -e main -entry-point-result=void
// DEFINE: %{run} = mlir-cpu-runner %{run_opts} %{run_libs}
// DEFINE: %{run_sve} = %mcr_aarch64_cmd --march=aarch64 --mattr="+sve" %{run_opts} %{run_libs}
@@ -82,20 +82,6 @@ module {
return %0 : tensor<4x9xf64>
}
- func.func @dump_mat_4x9(%A: tensor<4x9xf64, #MAT_C_C>) {
- %c = sparse_tensor.convert %A : tensor<4x9xf64, #MAT_C_C> to tensor<4x9xf64>
- %cu = tensor.cast %c : tensor<4x9xf64> to tensor<*xf64>
- call @printMemrefF64(%cu) : (tensor<*xf64>) -> ()
-
- %n = sparse_tensor.number_of_entries %A : tensor<4x9xf64, #MAT_C_C>
- vector.print %n : index
-
- %1 = sparse_tensor.values %A : tensor<4x9xf64, #MAT_C_C> to memref<?xf64>
- call @printMemref1dF64(%1) : (memref<?xf64>) -> ()
-
- return
- }
-
func.func @dump_mat_dense_4x9(%A: tensor<4x9xf64>) {
%1 = tensor.cast %A : tensor<4x9xf64> to tensor<*xf64>
call @printMemrefF64(%1) : (tensor<*xf64>) -> ()
@@ -104,7 +90,7 @@ module {
}
// Driver method to call and verify kernels.
- func.func @entry() {
+ func.func @main() {
%m42 = arith.constant dense<
[ [ 1.0, 0.0 ],
[ 3.1, 0.0 ],
@@ -125,15 +111,21 @@ module {
%sm43cd = sparse_tensor.convert %m43 : tensor<4x3xf64> to tensor<4x3xf64, #MAT_C_D>
%sm44dc = sparse_tensor.convert %m44 : tensor<4x4xf64> to tensor<4x4xf64, #MAT_D_C>
- // CHECK: {{\[}}[1, 0, 1, 0, 1, 0, 0, 1.5, 1],
- // CHECK-NEXT: [3.1, 0, 1, 0, 0.5, 0, 3.5, 0, 0],
- // CHECK-NEXT: [0, 2, 0, 0, 1, 1, 5, 2, 0],
- // CHECK-NEXT: [0, 0, 5, 2, 0, 1, 0.5, 0, 0]]
- // CHECK-NEXT: 18
- // CHECK: [1, 1, 1, 1.5, 1, 3.1, 1, 0.5, 3.5, 2, 1, 1, 5, 2, 5, 2, 1, 0.5
+ //
+ // CHECK: ---- Sparse Tensor ----
+ // CHECK-NEXT: nse = 18
+ // CHECK-NEXT: dim = ( 4, 9 )
+ // CHECK-NEXT: lvl = ( 4, 9 )
+ // CHECK-NEXT: pos[0] : ( 0, 4
+ // CHECK-NEXT: crd[0] : ( 0, 1, 2, 3
+ // CHECK-NEXT: pos[1] : ( 0, 5, 9, 14, 18
+ // CHECK-NEXT: crd[1] : ( 0, 2, 4, 7, 8, 0, 2, 4, 6, 1, 4, 5, 6, 7, 2, 3, 5, 6
+ // CHECK-NEXT: values : ( 1, 1, 1, 1.5, 1, 3.1, 1, 0.5, 3.5, 2, 1, 1, 5, 2, 5, 2, 1, 0.5
+ // CHECK-NEXT: ----
+ //
%8 = call @concat_sparse_sparse_dim1(%sm42cc, %sm43cd, %sm44dc)
: (tensor<4x2xf64, #MAT_C_C>, tensor<4x3xf64, #MAT_C_D>, tensor<4x4xf64, #MAT_D_C>) -> tensor<4x9xf64, #MAT_C_C>
- call @dump_mat_4x9(%8) : (tensor<4x9xf64, #MAT_C_C>) -> ()
+ sparse_tensor.print %8 : tensor<4x9xf64, #MAT_C_C>
// CHECK: {{\[}}[1, 0, 1, 0, 1, 0, 0, 1.5, 1],
// CHECK-NEXT: [3.1, 0, 1, 0, 0.5, 0, 3.5, 0, 0],
@@ -143,15 +135,21 @@ module {
: (tensor<4x2xf64, #MAT_C_C>, tensor<4x3xf64, #MAT_C_D>, tensor<4x4xf64, #MAT_D_C>) -> tensor<4x9xf64>
call @dump_mat_dense_4x9(%9) : (tensor<4x9xf64>) -> ()
- // CHECK: {{\[}}[1, 0, 1, 0, 1, 0, 0, 1.5, 1],
- // CHECK-NEXT: [3.1, 0, 1, 0, 0.5, 0, 3.5, 0, 0],
- // CHECK-NEXT: [0, 2, 0, 0, 1, 1, 5, 2, 0],
- // CHECK-NEXT: [0, 0, 5, 2, 0, 1, 0.5, 0, 0]]
- // CHECK-NEXT: 18
- // CHECK: [1, 1, 1, 1.5, 1, 3.1, 1, 0.5, 3.5, 2, 1, 1, 5, 2, 5, 2, 1, 0.5
+ //
+ // CHECK: ---- Sparse Tensor ----
+ // CHECK-NEXT: nse = 18
+ // CHECK-NEXT: dim = ( 4, 9 )
+ // CHECK-NEXT: lvl = ( 4, 9 )
+ // CHECK-NEXT: pos[0] : ( 0, 4
+ // CHECK-NEXT: crd[0] : ( 0, 1, 2, 3
+ // CHECK-NEXT: pos[1] : ( 0, 5, 9, 14, 18
+ // CHECK-NEXT: crd[1] : ( 0, 2, 4, 7, 8, 0, 2, 4, 6, 1, 4, 5, 6, 7, 2, 3, 5, 6
+ // CHECK-NEXT: values : ( 1, 1, 1, 1.5, 1, 3.1, 1, 0.5, 3.5, 2, 1, 1, 5, 2, 5, 2, 1, 0.5
+ // CHECK-NEXT: ----
+ //
%10 = call @concat_mix_sparse_dim1(%m42, %sm43cd, %sm44dc)
: (tensor<4x2xf64>, tensor<4x3xf64, #MAT_C_D>, tensor<4x4xf64, #MAT_D_C>) -> tensor<4x9xf64, #MAT_C_C>
- call @dump_mat_4x9(%10) : (tensor<4x9xf64, #MAT_C_C>) -> ()
+ sparse_tensor.print %10 : tensor<4x9xf64, #MAT_C_C>
// CHECK: {{\[}}[1, 0, 1, 0, 1, 0, 0, 1.5, 1],
// CHECK-NEXT: [3.1, 0, 1, 0, 0.5, 0, 3.5, 0, 0],
diff --git a/mlir/test/Integration/Dialect/SparseTensor/CPU/concatenate_dim_1_permute.mlir b/mlir/test/Integration/Dialect/SparseTensor/CPU/concatenate_dim_1_permute.mlir
index dcdaa072c02fd8..ce746f27c4d881 100644
--- a/mlir/test/Integration/Dialect/SparseTensor/CPU/concatenate_dim_1_permute.mlir
+++ b/mlir/test/Integration/Dialect/SparseTensor/CPU/concatenate_dim_1_permute.mlir
@@ -10,7 +10,7 @@
// DEFINE: %{compile} = mlir-opt %s --sparsifier="%{sparsifier_opts}"
// DEFINE: %{compile_sve} = mlir-opt %s --sparsifier="%{sparsifier_opts_sve}"
// DEFINE: %{run_libs} = -shared-libs=%mlir_c_runner_utils,%mlir_runner_utils
-// DEFINE: %{run_opts} = -e entry -entry-point-result=void
+// DEFINE: %{run_opts} = -e main -entry-point-result=void
// DEFINE: %{run} = mlir-cpu-runner %{run_opts} %{run_libs}
// DEFINE: %{run_sve} = %mcr_aarch64_cmd --march=aarch64 --mattr="+sve" %{run_opts} %{run_libs}
@@ -85,34 +85,6 @@ module {
return %0 : tensor<4x9xf64>
}
- func.func @dump_mat_4x9(%A: tensor<4x9xf64, #MAT_C_C>) {
- %c = sparse_tensor.convert %A : tensor<4x9xf64, #MAT_C_C> to tensor<4x9xf64>
- %cu = tensor.cast %c : tensor<4x9xf64> to tensor<*xf64>
- call @printMemrefF64(%cu) : (tensor<*xf64>) -> ()
-
- %n = sparse_tensor.number_of_entries %A : tensor<4x9xf64, #MAT_C_C>
- vector.print %n : index
-
- %1 = sparse_tensor.values %A : tensor<4x9xf64, #MAT_C_C> to memref<?xf64>
- call @printMemref1dF64(%1) : (memref<?xf64>) -> ()
-
- return
- }
-
- func.func @dump_mat_perm_4x9(%A: tensor<4x9xf64, #MAT_C_C_P>) {
- %c = sparse_tensor.convert %A : tensor<4x9xf64, #MAT_C_C_P> to tensor<4x9xf64>
- %cu = tensor.cast %c : tensor<4x9xf64> to tensor<*xf64>
- call @printMemrefF64(%cu) : (tensor<*xf64>) -> ()
-
- %n = sparse_tensor.number_of_entries %A : tensor<4x9xf64, #MAT_C_C_P>
- vector.print %n : index
-
- %1 = sparse_tensor.values %A : tensor<4x9xf64, #MAT_C_C_P> to memref<?xf64>
- call @printMemref1dF64(%1) : (memref<?xf64>) -> ()
-
- return
- }
-
func.func @dump_mat_dense_4x9(%A: tensor<4x9xf64>) {
%1 = tensor.cast %A : tensor<4x9xf64> to tensor<*xf64>
call @printMemrefF64(%1) : (tensor<*xf64>) -> ()
@@ -121,7 +93,7 @@ module {
}
// Driver method to call and verify kernels.
- func.func @entry() {
+ func.func @main() {
%m42 = arith.constant dense<
[ [ 1.0, 0.0 ],
[ 3.1, 0.0 ],
@@ -153,15 +125,21 @@ module {
%sm43cdp = sparse_tensor.convert %m43 : tensor<4x3xf64> to tensor<4x3xf64, #MAT_C_D_P>
%sm44dcp = sparse_tensor.convert %m44 : tensor<4x4xf64> to tensor<4x4xf64, #MAT_D_C_P>
- // CHECK: {{\[}}[1, 0, 1, 0, 1, 0, 0, 1.5, 1],
- // CHECK-NEXT: [3.1, 0, 1, 0, 0.5, 0, 3.5, 0, 0],
- // CHECK-NEXT: [0, 2, 0, 0, 1, 1, 5, 2, 0],
- // CHECK-NEXT: [0, 0, 5, 2, 0, 1, 0.5, 0, 0]]
- // CHECK-NEXT: 18
- // CHECK: [1, 3.1, 2, 1, 1, 5, 2, 1, 0.5, 1, 1, 1, 3.5, 5, 0.5, 1.5, 2, 1
+ //
+ // CHECK: ---- Sparse Tensor ----
+ // CHECK-NEXT: nse = 18
+ // CHECK-NEXT: dim = ( 4, 9 )
+ // CHECK-NEXT: lvl = ( 9, 4 )
+ // CHECK-NEXT: pos[0] : ( 0, 9
+ // CHECK-NEXT: crd[0] : ( 0, 1, 2, 3, 4, 5, 6, 7, 8
+ // CHECK-NEXT: pos[1] : ( 0, 2, 3, 6, 7, 10, 12, 15, 17, 18
+ // CHECK-NEXT: crd[1] : ( 0, 1, 2, 0, 1, 3, 3, 0, 1, 2, 2, 3, 1, 2, 3, 0, 2, 0
+ // CHECK-NEXT: values : ( 1, 3.1, 2, 1, 1, 5, 2, 1, 0.5, 1, 1, 1, 3.5, 5, 0.5, 1.5, 2, 1
+ // CHECK-NEXT: ----
+ //
%12 = call @concat_sparse_sparse_perm_dim1(%sm42ccp, %sm43cd, %sm44dc)
: (tensor<4x2xf64, #MAT_C_C_P>, tensor<4x3xf64, #MAT_C_D>, tensor<4x4xf64, #MAT_D_C>) -> tensor<4x9xf64, #MAT_C_C_P>
- call @dump_mat_perm_4x9(%12) : (tensor<4x9xf64, #MAT_C_C_P>) -> ()
+ sparse_tensor.print %12 : tensor<4x9xf64, #MAT_C_C_P>
// CHECK: {{\[}}[1, 0, 1, 0, 1, 0, 0, 1.5, 1],
// CHECK-NEXT: [3.1, 0, 1, 0, 0.5, 0, 3.5, 0, 0],
@@ -171,15 +149,21 @@ module {
: (tensor<4x2xf64, #MAT_C_C_P>, tensor<4x3xf64, #MAT_C_D_P>, tensor<4x4xf64, #MAT_D_C>) -> tensor<4x9xf64>
call @dump_mat_dense_4x9(%13) : (tensor<4x9xf64>) -> ()
- // CHECK: {{\[}}[1, 0, 1, 0, 1, 0, 0, 1.5, 1],
- // CHECK-NEXT: [3.1, 0, 1, 0, 0.5, 0, 3.5, 0, 0],
- // CHECK-NEXT: [0, 2, 0, 0, 1, 1, 5, 2, 0],
- // CHECK-NEXT: [0, 0, 5, 2, 0, 1, 0.5, 0, 0]]
- // CHECK-NEXT: 18
- // CHECK: [1, 1, 1, 1.5, 1, 3.1, 1, 0.5, 3.5, 2, 1, 1, 5, 2, 5, 2, 1, 0.5
+ //
+ // CHECK: ---- Sparse Tensor ----
+ // CHECK-NEXT: nse = 18
+ // CHECK-NEXT: dim = ( 4, 9 )
+ // CHECK-NEXT: lvl = ( 4, 9 )
+ // CHECK-NEXT: pos[0] : ( 0, 4
+ // CHECK-NEXT: crd[0] : ( 0, 1, 2, 3
+ // CHECK-NEXT: pos[1] : ( 0, 5, 9, 14, 18
+ // CHECK-NEXT: crd[1] : ( 0, 2, 4, 7, 8, 0, 2, 4, 6, 1, 4, 5, 6, 7, 2, 3, 5, 6
+ // CHECK-NEXT: values : ( 1, 1, 1, 1.5, 1, 3.1, 1, 0.5, 3.5, 2, 1, 1, 5, 2, 5, 2, 1, 0.5
+ // CHECK-NEXT: ----
+ //
%14 = call @concat_mix_sparse_perm_dim1(%m42, %sm43cdp, %sm44dc)
: (tensor<4x2xf64>, tensor<4x3xf64, #MAT_C_D_P>, tensor<4x4xf64, #MAT_D_C>) -> tensor<4x9xf64, #MAT_C_C>
- call @dump_mat_4x9(%14) : (tensor<4x9xf64, #MAT_C_C>) -> ()
+ sparse_tensor.print %14 : tensor<4x9xf64, #MAT_C_C>
// CHECK: {{\[}}[1, 0, 1, 0, 1, 0, 0, 1.5, 1],
// CHECK-NEXT: [3.1, 0, 1, 0, 0.5, 0, 3.5, 0, 0],
diff --git a/mlir/test/Integration/Dialect/SparseTensor/CPU/dual_sparse_conv_2d.mlir b/mlir/test/Integration/Dialect/SparseTensor/CPU/dual_sparse_conv_2d.mlir
index 6c35e2b51ed8f4..350b5b41dafc00 100644
--- a/mlir/test/Integration/Dialect/SparseTensor/CPU/dual_sparse_conv_2d.mlir
+++ b/mlir/test/Integration/Dialect/SparseTensor/CPU/dual_sparse_conv_2d.mlir
@@ -10,7 +10,7 @@
// DEFINE: %{compile} = mlir-opt %s --sparsifier="%{sparsifier_opts}"
// DEFINE: %{compile_sve} = mlir-opt %s --sparsifier="%{sparsifier_opts_sve}"
// DEFINE: %{run_libs} = -shared-libs=%mlir_c_runner_utils,%mlir_runner_utils
-// DEFINE: %{run_opts} = -e entry -entry-point-result=void
+// DEFINE: %{run_opts} = -e main -entry-point-result=void
// DEFINE: %{run} = mlir-cpu-runner %{run_opts} %{run_libs}
// DEFINE: %{run_sve} = %mcr_aarch64_cmd --march=aarch64 --mattr="+sve" %{run_opts} %{run_libs}
//
@@ -85,7 +85,7 @@ module {
return %0 : tensor<6x6xi32, #CSC>
}
- func.func @entry() {
+ func.func @main() {
%c0 = arith.constant 0 : index
%i0 = arith.constant 0 : i32
@@ -141,7 +141,6 @@ module {
: (tensor<8x8xi32, #CSC>,
tensor<3x3xi32, #CSC>) -> tensor<6x6xi32, #CSC>
-
// Verify the output.
//
// CHECK: ( ( 0, 0, -1, -6, -1, 6 ),
@@ -156,64 +155,62 @@ module {
vector.print %v : vector<6x6xi32>
//
- // Should be the same as dense output
- // CHECK: ( ( 0, 0, -1, -6, -1, 6 ),
- // CHECK-SAME: ( -1, 0, 1, 0, 1, 0 ),
- // CHECK-SAME: ( 0, -1, 1, 0, 0, 0 ),
- // CHECK-SAME: ( -1, 0, 0, 0, 0, 0 ),
- // CHECK-SAME: ( 0, 0, 3, 6, -3, -6 ),
- // CHECK-SAME: ( 2, -1, 3, 0, -3, 0 ) )
+ // Should be the same as dense output.
//
- %all_sparse_DCSR = sparse_tensor.convert %2
- : tensor<6x6xi32, #DCSR> to tensor<6x6xi32>
- %v2 = vector.transfer_read %all_sparse_DCSR[%c0, %c0], %i0
- : tensor<6x6xi32>, vector<6x6xi32>
- vector.print %v2 : vector<6x6xi32>
+ // CHECK: ---- Sparse Tensor ----
+ // CHECK-NEXT: nse = 36
+ // CHECK-NEXT: dim = ( 6, 6 )
+ // CHECK-NEXT: lvl = ( 6, 6 )
+ // CHECK-NEXT: pos[0] : ( 0, 6
+ // CHECK-NEXT: crd[0] : ( 0, 1, 2, 3, 4, 5
+ // CHECK-NEXT: pos[1] : ( 0, 6, 12, 18, 24, 30, 36
+ // CHECK-NEXT: crd[1] : ( 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5
+ // CHECK-NEXT: values : ( 0, 0, -1, -6, -1, 6, -1, 0, 1, 0, 1, 0, 0, -1, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 3, 6, -3, -6, 2, -1, 3, 0, -3, 0
+ // CHECK-NEXT: ----
+ //
+ sparse_tensor.print %2 : tensor<6x6xi32, #DCSR>
//
- // Should be the same as dense output
- // CHECK: ( ( 0, 0, -1, -6, -1, 6 ),
- // CHECK-SAME: ( -1, 0, 1, 0, 1, 0 ),
- // CHECK-SAME: ( 0, -1, 1, 0, 0, 0 ),
- // CHECK-SAME: ( -1, 0, 0, 0, 0, 0 ),
- // CHECK-SAME: ( 0, 0, 3, 6, -3, -6 ),
- // CHECK-SAME: ( 2, -1, 3, 0, -3, 0 ) )
+ // Should be the same as dense output.
//
- %all_sparse_CD = sparse_tensor.convert %4
- : tensor<6x6xi32, #CDR> to tensor<6x6xi32>
- %v4 = vector.transfer_read %all_sparse_CD[%c0, %c0], %i0
- : tensor<6x6xi32>, vector<6x6xi32>
- vector.print %v4 : vector<6x6xi32>
+ // CHECK: ---- Sparse Tensor ----
+ // CHECK-NEXT: nse = 36
+ // CHECK-NEXT: dim = ( 6, 6 )
+ // CHECK-NEXT: lvl = ( 6, 6 )
+ // CHECK-NEXT: pos[1] : ( 0, 6, 12, 18, 24, 30, 36
+ // CHECK-NEXT: crd[1] : ( 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5
+ // CHECK-NEXT: values : ( 0, 0, -1, -6, -1, 6, -1, 0, 1, 0, 1, 0, 0, -1, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 3, 6, -3, -6, 2, -1, 3, 0, -3, 0
+ // CHECK-NEXT: ----
+ //
+ sparse_tensor.print %3 : tensor<6x6xi32, #CSR>
//
- // Should be the same as dense output
- // CHECK: ( ( 0, 0, -1, -6, -1, 6 ),
- // CHECK-SAME: ( -1, 0, 1, 0, 1, 0 ),
- // CHECK-SAME: ( 0, -1, 1, 0, 0, 0 ),
- // CHECK-SAME: ( -1, 0, 0, 0, 0, 0 ),
- // CHECK-SAME: ( 0, 0, 3, 6, -3, -6 ),
- // CHECK-SAME: ( 2, -1, 3, 0, -3, 0 ) )
+ // Should be the same as dense output.
//
- %all_sparse_CSR = sparse_tensor.convert %3
- : tensor<6x6xi32, #CSR> to tensor<6x6xi32>
- %v3 = vector.transfer_read %all_sparse_CSR[%c0, %c0], %i0
- : tensor<6x6xi32>, vector<6x6xi32>
- vector.print %v3 : vector<6x6xi32>
+ // CHECK: ...
[truncated]
``````````
</details>
https://github.com/llvm/llvm-project/pull/84833
More information about the Mlir-commits
mailing list