[nnc] Fixed nnc test coverage collecting (#2889)
authorIvan Vagin/AI Tools Lab /SRR/Engineer/삼성전자 <ivan.vagin@samsung.com>
Mon, 21 Jan 2019 10:30:49 +0000 (13:30 +0300)
committerРоман Михайлович Русяев/AI Tools Lab /SRR/Staff Engineer/삼성전자 <r.rusyaev@samsung.com>
Mon, 21 Jan 2019 10:30:49 +0000 (13:30 +0300)
[nnc] Fixed nnc test coverage collecting

Signed-off-by: Ivan Vagin <ivan.vagin@samsung.com>
15 files changed:
contrib/nnc/cmake/utils.cmake
contrib/nnc/core/CMakeLists.txt
contrib/nnc/include/core/modelIR/Scalar.h
contrib/nnc/include/passes/soft_backend/CPPGenerator.h
contrib/nnc/passes/acl_soft_backend/AclCppOpGenerator.cpp
contrib/nnc/passes/acl_soft_backend/ArtifactGeneratorCppCode.cpp
contrib/nnc/passes/acl_soft_backend/ArtifactGeneratorCppDecl.cpp
contrib/nnc/passes/interpreter/Interpreter.cpp
contrib/nnc/passes/interpreter/interpreter_pass.cpp
contrib/nnc/passes/interpreter/ops/Bias.cpp
contrib/nnc/passes/interpreter/ops/Gather.cpp
contrib/nnc/passes/interpreter/ops/Reshape.h
contrib/nnc/passes/interpreter/ops/Scale.cpp
contrib/nnc/passes/soft_backend/CGenerator.cpp
contrib/nnc/passes/soft_backend/ModelAnalyzer.h

index bed8593..630dd11 100644 (file)
@@ -40,7 +40,7 @@ endfunction()
 
 # add nnc library as target
 function(nnc_add_library)
-  add_library(${ARGV})
+  add_nncc_library(${ARGV})
 
   get_target_property(LIBS ${NNC_TARGET_EXECUTABLE} LINK_LIBRARIES)
   if(LIBS MATCHES NOTFOUND)
index 12bb9b6..3251204 100644 (file)
@@ -40,11 +40,11 @@ if(Protobuf_FOUND)
     set(SERIALIZER_SOURCES "modelIR/Serializer.cpp"
                            "modelIR/Deserializer.cpp")
 
-    add_library(nnc_core SHARED ${SOURCES} ${SERIALIZER_SOURCES})
+    add_nncc_library(nnc_core SHARED ${SOURCES} ${SERIALIZER_SOURCES})
     target_link_libraries(nnc_core PUBLIC model_ir_proto)
 else()
     message(WARNING "Protobuf not found, NNC serialization not available")
-    add_library(nnc_core SHARED ${SOURCES})
+    add_nncc_library(nnc_core SHARED ${SOURCES})
 endif()
 
 set_target_properties(nnc_core PROPERTIES LINKER_LANGUAGE CXX)
index 01f1444..deb7c67 100644 (file)
@@ -64,6 +64,8 @@ public:
         return 4;
       case DTYPE::INT64:
         return 8;
+      default:
+        assert(false);
     }
   }
   /**
@@ -72,7 +74,7 @@ public:
    */
   template<typename T>
   T get() const {
-    assert(sizeof(T) <= getDataSize());
+    assert(static_cast<int>(sizeof(T)) <= getDataSize());
     T result;
     memcpy(&result, _data, sizeof(T));
     return result;
index f704937..a6ba4fc 100644 (file)
@@ -22,7 +22,7 @@
 
 namespace nnc {
 
-class TensorDescription;
+struct TensorDescription;
 
 /**
  * @brief CPPCodeGenerator implements interfaces that provides BaseCodeGenerator for C++ language
index 3d74d66..a618fe5 100644 (file)
@@ -109,7 +109,7 @@ void AclCppOpGenerator::visit(ops::ConcatOp& op) {
                                      "arm_compute::DataLayoutDimension::WIDTH"};
 
   int axis = op.getAxis();
-  assert(axis >= 0 && axis < sizeof(axis_names) / sizeof(axis_names[0]) &&
+  assert(axis >= 0 && axis < static_cast<int>(sizeof(axis_names) / sizeof(axis_names[0])) &&
          "axis outside this range is not supported in ACL");
   const char* axis_name = axis_names[axis];
 
@@ -369,7 +369,7 @@ void AclCppOpGenerator::visit(ops::FullyConnectedOp& op) {
   genLayerExecution(layer);
 }
 
-void AclCppOpGenerator::visit(ops::GemmOp& op) {
+void AclCppOpGenerator::visit(ops::GemmOp&) {
   assert(false);
 }
 
@@ -606,11 +606,11 @@ void AclCppOpGenerator::visit(ops::ScaleOp& op) {
     _outputs.insert(&op);
 }
 
-void AclCppOpGenerator::visit(mir::ops::SliceOp& op) {
+void AclCppOpGenerator::visit(mir::ops::SliceOp&) {
   throw AclCppException( "Unimplemented operation: SliceOp");
 }
 
-void AclCppOpGenerator::visit(ops::BatchNormOp& op) {
+void AclCppOpGenerator::visit(ops::BatchNormOp&) {
   // Not supported in our framework, but present in ACL API.
   throw AclCppException("Not supported in inference yet.");
 }
@@ -674,11 +674,11 @@ void AclCppOpGenerator::visit(ops::DeConv2DOp& op) {
   genConvolution(op, "arm_compute::CLDeconvolutionLayer", "_deconvolution_layer");
 }
 
-void AclCppOpGenerator::visit(ops::EluOp& op) {
+void AclCppOpGenerator::visit(ops::EluOp&) {
   throw AclCppException("Not supported by the ACL library yet.");
 }
 
-void AclCppOpGenerator::visit(ops::PadOp& op) {
+void AclCppOpGenerator::visit(ops::PadOp&) {
   throw AclCppException("Not supported by the ACL library yet.");
 }
 
@@ -885,8 +885,8 @@ AclCppOpGenerator::genVectorInitializedVar(ArtifactBlock* block, const string& t
                                            const string& name, const vector <T>& init) {
   list<shared_ptr<ArtifactExpr>> dims;
 
-  for (int i = 0; i < init.size(); ++i)
-    dims.push_back(AF::lit(to_string(init[i])));
+  for (const auto& v : init)
+    dims.push_back(AF::lit(to_string(v)));
 
   auto shape_var = block->var(type, name, {}, dims);
   auto shape_id = shape_var->use();
@@ -984,11 +984,11 @@ void AclCppOpGenerator::fillTensor(shared_ptr<ArtifactId> tensor_id, const strin
   _fillings.push_back(make_pair(tensor_id, val));
 }
 
-void AclCppOpGenerator::visit(ops::SqueezeOp& op) {
+void AclCppOpGenerator::visit(ops::SqueezeOp&) {
   throw AclCppException("Unimplemented operation: Squeeze");
 }
 
-void AclCppOpGenerator::visit(ops::SqrtOp& op) {
+void AclCppOpGenerator::visit(ops::SqrtOp&) {
   throw AclCppException("Unimplemented operation: Sqrt");
 }
 
@@ -1026,11 +1026,11 @@ void AclCppOpGenerator::genLayerExecution(shared_ptr<ArtifactId> layer_id) {
   _infBlock->call("run", {}, layer_id);
 }
 
-void AclCppOpGenerator::visit(mir::ops::ResizeOp& op) {
+void AclCppOpGenerator::visit(mir::ops::ResizeOp&) {
   throw AclCppException("Unimplemented operation: Resize");
 }
 
-void AclCppOpGenerator::visit(mir::ops::ReduceFOp& op) {
+void AclCppOpGenerator::visit(mir::ops::ReduceFOp&) {
   throw AclCppException("Unimplemented operation: ReduceFOp");
 }
 
@@ -1092,7 +1092,7 @@ void AclCppOpGenerator::visit(mir::ops::TransposeOp& op) {
   genTranspose(input, output, mir_axis_order, false);
 }
 
-void AclCppOpGenerator::visit(mir::ops::GatherOp& op) {
+void AclCppOpGenerator::visit(mir::ops::GatherOp&) {
   throw AclCppException("Unimplemented operation: GatherOp");
 }
 
index d81fdf9..ad58901 100644 (file)
@@ -127,11 +127,11 @@ void ArtifactGeneratorCppCode::visit(const ArtifactRet* node) {
   node->expr()->accept(this);
 }
 
-void ArtifactGeneratorCppCode::visit(const ArtifactBreak* node) {
+void ArtifactGeneratorCppCode::visit(const ArtifactBreak*) {
   _out << "break";
 }
 
-void ArtifactGeneratorCppCode::visit(const ArtifactCont* node) {
+void ArtifactGeneratorCppCode::visit(const ArtifactCont*) {
   _out << "continue";
 }
 
@@ -183,7 +183,7 @@ void ArtifactGeneratorCppCode::visit(const ArtifactIf* node) {
   }
 }
 
-void ArtifactGeneratorCppCode::visit(const ArtifactFunction* node) {
+void ArtifactGeneratorCppCode::visit(const ArtifactFunction*) {
   // TODO implement this function
 }
 
index d415f48..0765afb 100644 (file)
@@ -48,34 +48,34 @@ void ArtifactGeneratorCppDecl::visit(const ArtifactVariable* node) {
   _out << node->typeName() << " " << node->name();
 }
 
-void ArtifactGeneratorCppDecl::visit(const ArtifactFunctionCall* node) {
+void ArtifactGeneratorCppDecl::visit(const ArtifactFunctionCall*) {
 }
 
-void ArtifactGeneratorCppDecl::visit(const ArtifactUnaryExpr* node) {
+void ArtifactGeneratorCppDecl::visit(const ArtifactUnaryExpr*) {
 }
 
-void ArtifactGeneratorCppDecl::visit(const ArtifactBinaryExpr* node) {
+void ArtifactGeneratorCppDecl::visit(const ArtifactBinaryExpr*) {
 }
 
-void ArtifactGeneratorCppDecl::visit(const ArtifactIndex* node) {
+void ArtifactGeneratorCppDecl::visit(const ArtifactIndex*) {
 }
 
-void ArtifactGeneratorCppDecl::visit(const ArtifactRet* node) {
+void ArtifactGeneratorCppDecl::visit(const ArtifactRet*) {
 }
 
-void ArtifactGeneratorCppDecl::visit(const ArtifactBreak* node) {
+void ArtifactGeneratorCppDecl::visit(const ArtifactBreak*) {
 }
 
-void ArtifactGeneratorCppDecl::visit(const ArtifactCont* node) {
+void ArtifactGeneratorCppDecl::visit(const ArtifactCont*) {
 }
 
-void ArtifactGeneratorCppDecl::visit(const ArtifactBlock* node) {
+void ArtifactGeneratorCppDecl::visit(const ArtifactBlock*) {
 }
 
-void ArtifactGeneratorCppDecl::visit(const ArtifactForLoop* node) {
+void ArtifactGeneratorCppDecl::visit(const ArtifactForLoop*) {
 }
 
-void ArtifactGeneratorCppDecl::visit(const ArtifactIf* node) {
+void ArtifactGeneratorCppDecl::visit(const ArtifactIf*) {
 }
 
 void ArtifactGeneratorCppDecl::visit(const ArtifactFunction* node) {
index a54674d..c790c17 100644 (file)
@@ -292,7 +292,7 @@ void NNInterpreter::visit(ops::DropoutOp& op) {
 void NNInterpreter::visit(ops::TanhOp& op) {
   auto operand = op.getPrevNodes()[0];
   Tensor<float> input(var(operand.op->getId())[operand.index]);
-  var(op.getId()) = Fill<float>(op.getOutputShape(0), [&input, &op](const Index &id) {
+  var(op.getId()) = Fill<float>(op.getOutputShape(0), [&input](const Index &id) {
     return std::tanh(input.at(id));
   })();
 }
@@ -427,7 +427,7 @@ void NNInterpreter::visit(ops::ReduceFOp& op) {
                                        op.getOutputShape(0), input, op.getReductionDims(), func)();
       Tensor<float> out_t = Tensor<float>(var(op.getId())[0]); // for numerical  stability
       var(op.getId()) = Fill<float>(op.getOutputShape(0),
-                                    [&out_t, &op, reduction_area](const Index& id) {
+                                    [&out_t, reduction_area](const Index& id) {
                                       return out_t.at(id) / reduction_area;
                                     })();
     }
index 8e6bafc..84decd9 100644 (file)
@@ -144,13 +144,13 @@ TensorVariant InterpreterPass::loadInput(const Shape& shape) {
   int is_error = fseek(f, 0L, SEEK_END);
   assert(!is_error);
 
-  auto len = static_cast<size_t>(ftell(f));
+  auto len = ftell(f);
   assert(len != -1);
 
   auto data_size = static_cast<size_t>(shape.numElements() * sizeof(float));
 
   // Check size
-  if (len != data_size) {
+  if (static_cast<size_t>(len) != data_size) {
     std::stringstream info;
     info << "Wrong input file size <" << cli::interInputData << "> = "
          << len << ". Should be :" << data_size;
index bcf4ca9..4cef17d 100644 (file)
@@ -27,7 +27,7 @@ BiasAdd::BiasAdd(const mir::TensorVariant& in1, const mir::TensorVariant& in2)
 
 std::vector<mir::TensorVariant> BiasAdd::operator()() {
   return Fill<float>(_input1.getShape(), [this](const mir::Index& idx) {
-    return _input1.at(idx) + _input2.atOffset({idx.at(idx.rank() - 1)});
+    return _input1.at(idx) + _input2.atOffset(idx.at(idx.rank() - 1));
   })();
 }
 
index 3d3cda8..9fea54d 100644 (file)
@@ -28,7 +28,6 @@ Gather::Gather(const TensorVariant& data,
 std::vector<TensorVariant> Gather::operator()() {
   const auto& data_shape = _data.getShape();
   const auto& indices_shape = _indices.getShape();
-  const auto& output_shape = _op.getOutputShape(0);
   auto res = allocate_tensor(_op.getOutputShape(0));
   Tensor<float> data(_data);
   Tensor<float> indices(_indices);
index 5bd0b8e..3fbc560 100644 (file)
@@ -40,7 +40,6 @@ public:
 
     auto out = OperationImpl<T>::allocate_tensor(_output_shape);
 
-    mir::Tensor<float> outAccessor(out);
     // Shapes element count compared in Reshape ctor
     return Fill<T>(_output_shape, [this, &inIter](const mir::Index&) -> T { return _input.at(*inIter++); })();
   }
index 0f05598..1316c4d 100644 (file)
@@ -27,7 +27,7 @@ Scale::Scale(const mir::TensorVariant& in1, const mir::TensorVariant& in2)
 
 std::vector<mir::TensorVariant> Scale::operator()() {
   return Fill<float>(_input1.getShape(), [this](const mir::Index& idx) {
-    return _input1.at(idx) * _input2.atOffset({idx.at(idx.rank() - 1)});
+    return _input1.at(idx) * _input2.atOffset(idx.at(idx.rank() - 1));
   })();
 }
 
index db0b45b..2b20442 100644 (file)
 
 using namespace std;
 
-namespace nnc
-{
+namespace nnc {
 
-void CCodeGenerator::formatTensorNames(const ModelAnalyzer &ma)
-{
+void CCodeGenerator::formatTensorNames(const ModelAnalyzer&) {
   // TODO format tensor names according to c backend requirements
 }
 
-void CCodeGenerator::materializeHeader(ostream &out, const ModelAnalyzer &ma)
-{
+void CCodeGenerator::materializeHeader(ostream&, const ModelAnalyzer&) {
   // TODO emit C header to out stream
 }
 
-void CCodeGenerator::materializeCode(ostream &out, const ModelAnalyzer &ma, const Serializer &s)
-{
+void CCodeGenerator::materializeCode(ostream&, const ModelAnalyzer&, const Serializer&) {
   // TODO emit C code to out stream
 }
 
-Pass &CCodeGenerator::getInstance()
-{
+Pass& CCodeGenerator::getInstance() {
   static CCodeGenerator instance;
   return instance;
 }
index 700e966..f793608 100644 (file)
@@ -169,11 +169,11 @@ public:
     return _modelName;
   }
 
-  const size_t getMaxTemporarySize() const {
+  size_t getMaxTemporarySize() const {
     return _max_temp_size;
   }
 
-  const size_t getTempTID() const {
+  size_t getTempTID() const {
     return _temp_tensor_id;
   }