Hi @Lunderberg , thanks for your suggestions. I think one point I need to emphasize is that the three constructs **Axes**, **Sparse Buffers**, **Sparse Iterations** are new data structures and do not change existing `block`/`buffer` data structures.
The expressions written under the body of **Sparse Iterations** have different semantics to expressions under **blocks**, which works on coordinate space instead of position space, see section 3.3 in [our paper](https://dl.acm.org/doi/pdf/10.1145/3582016.3582047), so we don't need to think about their physical layout in the view of TensorIR blocks/buffers, the compiler passes would transition the semantics. One design principle of SparseTIR is that we progressively lower the high-level IR, and transform SparseTIR data structures to TensorIR data structures: in `lower_sparse_iter` we convert **Sparse Iterations** to loops/blocks, and in `lower_sparse_buffer` we convert **Sparse Buffers** to buffers, and we don't want to deal with the case that **Axes** are used in blocks, which will change the existing infrastructure. -- Reply to this email directly or view it on GitHub: https://github.com/apache/tvm-rfcs/pull/100#issuecomment-1500595981 You are receiving this because you are subscribed to this thread. Message ID: <apache/tvm-rfcs/pull/100/c1500595...@github.com>