Vector et emergo: On the vectorization of the HIRLAM Weather Prediction code.
Toon Moene
toon@moene.indiv.nluug.nl
Fri Oct 21 13:12:00 GMT 2005
L.S.,
At the last GCC summit I showed that complete compilation of the
HIRLAM Numerical Weather Prediction suite by gfortran/gcc was near
completion - only a few compiler bugs were between us and running
programs.
This (autumn) holiday, I was able to convince myself that the problems
on the part of gfortran/gcc were confined to gfortran not knowing the
LOC (extension) intrinsic, which will be part of LLNL's "Cray" pointers
package, and an "unclassifiable statement" when trying to parse a
five part concatenation of substrings (for which I'll file a bug report
shortly).
All other problems are due to HIRLAM people not following standards
closely enough, which I will remedy effectively ;-)
Therefore, the next challenge presented itself: Given that the HIRLAM
code always has performed well on vector machines (as of '85), it's a
natural to compile it with -ftree-vectorize -ftree-vectorizer-verbose=n
compiler options, to see what the vectorizer can make of it.
Here are the top level results:
Loops considered by the vectorizer as potentially vectorizable: 10420.
Loops actually vectorized: 2645.
Loops not vectorized: 7775.
of which:
- unhandled data-ref: 3479.
- complicated access pattern: 1500.
- can't determine dependence: 1456.
- unsupported use in stmt: 662.
- no vectype for type (complex8): 235.
- relevant stmt not supported: 120.
- mixed data-types: 149.
I'll send examples of the top three of this list, plus the ultimate
example why 235 occurrences of "no vectype for type (complex8)" is an
unnessary thing.
Kind regards,
--
Toon Moene - e-mail: toon@moene.indiv.nluug.nl - phone: +31 346 214290
Saturnushof 14, 3738 XG Maartensdijk, The Netherlands
A maintainer of GNU Fortran 95: http://gcc.gnu.org/fortran/
More information about the Gcc
mailing list