Implement Model_setOperandValueFromMemory
authorsjsujinkim <sjsujin.kim@samsung.com>
Mon, 26 Mar 2018 11:10:05 +0000 (20:10 +0900)
committer최형규/동작제어Lab(SR)/Senior Engineer/삼성전자 <hk0110.choi@samsung.com>
Mon, 26 Mar 2018 13:10:37 +0000 (22:10 +0900)
This commit implements Model_setOperandValueFromMemory.

Signed-off-by: sjsujinkim <sjsujin.kim@samsung.com>
src/runtime/ref/nn/runtime/ModelBuilder.cpp
src/runtime/ref/nn/runtime/ModelBuilder.h
src/runtime/ref/nn/runtime/NeuralNetworks.cpp

index 2d50de5..c6d5cfb 100644 (file)
@@ -151,12 +151,8 @@ int ModelBuilder::copyLargeValuesToSharedMemory() {
     return ANEURALNETWORKS_NO_ERROR;
 #endif
 }
-#if 0 // Memory.h is needed
 int ModelBuilder::setOperandValueFromMemory(uint32_t index, const Memory* memory, uint32_t offset,
                                             size_t length) {
-    // Dummy Implementation
-    return 0;
-#if 0
     VLOG(MODEL) << __func__ << " for operand " << index << " offset " << offset << " size " << length;
     if (index >= operandCount()) {
         LOG(ERROR) << "ANeuralNetworksModel_setOperandValueFromMemory setting operand " << index
@@ -175,9 +171,7 @@ int ModelBuilder::setOperandValueFromMemory(uint32_t index, const Memory* memory
     operand.location = {
                 .poolIndex = mMemories.add(memory), .offset = offset, .length = neededLength};
     return ANEURALNETWORKS_NO_ERROR;
-#endif
 }
-#endif
 
 int ModelBuilder::addOperation(ANeuralNetworksOperationType type, uint32_t inputCount,
                                const uint32_t* inputs, uint32_t outputCount,
index 37d463c..f6305cb 100644 (file)
@@ -20,6 +20,7 @@
 #ifndef ANDROID_ML_NN_RUNTIME_MODEL_BUILDER_H
 #define ANDROID_ML_NN_RUNTIME_MODEL_BUILDER_H
 
+#include "Memory.h"
 #include "NeuralNetworks.h"
 
 #include <vector>
 
 #include "HalInterfaces.h"
 #include "Utils.h"
-#if 0
-#include "Memory.h"
-#include "NeuralNetworks.h"
-#endif
 namespace android {
 namespace nn {
 
@@ -50,10 +47,8 @@ public:
     // Adds an operand to the model.
     int addOperand(const ANeuralNetworksOperandType& type);
     int setOperandValue(uint32_t index, const void* buffer, size_t length);
-#if 0 // Memory.h is needed.
     int setOperandValueFromMemory(uint32_t index, const Memory* memory, uint32_t offset,
                                   size_t length);
-#endif
     int addOperation(ANeuralNetworksOperationType type, uint32_t inputCount, const uint32_t* inputs,
                      uint32_t outputCount, const uint32_t* outputs);
     int identifyInputsAndOutputs(uint32_t inputCount, const uint32_t* inputs, uint32_t outputCount,
@@ -87,9 +82,7 @@ public:
     const Operand& getOperand(uint32_t index) const { return mOperands[index]; }
     const Operation& getOperation(uint32_t index) const { return mOperations[index]; }
 
-#if 0 // Memory.h is needed.
     const MemoryTracker& getMemories() const { return mMemories; }
-#endif
     const std::vector<Operation>& getOperations() const { return mOperations; }
     const uint8_t* getPointerToOperandValue(uint32_t offset) const {
         return mSmallOperandValues.data() + offset;
@@ -126,9 +119,9 @@ public:
     // the mOperandIndexes table.
     std::vector<uint32_t> mInputIndexes;
     std::vector<uint32_t> mOutputIndexes;
-#if 0 // Memory.h is needed.
+
     MemoryTracker mMemories;
-#endif
+
     // The value of the small operands that are defined at model
     // creation time.
     std::vector<uint8_t> mSmallOperandValues;
index 726db4f..ab373e5 100644 (file)
@@ -299,11 +299,6 @@ int ANeuralNetworksModel_setOperandValue(ANeuralNetworksModel* model, int32_t in
 int ANeuralNetworksModel_setOperandValueFromMemory(ANeuralNetworksModel* model, int32_t index,
                                                    const ANeuralNetworksMemory* memory,
                                                    size_t offset, size_t length) {
-    // Dummy Implementation
-    return ANEURALNETWORKS_NO_ERROR;
-
-    // Original code for reference
-#if 0
     if (!model || !memory) {
         LOG(ERROR) << "ANeuralNetworksModel_setOperandValue passed a nullptr";
         return ANEURALNETWORKS_UNEXPECTED_NULL;
@@ -311,7 +306,6 @@ int ANeuralNetworksModel_setOperandValueFromMemory(ANeuralNetworksModel* model,
     const Memory* mem = reinterpret_cast<const Memory*>(memory);
     ModelBuilder* m = reinterpret_cast<ModelBuilder*>(model);
     return m->setOperandValueFromMemory(index, mem, offset, length);
-#endif
 }
 
 int ANeuralNetworksModel_addOperation(ANeuralNetworksModel* model,