Skip to content

Commit a12d057

Browse files
authored
[mlir][sparse] update block24 example (#70145)
Removes TODO, shows how to define 8-bit crd (lacking 2-bit for now)
1 parent bbab5e4 commit a12d057

File tree

1 file changed

+4
-16
lines changed

1 file changed

+4
-16
lines changed

mlir/test/Dialect/SparseTensor/roundtrip_encoding.mlir

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -130,19 +130,6 @@ func.func private @sparse_slice(tensor<?x?xf64, #CSR_SLICE>)
130130

131131
// -----
132132

133-
// TODO: It is probably better to use [dense, dense, 2:4] (see NV_24 defined using new syntax
134-
// below) to encode a 2D matrix, but it would require dim2lvl mapping which is not ready yet.
135-
// So we take the simple path for now.
136-
#NV_24= #sparse_tensor.encoding<{
137-
map = (d0, d1) -> (d0 : dense, d1 : block2_4)
138-
}>
139-
140-
// CHECK-LABEL: func private @sparse_2_out_of_4(
141-
// CHECK-SAME: tensor<?x?xf64, #sparse_tensor.encoding<{ map = (d0, d1) -> (d0 : dense, d1 : block2_4) }>>
142-
func.func private @sparse_2_out_of_4(tensor<?x?xf64, #NV_24>)
143-
144-
// -----
145-
146133
#BSR = #sparse_tensor.encoding<{
147134
map = ( i, j ) ->
148135
( i floordiv 2 : dense,
@@ -204,11 +191,12 @@ func.func private @BSR_explicit(%arg0: tensor<?x?xf64, #BSR_explicit>) {
204191
( i : dense,
205192
j floordiv 4 : dense,
206193
j mod 4 : block2_4
207-
)
194+
),
195+
crdWidth = 8 // we would even like just 2-bits
208196
}>
209197

210198
// CHECK-LABEL: func private @NV_24(
211-
// CHECK-SAME: tensor<?x?xf64, #sparse_tensor.encoding<{ map = (d0, d1) -> (d0 : dense, d1 floordiv 4 : dense, d1 mod 4 : block2_4) }>>
199+
// CHECK-SAME: tensor<?x?xf64, #sparse_tensor.encoding<{ map = (d0, d1) -> (d0 : dense, d1 floordiv 4 : dense, d1 mod 4 : block2_4), crdWidth = 8 }>>
212200
func.func private @NV_24(%arg0: tensor<?x?xf64, #NV_24>) {
213201
return
214202
}
@@ -245,4 +233,4 @@ func.func private @NV_24(%arg0: tensor<?x?x?xf64, #NV_24>) {
245233
// CHECK-SAME: tensor<?x?x?xf64, #sparse_tensor.encoding<{ map = (d0, d1, d2) -> (d0 : dense, d2 floordiv 4 : dense, d1 : dense, d2 mod 4 : block2_4) }>>
246234
func.func private @NV_24(%arg0: tensor<?x?x?xf64, #NV_24>) {
247235
return
248-
}
236+
}

0 commit comments

Comments
 (0)