halide / Halide

a language for fast, portable data-parallel computation
https://halide-lang.org
Other
5.82k stars 1.07k forks source link

Use of rfactor in AOT Generators #3099

Open renderist opened 6 years ago

renderist commented 6 years ago

It appears to be the case that you have to schedule rfactor or the split of an RDom Rvar in the generate() section of a Generator. If you try to do it in the schedule section, the definition of the RDom produces RVar names that are opaque to the schedule() section, even if you declare the RDom and RVars in the private area.

I looked around for an example of rfactor being used in AOT Generator style, with separate generate() and schedule() sections, and could not find one.

zvookin commented 6 years ago

The RVar’s in an RDom r are accessed as “r.x”, “r.y”, or indexed on the RDom in a way I don’t immediately recall. (“r.rvar(0)”?) If the RDom is declared at class scope, the same syntax should work in both generate() and schedule().

If this is not working for you, a trivial code example would help diagnose what’s going wrong.

It is also an open question as to whether the separate schedule() method is going to be the favored way to do things. I’m a proponent for it, but it hasn’t gotten good reviews from many Halide users. Hence the disconnect in not having adequate examples.

-Z-

On Wed, Jul 4, 2018 at 4:36 PM renderist notifications@github.com wrote:

It appears to be the case that you have to schedule rfactor or the split of an RDom Rvar in the generate() section of a Generator. If you try to do it in the schedule section, the definition of the RDom produces RVar names that are opaque to the schedule() section, even if you declare the RDom and RVars in the private area.

I looked around for an example of rfactor being used in AOT Generator style, with separate generate() and schedule() sections, and could not find one.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/halide/Halide/issues/3099, or mute the thread https://github.com/notifications/unsubscribe-auth/ABbqFE28KIPTwUv10vJK8AwbtKpl5vdhks5uDVFwgaJpZM4VDFnm .