Hi~ here are my two questions :)
cc @kparzysz-quic
- > 2\. Make vector length a parameter to `stage.vectorize`.
What is the different between
- `sch[C].vectorize(v, vector_length=32)` and
- `vo, vi = sch[C].split(v, 32)` then `sch[C].vectorize(vi)`
It seems that we could also choose to properly lower the split's predicate
to reach the same goal as proposed below. For example, weapons introduced in
RFC https://github.com/apache/tvm-rfcs/pull/77 may help?
- > 3\. Introduce "predicate" to `BufferLoad` and `BufferStore`.
Our team also get confused on how to represent predicated ld/st, when
several months ago the upstream upgrade `T.load`/`T.store` (who have 1D
predicate field) to `BufferLoad`/`BufferStore`. Now since
`BufferLoad`/`BufferStore` are multi-dimensional, the predicate seems to also
be multi-dimensional predicate?
Another concern is whether embedding predicate into
`BufferLoad`/`BufferStore` increase the complexity (or break) buffer region
related analysis in existing implementations. Could we leverage `T.select(pred,
A[...], undef)` to represent `A[..., pred]`, or just match the predicated
memory access pattern like `if (pred) C[...] = ...`?
Thanks!
--
Reply to this email directly or view it on GitHub:
https://github.com/apache/tvm-rfcs/pull/18#issuecomment-1173003679
You are receiving this because you are subscribed to this thread.
Message ID: <apache/tvm-rfcs/pull/18/[email protected]>