• We’re currently investigating an issue related to the forum theme and styling that is impacting page layout and visual formatting. The problem has been identified, and we are actively working on a resolution. There is no impact to user data or functionality, this is strictly a front-end display issue. We’ll post an update once the fix has been deployed. Thanks for your patience while we get this sorted.

Intel optimizations - are some of the current strategies a waste?

MadRat

Lifer
I find it strange that SSE is an Intel standard, regulated by licensing yet AMD processors that use it go largely unused. The MMX optimizations were largely supported by compilers and software vendors regardless of who made the processor. The FPU units of processors do not check for the manufacturer of the processors. The integer units do not check for the manufacturer of the processors. The x86 instructions do not check for the manufacturer of the processors.

So why do software makers purposely rig SSE to not run on non-Intel machines?

I still do not see the relevance to the PPro in modern compilers and software. Programming seems to be centered around the PPro architecture, when every manufacturer has since left that design behind. If programmers redesign their software to run optimally on the Pentium 4 then it would make more sense. Same goes if they decide to optimize for Athlon architecture. But to design for the PPRo legacy is just plain a waste. The irony is that AMD's (and its possible there will be an Intel's) x86-64 processors will have to choke along on PPro-optimized software! 😉

I'm sure the engineers and programmers around here can help us out with what would be a utopian playing field in their world. Any of you educated gents care to speak up?
 


<< The FPU units of processors do not check for the manufacturer of the processors. The integer units do not check for the manufacturer of the processors. The x86 instructions do not check for the manufacturer of the processors. >>

No, but a simple CPUID run when your program starts, or query the CPUID directly from the OS, is enough to enumerate the SIMD capabilities of the processor. There's your checking. Take for example, DVD software such as PowerDVD. Have a look at the Status page, and you can see what is in use.

PPro optimisations embody most of the fundamental performance features found in processors today: superscalar, multiple pipelines, out-of-order execution, register renaming and other neat tricks. What would you rather have as a baseline? Pentium? 486? Remember that only a small percentage of the market is using very fast processors. The majority are still using Pentium II, Pentium III and Athlon processors. The PPro still forms the basis of most of the Intel line. Take for example, the company that I work in. We have over 700 PCs. All Intel (nothing I can do about that), but we only have 20 Pentium 4s. The rest are all Pentium IIs, Pentium IIIs and some Celerons. We still have Pentium Pros and even Pentium classics still kicking around.



<< If programmers redesign their software to run optimally on the Pentium 4 then it would make more sense >>

And automatically put a ball and chain on the majority of software out there? I doubt that.

I've been writing encryption software for the company that I work for. I'd love to put in all the neat SIMD stuff and other tricks, but I can't, because I have to target the widest range of systems possible. I'm lucky I don't need to target the 386 as a baseline.
 
The problem with optimisations is benchmark skewing. Obviously if a benchmark recognises SSE2 it will post much higher (and false in comparison) to a comparable K7 class cpu. Look at the sandra FPU benchmarks for Northwoods and Palominos! At least SiSoft shows the non SSE2 results. Now if you have clients that can use the SSE2 that's great! If you have software that needs raw FPU power and isn't SSE2 (or 1 for that matter) optimised, the K7 core is going to do better.

Cheers!
 
Something that has alway bugged me a little, why don't the software people simply compile for a range of .exes optimized for a variety of CPU's and then have a loader determine which one to run on a given system.

This does not seem like it would be something that would cuase too much trouble. As for DLLS and stuff like that, set-up would be able to determine which ones to use of course


Am I missing something here

---

I was thinking of writing some software to convert intel binaries to more AMD friendly ones, though this is obviulsly a fairly tough little project. It would be far easier if software makers simply did what i mentioned above
 
The only thing that aggravates me about optimizations is when a company or companies create a benchmarking suite that fails to recognize CPU's that do have the optimizations. At this point in the processor game, with such visibility for the optimizations future processors will carry, it's really discouraging to see certain processors blacklisted...cough Bapco...cough.
 
Back
Top