Benchmark-Perl-Formance-Cargo
view release on metacpan or search on metacpan
share/SpamAssassin/easy_ham_2/00415.5cb7b2e687cb52afad5b1169c631c129 view on Meta::CPAN
>
My understanding, and I've followed the development of the Intel family since
the 8080, each generation since the 386 has introduced better and faster
instructions. I.E.:
The 486 introduced I.E.E.E floating point instructions by incorporating an
FPU on board. The first few generations were flaky, so Intel disabled the
dodgy ones and sold then as 486SX, I.E. without the FPU. Later generations
were better, this is why you only find slow 486SX's ;-) Therefore 486's, with
working FPU's can calculate floats faster than 386's, but you must generate
the proper codes to take advantage of this.
The Pentium's improved the FPU logic and introduced pipelining. The first
generations of Pentiums had faulty FPu logic programmed into them, the
Pentium Bug, but subsequent ones were fine. These added instructions are
faster again then the 486 equivulents. Also, the pipelining needs careful
instruction ordering to take full advantage of it's speed improvements,
again, something the compiler must know about to utilise to full effect.
According the the PGCC site GCC does this poorly, but that info seems to be
dated, GCC3.1.x might be better. This is one of the areas I am researching
closely to get an answer.
MMX added the ability to perform matrix calculations on int's with single
instructions and using special DMA features within the Pentium to speed this
up. Two problems with this:
1) int's are not very useful for most matrix calculations, floats would be
betters.
2) this is not something that can be optimised well by a compiler. It need to
be identified and provided for in the sources.
I.E. not much use to anyone, but makes great ad copy ;-)
The PentiumPro improved the pipeline enormously. Again, a properly written
compiler should be able to optimise for this, once it can organise the code
properly.
The PIII added MMX-type instructions for floats! Now this IS useful!
Graphic-Intensive programs can take greate advantage of this, but it must be
provided for in the source code. Compilers can not, usually optimise for this
sort of thing. XFree86 and DRI are two prime examples that do provide for
this, so the PIII can run XFree86 and DRI quite a bit faster, IF it's
compiled for these SSE instructions!
Not sure what improvements the P4 introduce? I think it's mostly just speed
improvements rather than any execution changes.
So, The difference between the 386 and the PentiumMMX 'should' yield a
significant speed boost if optimised correctly. There are faster floating
point instructions and pipelining that need optimising for. I'm not sure if
GCC can optimise properly for the pipelining, at least the PGCC group found
significant improvements to add to GCC2.95.3 to gain speed improvements of
upto 30%. 30% of 48 hours is 14.4 hours. Of course none of this will have any
effect on O/I bound processes but GUI's are mostly CPU bound. I am also
finding out about object pre-linking optimisations which should give even
better performance for QT and KDE.
Now if I had another PIII for my box, I could take advantage of those SSE
instructions to optimise XFree86 as well!
> kevin
An, of course, I've loads of time on my hands now and I need something to
keep me busy. At least I can say that I've sucessfully built a full Linux
system, including KDE3 from scratch when I'm done ;-)
Cheers,
John Gay
--
Irish Linux Users' Group: ilug@linux.ie
http://www.linux.ie/mailman/listinfo/ilug for (un)subscription information.
List maintainer: listmaster@linux.ie
( run in 0.756 second using v1.01-cache-2.11-cpan-800906f7e73 )