Group System configuration utilities

group ov_dev_api_system_conf

API to get information about the system, core processor capabilities.

Functions

bool check_open_mp_env_vars(bool include_omp_num_threads = true)

Checks whether OpenMP environment variables are defined.

Parameters

include_omp_num_threads[in] Indicates if the omp number threads is included

Returns

True if any OpenMP environment variable is defined, false otherwise

std::vector<int> get_available_numa_nodes()

Returns available CPU NUMA nodes (on Linux, and Windows [only with TBB], single node is assumed on all other OSes)

Returns

NUMA nodes

std::vector<int> get_available_cores_types()

Returns available CPU cores types (on Linux, and Windows) and ONLY with TBB, single core type is assumed otherwise.

Returns

Vector of core types

int get_number_of_cpu_cores(bool big_cores_only = false)

Returns number of CPU physical cores on Linux/Windows (which is considered to be more performance friendly for servers) (on other OSes it simply relies on the original parallel API of choice, which usually uses the logical cores). call function with ‘false’ to get #phys cores of all types call function with ‘true’ to get #phys ‘Big’ cores number of ‘Little’ = ‘all’ - ‘Big’.

Parameters

big_cores_only[in] Additionally limits the number of reported cores to the ‘Big’ cores only.

Returns

Number of physical CPU cores.

int get_number_of_logical_cpu_cores(bool big_cores_only = false)

Returns number of CPU logical cores on Linux/Windows (on other OSes it simply relies on the original parallel API of choice, which uses the ‘all’ logical cores). call function with ‘false’ to get #logical cores of all types call function with ‘true’ to get #logical ‘Big’ cores number of ‘Little’ = ‘all’ - ‘Big’.

Parameters

big_cores_only[in] Additionally limits the number of reported cores to the ‘Big’ cores only.

Returns

Number of logical CPU cores.

int get_number_of_blocked_cores()

Returns number of blocked CPU cores. Please note that this is a temporary interface for performance optimization on a specific platform. May be removed in future release.

Returns

Number of blocked CPU cores.

bool with_cpu_x86_sse42()

Checks whether CPU supports SSE 4.2 capability.

Returns

True is SSE 4.2 instructions are available, false otherwise

bool with_cpu_x86_avx()

Checks whether CPU supports AVX capability.

Returns

True is AVX instructions are available, false otherwise

bool with_cpu_x86_avx2()

Checks whether CPU supports AVX2 capability.

Returns

True is AVX2 instructions are available, false otherwise

bool with_cpu_x86_avx2_vnni()

Checks whether CPU supports AVX2_VNNI capability.

Returns

True is AVX2_VNNI instructions are available, false otherwise

bool with_cpu_x86_avx512f()

Checks whether CPU supports AVX 512 capability.

Returns

True is AVX512F (foundation) instructions are available, false otherwise

bool with_cpu_x86_avx512_core()

Checks whether CPU supports AVX 512 capability.

Returns

True is AVX512F, AVX512BW, AVX512DQ instructions are available, false otherwise

bool with_cpu_x86_avx512_core_vnni()

Checks whether CPU supports AVX 512 VNNI capability.

Returns

True is AVX512F, AVX512BW, AVX512DQ, AVX512_VNNI instructions are available, false otherwise

bool with_cpu_x86_bfloat16()

Checks whether CPU supports BFloat16 capability.

Returns

True is tAVX512_BF16 instructions are available, false otherwise

bool with_cpu_x86_avx512_core_fp16()

Checks whether CPU supports fp16 capability.

Returns

True is tAVX512_FP16 instructions are available, false otherwise

bool with_cpu_x86_avx512_core_amx_int8()

Checks whether CPU supports AMX int8 capability.

Returns

True is tAMX_INT8 instructions are available, false otherwise

bool with_cpu_x86_avx512_core_amx_bf16()

Checks whether CPU supports AMX bf16 capability.

Returns

True is tAMX_BF16 instructions are available, false otherwise

bool with_cpu_x86_avx512_core_amx()

Checks whether CPU supports AMX capability.

Returns

True is tAMX_INT8 or tAMX_BF16 instructions are available, false otherwise