title: Using CPUID to detect CPU specs, reliable solution?
body: <p>I'm trying to gather information about my CPU with <code>__cpuid()</code>. Though it is getting it right on my computer, when I run my program on my colleague's computer it is detecting the <a href="http://ark.intel.com/products/29765/Intel-Core2-Quad-Processor-Q6600-8M-Cache-2_40-GHz-1066-MHz-FSB" rel="nofollow noreferrer">Intel  Core2 Quad Q6600</a> to be hyper-threaded, though according to the specifications on Intel's own site it isn't.</p>
  
  <p><code>__cpuid()</code> is also detecting the wrong amount of "logical cores" as can be shown here:
  <a href="https://stackoverflow.com/questions/2901694/programatically-detect-number-of-physical-processors-cores-or-if-hyper-threading">Programmatically detect number of physical processors/cores or if hyper-threading is active on Windows, Mac and Linux</a>. Where it claims that the <a href="http://ark.intel.com/products/40200/Intel-Xeon-Processor-E5520-(8M-Cache-2_26-GHz-5_86-GTs-Intel-QPI)" rel="nofollow noreferrer">Intel Xeon E5520</a> has 16 logical cores and 8 physical.</p>
  
  <p>I tried running the code found in that thread on my own computer, a <a href="http://ark.intel.com/products/52214/Intel-Core-i7-2600K-Processor-(8M-Cache-3_40-GHz)" rel="nofollow noreferrer">Intel i7 2600K</a> giving me the same numbers as for the Xeon.</p>
  
  <p>So how reliable is <code>__cpuid()</code> really? From my own experience it doesn't seem to be that reliable. Have I got something very fundamental wrong?</p>