From: Dongju Chae Date: Fri, 23 Jul 2021 03:19:52 +0000 (+0900) Subject: [visa] Add num visa insts X-Git-Tag: submit/tizen/20220103.094045~63 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=2a065750e1ef617f99d3cc7be2fd35ebe00dc1c9;p=platform%2Fadaptation%2Fnpu%2Ftrix-engine.git [visa] Add num visa insts This patch adds num visa insts. Signed-off-by: Dongju Chae --- diff --git a/src/core/ne-handler.cc b/src/core/ne-handler.cc index 792197c..fbefe16 100644 --- a/src/core/ne-handler.cc +++ b/src/core/ne-handler.cc @@ -998,6 +998,8 @@ TrinityVision2::setModel (const generic_buffer *model_buf, Model **model_ptr) { config.metadata_ext_size = 0; } + config.num_visa_insts = model->getNumInsts (); + status = api_->registerModel (&config, model->getMetadata ()->getNPUVersion ()); if (status != 0) diff --git a/src/core/ne-model.cc b/src/core/ne-model.cc index 35797c8..92328c6 100644 --- a/src/core/ne-model.cc +++ b/src/core/ne-model.cc @@ -360,6 +360,16 @@ Model::~Model () { delete extended_meta_; } +uint32_t +Model::getNumInsts () { + if (meta_.get () == nullptr) { + logerr (TAG, "Invalid metadata\n"); + return 0; + } + + return meta_->getNumInsts (); +} + /** * @brief set data info of input/output tensors * @param[in] in input tensors' data info diff --git a/src/core/ne-model.h b/src/core/ne-model.h index 6a3d023..a8c8f06 100644 --- a/src/core/ne-model.h +++ b/src/core/ne-model.h @@ -48,6 +48,8 @@ class Metadata { virtual ~Metadata (){}; + virtual uint32_t getNumInsts () const { return 0; } + virtual uint32_t getInputNum () const = 0; virtual uint32_t getOutputNum () const = 0; @@ -255,6 +257,10 @@ class Metadata_v3 : public Metadata { /** @brief create metadata with npubinfmt v3. if sanity check is failed, return nullptr */ static Metadata_v3 *createInstance (npubin_meta *meta); + uint32_t getNumInsts () const override { + return meta_->visa_num_plus_one > 0 ? meta_->visa_num_plus_one - 1 : 0; + } + uint32_t getInputNum () const override { return meta_->input_seg_num; } uint32_t getOutputNum () const override { return meta_->output_seg_num; } @@ -369,6 +375,8 @@ class Model : public HWmem { Model (const HWmemImpl *impl); ~Model (); + uint32_t getNumInsts (); + void setConstraint (const npuConstraint &constraint) { constraint_ = constraint; }