ULIS  dev4.0.7
Utility Library for Imaging Systems
Static Public Member Functions | List of all members
FCPUInfo Class Reference

The FCPUInfo class provides a mean of fetching informations about the CPU in a single-CPU, multicore environment. More...

Static Public Member Functions

static bool HasHardwareABM ()
 
static bool HasHardwareADX ()
 
static bool HasHardwareAES ()
 
static bool HasHardwareAVX ()
 
static bool HasHardwareAVX2 ()
 
static bool HasHardwareAVX512_BW ()
 
static bool HasHardwareAVX512_CD ()
 
static bool HasHardwareAVX512_DQ ()
 
static bool HasHardwareAVX512_ER ()
 
static bool HasHardwareAVX512_F ()
 
static bool HasHardwareAVX512_IFMA ()
 
static bool HasHardwareAVX512_PF ()
 
static bool HasHardwareAVX512_VBMI ()
 
static bool HasHardwareAVX512_VL ()
 
static bool HasHardwareBMI1 ()
 
static bool HasHardwareBMI2 ()
 
static bool HasHardwareFMA3 ()
 
static bool HasHardwareFMA4 ()
 
static bool HasHardwareMMX ()
 
static bool HasHardwareMPX ()
 
static bool HasHardwarePREFETCHWT1 ()
 
static bool HasHardwareRDRAND ()
 
static bool HasHardwareSHA ()
 
static bool HasHardwareSSE ()
 
static bool HasHardwareSSE2 ()
 
static bool HasHardwareSSE3 ()
 
static bool HasHardwareSSE41 ()
 
static bool HasHardwareSSE42 ()
 
static bool HasHardwareSSE4a ()
 
static bool HasHardwareSSSE3 ()
 
static bool HasHardwarex64 ()
 
static bool HasHardwareXOP ()
 
static bool HasOSAVX ()
 
static bool HasOSAVX512 ()
 
static bool IsHardwareAMD ()
 
static bool IsHardwareIntel ()
 
static bool IsOSx64 ()
 
static uint32 L1CacheLineSize ()
 
static uint32 L1CacheSize ()
 
static uint32 MaxWorkers ()
 

Detailed Description

FCPUInfo provides functions to fetch wether support for 64 bits features or SIMD extensions are supported on the CPU that runs the compiled code, at runtime. It has no relation with the computer that compiled the code in the first place, it is a cross-platform tool used to detecting wether the consumer of the library code is able to rely on the implementations compiled with these SIMD features in mind. Additionnaly, it provides extra information about the CPU vendor, and some information about the OS, in relation to its support for the features sets or for 64bit features, although 64bit is always assumed to be true. FCPUInfo also provides some insight about the hardware such as the number of available cores, or the size of cache lines.

Member Function Documentation

◆ HasHardwareABM()

static bool FCPUInfo::HasHardwareABM ( )
static

◆ HasHardwareADX()

static bool FCPUInfo::HasHardwareADX ( )
static

◆ HasHardwareAES()

static bool FCPUInfo::HasHardwareAES ( )
static

◆ HasHardwareAVX()

static bool FCPUInfo::HasHardwareAVX ( )
static

◆ HasHardwareAVX2()

static bool FCPUInfo::HasHardwareAVX2 ( )
static

◆ HasHardwareAVX512_BW()

static bool FCPUInfo::HasHardwareAVX512_BW ( )
static

◆ HasHardwareAVX512_CD()

static bool FCPUInfo::HasHardwareAVX512_CD ( )
static

◆ HasHardwareAVX512_DQ()

static bool FCPUInfo::HasHardwareAVX512_DQ ( )
static

◆ HasHardwareAVX512_ER()

static bool FCPUInfo::HasHardwareAVX512_ER ( )
static

◆ HasHardwareAVX512_F()

static bool FCPUInfo::HasHardwareAVX512_F ( )
static

◆ HasHardwareAVX512_IFMA()

static bool FCPUInfo::HasHardwareAVX512_IFMA ( )
static

◆ HasHardwareAVX512_PF()

static bool FCPUInfo::HasHardwareAVX512_PF ( )
static

◆ HasHardwareAVX512_VBMI()

static bool FCPUInfo::HasHardwareAVX512_VBMI ( )
static

◆ HasHardwareAVX512_VL()

static bool FCPUInfo::HasHardwareAVX512_VL ( )
static

◆ HasHardwareBMI1()

static bool FCPUInfo::HasHardwareBMI1 ( )
static

◆ HasHardwareBMI2()

static bool FCPUInfo::HasHardwareBMI2 ( )
static

◆ HasHardwareFMA3()

static bool FCPUInfo::HasHardwareFMA3 ( )
static

◆ HasHardwareFMA4()

static bool FCPUInfo::HasHardwareFMA4 ( )
static

◆ HasHardwareMMX()

static bool FCPUInfo::HasHardwareMMX ( )
static

◆ HasHardwareMPX()

static bool FCPUInfo::HasHardwareMPX ( )
static

◆ HasHardwarePREFETCHWT1()

static bool FCPUInfo::HasHardwarePREFETCHWT1 ( )
static

◆ HasHardwareRDRAND()

static bool FCPUInfo::HasHardwareRDRAND ( )
static

◆ HasHardwareSHA()

static bool FCPUInfo::HasHardwareSHA ( )
static

◆ HasHardwareSSE()

static bool FCPUInfo::HasHardwareSSE ( )
static

◆ HasHardwareSSE2()

static bool FCPUInfo::HasHardwareSSE2 ( )
static

◆ HasHardwareSSE3()

static bool FCPUInfo::HasHardwareSSE3 ( )
static

◆ HasHardwareSSE41()

static bool FCPUInfo::HasHardwareSSE41 ( )
static

◆ HasHardwareSSE42()

static bool FCPUInfo::HasHardwareSSE42 ( )
static

◆ HasHardwareSSE4a()

static bool FCPUInfo::HasHardwareSSE4a ( )
static

◆ HasHardwareSSSE3()

static bool FCPUInfo::HasHardwareSSSE3 ( )
static

◆ HasHardwarex64()

static bool FCPUInfo::HasHardwarex64 ( )
static

◆ HasHardwareXOP()

static bool FCPUInfo::HasHardwareXOP ( )
static

◆ HasOSAVX()

static bool FCPUInfo::HasOSAVX ( )
static

◆ HasOSAVX512()

static bool FCPUInfo::HasOSAVX512 ( )
static

◆ IsHardwareAMD()

static bool FCPUInfo::IsHardwareAMD ( )
static

◆ IsHardwareIntel()

static bool FCPUInfo::IsHardwareIntel ( )
static

◆ IsOSx64()

static bool FCPUInfo::IsOSx64 ( )
static

◆ L1CacheLineSize()

static uint32 FCPUInfo::L1CacheLineSize ( )
static

◆ L1CacheSize()

static uint32 FCPUInfo::L1CacheSize ( )
static

◆ MaxWorkers()

static uint32 FCPUInfo::MaxWorkers ( )
static