У меня есть Intel Core i5-2450m (2 физических процессора и 4 логических процессора), и я хочу найти способ подсчета логических и физических ядер на процессорах AMD и Intel. Но после некоторых поисков я заметил что-то странное. Вместо того, чтобы возвращать 4 логических блока, мой код дает мне 16.
static int8_t LogicalProcCount(void)
{
if ( !Hyperthreading )
return 1;
uint32_t unused, ebx;
CPUID(1, unused, ebx, unused, unused);
return (int8_t) ( (ebx >> 16 ) & 0xFF );
}