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.