Extract importers out of nnc (#5900)
authorСергей Баранников/AI Tools Lab /SRR/Engineer/삼성전자 <s.barannikov@samsung.com>
Fri, 26 Jul 2019 11:31:51 +0000 (14:31 +0300)
committerEfimov Alexander/AI Tools Lab/./Samsung Electronics <a.efimov@samsung.com>
Fri, 26 Jul 2019 11:31:51 +0000 (20:31 +0900)
Move sources of Caffe, Caffe2, TensorFlow Lite, ONNX importers from `nnc` to top-level `compiler` directory.

Signed-off-by: Sergei Barannikov <s.barannikov@samsung.com>
51 files changed:
compiler/mir-caffe-importer/.FORMATDENY [new file with mode: 0644]
compiler/mir-caffe-importer/CMakeLists.txt [new file with mode: 0644]
compiler/mir-caffe-importer/caffe_importer.cpp [moved from compiler/nnc/passes/caffe_frontend/caffe_importer.cpp with 100% similarity]
compiler/mir-caffe-importer/caffe_importer.h [moved from compiler/nnc/passes/caffe_frontend/caffe_importer.h with 100% similarity]
compiler/mir-caffe-importer/caffe_op_creator.cpp [moved from compiler/nnc/passes/caffe_frontend/caffe_op_creator.cpp with 100% similarity]
compiler/mir-caffe-importer/caffe_op_creator.h [moved from compiler/nnc/passes/caffe_frontend/caffe_op_creator.h with 100% similarity]
compiler/mir-caffe-importer/caffe_op_types.h [moved from compiler/nnc/passes/caffe_frontend/caffe_op_types.h with 100% similarity]
compiler/mir-caffe-importer/requires.cmake [new file with mode: 0644]
compiler/mir-caffe2-importer/.FORMATDENY [new file with mode: 0644]
compiler/mir-caffe2-importer/CMakeLists.txt [new file with mode: 0644]
compiler/mir-caffe2-importer/caffe2_importer.cpp [moved from compiler/nnc/passes/caffe2_frontend/caffe2_importer.cpp with 100% similarity]
compiler/mir-caffe2-importer/caffe2_importer.h [moved from compiler/nnc/passes/caffe2_frontend/caffe2_importer.h with 100% similarity]
compiler/mir-caffe2-importer/caffe2_op_creator.cpp [moved from compiler/nnc/passes/caffe2_frontend/caffe2_op_creator.cpp with 100% similarity]
compiler/mir-caffe2-importer/caffe2_op_creator.h [moved from compiler/nnc/passes/caffe2_frontend/caffe2_op_creator.h with 100% similarity]
compiler/mir-caffe2-importer/caffe2_op_types.h [moved from compiler/nnc/passes/caffe2_frontend/caffe2_op_types.h with 100% similarity]
compiler/mir-caffe2-importer/caffe2_proto_helper.cpp [moved from compiler/nnc/passes/caffe2_frontend/caffe2_proto_helper.cpp with 100% similarity]
compiler/mir-caffe2-importer/caffe2_proto_helper.h [moved from compiler/nnc/passes/caffe2_frontend/caffe2_proto_helper.h with 100% similarity]
compiler/mir-caffe2-importer/requires.cmake [new file with mode: 0644]
compiler/mir-onnx-importer/.FORMATDENY [new file with mode: 0644]
compiler/mir-onnx-importer/CMakeLists.txt [new file with mode: 0644]
compiler/mir-onnx-importer/ONNXImporterImpl.cpp [moved from compiler/nnc/passes/onnx_frontend/ONNXImporterImpl.cpp with 100% similarity]
compiler/mir-onnx-importer/ONNXImporterImpl.h [moved from compiler/nnc/passes/onnx_frontend/ONNXImporterImpl.h with 100% similarity]
compiler/mir-onnx-importer/ONNXOpCreator.cpp [moved from compiler/nnc/passes/onnx_frontend/ONNXOpCreator.cpp with 100% similarity]
compiler/mir-onnx-importer/ONNXOpCreator.h [moved from compiler/nnc/passes/onnx_frontend/ONNXOpCreator.h with 100% similarity]
compiler/mir-onnx-importer/ONNXOpType.h [moved from compiler/nnc/passes/onnx_frontend/ONNXOpType.h with 100% similarity]
compiler/mir-onnx-importer/ONNXPerfect.gperf [moved from compiler/nnc/passes/onnx_frontend/ONNXPerfect.gperf with 100% similarity]
compiler/mir-onnx-importer/ONNXPerfectHash.h [moved from compiler/nnc/passes/onnx_frontend/ONNXPerfectHash.h with 100% similarity]
compiler/mir-onnx-importer/requires.cmake [new file with mode: 0644]
compiler/mir-tflite-importer/.FORMATDENY [new file with mode: 0644]
compiler/mir-tflite-importer/CMakeLists.txt [new file with mode: 0644]
compiler/mir-tflite-importer/requires.cmake [new file with mode: 0644]
compiler/mir-tflite-importer/schema/schema.fbs [moved from compiler/nnc/passes/tflite_frontend/schema/schema.fbs with 100% similarity]
compiler/mir-tflite-importer/schema/schema.meta [moved from compiler/nnc/passes/tflite_frontend/schema/schema.meta with 100% similarity]
compiler/mir-tflite-importer/schema/schema_v0.fbs [moved from compiler/nnc/passes/tflite_frontend/schema/schema_v0.fbs with 100% similarity]
compiler/mir-tflite-importer/schema/schema_v0.meta [moved from compiler/nnc/passes/tflite_frontend/schema/schema_v0.meta with 100% similarity]
compiler/mir-tflite-importer/schema/schema_v1.fbs [moved from compiler/nnc/passes/tflite_frontend/schema/schema_v1.fbs with 100% similarity]
compiler/mir-tflite-importer/schema/schema_v1.meta [moved from compiler/nnc/passes/tflite_frontend/schema/schema_v1.meta with 100% similarity]
compiler/mir-tflite-importer/schema/schema_v2.fbs [moved from compiler/nnc/passes/tflite_frontend/schema/schema_v2.fbs with 100% similarity]
compiler/mir-tflite-importer/schema/schema_v2.meta [moved from compiler/nnc/passes/tflite_frontend/schema/schema_v2.meta with 100% similarity]
compiler/mir-tflite-importer/schema/schema_v3.fbs [moved from compiler/nnc/passes/tflite_frontend/schema/schema_v3.fbs with 100% similarity]
compiler/mir-tflite-importer/schema/schema_v3.meta [moved from compiler/nnc/passes/tflite_frontend/schema/schema_v3.meta with 100% similarity]
compiler/mir-tflite-importer/tflite_importer.cpp [moved from compiler/nnc/passes/tflite_frontend/tflite_importer.cpp with 100% similarity]
compiler/mir-tflite-importer/tflite_importer.h [moved from compiler/nnc/passes/tflite_frontend/tflite_importer.h with 100% similarity]
compiler/mir-tflite-importer/tflite_op_creator.cpp [moved from compiler/nnc/passes/tflite_frontend/tflite_op_creator.cpp with 100% similarity]
compiler/mir-tflite-importer/tflite_op_creator.h [moved from compiler/nnc/passes/tflite_frontend/tflite_op_creator.h with 100% similarity]
compiler/nnc/cmake/config.cmake
compiler/nnc/passes/caffe2_frontend/CMakeLists.txt
compiler/nnc/passes/caffe_frontend/CMakeLists.txt
compiler/nnc/passes/onnx_frontend/CMakeLists.txt
compiler/nnc/passes/tflite_frontend/CMakeLists.txt
compiler/nnc/requires.cmake

diff --git a/compiler/mir-caffe-importer/.FORMATDENY b/compiler/mir-caffe-importer/.FORMATDENY
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/compiler/mir-caffe-importer/CMakeLists.txt b/compiler/mir-caffe-importer/CMakeLists.txt
new file mode 100644 (file)
index 0000000..0cb1198
--- /dev/null
@@ -0,0 +1,17 @@
+nncc_find_package(CaffeProto QUIET)
+
+if (NOT CaffeProto_FOUND)
+    return()
+endif ()
+
+set(MIR_CAFFE_IMPORTER_SOURCES
+        caffe_importer.cpp
+        caffe_importer.h
+        caffe_op_creator.cpp
+        caffe_op_creator.h
+        caffe_op_types.h)
+
+add_library(mir_caffe_importer STATIC ${MIR_CAFFE_IMPORTER_SOURCES})
+set_target_properties(mir_caffe_importer PROPERTIES POSITION_INDEPENDENT_CODE ON)
+target_include_directories(mir_caffe_importer PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
+target_link_libraries(mir_caffe_importer PUBLIC mir caffeproto)
diff --git a/compiler/mir-caffe-importer/requires.cmake b/compiler/mir-caffe-importer/requires.cmake
new file mode 100644 (file)
index 0000000..1059c50
--- /dev/null
@@ -0,0 +1 @@
+require("mir")
diff --git a/compiler/mir-caffe2-importer/.FORMATDENY b/compiler/mir-caffe2-importer/.FORMATDENY
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/compiler/mir-caffe2-importer/CMakeLists.txt b/compiler/mir-caffe2-importer/CMakeLists.txt
new file mode 100644 (file)
index 0000000..5b1c3d7
--- /dev/null
@@ -0,0 +1,29 @@
+nncc_find_package(PytorchSource QUIET)
+nncc_find_package(Protobuf QUIET)
+
+if (NOT PytorchSource_FOUND OR NOT Protobuf_FOUND)
+    return()
+endif()
+
+Protobuf_Generate(CAFFE2_PROTO "${CMAKE_CURRENT_BINARY_DIR}/generated/caffe2"
+        "${PytorchSource_DIR}" "caffe2/proto/caffe2.proto")
+
+add_library(caffe2proto STATIC ${CAFFE2_PROTO_SOURCES})
+set_target_properties(caffe2proto PROPERTIES POSITION_INDEPENDENT_CODE ON)
+target_include_directories(caffe2proto PUBLIC ${CAFFE2_PROTO_INCLUDE_DIRS})
+target_link_libraries(caffe2proto PUBLIC libprotobuf)
+
+
+set(MIR_CAFFE2_IMPORTER_SOURCES
+        caffe2_importer.cpp
+        caffe2_importer.h
+        caffe2_op_creator.cpp
+        caffe2_op_creator.h
+        caffe2_op_types.h
+        caffe2_proto_helper.cpp
+        caffe2_proto_helper.h)
+
+add_library(mir_caffe2_importer STATIC ${MIR_CAFFE2_IMPORTER_SOURCES})
+set_target_properties(mir_caffe2_importer PROPERTIES POSITION_INDEPENDENT_CODE ON)
+target_include_directories(mir_caffe2_importer PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
+target_link_libraries(mir_caffe2_importer PUBLIC mir caffe2proto)
diff --git a/compiler/mir-caffe2-importer/requires.cmake b/compiler/mir-caffe2-importer/requires.cmake
new file mode 100644 (file)
index 0000000..1059c50
--- /dev/null
@@ -0,0 +1 @@
+require("mir")
diff --git a/compiler/mir-onnx-importer/.FORMATDENY b/compiler/mir-onnx-importer/.FORMATDENY
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/compiler/mir-onnx-importer/CMakeLists.txt b/compiler/mir-onnx-importer/CMakeLists.txt
new file mode 100644 (file)
index 0000000..1b60912
--- /dev/null
@@ -0,0 +1,19 @@
+nncc_find_package(ONNXProto QUIET)
+
+if (NOT ONNXProto_FOUND)
+    return()
+endif ()
+
+set(MIR_ONNX_IMPORTER_SOURCES
+        ONNXImporterImpl.cpp
+        ONNXImporterImpl.h
+        ONNXOpCreator.cpp
+        ONNXOpCreator.h
+        ONNXOpType.h
+        ONNXPerfectHash.h)
+
+add_library(mir_onnx_importer STATIC ${MIR_ONNX_IMPORTER_SOURCES})
+set_target_properties(mir_onnx_importer PROPERTIES POSITION_INDEPENDENT_CODE ON)
+target_compile_definitions(mir_onnx_importer PUBLIC ONNX_NAMESPACE=onnx)
+target_include_directories(mir_onnx_importer PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
+target_link_libraries(mir_onnx_importer PUBLIC onnxproto mir)
diff --git a/compiler/mir-onnx-importer/requires.cmake b/compiler/mir-onnx-importer/requires.cmake
new file mode 100644 (file)
index 0000000..1059c50
--- /dev/null
@@ -0,0 +1 @@
+require("mir")
diff --git a/compiler/mir-tflite-importer/.FORMATDENY b/compiler/mir-tflite-importer/.FORMATDENY
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/compiler/mir-tflite-importer/CMakeLists.txt b/compiler/mir-tflite-importer/CMakeLists.txt
new file mode 100644 (file)
index 0000000..d755ecf
--- /dev/null
@@ -0,0 +1,22 @@
+nncc_find_package(FlatBuffers REQUIRED)
+
+if (NOT FlatBuffers_FOUND)
+    return()
+endif ()
+
+FlatBuffers_Target(mir_tflite_schema
+        OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/generated/schema"
+        SCHEMA_DIR "${CMAKE_CURRENT_SOURCE_DIR}/schema"
+        SCHEMA_FILES schema.fbs)
+
+
+set(MIR_TFLITE_IMPORTER_SOURCES
+        tflite_importer.cpp
+        tflite_importer.h
+        tflite_op_creator.cpp
+        tflite_op_creator.h)
+
+add_library(mir_tflite_importer STATIC ${MIR_TFLITE_IMPORTER_SOURCES})
+set_target_properties(mir_tflite_importer PROPERTIES POSITION_INDEPENDENT_CODE ON)
+target_include_directories(mir_tflite_importer PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
+target_link_libraries(mir_tflite_importer PUBLIC mir mir_tflite_schema)
diff --git a/compiler/mir-tflite-importer/requires.cmake b/compiler/mir-tflite-importer/requires.cmake
new file mode 100644 (file)
index 0000000..1059c50
--- /dev/null
@@ -0,0 +1 @@
+require("mir")
index 853201b..ec103da 100644 (file)
@@ -32,52 +32,26 @@ else()
   set(NNC_HDF5_SUPPORTED OFF)
 endif()
 
-# We need protobuf and pytorch sources to generate caffe2.pb.h and caffe2.pb.cc
-nncc_find_package(PytorchSource QUIET)
-nncc_find_package(Protobuf QUIET)
-if(Protobuf_FOUND AND PytorchSource_FOUND)
+if(TARGET mir_caffe2_importer)
   set(NNC_FRONTEND_CAFFE2_ENABLED ON)
 else()
-  if(NOT Protobuf_FOUND)
-    message(WARNING "Protobuf not found, nnc caffe2 frontend will not be available")
-  endif()
-  if(NOT PytorchSource_FOUND)
-    message(WARNING "PyTorch not found, nnc caffe2 frontend will not be available")
-  endif()
   set(NNC_FRONTEND_CAFFE2_ENABLED OFF)
 endif()
 
-# Try to get compiled caffe proto and return if not successful
-# Note: this creates a target called "caffeproto" that contains compiled caffe.proto sources,
-#       and after linking with it caffe.pb.h will be available as "caffe/proto/caffe.pb.h"
-nncc_find_package(CaffeProto QUIET)
-if (CaffeProto_FOUND)
+if(TARGET mir_caffe_importer)
   set(NNC_FRONTEND_CAFFE_ENABLED ON)
 else()
-  message(WARNING "Caffeproto library was not found, nnc caffe frontend will not be available")
   set(NNC_FRONTEND_CAFFE_ENABLED OFF)
 endif()
 
-# Try to get the compiled onnx proto and return if not successful.
-# Note: this creates a target called "onnxproto" and after linking with it
-#       onnx.pb.h will be available as "onnx/onnx.pb.h"
-set(NNC_FRONTEND_ONNX_ENABLED OFF)
-nncc_find_package(ONNXProto QUIET)
-if (ONNXProto_FOUND)
-  nncc_find_package(ONNXSource EXACT 1.3.0)
-  if (${ONNXSource_FOUND})
-    set(NNC_FRONTEND_ONNX_ENABLED ON)
-  endif()
-endif()
-if(NOT NNC_FRONTEND_ONNX_ENABLED)
-  message(WARNING "nnc onnx frontend will not be available")
+if(TARGET mir_onnx_importer)
+  set(NNC_FRONTEND_ONNX_ENABLED ON)
+else()
+  set(NNC_FRONTEND_ONNX_ENABLED OFF)
 endif()
 
-# We need flatbuffer for tflite frontend
-nncc_find_package(FlatBuffers QUIET)
-if (FlatBuffers_FOUND)
+if(TARGET mir_tflite_importer)
   set(NNC_FRONTEND_TFLITE_ENABLED ON)
 else()
-  message(WARNING "FlatBuffers not found, nnc tflite frontend will not be available")
   set(NNC_FRONTEND_TFLITE_ENABLED OFF)
 endif()
index 735e9c9..736910c 100644 (file)
@@ -1,33 +1,3 @@
-###################
-# Caffe2 proto    #
-###################
-
-# Compile caffe2.proto from pytroch sources
-# Produces CAFFE2_PROTO_SOURCES and CAFFE2_PROTO_INCLUDE_DIRS variables.
-Protobuf_Generate(CAFFE2_PROTO "${CMAKE_CURRENT_BINARY_DIR}/generated/caffe2"
-        "${PytorchSource_DIR}" "caffe2/proto/caffe2.proto")
-
-add_library(caffe2proto STATIC ${CAFFE2_PROTO_SOURCES})
-set_target_properties(caffe2proto PROPERTIES POSITION_INDEPENDENT_CODE ON)
-target_include_directories(caffe2proto PUBLIC ${CAFFE2_PROTO_INCLUDE_DIRS})
-target_link_libraries(caffe2proto PUBLIC libprotobuf)
-
-
-set(MIR_CAFFE2_IMPORTER_SOURCES
-        caffe2_importer.cpp
-        caffe2_importer.h
-        caffe2_op_creator.cpp
-        caffe2_op_creator.h
-        caffe2_op_types.h
-        caffe2_proto_helper.cpp
-        caffe2_proto_helper.h)
-
-add_library(mir_caffe2_importer STATIC ${MIR_CAFFE2_IMPORTER_SOURCES})
-set_target_properties(mir_caffe2_importer PROPERTIES POSITION_INDEPENDENT_CODE ON)
-target_include_directories(mir_caffe2_importer PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
-target_link_libraries(mir_caffe2_importer PUBLIC mir caffe2proto)
-
-
 set(NNC_CAFFE2_IMPORTER_PASS_SOURCES
         caffe2_importer_pass.cpp
         caffe2_importer_pass.h)
index 193f346..2777818 100644 (file)
@@ -1,16 +1,3 @@
-set(MIR_CAFFE_IMPORTER_SOURCES
-        caffe_importer.cpp
-        caffe_importer.h
-        caffe_op_creator.cpp
-        caffe_op_creator.h
-        caffe_op_types.h)
-
-add_library(mir_caffe_importer STATIC ${MIR_CAFFE_IMPORTER_SOURCES})
-set_target_properties(mir_caffe_importer PROPERTIES POSITION_INDEPENDENT_CODE ON)
-target_include_directories(mir_caffe_importer PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
-target_link_libraries(mir_caffe_importer PUBLIC mir caffeproto)
-
-
 set(NNC_CAFFE_IMPORTER_PASS_SOURCES
         caffe_importer_pass.cpp
         caffe_importer_pass.h)
index 873ffb5..2bee0e2 100644 (file)
@@ -1,18 +1,3 @@
-set(MIR_ONNX_IMPORTER_SOURCES
-        ONNXImporterImpl.cpp
-        ONNXImporterImpl.h
-        ONNXOpCreator.cpp
-        ONNXOpCreator.h
-        ONNXOpType.h
-        ONNXPerfectHash.h)
-
-add_library(mir_onnx_importer STATIC ${MIR_ONNX_IMPORTER_SOURCES})
-set_target_properties(mir_onnx_importer PROPERTIES POSITION_INDEPENDENT_CODE ON)
-target_compile_definitions(mir_onnx_importer PUBLIC ONNX_NAMESPACE=onnx)
-target_include_directories(mir_onnx_importer PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
-target_link_libraries(mir_onnx_importer PUBLIC onnxproto mir)
-
-
 set(NNC_ONNX_IMPORTER_PASS_SOURCES
         ONNXImporterPass.cpp
         ONNXImporterPass.h)
index 60186d4..d421cd0 100644 (file)
@@ -1,21 +1,3 @@
-FlatBuffers_Target(tflite_schema
-        OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/generated/schema"
-        SCHEMA_DIR "${CMAKE_CURRENT_SOURCE_DIR}/schema"
-        SCHEMA_FILES schema.fbs)
-
-
-set(MIR_TFLITE_IMPORTER_SOURCES
-        tflite_importer.cpp
-        tflite_importer.h
-        tflite_op_creator.cpp
-        tflite_op_creator.h)
-
-add_library(mir_tflite_importer STATIC ${MIR_TFLITE_IMPORTER_SOURCES})
-set_target_properties(mir_tflite_importer PROPERTIES POSITION_INDEPENDENT_CODE ON)
-target_include_directories(mir_tflite_importer PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
-target_link_libraries(mir_tflite_importer PUBLIC mir tflite_schema)
-
-
 set(NNC_TFLITE_IMPORTER_PASS_SOURCES
         tflite_importer_pass.cpp
         tflite_importer_pass.h)
index a4fde85..b6584f8 100644 (file)
@@ -1 +1,5 @@
 require("adtidas")
+require("mir-caffe2-importer")
+require("mir-caffe-importer")
+require("mir-onnx-importer")
+require("mir-tflite-importer")