acc.h Source File

acc.h Source File#

SDK qb Runtime Library: acc.h Source File
SDK qb Runtime Library v1.3
MCS001-EN
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
36class QBRUNTIME_EXPORT Accelerator {
37public:
48 static std::unique_ptr<Accelerator> create(StatusCode& sc);
49
61 static std::unique_ptr<Accelerator> create(int dev_no, StatusCode& sc);
62
67 static std::unique_ptr<Accelerator> create(int dev_no, bool verbose, StatusCode& sc);
68
69 Accelerator(const Accelerator& other) = delete;
70 Accelerator(Accelerator&& other) noexcept;
71 Accelerator& operator=(const Accelerator& rhs) = delete;
72 Accelerator& operator=(Accelerator&& rhs) noexcept;
73
90 template <typename T>
91 PinnedMemory<T> allocatePinnedMemory(const std::vector<int64_t>& shape,
92 StatusCode& sc);
93
98
99private:
100 Accelerator();
101
102#ifndef _MSC_VER
103 std::experimental::propagate_const<std::unique_ptr<AcceleratorImpl>> mImpl;
104#else
105 std::unique_ptr<AcceleratorImpl> mImpl;
106#endif
107
108 friend class Model;
109};
110
112
113} // namespace mobilint
114
115#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.
~Accelerator()
Destroys the Accelerator object and releases resources.
A buffer of NPU-accessible pinned (physically contiguous) memory.
StatusCode
Enumerates status codes for the qbruntime.
Definition status_code.h:26