Help in understanding PPCG schedules

126 views
Skip to first unread message

Pratik Fegade

unread,
Nov 28, 2015, 1:47:38 PM11/28/15
to isl Development

HI,

I am Pratik Fegade, a senior student at the Indian Institute of Science and Technology, Bombay, India. We are trying to understand the workings of PPCG, specifically the transformations it does on the input SCoP. In order to do this, I find I need to have a thorough understanding of the following.

1. The polyhedral model, and the concept of tiling
2. PPCG schedule trees

Could someone suggest resources for the same? I have gone through the paper Schedule Trees but I could not get a complete picture of the schedule trees dumped by PPCG. There seem to be some node types and node attributes not described in the paper (I am using PPCG 0.04). Is there a formal way to define the trees? If so, where may I find it?

Regards,
Pratik Fegade.

Sven Verdoolaege

unread,
Nov 29, 2015, 4:02:46 AM11/29/15
to Pratik Fegade, isl Development
On Sat, Nov 28, 2015 at 10:47:37AM -0800, Pratik Fegade wrote:
>
> HI,
>
> I am Pratik Fegade, a senior student at the Indian Institute of Science and
> Technology, Bombay, India. We are trying to understand the workings of
> PPCG, specifically the transformations it does on the input SCoP. In order
> to do this, I find I need to have a thorough understanding of the following.
>
> 1. The polyhedral model, and the concept of tiling

Have you looked at
https://en.wikipedia.org/wiki/Polytope_model
https://en.wikipedia.org/wiki/Loop_tiling
and their references?

> 2. PPCG schedule trees
>
> Could someone suggest resources for the same? I have gone through the paper Schedule
> Trees
> <http://impact.gforge.inria.fr/impact2014/papers/impact2014-verdoolaege.pdf>
> but I could not get a complete picture of the schedule trees dumped by
> PPCG. There seem to be some node types and node attributes not described in
> the paper (I am using PPCG 0.04). Is there a formal way to define the
> trees? If so, where may I find it?

http://dx.doi.org/10.1145/2743016 has a more updated description,
but the most complete and most up-to-date information can be found
in Section 1.5.1 Schedule Trees of the isl manual.

skimo

Pratik Fegade

unread,
Nov 29, 2015, 1:26:47 PM11/29/15
to sven.ver...@gmail.com, isl Development
Hi,

I went through ISL's manual. It is helpful. Thank you.

As for tiling, I have been trying to read Irigoin and Triolet's work
but have some difficulty understanding it, mostly because of the
terminology they use.

Regards,
Pratik Fegade.

Pratik Fegade

unread,
Dec 20, 2015, 1:46:07 AM12/20/15
to sven.ver...@gmail.com, isl Development
Hi,

I have been going through ISL's manual for help on PPCG schedule
trees. Is there any way to tell from the dumped schedule tree that a
particular band can be parallelised? I see that such nodes generally
have the permutable and coincident attributes set but the manual does
not explicitly state that these attributes being set means a node can
be parallelised as this might not b the case. Is there some other way
to determine this?

Regards
Pratik Fegade

Sven Verdoolaege

unread,
Dec 20, 2015, 11:22:20 AM12/20/15
to Pratik Fegade, isl Development
On Sun, Dec 20, 2015 at 12:16:05PM +0530, Pratik Fegade wrote:
> Hi,
>
> I have been going through ISL's manual for help on PPCG schedule
> trees. Is there any way to tell from the dumped schedule tree that a
> particular band can be parallelised? I see that such nodes generally
> have the permutable and coincident attributes set but the manual does
> not explicitly state that these attributes being set means a node can
> be parallelised as this might not b the case.

I assume you are talking about a schedule produced by
isl_schedule_constraints_compute_schedule.
As explained in the manual, the coincident property is set
based on the coincidence constraints.
The user can control which schedule dimensions will be
considered coincident by setting the appropriate coincidence
constraints.

> Is there some other way
> to determine this?

You mean other than setting coincidence constraints?
Sure, you can also evaluate directly whether a schedule node
should be considered parallelizable according to your criteria.

skimo
Reply all
Reply to author
Forward
0 new messages