> I’m still stuck on reverse_compute_at which seems like a long name, and is 
> still a bit too magical for me to understand

Yeah I once had some discussion with @tqchen and @spectrometerHBH that 
reverse_compute_at is too long and tedious, and I agree it will be great to 
find some better names (we are always bad at it admittedly)...

Perhaps @spectrometerHBH could give a specific example of using 
`reverse_compute_at` to avoid duplicate splitting?

> vmap lets you do something then “zoom” into the area, forget entirely about 
> the outer dimension, and focus on that

Yeah `vmap` is a powerful tool - it sounds more like "batching" (either static 
or dynamic), but its functionality can certainly go beyond that by being 
applied multiple times.

One problem of `vmap` if we want to introduce to TensorIR is the semantics: do 
we consider it as adding a data parallel loop on top of the producer block of 
each output buffer? I believe @tqchen has more thoughts on this.

> write a separately scoped bit of code that doesn’t even know about the outer 
> construction at all

The idea sounds pretty much like our "block isolation" construct. A "block" in 
the TensorIR means doing isolated computation without having to know the outer 
scope.

The difference is that the `with` scope you mentioned does not effectively 
change the IR, hence it is more like syntactic sugar to hint the schedule class 
that some primitives should operative locally, while the `Block` in TensorIR is 
an IR construct that really enforces some restrictions.

CC @Hzfengsy @spectrometerHBH @tqchen would love to hear your opinions





---
[Visit 
Topic](https://discuss.tvm.apache.org/t/rfc-tensorir-a-schedulable-ir-for-tvm/7872/47)
 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/448533130f112297da3575711cd06f390c7c5424baca65748389314641302c96).

Reply via email to