So I figured it’d be as good time as any to see how various compilers (mostly Microsoft) stack up on the Itanium. So I built SIMH, and loaded up 4.2 BSD & the old dhrystone benchmark.
And before we get to the numbers, I’m using a 900Mhz Itanium 2, clearly the bottom of the barrel. I ended up loading Windows 2003 server, as XP for the Itanium can’t even install Internet Explorer 7. If you thought a world of Internet Explorer 6 was fun, it’s hell when it is your only browser.
In addition, Visual C++ 2005 was never released on the Itanium, they made it as far as Beta 2, before discontinuing native support. However I like it’s debugger so I’m using the Beta 2 version.
Microsoft (R) C/C++ Optimizing Compiler Version 13.10.2240.8 for IA-64 (from the Feb 2003 platform SDK)
Dhrystone(1.1) time for 500000 passes = 77
This machine benchmarks at 6493 dhrystones/second
Dhrystone(1.1) time for 500000 passes = 76
This machine benchmarks at 6578 dhrystones/second
Microsoft (R) C/C++ Optimizing Compiler Version 14.00.50215.44 for Itanium (Visual Studio 2005 beta)
Dhrystone(1.1) time for 500000 passes = 64
This machine benchmarks at 7812 dhrystones/second
Dhrystone(1.1) time for 500000 passes = 65
This machine benchmarks at 7692 dhrystones/second
Intel(R) C++ IA-64 Compiler for applications running on IA-64, Version 10.1 Build 20080112 Package ID: w_cc_p_10.1.014
Dhrystone(1.1) time for 500000 passes = 53
This machine benchmarks at 9433 dhrystones/second
Dhrystone(1.1) time for 500000 passes = 53
This machine benchmarks at 9433 dhrystones/second
And for some sense of what the emulation is like…
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 10.20.6166 for 80×86 (visual C++ 4.2)
Dhrystone(1.1) time for 500000 passes = 92
This machine benchmarks at 5434 dhrystones/second
Dhrystone(1.1) time for 500000 passes = 91
This machine benchmarks at 5494 dhrystones/second
Not to bad, the Intel compiler is 2x the speed of an i386 executable, while it’s easily 18% + faster then the Microsoft Compiler. I built everything with /Ox flags (Which the Intel compiler honers!).. Executable sizes varied as much as the performance.
1,672,704 Intel C vax780.exe
986,624 Vax780feb2003.exe
495,616 Vax780visualc4.exe
1,232,896 vax780visualstudio2005b2.exe
And of course the larger the executable the faster it ran. No wonder EPIC was driving people insane!