aboutsummaryrefslogtreecommitdiff
path: root/applications/driver_unit_tests/command_stream.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'applications/driver_unit_tests/command_stream.cpp')
-rw-r--r--applications/driver_unit_tests/command_stream.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/applications/driver_unit_tests/command_stream.cpp b/applications/driver_unit_tests/command_stream.cpp
index 76dba6f..a2cb63e 100644
--- a/applications/driver_unit_tests/command_stream.cpp
+++ b/applications/driver_unit_tests/command_stream.cpp
@@ -133,6 +133,31 @@ int CommandStream::run(size_t repeat) {
return 0;
}
+int CommandStream::run_async() {
+ // Base pointer array
+ uint64_t baseAddress[ETHOSU_BASEP_INDEXES];
+ size_t baseAddressSize[ETHOSU_BASEP_INDEXES];
+
+ for (size_t i = 0; i < ETHOSU_BASEP_INDEXES; i++) {
+ baseAddress[i] = reinterpret_cast<uint64_t>(basePointers[i].data);
+ baseAddressSize[i] = reinterpret_cast<size_t>(basePointers[i].size);
+ }
+
+ int error = ethosu_invoke_async(
+ drv, commandStream.data, commandStream.size, baseAddress, baseAddressSize, ETHOSU_BASEP_INDEXES, nullptr);
+
+ if (error != 0) {
+ printf("Inference invoke async failed. error=%d\n", error);
+ return 1;
+ }
+
+ return 0;
+}
+
+int CommandStream::wait_async(bool block) {
+ return ethosu_wait(drv, block);
+}
+
DataPointer &CommandStream::getCommandStream() {
return commandStream;
}