NVIDIA IndeX API nvidia_logo_transpbg.gif Up
idistributed_inference_technique.h
Go to the documentation of this file.
1/******************************************************************************
2 * Copyright 2023 NVIDIA Corporation. All rights reserved.
3 *****************************************************************************/
6
7#ifndef NVIDIA_INDEX_IDISTRIBUTED_INFERENCE_TECHNIQUE_H
8#define NVIDIA_INDEX_IDISTRIBUTED_INFERENCE_TECHNIQUE_H
9
10#include <mi/dice.h>
11#include <mi/base/interface_declare.h>
12
13#include <nv/index/iattribute.h>
19
20namespace nv {
21namespace index {
22
30 public mi::base::Interface_declare<0xfc8e88e7,0x7d00,0x41ae,0x89,0xa1,0x10,0x7f,0x8c,0x83,0xff,0x7a,
31 nv::index::IAttribute>
32{
33public:
59 virtual void inference(
60 mi::neuraylib::IDice_transaction* dice_transaction,
61 const IInference_source_data* source_data,
62 IMemory_manager* memory_manager,
63 IInference_result* result_data_assignment) const = 0;
64
73 virtual const char* get_configuration() const
74 {
75 return 0;
76 }
77};
78
86template <mi::Uint32 i_id1, mi::Uint16 i_id2, mi::Uint16 i_id3,
87 mi::Uint8 i_id4, mi::Uint8 i_id5, mi::Uint8 i_id6, mi::Uint8 i_id7,
88 mi::Uint8 i_id8, mi::Uint8 i_id9, mi::Uint8 i_id10, mi::Uint8 i_id11,
91 public mi::neuraylib::Element<i_id1,i_id2,i_id3,i_id4,i_id5,i_id6,i_id7,i_id8,i_id9,i_id10,i_id11,I>
92{
93public:
96 virtual mi::base::Uuid get_attribute_class() const
97 {
98 return nv::index::IDistributed_inference_technique::IID();
99 }
100
103 virtual bool multiple_active_instances() const
104 {
105 return false;
106 }
107
112 virtual void set_enabled(bool enable)
113 {
114 m_enabled = enable;
115 }
116
121 virtual bool get_enabled() const
122 {
123 return m_enabled;
124 }
125
135 virtual void set_meta_data(mi::neuraylib::Tag_struct tag)
136 {
137 // avoid warnings
138 (void) tag;
139 }
140
146 virtual mi::neuraylib::Tag_struct get_meta_data() const { return mi::neuraylib::NULL_TAG; }
147
148protected:
150};
151
152} // namespace index
153} // namespace nv
154
155#endif // NVIDIA_INDEX_IDISTRIBUTED_INFERENCE_TECHNIQUE_H
Mixin class for implementing the IDistributed_inference_technique interface.
Definition: idistributed_inference_technique.h:92
virtual void set_enabled(bool enable)
Attribute is always enabled.
Definition: idistributed_inference_technique.h:112
virtual void set_meta_data(mi::neuraylib::Tag_struct tag)
Each scene element can store additional user-defined meta data.
Definition: idistributed_inference_technique.h:135
virtual bool get_enabled() const
Attribute is always enabled.
Definition: idistributed_inference_technique.h:121
bool m_enabled
! Flag is inference technique enabled as attribute in the scene description.
Definition: idistributed_inference_technique.h:149
virtual bool multiple_active_instances() const
Only a single instance of this attribute can be active at the same time.
Definition: idistributed_inference_technique.h:103
virtual mi::base::Uuid get_attribute_class() const
Return IID as attribute class.
Definition: idistributed_inference_technique.h:96
virtual mi::neuraylib::Tag_struct get_meta_data() const
Retrieve the scene element's reference to the user-defined meta data.
Definition: idistributed_inference_technique.h:146
Interface class for user-defined AI/DL inference techniques.
Definition: idistributed_inference_technique.h:32
virtual const char * get_configuration() const
Returns optional configuration settings that may be used by the library for the session export mechan...
Definition: idistributed_inference_technique.h:73
virtual void inference(mi::neuraylib::IDice_transaction *dice_transaction, const IInference_source_data *source_data, IMemory_manager *memory_manager, IInference_result *result_data_assignment) const =0
Launches the user-defined inference technique.
Interface class representing AI/DL inference results to be consumed by NVIDIA IndeX.
Definition: iinference_result.h:24
Interface class exposes the source data that an inference technique can operate on.
Definition: iinference_source_data.h:26
Interface class for allocating NVIDIA IndeX library-side buffers for use also on the application-side...
Definition: imemory_manager.h:71
Base class representing attributes that can be defined in a scene description.
Interfaces for accessing distributed data.
Distributed subset interaces for a large-scale distributed datasets.
AI/DL inference results.
Interface for source data that an inference technique can operate on.
Memory management.
Common namespace for all NVIDIA APIs.
Definition: iindex.h:349