RE: Faster and faster

"Bryan Wagstaff" <[email protected]> Sun, 25 Jul 2004 17:16:16 -0600
Newsgroups gmane.games.devel.general
Message-ID <000701c4729d$66c7ab50$0200000a@starlight>
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.
 
Longer responses below.
 
 
-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of CAVEY
GERARD
Sent: Thursday, July 22, 2004 8:19 AM
To: '[email protected]'
Subject: [GD-General] Faster and faster


Hi
I would like hear someone s experience about INTEL compilers 
performance when targetting AMD cpus, without using SSE/SSE2. 
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.  
 
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.
 
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 ? 
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.
 
But you're writing a game.  Every one of them is different.  
 
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.
 
 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. 
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.
 
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 
Metrowerks 15-day trial:
http://www.metrowerks.com/MW/download/request.asp?action=dl
<http://www.metrowerks.com/MW/download/request.asp?action=dl&product=CWWin9>
&product=CWWin9
bryanw.