diff options
-rw-r--r-- | applications/message_handler_openamp/main.cpp | 4 | ||||
-rw-r--r-- | applications/message_handler_openamp/message_handler.cpp | 40 | ||||
-rw-r--r-- | applications/message_handler_openamp/message_handler.hpp | 6 |
3 files changed, 6 insertions, 44 deletions
diff --git a/applications/message_handler_openamp/main.cpp b/applications/message_handler_openamp/main.cpp index 62bdc97..c120610 100644 --- a/applications/message_handler_openamp/main.cpp +++ b/applications/message_handler_openamp/main.cpp @@ -179,14 +179,14 @@ int main() { auto messageHandler = std::make_shared<MessageHandler>(*rproc, "ethos-u-0.0"); printf("TFLM arena. pa=%" PRIx32 ", da=%" PRIx32 ", len=%" PRIx32 "\n", - resourceTable.carveout.da, resourceTable.carveout.pa, + resourceTable.carveout.da, resourceTable.carveout.len); std::array<std::shared_ptr<InferenceRunner>, NUM_PARALLEL_TASKS> inferenceRunner; for (size_t i = 0; i < NUM_PARALLEL_TASKS; i++) { - auto tensorArena = static_cast<uint8_t *>(messageHandler->physicalToVirtual(resourceTable.carveout.pa)); + auto tensorArena = reinterpret_cast<uint8_t *>(resourceTable.carveout.da); inferenceRunner[i] = std::make_shared<InferenceRunner>(&tensorArena[arenaSize * i], arenaSize, diff --git a/applications/message_handler_openamp/message_handler.cpp b/applications/message_handler_openamp/message_handler.cpp index 4bd611d..9694f39 100644 --- a/applications/message_handler_openamp/message_handler.cpp +++ b/applications/message_handler_openamp/message_handler.cpp @@ -1,6 +1,5 @@ /* * SPDX-FileCopyrightText: Copyright 2022-2023 Arm Limited and/or its affiliates <open-source-office@arm.com> - * * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the License); you may @@ -308,7 +307,7 @@ void MessageHandler::sendNetworkInfoRsp(const uint32_t src, rsp.ifm_count = 0; rsp.ofm_count = 0; - bool failed = networkToVirtual(network); + bool failed = getNetwork(network); if (!failed) { InferenceProcess::InferenceParser parser; @@ -333,15 +332,7 @@ void MessageHandler::forwardInferenceReq(const uint32_t src, req = inference; - for (uint32_t i = 0; i < req.ifm_count; i++) { - bufferToVirtual(req.ifm[i]); - } - - for (uint32_t i = 0; i < req.ofm_count; i++) { - bufferToVirtual(req.ofm[i]); - } - - networkToVirtual(req.network); + getNetwork(req.network); inferenceQueue.send(message); } @@ -368,35 +359,10 @@ void MessageHandler::sendCancelInferenceRsp(const uint32_t src, responseQueue.send(message); } -bool MessageHandler::getNetwork(const EthosU::ethosu_core_network_buffer &buffer, void *&data, size_t &size) { +bool MessageHandler::getNetwork(EthosU::ethosu_core_network_buffer &buffer) { switch (buffer.type) { case EthosU::ETHOSU_CORE_NETWORK_BUFFER: - data = physicalToVirtual(buffer.buffer.ptr); - size = buffer.buffer.size; return false; - case EthosU::ETHOSU_CORE_NETWORK_INDEX: - return getIndexedNetwork(buffer.index, data, size); - default: - LOG_WARN("Unsupported network model type. type=%" PRIu32, buffer.type); - return true; - } -} - -bool MessageHandler::bufferToVirtual(EthosU::ethosu_core_buffer &buffer) { - void *ptr = physicalToVirtual(buffer.ptr); - if (ptr == nullptr) { - return true; - } - - buffer.ptr = reinterpret_cast<uint32_t>(ptr); - - return false; -} - -bool MessageHandler::networkToVirtual(EthosU::ethosu_core_network_buffer &buffer) { - switch (buffer.type) { - case EthosU::ETHOSU_CORE_NETWORK_BUFFER: - return bufferToVirtual(buffer.buffer); case EthosU::ETHOSU_CORE_NETWORK_INDEX: { void *ptr; size_t size; diff --git a/applications/message_handler_openamp/message_handler.hpp b/applications/message_handler_openamp/message_handler.hpp index 779b05f..86b7c4d 100644 --- a/applications/message_handler_openamp/message_handler.hpp +++ b/applications/message_handler_openamp/message_handler.hpp @@ -1,6 +1,5 @@ /* * SPDX-FileCopyrightText: Copyright 2022-2023 Arm Limited and/or its affiliates <open-source-office@arm.com> - * * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the License); you may @@ -88,15 +87,12 @@ protected: void sendCancelInferenceRsp(const uint32_t src, const uint64_t msgId, const EthosU::ethosu_core_status status); EthosU::ethosu_core_msg_capabilities_rsp getCapabilities() const; - bool getNetwork(const EthosU::ethosu_core_network_buffer &buffer, void *&data, size_t &size); + bool getNetwork(EthosU::ethosu_core_network_buffer &buffer); // Tasks returning response messages static void responseTask(void *param); private: - bool bufferToVirtual(EthosU::ethosu_core_buffer &buffer); - bool networkToVirtual(EthosU::ethosu_core_network_buffer &buffer); - InferenceQueue inferenceQueue; ResponseQueue responseQueue; EthosU::ethosu_core_msg_capabilities_rsp capabilities; |