diff options
author | Kristofer Jonsson <kristofer.jonsson@arm.com> | 2022-03-08 13:25:45 +0100 |
---|---|---|
committer | Kristofer Jonsson <kristofer.jonsson@arm.com> | 2022-03-10 15:20:57 +0100 |
commit | 35de9e63d9c2fe0a557637ac104d7d73382d2d4a (patch) | |
tree | 41fa348f46f7f76b00625ad3b9768c1ddae5c83b /utils | |
parent | 118b05990af26026a1ac2b6d5dfae32ea342a7f4 (diff) | |
download | ethos-u-linux-driver-stack-35de9e63d9c2fe0a557637ac104d7d73382d2d4a.tar.gz |
Firmware resident model
Support referencing a network model by index that has been built into
the firmware binary.
Change-Id: Idd5294376ea82503dfeafe1203dcc0694d296dfe
Diffstat (limited to 'utils')
-rw-r--r-- | utils/inference_runner/inference_runner.cpp | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/utils/inference_runner/inference_runner.cpp b/utils/inference_runner/inference_runner.cpp index a72a954..08a47b7 100644 --- a/utils/inference_runner/inference_runner.cpp +++ b/utils/inference_runner/inference_runner.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020-2021 Arm Limited. All rights reserved. + * Copyright (c) 2020-2022 Arm Limited. All rights reserved. * * SPDX-License-Identifier: Apache-2.0 * @@ -39,6 +39,7 @@ void help(const string exe) { cerr << "Arguments:\n"; cerr << " -h --help Print this help message.\n"; cerr << " -n --network File to read network from.\n"; + cerr << " --index Network model index, stored in firmware binary.\n"; cerr << " -i --ifm File to read IFM from.\n"; cerr << " -o --ofm File to write IFM to.\n"; cerr << " -P --pmu [0.." << Inference::getMaxPmuEventCounters() << "] eventid.\n"; @@ -138,6 +139,7 @@ ostream &operator<<(ostream &os, Buffer &buf) { int main(int argc, char *argv[]) { const string exe = argv[0]; string networkArg; + int networkIndex = -1; list<string> ifmArg; vector<uint8_t> enabledCounters(Inference::getMaxPmuEventCounters()); string ofmArg; @@ -154,6 +156,9 @@ int main(int argc, char *argv[]) { } else if (arg == "--network" || arg == "-n") { rangeCheck(++i, argc, arg); networkArg = argv[i]; + } else if (arg == "--index") { + rangeCheck(++i, argc, arg); + networkIndex = stoi(argv[i]); } else if (arg == "--ifm" || arg == "-i") { rangeCheck(++i, argc, arg); ifmArg.push_back(argv[i]); @@ -228,8 +233,15 @@ int main(int argc, char *argv[]) { /* Create network */ cout << "Create network" << endl; - shared_ptr<Buffer> networkBuffer = allocAndFill(device, networkArg); - shared_ptr<Network> network = make_shared<Network>(device, networkBuffer); + + shared_ptr<Network> network; + + if (networkIndex < 0) { + shared_ptr<Buffer> networkBuffer = allocAndFill(device, networkArg); + network = make_shared<Network>(device, networkBuffer); + } else { + network = make_shared<Network>(device, networkArg, networkIndex); + } /* Create one inference per IFM */ list<shared_ptr<Inference>> inferences; |