From 322ade2ac05a93a25d3860bc4069fe5016737bba Mon Sep 17 00:00:00 2001 From: =?utf8?q?=EC=B5=9C=ED=98=95=EA=B7=9C/=EB=8F=99=EC=9E=91=EC=A0=9C?= =?utf8?q?=EC=96=B4Lab=28SR=29/Senior=20Engineer/=EC=82=BC=EC=84=B1?= =?utf8?q?=EC=A0=84=EC=9E=90?= Date: Fri, 30 Mar 2018 10:45:54 +0900 Subject: [PATCH] Enable StepExecutor::startComputeOnCpu (#341) - Enable StepExecutor::startComputeOnCpu Signed-off-by: Hyung-Kyu Choi --- src/runtime/ref/nn/common/CpuExecutor.cpp | 8 ++++---- src/runtime/ref/nn/common/include/CpuExecutor.h | 3 --- src/runtime/ref/nn/runtime/ExecutionBuilder.cpp | 8 ++++---- src/runtime/ref/nn/runtime/ModelBuilder.cpp | 5 ----- src/runtime/ref/nn/runtime/ModelBuilder.h | 2 -- 5 files changed, 8 insertions(+), 18 deletions(-) diff --git a/src/runtime/ref/nn/common/CpuExecutor.cpp b/src/runtime/ref/nn/common/CpuExecutor.cpp index bbc2581..2fcafc2 100644 --- a/src/runtime/ref/nn/common/CpuExecutor.cpp +++ b/src/runtime/ref/nn/common/CpuExecutor.cpp @@ -26,10 +26,12 @@ namespace android { namespace nn { -#if 0 // REF-ANN // TODO: short term, make share memory mapping and updating a utility function. // TODO: long term, implement mmap_fd as a hidl IMemory service. bool RunTimePoolInfo::set(const hidl_memory& hidlMemory) { + // TODO-NNRT: Implement this! + return false; +#if 0 // REF-ANN this->hidlMemory = hidlMemory; auto memType = hidlMemory.name(); if (memType == "ashmem") { @@ -61,8 +63,8 @@ bool RunTimePoolInfo::set(const hidl_memory& hidlMemory) { LOG(ERROR) << "unsupported hidl_memory type"; return false; } -} #endif +} // Making sure the output data are correctly updated after execution. bool RunTimePoolInfo::update() { @@ -83,7 +85,6 @@ bool RunTimePoolInfo::update() { return true; } -#if 0 // REF-ANN bool setRunTimePoolInfosFromHidlMemories(std::vector* poolInfos, const hidl_vec& pools) { poolInfos->resize(pools.size()); @@ -96,7 +97,6 @@ bool setRunTimePoolInfosFromHidlMemories(std::vector* poolInfos } return true; } -#endif // Updates the RunTimeOperandInfo with the newly calculated shape. // Allocate the buffer if we need to. diff --git a/src/runtime/ref/nn/common/include/CpuExecutor.h b/src/runtime/ref/nn/common/include/CpuExecutor.h index e0a98b7..6acb75e 100644 --- a/src/runtime/ref/nn/common/include/CpuExecutor.h +++ b/src/runtime/ref/nn/common/include/CpuExecutor.h @@ -72,11 +72,8 @@ struct RunTimePoolInfo { bool update(); }; -// TODO-REF Original code from android -#if 0 bool setRunTimePoolInfosFromHidlMemories(std::vector* poolInfos, const hidl_vec& pools); -#endif // This class is used to execute a model on the CPU. class CpuExecutor { diff --git a/src/runtime/ref/nn/runtime/ExecutionBuilder.cpp b/src/runtime/ref/nn/runtime/ExecutionBuilder.cpp index d72e1b3..8f9ce18 100644 --- a/src/runtime/ref/nn/runtime/ExecutionBuilder.cpp +++ b/src/runtime/ref/nn/runtime/ExecutionBuilder.cpp @@ -429,6 +429,7 @@ int StepExecutor::allocatePointerArgumentsToPool(std::vector* } return ANEURALNETWORKS_NO_ERROR; } +#endif // REF-ANN static void setRequestArgumentArray(const std::vector& argumentInfos, hidl_vec* ioInfos) { @@ -443,6 +444,8 @@ static void setRequestArgumentArray(const std::vector& argume } } + +#if 0 // REF-ANN StepExecutor::StepExecutor(const ExecutionBuilder* executionBuilder, const ModelBuilder* model, sp driver, sp preparedModel) : @@ -626,6 +629,7 @@ int StepExecutor::startComputeOnDevice(sp* synchronizationCal *synchronizationCallback = executionCallback; return ANEURALNETWORKS_NO_ERROR; } +#endif // REF-ANN static void asyncStartComputeOnCpu(const Model& model, const Request& request, const std::vector& modelPoolInfos, @@ -637,10 +641,7 @@ static void asyncStartComputeOnCpu(const Model& model, const Request& request, ErrorStatus::NONE : ErrorStatus::GENERAL_FAILURE; executionCallback->notify(status); } -#endif // REF-ANN int StepExecutor::startComputeOnCpu(sp* synchronizationCallback) { - return ANEURALNETWORKS_NO_ERROR; -#if 0 // REF-ANN // TODO: use a thread pool Model model; @@ -697,7 +698,6 @@ int StepExecutor::startComputeOnCpu(sp* synchronizationCallba *synchronizationCallback = executionCallback; return ANEURALNETWORKS_NO_ERROR; -#endif } } // namespace nn diff --git a/src/runtime/ref/nn/runtime/ModelBuilder.cpp b/src/runtime/ref/nn/runtime/ModelBuilder.cpp index 2829555..12d4875 100644 --- a/src/runtime/ref/nn/runtime/ModelBuilder.cpp +++ b/src/runtime/ref/nn/runtime/ModelBuilder.cpp @@ -343,10 +343,7 @@ void ModelBuilder::sortIntoRunOrder() { mOperations = runOrder; #endif } -#if 0 // NeuralNetworksWrapper.h is needed. void ModelBuilder::setHidlModel(Model* model) const { - // Dummy Implementation -#if 0 model->operands = mOperands; model->operations = mOperations; model->inputIndexes = mInputIndexes; @@ -358,8 +355,6 @@ void ModelBuilder::setHidlModel(Model* model) const { for (uint32_t i = 0; i < count; i++) { model->pools[i] = mMemories[i]->getHidlMemory(); } -#endif } -#endif } // namespace nn } // namespace android diff --git a/src/runtime/ref/nn/runtime/ModelBuilder.h b/src/runtime/ref/nn/runtime/ModelBuilder.h index f49eba4..b8b4586 100644 --- a/src/runtime/ref/nn/runtime/ModelBuilder.h +++ b/src/runtime/ref/nn/runtime/ModelBuilder.h @@ -57,9 +57,7 @@ public: int finish(); bool isFinished() const { return mCompletedModel; } int createCompilation(CompilationBuilder** compilation); -#if 0 // NeuralNetworksWrapper.h is needed. void setHidlModel(Model* model) const; -#endif uint32_t operandCount() const { // We don't allow more than uint32_t worth of operands return static_cast(mOperands.size()); -- 2.7.4