| /* |
| * 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 |
| * not use _this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an AS IS BASIS, WITHOUT |
| * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| #pragma once |
| |
| /***************************************************************************** |
| * Includes |
| *****************************************************************************/ |
| |
| #include "message_handler.hpp" |
| |
| #include <inference_process.hpp> |
| |
| /***************************************************************************** |
| * InferenceRunner |
| *****************************************************************************/ |
| |
| class InferenceRunner { |
| public: |
| InferenceRunner(uint8_t *tensorArena, |
| size_t arenaSize, |
| MessageHandler::InferenceQueue &inferenceQueue, |
| MessageHandler::ResponseQueue &responseQueue); |
| ~InferenceRunner(); |
| |
| private: |
| static void inferenceTask(void *param); |
| |
| void handleInferenceRequest(const uint32_t src, |
| const uint64_t msgId, |
| const EthosU::ethosu_core_msg_inference_req &request); |
| InferenceProcess::InferenceJob makeInferenceJob(const EthosU::ethosu_core_msg_inference_req &request, |
| EthosU::ethosu_core_msg_inference_rsp &response); |
| |
| MessageHandler::InferenceQueue &inferenceQueue; |
| MessageHandler::ResponseQueue &responseQueue; |
| InferenceProcess::InferenceProcess inference; |
| |
| // FreeRTOS |
| TaskHandle_t taskHandle; |
| }; |