public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* Polyhedron test: gas_dyn run-time performance regression compared  with yesterday
@ 2007-09-11 13:16 Tobias Burnus
  0 siblings, 0 replies; 4+ messages in thread
From: Tobias Burnus @ 2007-09-11 13:16 UTC (permalink / raw)
  To: GCC

This is using the Polyhedron Fortran test.
http://www.polyhedron.co.uk/MFL6VW74649

Using several options, the gas_dyn test got much slower; however, with
some options, the performance remained roughly the same.
In terms of the geometric mean, it is a slowdown of around 1%.
The run time of the other programs only changed slightly (up/down/const).


Result from http://www.suse.de/~gcctest/c++bench/polyhedron/
-ffast-math -funroll-loops -O3 -ftree-vectorize -march= ??? (opteron I
think).
14.59s -> 21.06s (44% slower)


Result on for my AMD Athlon64 4800+,
http://physik.fu-berlin.de/~tburnus/gcc-trunk/benchmark/
Yesterday: 2007-09-10-r128322
Today: 2007-09-11-r128363

gfortran -march=opteron -ffast-math -funroll-loops -ftree-loop-linear
-ftree-vectorize -msse3 -O3
11.55s -> 15.95s (40% slower) [geo.mean: 24.34 -> 24.67]

gfortran -march=opteron -ffast-math -funroll-loops -ftree-vectorize
-ftree-loop-linear -msse3 -fvect-cost-model
Unchanged: 11.57s -> 11.54s [geo.mean: 24.27->24.29]

gfortran -fprofile-use -march=opteron -ffast-math -funroll-loops
-ftree-loop-linear -ftree-vectorize -O3
Unchanged: 11.56s -> 11.17s [geo.mean: 23.78s -> 23.90s]

gfortran -m32 -march=opteron -ffast-math -funroll-loops
-ftree-loop-linear -ftree-vectorize -O3
13.50s -> 24.11s (78% slower) [geo.mean: 27.30->27.48]

gfortran -m32 -march=opteron -ffast-math -funroll-loops
-ftree-loop-linear -ftree-vectorize -mfpmath=sse -msse3 -O3
13.29 -> 18.98 (43% slower) [geo.mean: 25.76s->26.25s]

Tobias

^ permalink raw reply	[flat|nested] 4+ messages in thread

* RE: Polyhedron test: gas_dyn run-time performance regression  compared with yesterday
  2007-09-11 15:57 ` Uros Bizjak
  2007-09-11 16:15   ` Jagasia, Harsha
@ 2007-09-11 17:43   ` Jagasia, Harsha
  1 sibling, 0 replies; 4+ messages in thread
From: Jagasia, Harsha @ 2007-09-11 17:43 UTC (permalink / raw)
  To: Uros Bizjak, GCC Development; +Cc: Tobias Burnus, Sjodin, Jan

Hello!
>
>> This is using the Polyhedron Fortran test.
>> http://www.polyhedron.co.uk/MFL6VW74649
>
>> Using several options, the gas_dyn test got much slower; however,
with
>> some options, the performance remained roughly the same.
>> In terms of the geometric mean, it is a slowdown of around 1%.
>> The run time of the other programs only changed slightly
(up/down/const).
>
>
>> Result from http://www.suse.de/~gcctest/c++bench/polyhedron/
>> -ffast-math -funroll-loops -O3 -ftree-vectorize -march= ??? (opteron
I
>> think).
>> 14.59s -> 21.06s (44% slower)
>
>
>> Result on for my AMD Athlon64 4800+,
>> http://physik.fu-berlin.de/~tburnus/gcc-trunk/benchmark/
>> Yesterday: 2007-09-10-r128322
>> Today: 2007-09-11-r128363
>
>The problem was introduced by r128353 [1]:

Sorry, this is fixed by Ira's patch at
http://gcc.gnu.org/ml/gcc-patches/2007-09/msg00966.html

The new times are:

NV      V-no-cm    V-cm
15.85   11.02       11.14

There is a small regression introduced by the cost model now. This
should get fixed as we tune the costs some more in stage 3.

Thanks,
Harsha


^ permalink raw reply	[flat|nested] 4+ messages in thread

* RE: Polyhedron test: gas_dyn run-time performance regression  compared with yesterday
  2007-09-11 15:57 ` Uros Bizjak
@ 2007-09-11 16:15   ` Jagasia, Harsha
  2007-09-11 17:43   ` Jagasia, Harsha
  1 sibling, 0 replies; 4+ messages in thread
From: Jagasia, Harsha @ 2007-09-11 16:15 UTC (permalink / raw)
  To: Uros Bizjak, GCC Development; +Cc: Tobias Burnus, Sjodin, Jan

>> Result from http://www.suse.de/~gcctest/c++bench/polyhedron/
>> -ffast-math -funroll-loops -O3 -ftree-vectorize -march= ??? (opteron
I
>> think).
>> 14.59s -> 21.06s (44% slower)
>

I will look into it right now, but at first glance it does not look like
this benchmark is built with the cost model enabled.


Thanks,

>
>> Result on for my AMD Athlon64 4800+,
>> http://physik.fu-berlin.de/~tburnus/gcc-trunk/benchmark/
>> Yesterday: 2007-09-10-r128322
>> Today: 2007-09-11-r128363
>
>The problem was introduced by r128353 [1]:
>
>2007-09-10  Harsha Jagasia <harsha.jagasia@amd.com>
>            Jan Sjodin <jan.sjodin@amd.com>
>
>        * tree-vect-analyze.c (vect_analyze_operations): Change
>        comparison of loop iterations with threshold to less than
>        or equal to instead of less than. Reduce
>        min_scalar_loop_bound by one.
>        * tree-vect-transform.c (vect_estimate_min_profitable_iters):
>        Change prologue and epilogue iterations estimate to vf/2,
>        when unknown at compile-time. Change versioning guard
>        cost to taken_branch_cost. If peeling for alignment is
>        unknown at compile-time, change peel guard costs to one
>        taken branch and one not-taken branch per peeled loop.
>        If peeling for alignment is known but number of scalar loop
>        iterations is unknown at compile-time, change peel guard
>        costs to one taken branch per peeled loop. Change the cost
>        model equation to consider vector iterations as the loop
>        iterations less the prologue and epilogue iterations.
>        Change outside vector cost check to less than or equal to
>        zero instead of equal to zero.
>        (vect_do_peeling_for_loop_bound): Reduce
>        min_scalar_loop_bound by one.
>        * tree-vectorizer.h: Add TARG_COND_TAKEN_BRANCH_COST and
>        TARG_COND_NOT_TAKEN_BRANCH_COST.
>        ...
>
>[1]: http://gcc.gnu.org/ml/gcc-cvs/2007-09/msg00347.html
>
>Uros.
>



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Polyhedron test: gas_dyn run-time performance regression compared with yesterday
       [not found] <5787cf470709110851xf21ab26y36761571b4f9686e@mail.gmail.com>
@ 2007-09-11 15:57 ` Uros Bizjak
  2007-09-11 16:15   ` Jagasia, Harsha
  2007-09-11 17:43   ` Jagasia, Harsha
  0 siblings, 2 replies; 4+ messages in thread
From: Uros Bizjak @ 2007-09-11 15:57 UTC (permalink / raw)
  To: GCC Development; +Cc: Tobias Burnus, Jagasia, Harsha, Jan Sjodin

Hello!

> This is using the Polyhedron Fortran test.
> http://www.polyhedron.co.uk/MFL6VW74649

> Using several options, the gas_dyn test got much slower; however, with
> some options, the performance remained roughly the same.
> In terms of the geometric mean, it is a slowdown of around 1%.
> The run time of the other programs only changed slightly (up/down/const).


> Result from http://www.suse.de/~gcctest/c++bench/polyhedron/
> -ffast-math -funroll-loops -O3 -ftree-vectorize -march= ??? (opteron I
> think).
> 14.59s -> 21.06s (44% slower)


> Result on for my AMD Athlon64 4800+,
> http://physik.fu-berlin.de/~tburnus/gcc-trunk/benchmark/
> Yesterday: 2007-09-10-r128322
> Today: 2007-09-11-r128363

The problem was introduced by r128353 [1]:

2007-09-10  Harsha Jagasia <harsha.jagasia@amd.com>
            Jan Sjodin <jan.sjodin@amd.com>

        * tree-vect-analyze.c (vect_analyze_operations): Change
        comparison of loop iterations with threshold to less than
        or equal to instead of less than. Reduce
        min_scalar_loop_bound by one.
        * tree-vect-transform.c (vect_estimate_min_profitable_iters):
        Change prologue and epilogue iterations estimate to vf/2,
        when unknown at compile-time. Change versioning guard
        cost to taken_branch_cost. If peeling for alignment is
        unknown at compile-time, change peel guard costs to one
        taken branch and one not-taken branch per peeled loop.
        If peeling for alignment is known but number of scalar loop
        iterations is unknown at compile-time, change peel guard
        costs to one taken branch per peeled loop. Change the cost
        model equation to consider vector iterations as the loop
        iterations less the prologue and epilogue iterations.
        Change outside vector cost check to less than or equal to
        zero instead of equal to zero.
        (vect_do_peeling_for_loop_bound): Reduce
        min_scalar_loop_bound by one.
        * tree-vectorizer.h: Add TARG_COND_TAKEN_BRANCH_COST and
        TARG_COND_NOT_TAKEN_BRANCH_COST.
        ...

[1]: http://gcc.gnu.org/ml/gcc-cvs/2007-09/msg00347.html

Uros.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2007-09-11 17:43 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-09-11 13:16 Polyhedron test: gas_dyn run-time performance regression compared with yesterday Tobias Burnus
     [not found] <5787cf470709110851xf21ab26y36761571b4f9686e@mail.gmail.com>
2007-09-11 15:57 ` Uros Bizjak
2007-09-11 16:15   ` Jagasia, Harsha
2007-09-11 17:43   ` Jagasia, Harsha

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).