Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added compilation of Plugin API headers with strict flags #1654

Merged
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
#include <description_buffer.hpp>
#include "cldnn_infer_request.h"
#include "cldnn_remote_context.h"
#include "inference_engine.hpp"
#include "cldnn_executable_network.h"
#include "cldnn_itt.h"

Expand Down
2 changes: 1 addition & 1 deletion inference-engine/src/gna_plugin/connection_details.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

#pragma once

#include "inference_engine.hpp"
#include "ie_layers.h"

namespace GNAPluginNS {
struct ConnectionDetails {
Expand Down
1 change: 1 addition & 0 deletions inference-engine/src/gna_plugin/gna_graph_compiler.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
#include <string>
#include <vector>

#include "ie_layers.h"
#include "descriptions/gna_input_desc.hpp"
#include "descriptions/gna_flags.hpp"
#include "cpp_interfaces/base/ie_plugin_base.hpp"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
#include <string>
#include <vector>

#include "inference_engine.hpp"
#include "ie_layers.h"

namespace GNAPluginNS {
class GNAConcatLayer {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

#pragma once

#include "inference_engine.hpp"
#include "ie_layers.h"

namespace GNAPluginNS {
class GNACropLayer {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
#include <string>
#include <memory>
#include <vector>
#include "inference_engine.hpp"
#include "ie_layers.h"
#include "caseless.hpp"
#include "ie_algorithm.hpp"
#include "gna-api.h"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

#pragma once

#include "inference_engine.hpp"
#include "ie_layers.h"

namespace GNAPluginNS {
/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

#include <vector>

#include "ie_layers.h"
#include "cpp_interfaces/base/ie_plugin_base.hpp"

namespace GNAPluginNS {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
#include "xml_parse_utils.h"
#include "ie_ngraph_utils.hpp"
#include <ngraph/variant.hpp>
#include <ngraph/function.hpp>

namespace InferenceEngine {
namespace Serialization {
Expand Down
2 changes: 1 addition & 1 deletion inference-engine/src/mkldnn_plugin/bf16transformer.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@

#pragma once

#include <cpp/ie_cnn_network.h>
#include <caseless.hpp>
#include <string>
#include <set>
#include "inference_engine.hpp"

namespace MKLDNNPlugin {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
#include <nodes/mkldnn_concat_node.h>
#include <nodes/mkldnn_split_node.h>
#include <ie_compound_blob.h>
#include "inference_engine.hpp"
#include "mkldnn_exec_network.h"
#include "mkldnn_itt.h"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@

#pragma once

#include <ie_layers.h>
#include <ie_iextension.h>
#include <ie_input_info.hpp>
#include <ie_icnn_network.hpp>
Expand Down Expand Up @@ -68,7 +67,6 @@ static void copyInputOutputInfo(const InputsDataMap & networkInputs, const Outpu
newPtr.reset(new InputInfo());
copyPreProcess(it.second->getPreProcess(), newPtr->getPreProcess());
DataPtr newData(new Data(*it.second->getInputData()));
getInputTo(newData).clear();
newPtr->setInputData(newData);
}
_networkInputs[it.first] = newPtr;
Expand All @@ -77,7 +75,6 @@ static void copyInputOutputInfo(const InputsDataMap & networkInputs, const Outpu
DataPtr newData;
if (it.second) {
newData.reset(new Data(*it.second));
getInputTo(newData).clear();
}
_networkOutputs[it.first] = newData;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
namespace InferenceEngine {
namespace itt {
namespace domains {
OV_ITT_DOMAIN(Plugin);
OV_ITT_DOMAIN(Plugin)
}
}
}
1 change: 0 additions & 1 deletion inference-engine/src/plugin_api/exec_graph_info.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
#include <string>

#include <ngraph/node.hpp>
#include <ngraph/function.hpp>

/**
* @brief A namespace with const values for Execution Graph parameters names.
Expand Down
6 changes: 4 additions & 2 deletions inference-engine/src/plugin_api/generic_ie.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,10 @@
#include <ie_ishape_infer_extension.hpp>
#include <ie_parameter.hpp>
#include <ie_precision.hpp>
#include "ngraph/op/op.hpp"
#include <ngraph/ngraph.hpp>

#include <ngraph/op/op.hpp>
#include <ngraph/op/tensor_iterator.hpp>
#include <ngraph/graph_util.hpp>

namespace ngraph {
namespace op {
Expand Down
111 changes: 80 additions & 31 deletions inference-engine/tests/functional/inference_engine/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -38,37 +38,46 @@ include(CMakeParseArguments)

#
# ie_headers_compilation_with_custom_flags(TEST_SUFFIX <prefix>
# FLAGS <flags>
# DEFINITIONS <definitions>
# HEADERS_TO_SKIP <skip headers>
# CXX_STANDARD <number>)
# [FLAGS <flags>]
# [PLUGIN_API]
# [DEFINITIONS <definitions>]
# [HEADERS_TO_SKIP <skip headers>]
# [CXX_STANDARD <number>])
#
# Tests compilation with modern flags
#
function(ie_headers_compilation_with_custom_flags)
set(options)
set(oneValueArgs TEST_SUFFIX CXX_STANDARD)
set(multiValueArgs FLAGS DEFINITIONS HEADERS_TO_SKIP)
set(options PLUGIN_API)
set(oneValueArgs FLAGS TEST_SUFFIX CXX_STANDARD)
set(multiValueArgs DEFINITIONS HEADERS_TO_SKIP)
cmake_parse_arguments(IE_TEST "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})

file(GLOB_RECURSE header_files RELATIVE "${IE_MAIN_SOURCE_DIR}/include"
"${IE_MAIN_SOURCE_DIR}/include/*")
if(IE_TEST_PLUGIN_API)
set(IE_TEST_INCLUDE_DIRECTORY "${IE_MAIN_SOURCE_DIR}/src/plugin_api")
else()
set(IE_TEST_INCLUDE_DIRECTORY "${IE_MAIN_SOURCE_DIR}/include")
endif()

file(GLOB_RECURSE header_files RELATIVE "${IE_TEST_INCLUDE_DIRECTORY}"
"${IE_TEST_INCLUDE_DIRECTORY}/*")

if(NOT IE_TEST_CXX_STANDARD)
set(IE_TEST_CXX_STANDARD ${CMAKE_CXX_STANDARD})
endif()

if(NOT CLDNN__IOCL_ICD_INCDIRS)
list(APPEND IE_TEST_HEADERS_TO_SKIP "gpu/gpu_ocl_wrapper.hpp"
"gpu/gpu_context_api_ocl.hpp"
"gpu/gpu_context_api_va.hpp"
"gpu/gpu_context_api_dx.hpp")
endif()
if(NOT WIN32)
list(APPEND IE_TEST_HEADERS_TO_SKIP "gpu/gpu_context_api_dx.hpp")
endif()
if(NOT LIBVA_FOUND)
list(APPEND IE_TEST_HEADERS_TO_SKIP "gpu/gpu_context_api_va.hpp")
if(NOT IE_TEST_PLUGIN_API)
if(NOT CLDNN__IOCL_ICD_INCDIRS)
list(APPEND IE_TEST_HEADERS_TO_SKIP "gpu/gpu_ocl_wrapper.hpp"
"gpu/gpu_context_api_ocl.hpp"
"gpu/gpu_context_api_va.hpp"
"gpu/gpu_context_api_dx.hpp")
endif()
if(NOT WIN32)
list(APPEND IE_TEST_HEADERS_TO_SKIP "gpu/gpu_context_api_dx.hpp")
endif()
if(NOT LIBVA_FOUND)
list(APPEND IE_TEST_HEADERS_TO_SKIP "gpu/gpu_context_api_va.hpp")
endif()
endif()

set(content "\n")
Expand Down Expand Up @@ -96,17 +105,28 @@ function(ie_headers_compilation_with_custom_flags)

set(target_name ieFuncTestsCompilation${IE_TEST_TEST_SUFFIX})
add_library(${target_name} OBJECT ${source_file})
target_include_directories(${target_name} PRIVATE $<TARGET_PROPERTY:inference_engine,INTERFACE_INCLUDE_DIRECTORIES>)
target_include_directories(${target_name} PRIVATE "${IE_TEST_INCLUDE_DIRECTORY}"
$<TARGET_PROPERTY:inference_engine,INTERFACE_INCLUDE_DIRECTORIES>)
target_compile_definitions(${target_name} PRIVATE $<TARGET_PROPERTY:inference_engine,INTERFACE_COMPILE_DEFINITIONS>)

if(IE_TEST_PLUGIN_API)
# ngraph, pugixml, openvino::itt, inference_engine_preproc headers
target_include_directories(${target_name} SYSTEM PRIVATE
$<TARGET_PROPERTY:pugixml,INTERFACE_INCLUDE_DIRECTORIES>
$<TARGET_PROPERTY:openvino::itt,INTERFACE_INCLUDE_DIRECTORIES>)
target_include_directories(${target_name} PRIVATE
$<TARGET_PROPERTY:${NGRAPH_LIBRARIES},INTERFACE_INCLUDE_DIRECTORIES>
$<TARGET_PROPERTY:inference_engine_preproc,INTERFACE_INCLUDE_DIRECTORIES>)
else()
# OpenCL headers if any
if(CLDNN__IOCL_ICD_INCDIRS)
target_include_directories(${target_name} SYSTEM PRIVATE ${CLDNN__IOCL_ICD_INCDIRS})
endif()
endif()

# To include TBB headers as system
set_ie_threading_interface_for(${target_name})

# OpenCL headers if any
if(CLDNN__IOCL_ICD_INCDIRS)
target_include_directories(${target_name} SYSTEM PRIVATE ${CLDNN__IOCL_ICD_INCDIRS})
endif()

set_target_properties(${target_name} PROPERTIES
CXX_STANDARD ${IE_TEST_CXX_STANDARD}
CXX_STANDARD_REQUIRED OFF)
Expand All @@ -123,27 +143,56 @@ function(ie_headers_compilation_with_custom_flags)
add_dependencies(${TARGET_NAME} ${target_name})
endfunction()

# compilation with c++17
ie_headers_compilation_with_custom_flags(TEST_SUFFIX Cxx17 CXX_STANDARD 17)
#
# Public headers tests
#

ie_headers_compilation_with_custom_flags(TEST_SUFFIX Cxx17
CXX_STANDARD 17)

if(UNIX)
if(CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
ie_headers_compilation_with_custom_flags(TEST_SUFFIX WarningsAreErrors
FLAGS "-Werror-all -Werror -Wall")
else()
ie_headers_compilation_with_custom_flags(TEST_SUFFIX Pedantic FLAGS -Wpedantic)
ie_headers_compilation_with_custom_flags(TEST_SUFFIX Pedantic FLAGS "-Wpedantic")
endif()
else()
ie_headers_compilation_with_custom_flags(TEST_SUFFIX WindowsAreErrors
HEADERS_TO_SKIP "gpu/gpu_ocl_wrapper.hpp"
"gpu/gpu_context_api_ocl.hpp"
"gpu/gpu_context_api_dx.hpp"
FLAGS "/we4996 /W4 /WX")
ie_headers_compilation_with_custom_flags(TEST_SUFFIX Unicode
DEFINITIONS UNICODE _UNICODE)
endif()

# compilation with -Wweak-vtables
# if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
# ie_headers_compilation_with_custom_flags(TEST_SUFFIX WeakTables FLAGS -Wweak-vtables)
# endif()

#
# Plugin API headers tests
#

ie_headers_compilation_with_custom_flags(TEST_SUFFIX PluginApiCxx17
HEADERS_TO_SKIP "generic_ie.hpp"
CXX_STANDARD 17 PLUGIN_API)

if(UNIX)
if(CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
ie_headers_compilation_with_custom_flags(TEST_SUFFIX PluginApiWarningsAreErrors
HEADERS_TO_SKIP "generic_ie.hpp"
FLAGS "-Werror-all -Werror -Wall"
PLUGIN_API)
else()
ie_headers_compilation_with_custom_flags(TEST_SUFFIX PluginApiPedantic FLAGS "-Wpedantic"
HEADERS_TO_SKIP "generic_ie.hpp"
PLUGIN_API)
endif()
else()
# TODO: enable
# ie_headers_compilation_with_custom_flags(TEST_SUFFIX PluginApiWindowsAreErrors
# HEADERS_TO_SKIP "generic_ie.hpp"
# FLAGS "/we4996 /W4 /WX"
# PLUGIN_API)
endif()
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
#include <frontend/model_quantizer.hpp>
#include "frontend/layer_quantizer.hpp"
#include "gna_matcher.hpp"
#include <ie_core.hpp>

using namespace InferenceEngine;
using namespace GNAPluginNS;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
#include "net_pass.h"
#include "matchers/input_data_matcher.hpp"
#include <blob_factory.hpp>
#include <ie_core.hpp>
#include <details/ie_cnn_network_tools.h>

#include "unit_test_utils/mocks/mock_icnn_network.hpp"
Expand Down
6 changes: 3 additions & 3 deletions ngraph/src/ngraph/node.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,7 @@ namespace ngraph
public:
virtual ~Node();

virtual bool visit_attributes(AttributeVisitor& visitor) { return false; }
virtual bool visit_attributes(AttributeVisitor&) { return false; }
/// \returns the autobroadcasr spec
virtual const op::AutoBroadcastSpec& get_autob() const;
/// \brief Evaluates the op on input_values putting results in output_values
Expand Down Expand Up @@ -531,14 +531,14 @@ namespace ngraph
#define NGRAPH_RTTI_DECLARATION \
static const ::ngraph::Node::type_info_t type_info; \
const ::ngraph::Node::type_info_t& get_type_info() const override; \
static const ::ngraph::Node::type_info_t& get_type_info_static();
static const ::ngraph::Node::type_info_t& get_type_info_static()

#define _NGRAPH_RTTI_DEFINITION_COMMON(CLASS) \
const ::ngraph::Node::type_info_t& CLASS::get_type_info() const \
{ \
return get_type_info_static(); \
} \
const ::ngraph::Node::type_info_t CLASS::type_info = CLASS::get_type_info_static();
const ::ngraph::Node::type_info_t CLASS::type_info = CLASS::get_type_info_static()
#define _NGRAPH_RTTI_DEFINITION_WITH_PARENT(CLASS, TYPE_NAME, _VERSION_INDEX, PARENT_CLASS) \
const ::ngraph::Node::type_info_t& CLASS::get_type_info_static() \
{ \
Expand Down