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>

Reply via email to