[pypy-dev] PGO Optimized Binary
Maciej Fijalkowski
fijall at gmail.com
Thu Nov 10 13:42:37 EST 2016
Hi
8% of that is very good if you can reproduce it across multiple runs
(there is a pretty high variance I would think).
You can also try running with --jit off. This gives you an indication
of the speed of interpreter, which is a part of warmup
On Wed, Nov 9, 2016 at 12:30 AM, Singh, Yashwardhan
<yashwardhan.singh at intel.com> wrote:
> Hi Armin,
>
>
> Thanks for your feedback.
> We ran one of the program suggested by you as an example for evaluation:
> cd rpython/jit/tl
> non-pgo-pypy ../../bin/rpython -O2 --source targettlr
> pgo-pypy ../../bin/rpython -O2 --source targettlr
>
> We got the following results :
> Non-Pgo pypy -
> [Timer] Timings:
> [Timer] annotate --- 7.5 s
> [Timer] rtype_lltype --- 5.8 s
> [Timer] backendopt_lltype --- 3.6 s
> [Timer] stackcheckinsertion_lltype --- 0.1 s
> [Timer] database_c --- 19.6 s
> [Timer] source_c --- 2.6 s
> [Timer] =========================================
> [Timer] Total: --- 39.2 s
>
> PGO-pypy :
> [Timer] Timings:
> [Timer] annotate --- 7.6 s
> [Timer] rtype_lltype --- 5.1 s
> [Timer] backendopt_lltype --- 3.1 s
> [Timer] stackcheckinsertion_lltype --- 0.0 s
> [Timer] database_c --- 18.5 s
> [Timer] source_c --- 2.3 s
> [Timer] =========================================
> [Timer] Total: --- 36.6 s
>
> The delta in performance between these two is about 8%.
>
> We are working on getting the data to identify the % of interpreted code vs the jited code for both the binaries. We are also working on creating a pull request to get a better feedback on the change.
>
> Regards
> Yash
>
> ________________________________________
> From: Armin Rigo [armin.rigo at gmail.com]
> Sent: Wednesday, November 02, 2016 2:18 AM
> To: Singh, Yashwardhan
> Cc: pypy-dev at python.org
> Subject: Re: [pypy-dev] PGO Optimized Binary
>
> Hi,
>
> On 31 October 2016 at 22:28, Singh, Yashwardhan
> <yashwardhan.singh at intel.com> wrote:
>> We applied compiler assisted optimization technique called PGO or Profile Guided Optimization while building PyPy, and found performance got improved by up to 22.4% on the Grand Unified Python Benchmark (GUPB) from “hg clone https://hg.python.org/benchmarks”. The below result table shows majority of 51 micros got performance boost with 8 got performance regression.
>
> The kind of performance improvement you are measuring involves only
> short- or very short-running programs. A few years ago we'd have
> shrugged it off as irrelevant---"please modify the benchmarks so that
> they run for at least 10 seconds, more if they are larger"---because
> the JIT compiler doesn't have a chance to warm up. But we'd also have
> shrugged off your whole attempt---"PGO optimization cannot change
> anything to the speed of JIT-produced machine code".
>
> Nowadays we tend to look more seriously at the cold or warming-up
> performance too, or at least we know that we should look there. There
> are (stalled) plans of setting up a second benchmark suite for PyPy
> which focuses on this.
>
> You can get an estimate of whether you're looking at cold or hot code:
> compare the timings with CPython. Also, you can set the environment
> variable ``PYPYLOG=jit-summary:-`` and look at the first 2 lines to
> see how much time was spent warming up the JIT (or attempting to).
>
> Note that we did enable PGO long ago, with modest benefits. We gave
> up when our JIT compiler became good enough. Maybe now is the time to
> try again (and also, PGO itself might have improved in the meantime).
>
>> We’d like to get some input on how to contribute our optimization recipe to the PyPy dev tree, perhaps by creating an item to the PyPy issue tracker?
>
> The best would be to create a pull request so that we can look at your
> changes more easily.
>
>> In addition, we would also appreciate any other benchmark or real world use based workload as alternatives to evaluate this.
>
> You can take any Python program that runs either very shortly or not
> faster than CPython. For a larger example (with Python 2.7):
>
> cd rpython/jit/tl
> python ../../bin/rpython -O2 --source targettlr # 24 secs
> pypy ../../bin/rpython -O2 --source targettlr # 39 secs
>
>
> A bientôt,
>
> Armin.
> _______________________________________________
> pypy-dev mailing list
> pypy-dev at python.org
> https://mail.python.org/mailman/listinfo/pypy-dev
More information about the pypy-dev
mailing list