Su Linux prova la libreria proccpuinfo, un'API C indipendente dall'architettura per leggere /proc/cpuinfo
Su Win32, GetLogicalProcessorInformation
ti restituirà un SYSTEM_LOGICAL_PROCESSOR_INFORMATION
che contiene un CACHE_DESCRIPTOR
, che contiene le informazioni di cui hai bisogno.
Per x86, l'istruzione CPUID. Una rapida ricerca su google rivela alcune librerie per win32 e c++. Ho usato CPUID anche tramite assembler inline.
Qualche informazione in più:
- http://www.intel.com/Assets/PDF/appnote/241618.pdf
- http://softpixel.com/~cwright/programming/simd/cpuid.php