En Linux, pruebe la biblioteca proccpuinfo, una API de C independiente de la arquitectura para leer /proc/cpuinfo
En Win32, GetLogicalProcessorInformation
te devolverá un SYSTEM_LOGICAL_PROCESSOR_INFORMATION
que contiene un CACHE_DESCRIPTOR
, que tiene la información que necesita.
Para x86, la instrucción CPUID. Una búsqueda rápida en Google revela algunas bibliotecas para win32 y c++. También he usado CPUID a través del ensamblador en línea.
Algo más de información:
- http://www.intel.com/Assets/PDF/appnote/241618.pdf
- http://softpixel.com/~cwright/programming/simd/cpuid.php