Short answer: Speed is usually pretty good, but the only way to be =
certain on
YOUR app is to test it yourself. Of course, on an xGHz machine, the CPU =
isn't
usually my bottleneck.
=20
Longer responses below.
=20
=20
-----Original Message-----
From: gam...@li...
[mailto:gam...@li...] On Behalf Of =
CAVEY
GERARD
Sent: Thursday, July 22, 2004 8:19 AM
To: 'gam...@li...'
Subject: [GD-General] Faster and faster
Hi
I would like hear someone s experience about INTEL compilers=20
performance when targetting AMD cpus, without using SSE/SSE2.=20
There have been several cross-CPU comparisons of compiled code, usually =
of
specific benchmark programs (see Google). Sometimes one compiler wins,
sometimes another. DDJ had an article (1-2 years ago) comparing Intel 7, =
GCC
3.2 or 3.3, VC6, 7, and 7.1 against a few others, but it wasn't =
cross-CPU. =20
=20
It has been my experience that the VC 7.1 compiler and the Intel =
compilers
(any recent version) produce great code, although a few passes through =
the
Intel compiler for profile-guided compiles usually tends to do (for me) =
a
better job than the VC7.1 compiler; but it takes a long time to compile. =
I
cannot recommend the older VC compilers, 7.0 or (shudder) 6.0.
=20
I've also used Metrowerks compilers, and in one instance where =
performance
made a big difference, we released multiple binaries targeting various =
CPUs.
Let the install program figure out which to install.
Is it good enough ?=20
I feel that the performance is 'good enough' in my cases. Usually (but =
not
always) the differences are visible in my performance metric with little =
or no
perceived difference to me.
=20
But you're writing a game. Every one of them is different. =20
=20
You probably have your own performance metric built in. Try it out for
yourself, and look at the performance. Only you can decide it the =
performance
is good enough, in your own specific program.
=20
While some key functions (dot ,cross products ,matrices maths...) can =
be
written by hand
, i would like to relay on a good compiler for the other things.=20
The Intel Small Matrix Library (I believe it is freely available) has a =
very
good C++ implementation of matrix and vector math. You might want to =
look
into it.
=20
Since you are targeting AMD specifically, you should also test against =
the
Metrowerks compiler. Assuming your code compiles cleanly already, it
shouldn't be too hard to switch compilers. If it doesn't compile =
cleanly, you
could be in for a hard time when changing compilers. In either event, =
you
should go out and test them specifically on your own program. It =
shouldn't
take more than two days, assuming your code compiles cleanly to begin =
with.
If it doesn't, the flood of error messages will be helpful, since it =
will help
you estimate how much time to add to the schedule in code cleanup.
To save you five minutes, here are the URLs:
Intel 30-day trial:
http://www.intel.com/software/products/compilers/cwin/eval.htm=20
Metrowerks 15-day trial:
http://www.metrowerks.com/MW/download/request.asp?action=3Ddl
<http://www.metrowerks.com/MW/download/request.asp?action=3Ddl&product=3D=
CWWin9>
&product=3DCWWin9
bryanw.
|