Publishing 2020.1 content
[platform/upstream/dldt.git] / inference-engine / include / ie_primitive_info.hpp
1 // Copyright (C) 2018-2020 Intel Corporation
2 // SPDX-License-Identifier: Apache-2.0
3 //
4
5 /**
6  * @brief A header file for the PrimitiveInfo struct
7  *
8  * @file ie_primitive_info.hpp
9  */
10
11 #pragma once
12
13 #include <map>
14 #include <memory>
15 #include <string>
16 #include <vector>
17
18 #include "ie_tensor_info.hpp"
19
20 namespace InferenceEngine {
21
22 /**
23  * @brief Structure with information about Primitive
24  */
25 struct PrimitiveInfo {
26     /**
27      * @brief A shared pointer to PrimitiveInfo object
28      */
29     using Ptr = std::shared_ptr<PrimitiveInfo>;
30
31     /**
32      * @brief Some internal id, could be used as a name
33      */
34     std::string sId;
35
36     /**
37      * @brief Implementation type of this kernel
38      */
39     std::string sType;
40
41     /**
42      * @brief Mainly the allocation of the output tensor
43      */
44     int iPreAllocatedMemory;
45
46     /**
47      * @brief Vector of TensorInfo objects that are related to input tensors
48      */
49     std::vector<TensorInfo::Ptr> inputs;
50
51     /**
52      * @brief Vector of TensorInfo object that are related to outputs tensors
53      */
54     std::vector<TensorInfo::Ptr> outputs;
55
56     /**
57      * @brief Any other important textual information user might find interesting about this kernel
58      */
59     std::map<std::string, std::string> extraInfo;
60 };
61
62 }  // namespace InferenceEngine