__u64 program_offset_addr;
__u64 program_size;
__u32 version;
+ __u64 npu_version;
union {
__u8 endp_trnt_model_common[0];
struct {
config.program_size = hwmem_prog->getSize ();
config.program_offset_addr = 0;
config.metadata_dbuf_fd = model->getDmabuf ();
+ config.npu_version = model->getMetadata ()->getNPUVersion ();
/** for metadata extended section */
size_t extended_size = model->getMetadata ()->getMetaExtendedSize ();
config.num_visa_insts = model->getNumInsts ();
- status = api_->registerModel (&config, model->getMetadata ()->getNPUVersion ());
+ status = api_->registerModel (&config);
if (status != 0)
goto delete_exit;
virtual int stop_target (int id) const { return -EPERM; }
/** @brief register model config to the driver */
- virtual int registerModel (model_config_t *model, uint64_t npu_version = 0) const {
- return -EPERM;
- }
+ virtual int registerModel (model_config_t *model) const { return -EPERM; }
virtual int deregisterModel (unsigned long long id) const { return -EPERM; }
#ifdef __FPGA__
int stop () const;
int stop_target (int id) const;
- int registerModel (model_config_t *model, uint64_t npu_version) const;
+ int registerModel (model_config_t *model) const;
int deregisterModel (unsigned long long id) const;
#ifdef __FPGA__
int stop () const;
int stop_target (int id) const;
- int registerModel (model_config_t *model, uint64_t npu_version) const;
+ int registerModel (model_config_t *model) const;
int deregisterModel (unsigned long long id) const;
int getProfile (int req_id, npu_profile *profile, const std::string path = "") const;
* @return 0 if no error. otherwise a negative errno
*/
int
-TrinityEmulAPI::registerModel (model_config_t *model_config, uint64_t npu_version) const {
+TrinityEmulAPI::registerModel (model_config_t *model_config) const {
static std::atomic<uint64_t> global_internal_id (0);
if (!initialized ())
if (model_config == nullptr || model_config->dbuf_fd < 0)
return -EINVAL;
- if (checkVersion (npu_version)) {
+ if (checkVersion (model_config->npu_version)) {
logerr (TAG, "model npu version is not matched to device");
return -EINVAL;
}
memcpy (config, model_config, sizeof (model_config_t));
elem->setModelConfig (config);
- elem->setNpuVersion (npu_version);
+ elem->setNpuVersion (model_config->npu_version);
return 0;
}
* @return 0 if no error. otherwise a negative errno
*/
int
-TrinityVision2API::registerModel (model_config_t *model_config, uint64_t npu_version) const {
+TrinityVision2API::registerModel (model_config_t *model_config) const {
uint32_t model_tops;
uint32_t device_tops;
int ret;
return -EPERM;
}
- if (NPU_VERSION_MAJOR (npu_version) != 2) {
+ if (model_config == nullptr) {
+ logerr (TAG, "Invalid argument\n");
+ return -EINVAL;
+ }
+
+ if (NPU_VERSION_MAJOR (model_config->npu_version) != 2) {
logerr (TAG, "Invalid driver version\n");
return -EINVAL;
}
- model_tops = NPU_VERSION_TOPS (npu_version);
+ model_tops = NPU_VERSION_TOPS (model_config->npu_version);
if (model_tops != 0) {
ret = getTops (&device_tops);
if (ret != 0)
model.program_offset_addr = 0;
model.program_size = 0;
model.metadata_dbuf_fd = model_dmabuf; /* dummy */
+ model.npu_version = testenv.get_version ();
- EXPECT_EQ (api->registerModel (&model, testenv.get_version ()), 0);
+ EXPECT_EQ (api->registerModel (&model), 0);
/** allocate input data */
buffer_dmabuf = api->alloc (size);
model.program_offset_addr = 0;
model.program_size = 0;
model.metadata_dbuf_fd = model_dmabuf; /* dummy */
+ model.npu_version = testenv.get_version ();
- EXPECT_EQ (api->registerModel (&model, testenv.get_version ()), 0);
+ EXPECT_EQ (api->registerModel (&model), 0);
int *buf = nullptr;
int buffer_dmabuf = -1;
model.program_offset_addr = 0;
model.program_size = 0;
model.metadata_dbuf_fd = ret; /* dummy */
+ model.npu_version = testenv.get_version ();
- ret = api->registerModel (&model, testenv.get_version ());
+ ret = api->registerModel (&model);
if (ret < 0) {
model.dbuf_fd = -1;
}
model.program_offset_addr = 0;
model.program_size = 4096;
model.metadata_dbuf_fd = model_dmabuf; /* dummy */
+ model.npu_version = testenv.get_version ();
- EXPECT_EQ (api->registerModel (&model, testenv.get_version ()), 0);
+ EXPECT_EQ (api->registerModel (&model), 0);
/** allocate input data */
buffer_dmabuf = api->alloc (size);
return -ENOMEM;
}
- /* default NPU version for testing is 2.4 */
+ /* default NPU version for testing is 2.4.2 */
if (npu_ver == NULL || strcmp (npu_ver, "2.4") == 0) {
devices_[0] = NPUCOND_TRIV24_CONN_UNKNOWN;
devices_[1] = NPUCOND_TRIV24_CONN_SOCIP;
- version_ = 0x04000402;
+ version_ = 0x04020402;
model_ = "/testdata/TRIV242/CONV_2D_000";
tops_ = 4;
} else if (strcmp (npu_ver, "2.3") == 0) {