model_variant_handle.h Source File

model_variant_handle.h Source File#

Runtime Library: model_variant_handle.h Source File
Runtime Library v0.30
Mobilint SDK qb
model_variant_handle.h
Go to the documentation of this file.
1
4
5#ifndef MACCEL_MODEL_VARIANT_HANDLE_H_
6#define MACCEL_MODEL_VARIANT_HANDLE_H_
7
8#include <stdint.h>
9
10#include <vector>
11
12#include "maccel/export.h"
13#include "maccel/status_code.h"
14#include "maccel/type.h"
15
16namespace mobilint {
17
18class ModelImpl;
19
29class MACCEL_EXPORT ModelVariantHandle {
30public:
31 ModelVariantHandle(const ModelVariantHandle& other) = delete;
32 ModelVariantHandle(ModelVariantHandle&& other) = delete;
33 ModelVariantHandle& operator=(const ModelVariantHandle& rhs) = delete;
34 ModelVariantHandle& operator=(ModelVariantHandle&& rhs) noexcept = delete;
35 ~ModelVariantHandle();
36
42 int getVariantIdx() const;
43
49 const std::vector<std::vector<int64_t>>& getModelInputShape() const;
50
56 const std::vector<std::vector<int64_t>>& getModelOutputShape() const;
57
63 const std::vector<BufferInfo>& getInputBufferInfo() const;
64
70 const std::vector<BufferInfo>& getOutputBufferInfo() const;
71
77 std::vector<Scale> getInputScale() const;
78
84 std::vector<Scale> getOutputScale() const;
85
108
109 // Acquire buffer
110 std::vector<Buffer> acquireInputBuffer(
111 const std::vector<std::vector<int>>& seqlens = {}) const;
112 std::vector<Buffer> acquireOutputBuffer(
113 const std::vector<std::vector<int>>& seqlens = {}) const;
114 std::vector<std::vector<Buffer>> acquireInputBuffers(
115 int batch_size, const std::vector<std::vector<int>>& seqlens = {}) const;
116 std::vector<std::vector<Buffer>> acquireOutputBuffers(
117 int batch_size, const std::vector<std::vector<int>>& seqlens = {}) const;
118
119 // Deallocate acquired Input/Output buffer
120 StatusCode releaseBuffer(std::vector<Buffer>& buffer) const;
121 StatusCode releaseBuffers(std::vector<std::vector<Buffer>>& buffers) const;
122
123 // Reposition single batch
124 StatusCode repositionInputs(const std::vector<float*>& input,
125 std::vector<Buffer>& input_buf,
126 const std::vector<std::vector<int>>& seqlens = {}) const;
127 StatusCode repositionOutputs(const std::vector<Buffer>& output_buf,
128 std::vector<float*>& output,
129 const std::vector<std::vector<int>>& seqlens = {}) const;
130 StatusCode repositionOutputs(const std::vector<Buffer>& output_buf,
131 std::vector<std::vector<float>>& output,
132 const std::vector<std::vector<int>>& seqlens = {}) const;
133
134 // Reposition multiple batches
135 StatusCode repositionInputs(const std::vector<float*>& input,
136 std::vector<std::vector<Buffer>>& input_buf,
137 const std::vector<std::vector<int>>& seqlens = {}) const;
138 StatusCode repositionOutputs(const std::vector<std::vector<Buffer>>& output_buf,
139 std::vector<float*>& output,
140 const std::vector<std::vector<int>>& seqlens = {}) const;
141 StatusCode repositionOutputs(const std::vector<std::vector<Buffer>>& output_buf,
142 std::vector<std::vector<float>>& output,
143 const std::vector<std::vector<int>>& seqlens = {}) const;
144
146
147private:
148 ModelVariantHandle(int variant_idx, const ModelImpl& model_impl);
149
150 const int mIdx;
151 const ModelImpl& mModelImpl;
152
153 friend class ModelImpl;
154};
155
156} // namespace mobilint
157
158#endif // MACCEL_MODEL_VARIANT_HANDLE_H_
const std::vector< std::vector< int64_t > > & getModelOutputShape() const
Returns the output shape for this model variant.
const std::vector< BufferInfo > & getOutputBufferInfo() const
Returns the output buffer information for this variant.
std::vector< Scale > getInputScale() const
Returns the input quantization scale(s) for this variant.
std::vector< Scale > getOutputScale() const
Returns the output quantization scale(s) for this variant.
const std::vector< BufferInfo > & getInputBufferInfo() const
Returns the input buffer information for this variant.
const std::vector< std::vector< int64_t > > & getModelInputShape() const
Returns the input shape for this model variant.
int getVariantIdx() const
Returns the index of this model variant.
StatusCode
Enumerates status codes for the maccel runtime.
Definition status_code.h:26