acc.h Source File

acc.h Source File#

SDK qb Runtime Library: acc.h Source File
SDK qb Runtime Library v1.4
MCS001-KR
acc.h
Go to the documentation of this file.
1// Copyright ⓒ 2019- Mobilint Inc. All rights reserved.
5
6#ifndef QBRUNTIME_ACC_H_
7#define QBRUNTIME_ACC_H_
8
9#ifndef _MSC_VER
10#include <experimental/propagate_const>
11#endif
12#include <stdint.h>
13
14#include <memory>
15#include <string>
16#include <vector>
17
18#include "qbruntime/export.h"
19#include "qbruntime/model.h"
22#include "qbruntime/type.h"
23
24namespace mobilint {
25
30
31class AcceleratorImpl;
32
40class QBRUNTIME_EXPORT Accelerator {
41public:
52 static std::unique_ptr<Accelerator> create(StatusCode& sc);
53
71 static std::unique_ptr<Accelerator> create(int dev_no, StatusCode& sc);
72
102 static std::unique_ptr<Accelerator> create(const std::string& device_name,
103 StatusCode& sc);
104
134 static std::unique_ptr<Accelerator> create(const std::string& device_name, int dev_no,
135 StatusCode& sc);
136
141 static std::unique_ptr<Accelerator> create(int dev_no, bool verbose, StatusCode& sc);
142
143 Accelerator(const Accelerator& other) = delete;
144 Accelerator(Accelerator&& other) noexcept;
145 Accelerator& operator=(const Accelerator& rhs) = delete;
146 Accelerator& operator=(Accelerator&& rhs) noexcept;
147
157 std::string getDeviceName() const;
158
175 template <typename T>
176 PinnedMemory<T> allocatePinnedMemory(const std::vector<int64_t>& shape,
177 StatusCode& sc);
178
183
184private:
185 Accelerator();
186
187#ifndef _MSC_VER
188 std::experimental::propagate_const<std::unique_ptr<AcceleratorImpl>> mImpl;
189#else
190 std::unique_ptr<AcceleratorImpl> mImpl;
191#endif
192
193 friend class Model;
194 friend class NPUData;
195};
196
198
199} // namespace mobilint
200
201#endif
static std::unique_ptr< Accelerator > create(StatusCode &sc)
Creates an Accelerator object for executing models, using device number 0.
PinnedMemory< T > allocatePinnedMemory(const std::vector< int64_t > &shape, StatusCode &sc)
Allocates a pinned (zero-copy) memory buffer on the NPU device.
static std::unique_ptr< Accelerator > create(int dev_no, bool verbose, StatusCode &sc)
static std::unique_ptr< Accelerator > create(int dev_no, StatusCode &sc)
Creates an Accelerator object for a specific device number.
static std::unique_ptr< Accelerator > create(const std::string &device_name, int dev_no, StatusCode &sc)
Creates an Accelerator object for a specific target device and device number.
std::string getDeviceName() const
Returns the resolved device name of this accelerator.
~Accelerator()
Destroys the Accelerator object and releases resources.
static std::unique_ptr< Accelerator > create(const std::string &device_name, StatusCode &sc)
Creates an Accelerator object for a specific target device using device number 0.
A buffer of NPU-accessible pinned (physically contiguous) memory.
StatusCode
Enumerates status codes for the qbruntime.
Definition status_code.h:28