How does PPCG handle hints about possible run-time conditions ? | To help with Julia JIT

瀏覽次數:15 次
跳到第一則未讀訊息

SANJAY SRIVALLABH SINGAPURAM

未讀,
2017年3月24日 清晨5:52:452017/3/24
收件者:isl-dev...@googlegroups.com
Hello,

I'm interested to optimize the code generated by PPCG when used with Julia+Polly-ACC by letting PPCG know the run-time conditions in which the code would execute e.g. array sizes, loop bounds.

In this regard, I'd like to understand how PPCG can be given hints about the run-time conditions and the strategies followed once this information is available.

Thank You,
Sanjay

Sven Verdoolaege

未讀,
2017年3月24日 清晨7:36:572017/3/24
收件者:SANJAY SRIVALLABH SINGAPURAM、isl-dev...@googlegroups.com
On Fri, Mar 24, 2017 at 09:52:34AM +0000, 'SANJAY SRIVALLABH SINGAPURAM' via isl Development wrote:
> Hello,
>
> I'm interested to optimize the code generated by PPCG when used with
> Julia+Polly-ACC by letting PPCG know the run-time conditions in which the
> code would execute e.g. array sizes, loop bounds.

I don't understand your question. The loop bounds and especially
the array size should be known beforehand (as affine functions
of symbolic constants).
If you are talking about constraints on those symbolic constants,
then you specify them using __builtin_assume calls or
the --ctx command line option.

Note that I can only answer questions about PPCG itself.
If your question is specific to Polly-ACC, then I guess
the polly mailing list would be the place to ask.

skimo

SANJAY SRIVALLABH SINGAPURAM

未讀,
2017年5月19日 凌晨1:49:232017/5/19
收件者:sven.ver...@gmail.com、isl-dev...@googlegroups.com
Hello,

Thank you for your response !

On Fri, Mar 24, 2017 at 5:06 PM Sven Verdoolaege <skim...@kotnet.org> wrote:
On Fri, Mar 24, 2017 at 09:52:34AM +0000, 'SANJAY SRIVALLABH SINGAPURAM' via isl Development wrote:
> Hello,
>
> I'm interested to optimize the code generated by PPCG when used with
> Julia+Polly-ACC by letting PPCG know the run-time conditions in which the
> code would execute e.g. array sizes, loop bounds.

I don't understand your question.  The loop bounds and especially
the array size should be known beforehand (as affine functions
of symbolic constants).
If you are talking about constraints on those symbolic constants,
then you specify them using __builtin_assume calls or
the --ctx command line option.
How is this information processed by ppcg ? Is there a paper documenting the algorithm ? 

Note that I can only answer questions about PPCG itself.
If your question is specific to Polly-ACC, then I guess
the polly mailing list would be the place to ask.

This is question about ppcg. Since Polly-ACC uses ppcg and Julia can now work with Polly-ACC, I wanted to know if it was possible to let pccg know about the parameters since the values of the parameters can be made available to Polly-ACC because Julia is an interpreted language.
skimo

Sven Verdoolaege

未讀,
2017年5月19日 清晨6:21:292017/5/19
收件者:SANJAY SRIVALLABH SINGAPURAM、isl-dev...@googlegroups.com
On Fri, May 19, 2017 at 05:49:12AM +0000, 'SANJAY SRIVALLABH SINGAPURAM' via isl Development wrote:
> On Fri, Mar 24, 2017 at 5:06 PM Sven Verdoolaege <skim...@kotnet.org>
> wrote:
> > On Fri, Mar 24, 2017 at 09:52:34AM +0000, 'SANJAY SRIVALLABH SINGAPURAM'
> > via isl Development wrote:
> > > Hello,
> > >
> > > I'm interested to optimize the code generated by PPCG when used with
> > > Julia+Polly-ACC by letting PPCG know the run-time conditions in which the
> > > code would execute e.g. array sizes, loop bounds.
> >
> > I don't understand your question. The loop bounds and especially
> > the array size should be known beforehand (as affine functions
> > of symbolic constants).
> > If you are talking about constraints on those symbolic constants,
> > then you specify them using __builtin_assume calls or
> > the --ctx command line option.
>
> How is this information processed by ppcg ?

The constraints are simply added to the context.
The context is briefly discussed in section 5.7 Context of
Presburger Formulas and Polyhedral Compilation

> Is there a paper documenting
> the algorithm ?

It's just an intersection.

skimo
回覆所有人
回覆作者
轉寄
0 則新訊息