compiler sensitive CPU architectures
Posted Apr 11, 2007 16:51 UTC (Wed) by tgall
Parent article: Building a High-Performance Cluster with Gentoo
Flame bait aside there are some realities that certain CPU architectures really do benefit of mtune= settings at compile time. In some cases the differences are quite large. (orders of 10s of percent I've personally seen)
As a for instance the instruction scheduling characteristics of the PS3's cell processor and it's sister processor the power4/970 are dramatically different. I'm not talking about the the SPUs here, I'm talking about the PowerPC instruction pipelines. http://www.ps3coderz.com/index.php?option=com_content&...
Getting the most out of your CPU means optimizing based on the features and characteristics your processor has. Distros tend to focus on the general case. HPC sites tend to care about the specific case and as a result do things like turning to use commercial compilers such as xlC or intel's compiler suite. Is making use of features that gcc has which are specific to the processor in the cluster so wrong? Of course not.
Performance analysis is an art. Perhaps in this discussion does Knuth's famous quote about Premature optimization apply? I'd say no. Donnie and the rest of the gentoo crowd are really just talking about utlizing the features of the distro to maximize the tools one has available to tune for performance.
If -mtune=power4 -O2 results in a slower system than a simple -O2 setup on a power4 box, then something is obviously wrong in gcc land.
Perhaps there are those that distrust -mtune settings or -Ox settings. To those I would say, go back to assembler as obviously you don't trust your compiler.
to post comments)