This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Autovectorized HIRLAM - latest results.
- From: Dorit Nuzman <DORIT at il dot ibm dot com>
- To: Toon Moene <toon at moene dot indiv dot nluug dot nl>
- Cc: gcc mailing list <gcc at gcc dot gnu dot org>
- Date: Mon, 29 Oct 2007 07:49:39 -0800
- Subject: Re: Autovectorized HIRLAM - latest results.
> In August, I wrote the following about vectorized / not vectorized loops
> in HIRLAM
> (see http://hirlam.org):
>
> > $ grep 'LOOP VECTORIZED' HL_Prepare_00.html | wc -l
> > 3273
> > $ grep 'not vectorized' HL_Prepare_00.html | wc -l
> > 7845
>
> Yesterday, I performed a test with gcc-trunk-129472 (which is a week
> old, by now):
>
> $ grep 'LOOP VECTORIZED' HL_Prepare_00.html | wc -l
> 5316
> $ grep 'not vectorized' HL_Prepare_00.html | wc -l
> 6060
>
I wonder if it's versioning-for-aliasing (run-time dependence testing) that
was responsible for a lot of the new vectorizable loops
> This was simply using -O3 -ffast-math on the code. Apparently a lot of
> progress has been made (and perhaps the combination of loop
> optimizations enabled by -O3 over -O2 play a role, too):
>
by the way, some of these optimizations, like predictive-commoning, can
also prevent vectorization. we were going to move predcom to after
vectorization - yet to be done
> $ gcc -c -Q -O3 --help=optimizers > /tmp/O3-opts
> $ gcc -c -Q -O2 --help=optimizers > /tmp/O2-opts
> $ diff /tmp/O2-opts /tmp/O3-opts | grep enabled
> > -fgcse-after-reload [enabled]
> > -finline-functions [enabled]
> > -fpredictive-commoning [enabled]
> > -ftree-vectorize [enabled]
> > -funswitch-loops [enabled]
>
> The timing difference is as follows:
>
much thanks for the update!
dorit
> -O3 -ffast-math:
>
> $ grep 'FORECAST TOOK' HL_Cycle*
> HL_Cycle_2006120100.html: FORECAST TOOK 6.2284 SECONDS
> HL_Cycle_2006120100.html: FORECAST TOOK 2430.0159 SECONDS
> HL_Cycle_2006120106.html: FORECAST TOOK 258.1721 SECONDS
> HL_Cycle_2006120106.html: FORECAST TOOK 6.1164 SECONDS
> HL_Cycle_2006120106.html: FORECAST TOOK 304.9590 SECONDS
> HL_Cycle_2006120112.html: FORECAST TOOK 259.7802 SECONDS
> HL_Cycle_2006120112.html: FORECAST TOOK 6.1524 SECONDS
> HL_Cycle_2006120112.html: FORECAST TOOK 2303.5320 SECONDS
> HL_Cycle_2006120112r.html: FORECAST TOOK 417.3861 SECONDS
> HL_Cycle_2006120118.html: FORECAST TOOK 259.9763 SECONDS
> HL_Cycle_2006120118.html: FORECAST TOOK 6.0764 SECONDS
> HL_Cycle_2006120118.html: FORECAST TOOK 306.5071 SECONDS
> HL_Cycle_2006120200.html: FORECAST TOOK 259.9482 SECONDS
> HL_Cycle_2006120200.html: FORECAST TOOK 6.1564 SECONDS
> HL_Cycle_2006120200.html: FORECAST TOOK 2300.3560 SECONDS
> HL_Cycle_2006120200r.html: FORECAST TOOK 414.8299 SECONDS
>
> -O2 -ffast-math:
>
> $ grep 'FORECAST TOOK' HL_Cycle*
> HL_Cycle_2006120100.html: FORECAST TOOK 6.3244 SECONDS
> HL_Cycle_2006120100.html: FORECAST TOOK 2510.3809 SECONDS
> HL_Cycle_2006120106.html: FORECAST TOOK 268.3368 SECONDS
> HL_Cycle_2006120106.html: FORECAST TOOK 6.2484 SECONDS
> HL_Cycle_2006120106.html: FORECAST TOOK 316.4918 SECONDS
> HL_Cycle_2006120112.html: FORECAST TOOK 268.1648 SECONDS
> HL_Cycle_2006120112.html: FORECAST TOOK 6.2724 SECONDS
> HL_Cycle_2006120112.html: FORECAST TOOK 2377.2166 SECONDS
> HL_Cycle_2006120112r.html: FORECAST TOOK 432.7510 SECONDS
> HL_Cycle_2006120118.html: FORECAST TOOK 270.2049 SECONDS
> HL_Cycle_2006120118.html: FORECAST TOOK 6.2244 SECONDS
> HL_Cycle_2006120118.html: FORECAST TOOK 316.9878 SECONDS
> HL_Cycle_2006120200.html: FORECAST TOOK 268.7688 SECONDS
> HL_Cycle_2006120200.html: FORECAST TOOK 6.2924 SECONDS
> HL_Cycle_2006120200.html: FORECAST TOOK 2371.8962 SECONDS
> HL_Cycle_2006120200r.html: FORECAST TOOK 432.6790 SECONDS
>
> Roughly 3.3 %.
>
> Kind regards,
>
> --
> Toon Moene - e-mail: toon@moene.indiv.nluug.nl - phone: +31 346 214290
> Saturnushof 14, 3738 XG Maartensdijk, The Netherlands
> At home: http://moene.indiv.nluug.nl/~toon/
> GNU Fortran's path to Fortran 2003: http://gcc.gnu.org/wiki/Fortran2003