123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- #ifndef EASYINFER_EASY_INFER_H_
- #define EASYINFER_EASY_INFER_H_
- #include <memory>
- #include "cxxutil/edk_attribute.h"
- #include "cxxutil/exception.h"
- #include "easyinfer/model_loader.h"
- namespace edk {
- struct MluTaskQueue;
- using MluTaskQueue_t = std::shared_ptr<MluTaskQueue>;
- class EasyInferPrivate;
- /**
- * @brief Inference helper class
- */
- class EasyInfer {
- public:
-
- EasyInfer();
-
- ~EasyInfer();
-
- void Init(std::shared_ptr<ModelLoader> model, int dev_id);
-
- void Run(void** input, void** output, float* hw_time = nullptr) const;
-
- void RunAsync(void** input, void** output, MluTaskQueue_t task_queue) const;
-
- std::shared_ptr<ModelLoader> Model() const;
-
- MluTaskQueue_t GetMluQueue() const;
- private:
- EasyInferPrivate* d_ptr_;
- EasyInfer(const EasyInfer&) = delete;
- EasyInfer& operator=(const EasyInfer&) = delete;
- };
- }
- #endif
|