Removed Intel Myriad headers from new API (#18736)
* Removed Intel Myriad from new API * Renamed GPU unit tests
This commit is contained in:
@@ -72,7 +72,7 @@ jobs:
|
||||
libopenvino_gapi_preproc.so
|
||||
openvino_intel_cpu_plugin
|
||||
openvino_intel_gpu_plugin
|
||||
clDNN_unit_tests64
|
||||
ov_gpu_unit_tests
|
||||
gpuFuncTests
|
||||
displayName: Build Lin
|
||||
|
||||
|
||||
@@ -276,7 +276,7 @@ Generate final optimal binaries size of OpenVINO package
|
||||
md build
|
||||
cd build
|
||||
|
||||
cmake -G "Visual Studio 16 2019" -A x64 -DENABLE_CPPLINT=OFF -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_COMPILE_WARNING_AS_ERROR=OFF -DCMAKE_BUILD_TYPE=Release -DENABLE_FASTER_BUILD=ON -DENABLE_PROFILING_ITT=OFF -DSELECTIVE_BUILD=ON -DENABLE_INTEL_GPU=OFF -DENABLE_INTEL_GNA=OFF -DENABLE_MULTI=OFF -DENABLE_AUTO=OFF -DENABLE_AUTO_BATCH=OFF -DENABLE_HETERO=OFF -DENABLE_TEMPLATE=OFF -DENABLE_OV_ONNX_FRONTEND=OFF -DENABLE_OV_PADDLE_FRONTEND=OFF -DENABLE_OV_PYTORCH_FRONTEND=OFF -DENABLE_OV_TF_FRONTEND=OFF -DSELECTIVE_BUILD_STAT=%OPENVINO_HOME%\cc_data\*.csv -DBUILD_SHARED_LIBS=OFF -DENABLE_LTO=ON -DENABLE_ONEDNN_FOR_GPU=OFF -DENABLE_GAPI_PREPROCESSING=OFF -DENABLE_OV_TF_LITE_FRONTEND=OFF -DENABLE_CLDNN=OFF -DENABLE_PROFILING_FIRST_INFERENCE=OFF -DENABLE_INTEL_MYRIAD_COMMON=OFF -DENABLE_INTEL_MYRIAD=OFF ..
|
||||
cmake -G "Visual Studio 16 2019" -A x64 -DENABLE_CPPLINT=OFF -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_COMPILE_WARNING_AS_ERROR=OFF -DCMAKE_BUILD_TYPE=Release -DENABLE_FASTER_BUILD=ON -DENABLE_PROFILING_ITT=OFF -DSELECTIVE_BUILD=ON -DENABLE_INTEL_GPU=OFF -DENABLE_INTEL_GNA=OFF -DENABLE_MULTI=OFF -DENABLE_AUTO=OFF -DENABLE_AUTO_BATCH=OFF -DENABLE_HETERO=OFF -DENABLE_TEMPLATE=OFF -DENABLE_OV_ONNX_FRONTEND=OFF -DENABLE_OV_PADDLE_FRONTEND=OFF -DENABLE_OV_PYTORCH_FRONTEND=OFF -DENABLE_OV_TF_FRONTEND=OFF -DSELECTIVE_BUILD_STAT=%OPENVINO_HOME%\cc_data\*.csv -DBUILD_SHARED_LIBS=OFF -DENABLE_LTO=ON -DENABLE_ONEDNN_FOR_GPU=OFF -DENABLE_GAPI_PREPROCESSING=OFF -DENABLE_OV_TF_LITE_FRONTEND=OFF -DENABLE_PROFILING_FIRST_INFERENCE=OFF ..
|
||||
|
||||
cmake --build . --config Release
|
||||
|
||||
|
||||
@@ -1,201 +0,0 @@
|
||||
// Copyright (C) 2022 Intel Corporation
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
//
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <openvino/runtime/properties.hpp>
|
||||
|
||||
namespace ov {
|
||||
namespace intel_myriad {
|
||||
|
||||
/**
|
||||
* @brief Namespace with Intel HDDL specific properties
|
||||
*/
|
||||
namespace hddl {
|
||||
|
||||
// RO properties
|
||||
|
||||
/**
|
||||
* @brief Property to get a int of the device number
|
||||
* @ingroup ov_runtime_hddl_prop_cpp_api
|
||||
*/
|
||||
static constexpr Property<int, PropertyMutability::RO> device_num{"HDDL_DEVICE_NUM"};
|
||||
|
||||
/**
|
||||
* @brief Property to get a std::vector<std::string> of device names
|
||||
* @ingroup ov_runtime_hddl_prop_cpp_api
|
||||
*/
|
||||
static constexpr Property<std::vector<std::string>, PropertyMutability::RO> device_name{"HDDL_DEVICE_NAME"};
|
||||
|
||||
/**
|
||||
* @brief Property to get a std::vector<float> of device thermal
|
||||
* @ingroup ov_runtime_hddl_prop_cpp_api
|
||||
*/
|
||||
static constexpr Property<std::vector<float>, PropertyMutability::RO> device_thermal{"HDDL_DEVICE_THERMAL"};
|
||||
|
||||
/**
|
||||
* @brief Property to get a std::vector<uint32> of device ids
|
||||
* @ingroup ov_runtime_hddl_prop_cpp_api
|
||||
*/
|
||||
static constexpr Property<std::vector<unsigned int>, PropertyMutability::RO> device_id{"HDDL_DEVICE_ID"};
|
||||
|
||||
/**
|
||||
* @brief Property to get a std::vector<int> of device subclasses
|
||||
* @ingroup ov_runtime_hddl_prop_cpp_api
|
||||
*/
|
||||
static constexpr Property<std::vector<int>, PropertyMutability::RO> device_subclass{"HDDL_DEVICE_SUBCLASS"};
|
||||
|
||||
/**
|
||||
* @brief Property to get a std::vector<uint32> of device total memory
|
||||
* @ingroup ov_runtime_hddl_prop_cpp_api
|
||||
*/
|
||||
static constexpr Property<std::vector<unsigned int>, PropertyMutability::RO> device_memory_total{
|
||||
"HDDL_DEVICE_MEMORY_TOTAL"};
|
||||
|
||||
/**
|
||||
* @brief Property to get a std::vector<uint32> of device used memory
|
||||
* @ingroup ov_runtime_hddl_prop_cpp_api
|
||||
*/
|
||||
static constexpr Property<std::vector<unsigned int>, PropertyMutability::RO> device_memory_used{
|
||||
"HDDL_DEVICE_MEMORY_USED"};
|
||||
|
||||
/**
|
||||
* @brief Property to get a std::vector<float> of device utilization
|
||||
* @ingroup ov_runtime_hddl_prop_cpp_api
|
||||
*/
|
||||
static constexpr Property<std::vector<float>, PropertyMutability::RO> device_utilization{"HDDL_DEVICE_UTILIZATION"};
|
||||
|
||||
/**
|
||||
* @brief Property to get a std::vector<std::string> of stream ids
|
||||
* @ingroup ov_runtime_hddl_prop_cpp_api
|
||||
*/
|
||||
static constexpr Property<std::vector<std::string>, PropertyMutability::RO> stream_id{"HDDL_STREAM_ID"};
|
||||
|
||||
/**
|
||||
* @brief Property to get a std::vector<std::string> of device tags
|
||||
* @ingroup ov_runtime_hddl_prop_cpp_api
|
||||
*/
|
||||
static constexpr Property<std::vector<std::string>, PropertyMutability::RO> device_tag{"HDDL_DEVICE_TAG"};
|
||||
|
||||
/**
|
||||
* @brief Property to get a std::vector<int> of group ids
|
||||
* @ingroup ov_runtime_hddl_prop_cpp_api
|
||||
*/
|
||||
static constexpr Property<std::vector<int>, PropertyMutability::RO> group_id{"HDDL_GROUP_ID"};
|
||||
|
||||
/**
|
||||
* @brief Property to get a int number of device be using for group
|
||||
* @ingroup ov_runtime_hddl_prop_cpp_api
|
||||
*/
|
||||
static constexpr Property<int, PropertyMutability::RO> device_group_using_num{"HDDL_DEVICE_GROUP_USING_NUM"};
|
||||
|
||||
/**
|
||||
* @brief Property to get a int number of total device
|
||||
* @ingroup ov_runtime_hddl_prop_cpp_api
|
||||
*/
|
||||
static constexpr Property<int, PropertyMutability::RO> device_total_num{"HDDL_DEVICE_TOTAL_NUM"};
|
||||
|
||||
// RW properties
|
||||
|
||||
/**
|
||||
* @brief [Only for HDDLPlugin]
|
||||
* Type: Arbitrary non-empty string. If empty (""), equals no set, default: "";
|
||||
* This option allows to specify the number of MYX devices used for inference a specific Executable network.
|
||||
* Note: Only one network would be allocated to one device.
|
||||
* The number of devices for the tag is specified in the hddl_service.config file.
|
||||
* Example:
|
||||
* "service_settings":
|
||||
* {
|
||||
* "graph_tag_map":
|
||||
* {
|
||||
* "tagA":3
|
||||
* }
|
||||
* }
|
||||
* It means that an executable network marked with tagA will be executed on 3 devices
|
||||
* @ingroup ov_runtime_hddl_prop_cpp_api
|
||||
*/
|
||||
static constexpr Property<std::string, PropertyMutability::RW> graph_tag{"HDDL_GRAPH_TAG"};
|
||||
|
||||
/**
|
||||
* @brief [Only for HDDLPlugin]
|
||||
* Type: Arbitrary non-empty string. If empty (""), equals no set, default: "";
|
||||
* This config makes the executable networks to be allocated on one certain device (instead of multiple devices).
|
||||
* And all inference through this executable network, will be done on this device.
|
||||
* Note: Only one network would be allocated to one device.
|
||||
* The number of devices which will be used for stream-affinity must be specified in hddl_service.config file.
|
||||
* Example:
|
||||
* "service_settings":
|
||||
* {
|
||||
* "stream_device_number":5
|
||||
* }
|
||||
* It means that 5 device will be used for stream-affinity
|
||||
* @ingroup ov_runtime_hddl_prop_cpp_api
|
||||
*/
|
||||
static constexpr Property<std::string, PropertyMutability::RW> set_stream_id{"HDDL_SET_STREAM_ID"};
|
||||
|
||||
/**
|
||||
* @brief [Only for HDDLPlugin]
|
||||
* Type: Arbitrary non-empty string. If empty (""), equals no set, default: "";
|
||||
* This config allows user to control device flexibly. This config gives a "tag" for a certain device while
|
||||
* allocating a network to it. Afterward, user can allocating/deallocating networks to this device with this "tag".
|
||||
* Devices used for such use case is controlled by a so-called "Bypass Scheduler" in HDDL backend, and the number
|
||||
* of such device need to be specified in hddl_service.config file.
|
||||
* Example:
|
||||
* "service_settings":
|
||||
* {
|
||||
* "bypass_device_number": 5
|
||||
* }
|
||||
* It means that 5 device will be used for Bypass scheduler.
|
||||
* @ingroup ov_runtime_hddl_prop_cpp_api
|
||||
*/
|
||||
static constexpr Property<std::string, PropertyMutability::RW> set_device_tag{"HDDL_SET_DEVICE_TAG"};
|
||||
|
||||
/**
|
||||
* @brief [Only for HDDLPlugin]
|
||||
* Type: "bool", default is "false".
|
||||
* This config is a sub-config of DEVICE_TAG, and only available when "DEVICE_TAG" is set. After a user load a
|
||||
* network, the user got a handle for the network.
|
||||
* If "YES", the network allocated is bind to the device (with the specified "DEVICE_TAG"), which means all afterwards
|
||||
* inference through this network handle will be executed on this device only.
|
||||
* If "NO", the network allocated is not bind to the device (with the specified "DEVICE_TAG"). If the same network
|
||||
* is allocated on multiple other devices (also set BIND_DEVICE to "False"), then inference through any handle of these
|
||||
* networks may be executed on any of these devices those have the network loaded.
|
||||
* @ingroup ov_runtime_hddl_prop_cpp_api
|
||||
*/
|
||||
static constexpr Property<bool, PropertyMutability::RW> bind_device{"HDDL_BIND_DEVICE"};
|
||||
|
||||
/**
|
||||
* @brief [Only for HDDLPlugin]
|
||||
* Type: A signed int wrapped in a string, default is "0".
|
||||
* This config is a sub-config of DEVICE_TAG, and only available when "DEVICE_TAG" is set and "BIND_DEVICE" is "False".
|
||||
* When there are multiple devices running a certain network (a same network running on multiple devices in Bypass
|
||||
* Scheduler), the device with a larger number has a higher priority, and more inference tasks will be fed to it with
|
||||
* priority.
|
||||
* @ingroup ov_runtime_hddl_prop_cpp_api
|
||||
*/
|
||||
static constexpr Property<std::string, PropertyMutability::RW> runtime_priority{"HDDL_RUNTIME_PRIORITY"};
|
||||
|
||||
/**
|
||||
* @brief [Only for HDDLPlugin]
|
||||
* Type: "bool", default is "false".
|
||||
* SGAD is short for "Single Graph All Device". With this scheduler, once application allocates 1 network, all devices
|
||||
* (managed by SGAD scheduler) will be loaded with this graph. The number of network that can be loaded to one device
|
||||
* can exceed one. Once application deallocates 1 network from device, all devices will unload the network from them.
|
||||
* @ingroup ov_runtime_hddl_prop_cpp_api
|
||||
*/
|
||||
static constexpr Property<bool, PropertyMutability::RW> use_sgad{"HDDL_USE_SGAD"};
|
||||
|
||||
/**
|
||||
* @brief [Only for HDDLPlugin]
|
||||
* Type: A signed int wrapped in a string, default is "0".
|
||||
* This config gives a "group id" for a certain device when this device has been reserved for certain client, client
|
||||
* can use this device grouped by calling this group id while other client can't use this device
|
||||
* Each device has their own group id. Device in one group shares same group id.
|
||||
* @ingroup ov_runtime_hddl_prop_cpp_api
|
||||
*/
|
||||
static constexpr Property<std::string, PropertyMutability::RW> group_device{"HDDL_GROUP_DEVICE"};
|
||||
|
||||
} // namespace hddl
|
||||
} // namespace intel_myriad
|
||||
} // namespace ov
|
||||
@@ -1,155 +0,0 @@
|
||||
// Copyright (C) 2022 Intel Corporation
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
//
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <openvino/runtime/properties.hpp>
|
||||
#include <string>
|
||||
|
||||
namespace ov {
|
||||
|
||||
/**
|
||||
* @defgroup ov_runtime_myriad_hddl_prop_cpp_api Intel MYRIAD & HDDL specific properties
|
||||
* @ingroup ov_runtime_cpp_api
|
||||
* Set of Intel MYRIAD & HDDL specific properties.
|
||||
*
|
||||
* @defgroup ov_runtime_myriad_prop_cpp_api Intel MYRIAD specific properties
|
||||
* @ingroup ov_runtime_cpp_api
|
||||
* Set of Intel MYRIAD specific properties.
|
||||
*
|
||||
* @defgroup ov_runtime_hddl_prop_cpp_api Intel HDDL specific properties
|
||||
* @ingroup ov_runtime_cpp_api
|
||||
* Set of Intel HDDL specific properties.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @brief Namespace with Intel MYRIAD specific properties
|
||||
*/
|
||||
namespace intel_myriad {
|
||||
|
||||
/**
|
||||
* @brief Turn on HW stages usage (applicable for MyriadX devices only).
|
||||
* @ingroup ov_runtime_myriad_hddl_prop_cpp_api
|
||||
*/
|
||||
static constexpr Property<bool, PropertyMutability::RW> enable_hw_acceleration{"MYRIAD_ENABLE_HW_ACCELERATION"};
|
||||
|
||||
/**
|
||||
* @brief The flag for adding to the profiling information the time of obtaining a tensor.
|
||||
* @ingroup ov_runtime_myriad_hddl_prop_cpp_api
|
||||
*/
|
||||
static constexpr Property<bool, PropertyMutability::RW> enable_receiving_tensor_time{
|
||||
"MYRIAD_ENABLE_RECEIVING_TENSOR_TIME"};
|
||||
|
||||
/**
|
||||
* @brief This option allows to pass custom layers binding xml.
|
||||
* If layer is present in such an xml, it would be used during inference even if the layer is natively supported
|
||||
* @ingroup ov_runtime_myriad_hddl_prop_cpp_api
|
||||
*/
|
||||
static constexpr Property<std::string, PropertyMutability::RW> custom_layers{"MYRIAD_CUSTOM_LAYERS"};
|
||||
|
||||
/**
|
||||
* @brief Enum to define possible device protocols
|
||||
* @ingroup ov_runtime_myriad_hddl_prop_cpp_api
|
||||
*/
|
||||
enum class Protocol {
|
||||
PCIE = 0, //!< Will use a device with PCIE protocol
|
||||
USB = 1, //!< Will use a device with USB protocol
|
||||
};
|
||||
|
||||
/** @cond INTERNAL */
|
||||
inline std::ostream& operator<<(std::ostream& os, const Protocol& protocol) {
|
||||
switch (protocol) {
|
||||
case Protocol::PCIE:
|
||||
return os << "MYRIAD_PCIE";
|
||||
case Protocol::USB:
|
||||
return os << "MYRIAD_USB";
|
||||
default:
|
||||
OPENVINO_THROW("Unsupported myriad protocol");
|
||||
}
|
||||
};
|
||||
inline std::istream& operator>>(std::istream& is, Protocol& protocol) {
|
||||
std::string str;
|
||||
is >> str;
|
||||
if (str == "MYRIAD_PCIE") {
|
||||
protocol = Protocol::PCIE;
|
||||
} else if (str == "MYRIAD_USB") {
|
||||
protocol = Protocol::USB;
|
||||
} else {
|
||||
OPENVINO_THROW("Unsupported myriad protocol: ", str);
|
||||
}
|
||||
return is;
|
||||
};
|
||||
/** @endcond */
|
||||
|
||||
// Myriad specific properties
|
||||
|
||||
/**
|
||||
* @brief This option allows to specify protocol.
|
||||
* @ingroup ov_runtime_myriad_prop_cpp_api
|
||||
*/
|
||||
static constexpr Property<Protocol, PropertyMutability::RW> protocol{"MYRIAD_PROTOCOL"};
|
||||
|
||||
/**
|
||||
* @brief The flag to reset stalled devices.
|
||||
* @ingroup ov_runtime_myriad_prop_cpp_api
|
||||
*/
|
||||
static constexpr Property<bool, PropertyMutability::RW> enable_force_reset{"MYRIAD_ENABLE_FORCE_RESET"};
|
||||
|
||||
/**
|
||||
* @brief Enum to define possible device mymory types
|
||||
* @ingroup ov_runtime_myriad_prop_cpp_api
|
||||
*/
|
||||
enum class DDRType {
|
||||
MYRIAD_DDR_AUTO = 0, //!< Automatic setting of DDR memory type
|
||||
MYRIAD_DDR_MICRON_2GB = 1, //!< Using a device with MICRON_2GB DDR memory type
|
||||
MYRIAD_DDR_SAMSUNG_2GB = 2, //!< Using a device with SAMSUNG_2GB DDR memory type
|
||||
MYRIAD_DDR_HYNIX_2GB = 3, //!< Using a device with HYNIX_2GB DDR memory type
|
||||
MYRIAD_DDR_MICRON_1GB = 4, //!< Using a device with MICRON_1GB DDR memory type
|
||||
};
|
||||
|
||||
/** @cond INTERNAL */
|
||||
inline std::ostream& operator<<(std::ostream& os, const DDRType& ddrType) {
|
||||
switch (ddrType) {
|
||||
case DDRType::MYRIAD_DDR_AUTO:
|
||||
return os << "MYRIAD_DDR_AUTO";
|
||||
case DDRType::MYRIAD_DDR_MICRON_2GB:
|
||||
return os << "MYRIAD_DDR_MICRON_2GB";
|
||||
case DDRType::MYRIAD_DDR_SAMSUNG_2GB:
|
||||
return os << "MYRIAD_DDR_SAMSUNG_2GB";
|
||||
case DDRType::MYRIAD_DDR_HYNIX_2GB:
|
||||
return os << "MYRIAD_DDR_HYNIX_2GB";
|
||||
case DDRType::MYRIAD_DDR_MICRON_1GB:
|
||||
return os << "MYRIAD_DDR_MICRON_1GB";
|
||||
default:
|
||||
OPENVINO_THROW("Unsupported myriad ddr type");
|
||||
}
|
||||
};
|
||||
|
||||
inline std::istream& operator>>(std::istream& is, DDRType& ddrType) {
|
||||
std::string str;
|
||||
is >> str;
|
||||
if (str == "MYRIAD_DDR_AUTO") {
|
||||
ddrType = DDRType::MYRIAD_DDR_AUTO;
|
||||
} else if (str == "MYRIAD_DDR_MICRON_2GB") {
|
||||
ddrType = DDRType::MYRIAD_DDR_MICRON_2GB;
|
||||
} else if (str == "MYRIAD_DDR_SAMSUNG_2GB") {
|
||||
ddrType = DDRType::MYRIAD_DDR_SAMSUNG_2GB;
|
||||
} else if (str == "MYRIAD_DDR_HYNIX_2GB") {
|
||||
ddrType = DDRType::MYRIAD_DDR_HYNIX_2GB;
|
||||
} else if (str == "MYRIAD_DDR_MICRON_1GB") {
|
||||
ddrType = DDRType::MYRIAD_DDR_MICRON_1GB;
|
||||
} else {
|
||||
OPENVINO_THROW("Unsupported myriad protocol: ", str);
|
||||
}
|
||||
return is;
|
||||
};
|
||||
/** @endcond */
|
||||
|
||||
/**
|
||||
* @brief This option allows to specify device memory type.
|
||||
* @ingroup ov_runtime_myriad_prop_cpp_api
|
||||
*/
|
||||
static constexpr Property<DDRType, PropertyMutability::RW> ddr_type{"MYRIAD_DDR_TYPE"};
|
||||
} // namespace intel_myriad
|
||||
} // namespace ov
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"makeCmd" : "cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_PYTHON=OFF -DTHREADING=TBB -DENABLE_MKL_DNN=ON -DENABLE_CLDNN=OFF -DENABLE_INTEL_GNA=OFF -DENABLE_INTEL_VPU=OFF -DENABLE_INTEL_MYRIAD=OFF -DENABLE_INTEL_MYRIAD_COMMON=OFF -DENABLE_HDDL=OFF -DENABLE_MODELS=OFF -DENABLE_SAMPLES=ON -DENABLE_TESTS=OFF -DENABLE_HETERO=OFF -DENABLE_TEMPLATE=OFF -DENABLE_CPU_DEBUG_CAPS=ON -DENABLE_DEBUG_CAPS=ON -DENABLE_OV_CORE_BACKEND_UNIT_TESTS=OFF -DENABLE_OPENVINO_DEBUG=ON ..",
|
||||
"makeCmd" : "cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_PYTHON=OFF -DTHREADING=TBB -DENABLE_INTEL_GPU=OFF -DENABLE_INTEL_GNA=OFF -DENABLE_MODELS=OFF -DENABLE_SAMPLES=ON -DENABLE_TESTS=OFF -DENABLE_HETERO=OFF -DENABLE_TEMPLATE=OFF -DENABLE_CPU_DEBUG_CAPS=ON -DENABLE_DEBUG_CAPS=ON -DENABLE_OPENVINO_DEBUG=ON ..",
|
||||
"appCmd" : "./benchmark_app -m <model_path> -t 10",
|
||||
"envVars" : [
|
||||
{"name" : "OV_CPU_BLOB_DUMP_NODE_TYPE", "val" : "Output"},
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"appCmd" : "./benchmark_app -m <model_path> -d CPU -t 10",
|
||||
"makeCmd" : "cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_PYTHON=OFF -DTHREADING=TBB -DENABLE_MKL_DNN=ON -DENABLE_CLDNN=OFF -DENABLE_INTEL_GNA=OFF -DENABLE_INTEL_VPU=OFF -DENABLE_INTEL_MYRIAD=OFF -DENABLE_INTEL_MYRIAD_COMMON=OFF -DENABLE_HDDL=OFF -DENABLE_MODELS=OFF -DENABLE_SAMPLES=ON -DENABLE_TESTS=OFF -DENABLE_HETERO=OFF -DENABLE_TEMPLATE=OFF -DENABLE_CPU_DEBUG_CAPS=OFF -DENABLE_DEBUG_CAPS=OFF -DENABLE_OV_CORE_BACKEND_UNIT_TESTS=OFF -DENABLE_OPENVINO_DEBUG=OFF ..",
|
||||
"makeCmd" : "cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_PYTHON=OFF -DTHREADING=TBB -DENABLE_INTEL_GPU=OFF -DENABLE_INTEL_GNA=OFF -DENABLE_MODELS=OFF -DENABLE_SAMPLES=ON -DENABLE_TESTS=OFF -DENABLE_HETERO=OFF -DENABLE_TEMPLATE=OFF -DENABLE_CPU_DEBUG_CAPS=OFF -DENABLE_DEBUG_CAPS=OFF -DENABLE_OPENVINO_DEBUG=OFF ..",
|
||||
"runConfig" : {
|
||||
"commitList" : {
|
||||
"getCommitListCmd" : "git log <start_commit>..<end_commit> --boundary --pretty=\"%h\""
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"appCmd" : "./benchmark_app -m <model_path> -d CPU -hint throughput -inference_only=false -t 60",
|
||||
"makeCmd" : "cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_PYTHON=OFF -DTHREADING=TBB -DENABLE_MKL_DNN=ON -DENABLE_CLDNN=OFF -DENABLE_INTEL_GNA=OFF -DENABLE_INTEL_VPU=OFF -DENABLE_INTEL_MYRIAD=OFF -DENABLE_INTEL_MYRIAD_COMMON=OFF -DENABLE_HDDL=OFF -DENABLE_MODELS=OFF -DENABLE_SAMPLES=ON -DENABLE_TESTS=OFF -DENABLE_HETERO=OFF -DENABLE_TEMPLATE=OFF -DENABLE_CPU_DEBUG_CAPS=OFF -DENABLE_DEBUG_CAPS=OFF -DENABLE_OV_CORE_BACKEND_UNIT_TESTS=OFF -DENABLE_OPENVINO_DEBUG=OFF ..",
|
||||
"makeCmd" : "cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_PYTHON=OFF -DTHREADING=TBB -DENABLE_INTEL_GPU=OFF -DENABLE_INTEL_GNA=OFF -DENABLE_MODELS=OFF -DENABLE_SAMPLES=ON -DENABLE_TESTS=OFF -DENABLE_HETERO=OFF -DENABLE_TEMPLATE=OFF -DENABLE_CPU_DEBUG_CAPS=OFF -DENABLE_DEBUG_CAPS=OFF -DENABLE_OPENVINO_DEBUG=OFF ..",
|
||||
"runConfig" : {
|
||||
"commitList" : {
|
||||
"getCommitListCmd" : "git log <start_commit>..<end_commit> --boundary --pretty=\"%h\""
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
{"name" : "MO_ROOT", "val" : "/<ov_path>/tools/mo/openvino/tools/"},
|
||||
{"name" : "OPENVINO_ROOT_DIR", "val" : "/<ov_path>/"}
|
||||
],
|
||||
"makeCmd" : "cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_PYTHON=ON -DPYTHON_EXECUTABLE=/usr/bin/python3.8 -DPYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.8.so -DPYTHON_INCLUDE_DIR=/usr/include/python3.8 -DTHREADING=TBB -DENABLE_MKL_DNN=ON -DENABLE_CLDNN=OFF -DENABLE_INTEL_GNA=OFF -DENABLE_INTEL_VPU=OFF -DENABLE_INTEL_MYRIAD=OFF -DENABLE_INTEL_MYRIAD_COMMON=OFF -DENABLE_HDDL=OFF -DENABLE_MODELS=OFF -DENABLE_SAMPLES=OFF -DENABLE_TESTS=OFF -DENABLE_CPU_DEBUG_CAPS=OFF -DENABLE_HETERO=OFF -DENABLE_TEMPLATE=OFF -DENABLE_CPU_DEBUG_CAPS=OFF -DENABLE_DEBUG_CAPS=OFF -DENABLE_OV_CORE_BACKEND_UNIT_TESTS=OFF -DENABLE_OPENVINO_DEBUG=OFF ..",
|
||||
"makeCmd" : "cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_PYTHON=ON -DPYTHON_EXECUTABLE=/usr/bin/python3.8 -DPYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.8.so -DPYTHON_INCLUDE_DIR=/usr/include/python3.8 -DTHREADING=TBB -DENABLE_INTEL_GPU=OFF -DENABLE_INTEL_GNA=OFF -DENABLE_MODELS=OFF -DENABLE_SAMPLES=OFF -DENABLE_TESTS=OFF -DENABLE_CPU_DEBUG_CAPS=OFF -DENABLE_HETERO=OFF -DENABLE_TEMPLATE=OFF -DENABLE_CPU_DEBUG_CAPS=OFF -DENABLE_DEBUG_CAPS=OFF -DENABLE_OPENVINO_DEBUG=OFF ..",
|
||||
"runConfig" : {
|
||||
"commitList" : {
|
||||
"getCommitListCmd" : "git log <start_commit>..<end_commit> --boundary --pretty=\"%h\""
|
||||
|
||||
@@ -54,12 +54,12 @@
|
||||
...
|
||||
```
|
||||
|
||||
* This unit test is built into `clDNN_unit_tests`. It is a `gtest` application.
|
||||
* This unit test is built into `ov_gpu_unit_tests`. It is a `gtest` application.
|
||||
```
|
||||
# Show list of test cases
|
||||
openvino/bin/intel64/Debug$ ./clDNN_unit_tests64 --gtest_list_tests
|
||||
openvino/bin/intel64/Debug$ ./ov_gpu_unit_tests --gtest_list_tests
|
||||
# Run test
|
||||
openvino/bin/intel64/Debug$ ./clDNN_unit_tests64 --gtest_filter=scatter_elements_update_gpu_fp16.*
|
||||
openvino/bin/intel64/Debug$ ./ov_gpu_unit_tests --gtest_filter=scatter_elements_update_gpu_fp16.*
|
||||
```
|
||||
|
||||
* Test scope needs to be comprehensive, but not wasteful. These tests run for every PR in CI. Let's save the planet.
|
||||
@@ -68,7 +68,7 @@
|
||||
* It is usually easy to fuse some layers, such as *scale*, *activation*, *quantize*, and *eltwise*, into the previous layer. This fusing rule can be added to `prepare_primitive_fusing::fuse_simple_primitives`.
|
||||
* `fuse_simple_primitives` is called during [graph compilation phase](https://github.com/openvinotoolkit/openvino/blob/71c50c224964bf8c24378d16f015d74e2c1e1ce8/inference-engine/thirdparty/clDNN/src/program.cpp#L430)
|
||||
* See general description of layer fusion [here](https://docs.openvinotoolkit.org/latest/openvino_docs_IE_DG_supported_plugins_CL_DNN.html#optimizations)
|
||||
* Unit tests for layer fusion are placed in a single file: [fusings_gpu_test.cpp](https://github.com/openvinotoolkit/openvino/blob/master/inference-engine/thirdparty/clDNN/tests/test_cases/fusings_gpu_test.cpp). It is also compiled into `clDNN_unit_tests`.
|
||||
* Unit tests for layer fusion are placed in a single file: [fusings_gpu_test.cpp](https://github.com/openvinotoolkit/openvino/blob/master/inference-engine/thirdparty/clDNN/tests/test_cases/fusings_gpu_test.cpp). It is also compiled into `ov_gpu_unit_tests`.
|
||||
* Code for fused layers are generated with `jitter`. It is created as `FUSED_OPS..` macro in OCL code. This generation logic is in `KernelBase::MakeFusedOpsJitConstants`.
|
||||
|
||||
1. Add / update factory for this operation in the GPU plugin to use new primitive in inference-engine.
|
||||
|
||||
@@ -57,38 +57,35 @@ openvino/src/plugins/intel_gpu/tests - root of Intel GPU unit test
|
||||
|
||||
## Build unit test
|
||||
|
||||
1. Turn on `ENABLE_TESTS` and `ENABLE_CLDNN_TESTS` in cmake option:
|
||||
1. Turn on `ENABLE_TESTS` in cmake option:
|
||||
|
||||
```bash
|
||||
cmake -DCMAKE_BUILD_TYPE=Release \
|
||||
-DENABLE_TESTS=ON \
|
||||
-DENABLE_CLDNN_TESTS=ON \
|
||||
-DENABLE_CLDNN=ON ..
|
||||
cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_TESTS=ON ..
|
||||
```
|
||||
|
||||
2. Build
|
||||
|
||||
```bash
|
||||
make clDNN_unit_tests
|
||||
make ov_gpu_unit_tests
|
||||
```
|
||||
|
||||
3. You can find `clDNN_unit_tests64` in *bin* directory after build
|
||||
3. You can find `ov_gpu_unit_tests` in *bin* directory after build
|
||||
|
||||
## Run unit test
|
||||
|
||||
You can run _`clDNN_unit_tests64`_ in *bin* directory which is the output of OpenVINO build
|
||||
You can run _`ov_gpu_unit_tests`_ in *bin* directory which is the output of OpenVINO build
|
||||
|
||||
If you want to run a specific unit test, you can use `gtest_filter` option as follows:
|
||||
|
||||
```
|
||||
./clDNN_unit_tests64 --gtest_filter='*filter_name*'
|
||||
./ov_gpu_unit_tests --gtest_filter='*filter_name*'
|
||||
```
|
||||
|
||||
Then, you can get the result similar to:
|
||||
|
||||
```bash
|
||||
openvino/bin/intel64/Release$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PWD
|
||||
openvino/bin/intel64/Release$ ./clDNN_unit_tests64 --gtest_filter='*fusings_gpu/conv_fp32_reorder_fsv16_to_bfyx.basic/0*'
|
||||
openvino/bin/intel64/Release$ ./ov_gpu_unit_tests --gtest_filter='*fusings_gpu/conv_fp32_reorder_fsv16_to_bfyx.basic/0*'
|
||||
Running main() from /home/openvino/thirdparty/gtest/gtest/googletest/src/gtest_main.cc
|
||||
Note: Google Test filter = *fusings_gpu/conv_fp32_reorder_fsv16_to_bfyx.basic/0*
|
||||
[==========] Running 1 test from 1 test suite.
|
||||
|
||||
Reference in New Issue
Block a user