Removed Intel Myriad headers from new API (#18736)

* Removed Intel Myriad from new API

* Renamed GPU unit tests
This commit is contained in:
Ilya Lavrenov
2023-07-24 16:20:08 +04:00
committed by GitHub
parent 1d3dec9e99
commit 86c68fffe4
10 changed files with 17 additions and 376 deletions
+1 -1
View File
@@ -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.