When you buy your fancy top-end CPU, you expect stuff to run faster. Only it hasn’t been that simple since before the 386. Your new CPU isn’t really going to kick into gear until you get software that uses the shiny new features of your CPU.
In the case of Intel, they are very guarded about how their new features work. Probably because – as it happens – Intel also sells compilers: the software that programmers use to turn their text into machine instructions.
So your Intel CPU isn’t going to run anything at top whack until software companies have forked out for Intel’s compiler. Now, that’s a pretty nice deal for Intel, isn’t it? They sell the hardware that runs your software, which makes your user think your software isn’t running very well, because it doesn’t run very fast on the guys new hardware, unless you buy the software that Intel sells to make the hardware run the software properly. Ugh.
Their compilers are really good at optimizing code. We got a sizeable FPS increase in WWII Online just from switching to the Intel compiler.
But in just about every other aspect it’s a real pile of crap…
For example, it can’t read Unicode/UTF8 encoded source files. Every now and again it goes into some weird state in the background and prevents you from compiling unless you use task manager to forcibly kill all the lingering instances of it around. You get weird error messages like “Problem with Microsoft compiler”. Hrm. Really? Other goodies include a 2 minute wait followed by “There may have been an error”, “Build complete” without doing anything because (read carefully) nothing did not need compiling.
And it’s freaking slow: Even when you’re compiling without optimizations, it crawls. You may recall, I’d gotten the client build time down to 55 seconds under Windows. And with a few more tweaks I got it under 30s.
Shortly after we switched to the Intel compiler and – even building a debug build without optimizations, it’s back up to the 5 minute mark :(
Wait a second: Visual Studio isn’t just a compiler, it’s a complete Development Suite. A special programming editor, a debugger, libraries, tools, C++ compiler, C compiler and C# compiler, and tons of other stuff.
And it’s from Microsoft, it should cost an arm and a leg.
Microsoft Visual Studio 2008: $299.
Intel C++ Compiler: $599.
And because ICC doesn’t provide an IDE, that means you’re probably going to wind up buying Visual Studio as well: frankly, by using MSVC to build your debug builds, you’ll have saved $299 within the first week or two of using Intel’s compiler :(
There is one last little twist. Intel’s compiler has some options to really optimize the crap out of your application with Intel-only features – which means using special instructions that AMD chips don’t have that will cause the code to crash.
So I’m thinking: I bet Intel’s suits don’t see a reason to put a whole lot of money into their compiler product. Which means that, by and large, most software running on an Intel CPU ain’t performing at best capacity, because most of it runs under Windows and most Windows software is built with a Microsoft compiler, and Microsoft’s compiler – while good – doesn’t generate code that performs anything like Intel’s compiler does.
But surely the suits would see the potential for milking the cow from both ends: if Intel’s compiler was the standard, then their shiny new Xepeeon CPUs would be running kick-ass “omg was I using an abacus before” software in short order, and more developers would want to buy the Intel compiler.