// Copyright (C) 2018-2025 Intel Corporation // SPDX-License-Identifier: Apache-2.0 // /** * @brief This is header file for ov_property C API. * A header for advanced hardware specific properties for OpenVINO runtime devices. * To use in set_property, compile_model, import_model, get_property methods. * @file ov_property.h */ #pragma once #include "openvino/c/ov_common.h" /** * @brief Read-only property to get a string list of supported read-only properties. * @ingroup ov_property_c_api */ OPENVINO_C_VAR(const char*) ov_property_key_supported_properties; /** * @brief Read-only property to get a list of available device IDs. * @ingroup ov_property_c_api */ OPENVINO_C_VAR(const char*) ov_property_key_available_devices; /** * @brief Read-only property to get an unsigned integer value of optimaln * number of compiled model infer requests. * @ingroup ov_property_c_api */ OPENVINO_C_VAR(const char*) ov_property_key_optimal_number_of_infer_requests; /** * @brief Read-only property to provide a * hint for a range for number of async infer requests. If device supports * streams, the metric provides range for number of IRs per stream. * @ingroup ov_property_c_api */ OPENVINO_C_VAR(const char*) ov_property_key_range_for_async_infer_requests; /** * @brief Read-only property to provide information about a range for * streams on platforms where streams are supported * @ingroup ov_property_c_api */ OPENVINO_C_VAR(const char*) ov_property_key_range_for_streams; /** * @brief Read-only property to get a string value representing a full device name. * @ingroup ov_property_c_api */ OPENVINO_C_VAR(const char*) ov_property_key_device_full_name; /** * @brief Read-only property to get a string list of capabilities options per device. * @ingroup ov_property_c_api */ OPENVINO_C_VAR(const char*) ov_property_key_device_capabilities; /** * @brief Read-only property to get a name of name of a model * @ingroup ov_property_c_api */ OPENVINO_C_VAR(const char*) ov_property_key_model_name; /** * @brief Read-only property to query information optimal batch size for the given device * and the network * @ingroup ov_property_c_api */ OPENVINO_C_VAR(const char*) ov_property_key_optimal_batch_size; /** * @brief Read-only property to get maximum batch size which does not cause performance degradation due * to memory swap impact. * @ingroup ov_property_c_api */ OPENVINO_C_VAR(const char*) ov_property_key_max_batch_size; /** * @brief Read-write property to set/get the directory which will be used to store any data cached * by plugins. * @ingroup ov_property_c_api */ OPENVINO_C_VAR(const char*) ov_property_key_cache_dir; /** * @brief Read-write property to select the cache mode between optimize_size and optimize_speed. * If optimize_size is selected(default), smaller cache files will be created. * If optimize_speed is selected, loading time will decrease but the cache file size will increase. * This is only supported from GPU. * @ingroup ov_property_c_api */ OPENVINO_C_VAR(const char*) ov_property_key_cache_mode; /** * @brief Write-only property to set encryption and decryption function for model cache. * If ov_property_key_cache_encryption_callbacks is set, model topology will be encrypted when saving to the cache and * decrypted when loading from the cache. This property is set in ov_core_compile_model_* only * @ingroup ov_property_c_api */ OPENVINO_C_VAR(const char*) ov_property_key_cache_encryption_callbacks; /** * @brief Read-write property to set/get the number of executor logical partitions. * @ingroup ov_property_c_api */ OPENVINO_C_VAR(const char*) ov_property_key_num_streams; /** * @brief Read-write property to set/get the maximum number of threads that can be used * for inference tasks. * @ingroup ov_property_c_api */ OPENVINO_C_VAR(const char*) ov_property_key_inference_num_threads; /** * @brief Read-write property, it is high-level OpenVINO hint for using CPU pinning to bind CPU threads to processors * during inference * @ingroup ov_property_c_api */ OPENVINO_C_VAR(const char*) ov_property_key_hint_enable_cpu_pinning; /** * @brief Read-write property, it is high-level OpenVINO hint for using hyper threading processors during CPU inference * @ingroup ov_property_c_api */ OPENVINO_C_VAR(const char*) ov_property_key_hint_enable_hyper_threading; /** * @brief Read-write property, it is high-level OpenVINO Performance Hints * @ingroup ov_property_c_api */ OPENVINO_C_VAR(const char*) ov_property_key_hint_performance_mode; /** * @brief Read-write property, it is high-level OpenVINO Hints for the type of CPU core used during inference * @ingroup ov_property_c_api */ OPENVINO_C_VAR(const char*) ov_property_key_hint_scheduling_core_type; /** * @brief Read-write property to set the hint for device to use specified precision for inference. * @ingroup ov_property_c_api */ OPENVINO_C_VAR(const char*) ov_property_key_hint_inference_precision; /** * @brief (Optional) Read-write property that backs the Performance Hints by giving * additional information on how many inference requests the application will be * keeping in flight usually this value comes from the actual use-case (e.g. * number of video-cameras, or other sources of inputs) * @ingroup ov_property_c_api */ OPENVINO_C_VAR(const char*) ov_property_key_hint_num_requests; /** * @brief Read-write property for setting desirable log level. * @ingroup ov_property_c_api */ OPENVINO_C_VAR(const char*) ov_property_key_log_level; /** * @brief Read-write property, high-level OpenVINO model priority hint. * @ingroup ov_property_c_api */ OPENVINO_C_VAR(const char*) ov_property_key_hint_model_priority; /** * @brief Read-write property for setting performance counters option. * @ingroup ov_property_c_api */ OPENVINO_C_VAR(const char*) ov_property_key_enable_profiling; /** * @brief Read-write property>, device Priorities config option, * with comma-separated devices listed in the desired priority * @ingroup ov_property_c_api */ OPENVINO_C_VAR(const char*) ov_property_key_device_priorities; /** * @brief Read-write property for high-level OpenVINO Execution hint * unlike low-level properties that are individual (per-device), the hints are something that every device accepts * and turns into device-specific settings * Execution mode hint controls preferred optimization targets (performance or accuracy) for given model * It can be set to be below value: * "PERFORMANCE", //!< Optimize for max performance * "ACCURACY", //!< Optimize for max accuracy * @ingroup ov_property_c_api */ OPENVINO_C_VAR(const char*) ov_property_key_hint_execution_mode; /** * @brief Read-write property to set whether force terminate tbb when ov core destruction * @ingroup ov_property_c_api */ OPENVINO_C_VAR(const char*) ov_property_key_force_tbb_terminate; /** * @brief Read-write property to configure `mmap()` use for model read * @ingroup ov_property_c_api */ OPENVINO_C_VAR(const char*) ov_property_key_enable_mmap; /** * @brief Read-write property * @ingroup ov_property_c_api */ OPENVINO_C_VAR(const char*) ov_property_key_auto_batch_timeout; /** * @brief Read-write property to configure config file for GPU * @ingroup ov_property_c_api */ OPENVINO_C_VAR(const char*) ov_property_key_intel_gpu_config_file;