diff options
Diffstat (limited to 'ArmnnPreparedModel_1_2.hpp')
-rw-r--r-- | ArmnnPreparedModel_1_2.hpp | 35 |
1 files changed, 24 insertions, 11 deletions
diff --git a/ArmnnPreparedModel_1_2.hpp b/ArmnnPreparedModel_1_2.hpp index 4e883b6b..b97895e8 100644 --- a/ArmnnPreparedModel_1_2.hpp +++ b/ArmnnPreparedModel_1_2.hpp @@ -19,6 +19,18 @@ namespace armnn_driver { +typedef std::function<void(::android::hardware::neuralnetworks::V1_0::ErrorStatus status, + std::vector<::android::hardware::neuralnetworks::V1_2::OutputShape> outputShapes, + const ::android::hardware::neuralnetworks::V1_2::Timing& timing, + std::string callingFunction)> armnnExecuteCallback_1_2; + +struct ArmnnCallback_1_2 +{ + armnnExecuteCallback_1_2 callback; + TimePoint driverStart; + MeasureTiming measureTiming; +}; + template <typename HalVersion> class ArmnnPreparedModel_1_2 : public V1_2::IPreparedModel { @@ -34,7 +46,7 @@ public: virtual ~ArmnnPreparedModel_1_2(); virtual Return<ErrorStatus> execute(const Request& request, - const ::android::sp<V1_0::IExecutionCallback>& callback) override; + const sp<V1_0::IExecutionCallback>& callback) override; virtual Return<ErrorStatus> execute_1_2(const Request& request, MeasureTiming measure, const sp<V1_2::IExecutionCallback>& callback) override; @@ -53,28 +65,29 @@ public: void ExecuteGraph(std::shared_ptr<std::vector<::android::nn::RunTimePoolInfo>>& pMemPools, std::shared_ptr<armnn::InputTensors>& pInputTensors, std::shared_ptr<armnn::OutputTensors>& pOutputTensors, - const ::android::sp<V1_0::IExecutionCallback>& callback); + ArmnnCallback_1_2 callbackDescriptor); /// Executes this model with dummy inputs (e.g. all zeroes). /// \return false on failure, otherwise true bool ExecuteWithDummyInputs(); private: - template <typename ExecutionCallback> - Return <ErrorStatus> Execute(const Request &request, const sp <ExecutionCallback> &callback); + Return <ErrorStatus> Execute(const Request& request, + MeasureTiming measureTiming, + armnnExecuteCallback_1_2 callback); template <typename TensorBindingCollection> void DumpTensorsIfRequired(char const* tensorNamePrefix, const TensorBindingCollection& tensorBindings); - armnn::NetworkId m_NetworkId; - armnn::IRuntime* m_Runtime; - V1_2::Model m_Model; + armnn::NetworkId m_NetworkId; + armnn::IRuntime* m_Runtime; + V1_2::Model m_Model; // There must be a single RequestThread for all ArmnnPreparedModel objects to ensure serial execution of workloads // It is specific to this class, so it is declared as static here - static RequestThread<ArmnnPreparedModel_1_2, HalVersion> m_RequestThread; - uint32_t m_RequestCount; - const std::string& m_RequestInputsAndOutputsDumpDir; - const bool m_GpuProfilingEnabled; + static RequestThread<ArmnnPreparedModel_1_2, HalVersion, ArmnnCallback_1_2> m_RequestThread; + uint32_t m_RequestCount; + const std::string& m_RequestInputsAndOutputsDumpDir; + const bool m_GpuProfilingEnabled; }; } |