cb_data->instance = this;
npuOutputNotify cb;
- if (need_model_ && model == nullptr)
+ if (need_model_ && model == nullptr) {
+ delete cb_data;
return -ENOENT;
+ }
if (verify_) {
cb = UtilTrinity::callbackVerify;
input.bufs[0].type = BUFFER_MAPPED;
status = allocNPU_inputBuffers (dev_, &input);
- if (status != 0)
+ if (status != 0) {
+ delete cb_data;
return status;
+ }
cb_output = &output;
status = runNPU_sync (dev_, 0, &input, &output);
}
cb (cb_output, 0, static_cast<void *> (cb_data));
+ } else {
+ delete cb_data;
}
} else {
if (model) {
input.bufs[0].type = BUFFER_MAPPED;
status = allocNPU_inputBuffers (dev_, &input);
- if (status != 0)
+ if (status != 0) {
+ delete cb_data;
return status;
+ }
status =
runNPU_async (dev_, 0, &input, cb, NULL, static_cast<void *> (cb_data), NPUASYNC_WAIT);
if (status >= 0) {
std::unique_lock<std::mutex> lock (m_);
total_++;
+ } else {
+ delete cb_data;
}
}
std::vector<generic_buffer*> buffers;
std::random_device rd;
std::mt19937 gen (rd ());
- std::uniform_int_distribution<int> dis (1, buffer_size_);
+ std::uniform_int_distribution<uint64_t> dis (1, buffer_size_);
clock_t start, finish, iter_start, iter_finish;
start = clock ();
int parseArgs (int argc, char** argv);
void setPrintTime (bool print_time) { print_time_ = print_time; }
void setAllocRandom (bool alloc_random) { alloc_random_ = alloc_random; }
- void setBufferSize (std::string buffer_size) { buffer_size_ = stoi (buffer_size); }
+ void setBufferSize (std::string buffer_size) { buffer_size_ = stoull (buffer_size); }
void setAllocNum (std::string alloc_num) { alloc_num_ = stoi (alloc_num); }
void setIterNum (std::string iter_num) { iter_num_ = stoi (iter_num); }
void setModelPath (std::string model_path) { model_dir_ = model_path; }