harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Xiao-Feng Li" <xiaofeng...@gmail.com>
Subject Re: [drlvm][jitrino]A question of pipeline and method filter
Date Wed, 16 Jan 2008 14:46:15 GMT
On Jan 15, 2008 10:37 AM, Simon Chow <simon.harmony@gmail.com> wrote:
>
> On 10 Jan 2008 17:59:47 +0300, Egor Pasko <egor.pasko@gmail.com> wrote:
> >
> > On the 0x3C7 day of Apache Harmony Simon Chow wrote:
> > > On 18 Dec 2007 14:04:17 +0300, Egor Pasko <egor.pasko@gmail.com> wrote:
> > > >
> > > > On the 0x3AF day of Apache Harmony Simon Chow wrote:
> > > > > Is there any analysis tools automatically choosing optimization path
> > for
> > > > my
> > > > > source code.
> > > > > If no,
> > > > > Do you think such a tool can help developers a lot for archiving
> > better
> > > > > performance on Harmony.
> > > > > I am trying to do some research for OPT, expecting for your advice.
> > > > Thanks!
> > > >
> > > > Simon,
> > > >
> > > > I just want to add some of my long thoughts.. :)
> > > >
> > > > JITs aim at solving the problem of optimizing code with more or less
> > > > universal approaches. We have this great tool as compilation pipeline
> > > > management for developers' ability to experiment. JIT is already
> > > > overly complicated with many pipeline phases influencing each other
> > > > sometimes in very unexpected ways :)
> > > >
> > > > I do not believe in just-in-time meta-optimization because even the
> > > > optimization tool (without meta) is already very complicated. However,
> > > > if a user is ready to pay a lot if time to get a real bang in
> > > > performance (of a single method or the whole app), they should
> > > > consider searching in the big space of JIT configurations
> > > > automatically, where some not very intelligent artificial intelligence
> > > > might be promising here.
> > >
> > >
> > > Sorry for a late reply.
> > > Thank you for sharing so much thoughts! :)
> > >
> > > I have rethinked this question recently.
> > > I strongly agree that it hard to write a program with such intelligence.
> > > And I am curious about intelligent artificial intelligence you said :)
> > What
> > > is the method of searching configuration space?
> >
> > that's a big subject of machine learning. There are a bunch of methods
> > with lots of modifications: Support Vector Machine (SVM), genetic
> > algorithms, neural networks, boosting, etc. There is a wikipedia link
> > collecting them:
> >
> > http://en.wikipedia.org/wiki/Machine_learning
> >
> > wanna dive into this nightmare? :)
> >
> > > Despiting the untested passes, Is there any possibility changing the
> > > pipeline configuration (or create a new pipeline) for a particular set
> > of
> > > method which may archive better performance with some optimization pass
> > by
> > > analyzing profiling information?
> >
> > Do you want to implement a function that takes profile as parameter
> > and tells which optpass to use?
>
>
> Yes :)
>
> Currently such tricks in Execution Manager are not supported, you can
> > only set optimization passes based on method names (or parts of method
> > names, for example, we construct different path for "...::<clinit>"
> > methods that run only once")
> >
> > And I doubt one can write a sane function that tells which pass to use
> > based on profile (and maybe bytecode supplemented).
>
>
> Why is it? In my view, Hotspot uses profile to find 'hot section' and direct
> its recompilation at runtime. I think this is similar to 'change pass based
> on profile', isn't it?


It's easy to find hotspots and to recompile them with certain
predefined optimizations, while it's hard to find the best
optimization combinations. It's an NP-hard problem.

Thanks,
xiaofeng

> Thanks!
>
>
>
> So, I probably
> > misunderstood you.
> >
> > > Thanks
> > >
> > > I suggest to apply artificial intelligence here because anyway we
> > > > won't be able to understand what configurations are best using our own
> > > > brains and hence we won't be able to write code for that.
> > > >
> > > > But be prepared to see that:
> > > >
> > > > a) not many of possible JIT pipelines make sense in terms of both
> > > > compile-time and run-time performance plus memory footprint
> > > >
> > > > b) very little number of configurations would work in a stable way
> > > > (because we do not test them, and some optimization passes are
> > > > documented to work only in specific conditions, i.e. other
> > > > optimizations preceded)
> > > >
> > > > What do you think?
> > > >
> > > > > On 17/12/2007, Mikhail Fursov <mike.fursov@gmail.com> wrote:
> > > > > >
> > > > > > On Dec 17, 2007 4:06 PM, Simon Chow <simon.harmony@gmail.com>
> > wrote:
> > > > > >
> > > > > > > Thank you very much!
> > > > > > >
> > > > > > > So users should choose pipeline for methods before execution,
> > isn't
> > > > it?
> > > > > >
> > > > > > Yes.
> > > > > >
> > > > > >
> > > > > > > Then I wants to know how to build a pipeline with the most
> > efficient
> > > > > > > compilation result of a specified method. Does it rely
on the
> > > > > > developer's
> > > > > > > experience?
> > > > > > >
> > > > > > > Yes, it depends on developer's experience and on optimizations
> > you
> > > > > > expect
> > > > > > to work for your method. E.g. if you know that your hot-spot
> > method
> > > > > > benefits
> > > > > > from particular optimization - you just add it to the optimization
> > > > path
> > > > > > and
> > > > > > tune it to do the best job for your method.
> > > > > >
> > > > > > --
> > > > > > Mikhail Fursov
> > > > > >
> > > > >
> > > > >
> > > > >
> > > > > --
> > > > > From : Simon.Chow@Software School of Fudan University
> > > >
> > > > --
> > > > Egor Pasko
> > > >
> > > >
> > >
> > >
> > > --
> > > From : Simon.Chow@Software School of Fudan University
> >
> > --
> > Egor Pasko
> >
> >
>
>
> --
>
> From : Simon.Chow@Software School of Fudan University
>



-- 
http://xiao-feng.blogspot.com

Mime
View raw message