config.metadata_ext_size = 0;
}
+ config.num_visa_insts = model->getNumInsts ();
+
status =
api_->registerModel (&config, model->getMetadata ()->getNPUVersion ());
if (status != 0)
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
virtual ~Metadata (){};
+ virtual uint32_t getNumInsts () const { return 0; }
+
virtual uint32_t getInputNum () const = 0;
virtual uint32_t getOutputNum () const = 0;
/** @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; }
Model (const HWmemImpl *impl);
~Model ();
+ uint32_t getNumInsts ();
+
void setConstraint (const npuConstraint &constraint) {
constraint_ = constraint;
}