Thanks for the proposal! This definitely opens more opportunities for
performance optimization. Two questions for clarification:
1. IIUC, based on the proposal and discussion, we will have both TE and TIR,
but TE is more like a frontend wrapper of TIR to serve some users that prefer
to write high-level DSL. Then, what will we do with the TE schedule primitives?
Intuitively, we should still keep them; otherwise TE writers will have no way
to schedule their computes, because they know nothing about TIR and blocks.
2. Does this proposal support dynamic shape (i.e., `Any`)? For example, can we
have something like:
```python
@tvm.hybrid.script
def matmul(a: ty.handle, b: ty.handle, c: ty.handle) -> None:
C = tir.match_buffer(c, (1024, 1024), "float32")
A = tir.match_buffer(a, (1024, Any), "float32")
B = tir.match_buffer(b, (Any, 1024), "float32")
reducer = tir.comm_reducer(lambda x, y: x + y, tir.float32(0))
with tir.block([1024, 1024, tir.reduce_axis(0, 1024)], "C") as [vi, vj,
vk]:
reducer.step(C[vi, vj], A[vi, vk] * B[vk, vj])
s = tir.create_schedule(matmul)
update = s.get_block("C")
i, j, k = s.get_axes(update)
i_o, i_i = s.split(i, bn)
j_o, j_i = s.split(j, bn)
k_o, k_i = s.split(k, 4)
```
In this case, the length of `vk` (or `k`) is `Any`. Can we still apply
`split` to it with a fixed factor
---
[Visit
Topic](https://discuss.tvm.apache.org/t/rfc-tensorir-a-schedulable-ir-for-tvm/7872/12)
to respond.
You are receiving this because you enabled mailing list mode.
To unsubscribe from these emails, [click
here](https://discuss.tvm.apache.org/email/unsubscribe/6a5d6e8ca987262e53cb39c47d1a37292fa07c774c177061cc3f1cbfc6d87d01).