Commit 2688f37c authored by Robert Kimball's avatar Robert Kimball

wip

parent a601facd
...@@ -182,6 +182,7 @@ option(NGRAPH_DISTRIBUTED_ENABLE "Enable distributed training using MLSL/OpenMPI ...@@ -182,6 +182,7 @@ option(NGRAPH_DISTRIBUTED_ENABLE "Enable distributed training using MLSL/OpenMPI
option(NGRAPH_FAST_MATH_ENABLE "Enable fast math" ON) option(NGRAPH_FAST_MATH_ENABLE "Enable fast math" ON)
option(NGRAPH_JSON_ENABLE "Enable JSON based serialization and tracing features" TRUE) option(NGRAPH_JSON_ENABLE "Enable JSON based serialization and tracing features" TRUE)
option(NGRAPH_STATIC_LIB_ENABLE "Enable build nGraph static library" FALSE) option(NGRAPH_STATIC_LIB_ENABLE "Enable build nGraph static library" FALSE)
option(NGRAPH_INTERPRETER_STATIC_LIB_ENABLE "Enable build INTERPRETER backend static library" FALSE)
if (NGRAPH_CPU_ENABLE if (NGRAPH_CPU_ENABLE
AND AND
...@@ -258,30 +259,32 @@ NORMALIZE_BOOL(NGRAPH_USE_PREBUILT_LLVM) ...@@ -258,30 +259,32 @@ NORMALIZE_BOOL(NGRAPH_USE_PREBUILT_LLVM)
NORMALIZE_BOOL(NGRAPH_PLAIDML_ENABLE) NORMALIZE_BOOL(NGRAPH_PLAIDML_ENABLE)
NORMALIZE_BOOL(NGRAPH_JSON_ENABLE) NORMALIZE_BOOL(NGRAPH_JSON_ENABLE)
NORMALIZE_BOOL(NGRAPH_STATIC_LIB_ENABLE) NORMALIZE_BOOL(NGRAPH_STATIC_LIB_ENABLE)
NORMALIZE_BOOL(NGRAPH_INTERPRETER_STATIC_LIB_ENABLE)
message(STATUS "NGRAPH_UNIT_TEST_ENABLE: ${NGRAPH_UNIT_TEST_ENABLE}")
message(STATUS "NGRAPH_TOOLS_ENABLE: ${NGRAPH_TOOLS_ENABLE}") message(STATUS "NGRAPH_UNIT_TEST_ENABLE: ${NGRAPH_UNIT_TEST_ENABLE}")
message(STATUS "NGRAPH_CPU_ENABLE: ${NGRAPH_CPU_ENABLE}") message(STATUS "NGRAPH_TOOLS_ENABLE: ${NGRAPH_TOOLS_ENABLE}")
message(STATUS "NGRAPH_MLIR_ENABLE: ${NGRAPH_MLIR_ENABLE}") message(STATUS "NGRAPH_CPU_ENABLE: ${NGRAPH_CPU_ENABLE}")
message(STATUS "NGRAPH_INTELGPU_ENABLE: ${NGRAPH_INTELGPU_ENABLE}") message(STATUS "NGRAPH_MLIR_ENABLE: ${NGRAPH_MLIR_ENABLE}")
message(STATUS "NGRAPH_GPU_ENABLE: ${NGRAPH_GPU_ENABLE}") message(STATUS "NGRAPH_INTELGPU_ENABLE: ${NGRAPH_INTELGPU_ENABLE}")
message(STATUS "NGRAPH_INTERPRETER_ENABLE: ${NGRAPH_INTERPRETER_ENABLE}") message(STATUS "NGRAPH_GPU_ENABLE: ${NGRAPH_GPU_ENABLE}")
message(STATUS "NGRAPH_NOP_ENABLE: ${NGRAPH_NOP_ENABLE}") message(STATUS "NGRAPH_INTERPRETER_ENABLE: ${NGRAPH_INTERPRETER_ENABLE}")
message(STATUS "NGRAPH_GPUH_ENABLE: ${NGRAPH_GPUH_ENABLE}") message(STATUS "NGRAPH_NOP_ENABLE: ${NGRAPH_NOP_ENABLE}")
message(STATUS "NGRAPH_GENERIC_CPU_ENABLE: ${NGRAPH_GENERIC_CPU_ENABLE}") message(STATUS "NGRAPH_GPUH_ENABLE: ${NGRAPH_GPUH_ENABLE}")
message(STATUS "NGRAPH_DEBUG_ENABLE: ${NGRAPH_DEBUG_ENABLE}") message(STATUS "NGRAPH_GENERIC_CPU_ENABLE: ${NGRAPH_GENERIC_CPU_ENABLE}")
message(STATUS "NGRAPH_DEPRECATED_ENABLE: ${NGRAPH_DEPRECATED_ENABLE}") message(STATUS "NGRAPH_DEBUG_ENABLE: ${NGRAPH_DEBUG_ENABLE}")
message(STATUS "NGRAPH_ONNX_IMPORT_ENABLE: ${NGRAPH_ONNX_IMPORT_ENABLE}") message(STATUS "NGRAPH_DEPRECATED_ENABLE: ${NGRAPH_DEPRECATED_ENABLE}")
message(STATUS "NGRAPH_DEX_ONLY: ${NGRAPH_DEX_ONLY}") message(STATUS "NGRAPH_ONNX_IMPORT_ENABLE: ${NGRAPH_ONNX_IMPORT_ENABLE}")
message(STATUS "NGRAPH_ENABLE_CPU_CONV_AUTO: ${NGRAPH_ENABLE_CPU_CONV_AUTO}") message(STATUS "NGRAPH_DEX_ONLY: ${NGRAPH_DEX_ONLY}")
message(STATUS "NGRAPH_CODE_COVERAGE_ENABLE: ${NGRAPH_CODE_COVERAGE_ENABLE}") message(STATUS "NGRAPH_ENABLE_CPU_CONV_AUTO: ${NGRAPH_ENABLE_CPU_CONV_AUTO}")
message(STATUS "NGRAPH_LIB_VERSIONING_ENABLE: ${NGRAPH_LIB_VERSIONING_ENABLE}") message(STATUS "NGRAPH_CODE_COVERAGE_ENABLE: ${NGRAPH_CODE_COVERAGE_ENABLE}")
message(STATUS "NGRAPH_PYTHON_BUILD_ENABLE: ${NGRAPH_PYTHON_BUILD_ENABLE}") message(STATUS "NGRAPH_LIB_VERSIONING_ENABLE: ${NGRAPH_LIB_VERSIONING_ENABLE}")
message(STATUS "NGRAPH_USE_PREBUILT_LLVM: ${NGRAPH_USE_PREBUILT_LLVM}") message(STATUS "NGRAPH_PYTHON_BUILD_ENABLE: ${NGRAPH_PYTHON_BUILD_ENABLE}")
message(STATUS "NGRAPH_PLAIDML_ENABLE: ${NGRAPH_PLAIDML_ENABLE}") message(STATUS "NGRAPH_USE_PREBUILT_LLVM: ${NGRAPH_USE_PREBUILT_LLVM}")
message(STATUS "NGRAPH_DISTRIBUTED_ENABLE: ${NGRAPH_DISTRIBUTED_ENABLE}") message(STATUS "NGRAPH_PLAIDML_ENABLE: ${NGRAPH_PLAIDML_ENABLE}")
message(STATUS "NGRAPH_JSON_ENABLE: ${NGRAPH_JSON_ENABLE}") message(STATUS "NGRAPH_DISTRIBUTED_ENABLE: ${NGRAPH_DISTRIBUTED_ENABLE}")
message(STATUS "NGRAPH_STATIC_LIB_ENABLE: ${NGRAPH_STATIC_LIB_ENABLE}") message(STATUS "NGRAPH_JSON_ENABLE: ${NGRAPH_JSON_ENABLE}")
message(STATUS "NGRAPH_STATIC_LIB_ENABLE: ${NGRAPH_STATIC_LIB_ENABLE}")
message(STATUS "NGRAPH_INTERPRETER_STATIC_LIB_ENABLE: ${NGRAPH_INTERPRETER_STATIC_LIB_ENABLE}")
#----------------------------------------------------------------------------------------------- #-----------------------------------------------------------------------------------------------
# Installation logic... # Installation logic...
......
...@@ -505,36 +505,6 @@ configure_file(version.in.hpp version.hpp) ...@@ -505,36 +505,6 @@ configure_file(version.in.hpp version.hpp)
if (NGRAPH_STATIC_LIB_ENABLE) if (NGRAPH_STATIC_LIB_ENABLE)
add_library(ngraph STATIC ${SRC}) add_library(ngraph STATIC ${SRC})
if (NGRAPH_INTERPRETER_ENABLE)
target_compile_definitions(ngraph PUBLIC INTERPRETER_BACKEND_STATIC)
endif()
# if (NGRAPH_CPU_ENABLE)
# target_compile_definitions(ngraph PUBLIC CPU_BACKEND_STATIC)
# endif()
# if (NGRAPH_INTELGPU_ENABLE)
# target_compile_definitions(ngraph PUBLIC INTELGPU_BACKEND_STATIC)
# endif()
# if (NGRAPH_GPU_ENABLE)
# target_compile_definitions(ngraph PUBLIC GPU_BACKEND_STATIC)
# endif()
# if (NGRAPH_NOP_ENABLE)
# target_compile_definitions(ngraph PUBLIC NOP_BACKEND_STATIC)
# endif()
# if (NGRAPH_GPUH_ENABLE)
# target_compile_definitions(ngraph PUBLIC GPUH_BACKEND_STATIC)
# endif()
# if (NGRAPH_GENERIC_CPU_ENABLE)
# target_compile_definitions(ngraph PUBLIC GENERIC_CPU_BACKEND_STATIC)
# endif()
# if (NGRAPH_PLAIDML_ENABLE)
# target_compile_definitions(ngraph PUBLIC PLAIDML_BACKEND_STATIC)
# endif()
else() else()
add_library(ngraph SHARED ${SRC}) add_library(ngraph SHARED ${SRC})
endif() endif()
......
...@@ -42,14 +42,6 @@ using namespace ngraph; ...@@ -42,14 +42,6 @@ using namespace ngraph;
unordered_map<string, runtime::BackendConstructor*>& runtime::BackendManager::get_registry() unordered_map<string, runtime::BackendConstructor*>& runtime::BackendManager::get_registry()
{ {
static unordered_map<string, BackendConstructor*> s_registered_backend; static unordered_map<string, BackendConstructor*> s_registered_backend;
static bool s_static_initialization_called = false;
if (!s_static_initialization_called)
{
s_static_initialization_called = true;
#ifdef INTERPRETER_BACKEND_STATIC
runtime::interpreter::static_initialize();
#endif
}
return s_registered_backend; return s_registered_backend;
} }
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
# limitations under the License. # limitations under the License.
# ****************************************************************************** # ******************************************************************************
if (NGRAPH_STATIC_LIB_ENABLE) if (NGRAPH_INTERPRETER_STATIC_LIB_ENABLE)
set(LIBRARY_TYPE STATIC) set(LIBRARY_TYPE STATIC)
else() else()
set(LIBRARY_TYPE SHARED) set(LIBRARY_TYPE SHARED)
...@@ -28,6 +28,7 @@ if (NGRAPH_INTERPRETER_ENABLE) ...@@ -28,6 +28,7 @@ if (NGRAPH_INTERPRETER_ENABLE)
SOVERSION ${NGRAPH_API_VERSION}) SOVERSION ${NGRAPH_API_VERSION})
endif() endif()
target_link_libraries(interpreter_backend PUBLIC ngraph) target_link_libraries(interpreter_backend PUBLIC ngraph)
target_compile_definitions(interpreter_backend PUBLIC NGRAPH_INTERPRETER_STATIC_LIB_ENABLE)
install(TARGETS interpreter_backend install(TARGETS interpreter_backend
LIBRARY DESTINATION "${NGRAPH_INSTALL_LIB}" LIBRARY DESTINATION "${NGRAPH_INSTALL_LIB}"
......
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
using namespace std; using namespace std;
using namespace ngraph; using namespace ngraph;
static runtime::BackendConstructor* interpreter_get_backend_constructor_pointer() runtime::BackendConstructor* runtime::interpreter::get_backend_constructor_pointer()
{ {
class INTBackendConstructor : public runtime::BackendConstructor class INTBackendConstructor : public runtime::BackendConstructor
{ {
...@@ -46,7 +46,7 @@ static runtime::BackendConstructor* interpreter_get_backend_constructor_pointer( ...@@ -46,7 +46,7 @@ static runtime::BackendConstructor* interpreter_get_backend_constructor_pointer(
#ifndef INTERPRETER_BACKEND_STATIC #ifndef INTERPRETER_BACKEND_STATIC
extern "C" runtime::BackendConstructor* get_backend_constructor_pointer() extern "C" runtime::BackendConstructor* get_backend_constructor_pointer()
{ {
return interpreter_get_backend_constructor_pointer(); return runtime::interpreter::get_backend_constructor_pointer();
} }
#endif #endif
...@@ -57,7 +57,7 @@ void runtime::interpreter::static_initialize() ...@@ -57,7 +57,7 @@ void runtime::interpreter::static_initialize()
{ {
s_is_initialized = true; s_is_initialized = true;
BackendManager::register_backend("INTERPRETER", BackendManager::register_backend("INTERPRETER",
interpreter_get_backend_constructor_pointer()); runtime::interpreter::get_backend_constructor_pointer());
} }
} }
......
...@@ -34,6 +34,7 @@ namespace ngraph ...@@ -34,6 +34,7 @@ namespace ngraph
class INTBackend; class INTBackend;
class INTExecutable; class INTExecutable;
class INTBackendConstructor; class INTBackendConstructor;
BackendConstructor* get_backend_constructor_pointer();
} }
} }
} }
......
...@@ -33,12 +33,22 @@ ...@@ -33,12 +33,22 @@
#include "ngraph/pass/memory_layout.hpp" #include "ngraph/pass/memory_layout.hpp"
#include "ngraph/pass/visualize_tree.hpp" #include "ngraph/pass/visualize_tree.hpp"
#include "ngraph/runtime/backend.hpp" #include "ngraph/runtime/backend.hpp"
#include "ngraph/runtime/backend_manager.hpp"
#include "ngraph/runtime/interpreter/int_backend.hpp"
#include "ngraph/serializer.hpp" #include "ngraph/serializer.hpp"
#include "ngraph/util.hpp" #include "ngraph/util.hpp"
using namespace std; using namespace std;
using namespace ngraph; using namespace ngraph;
static void configure_static_backends()
{
#ifdef NGRAPH_INTERPRETER_STATIC_LIB_ENABLE
ngraph::runtime::BackendManager::register_backend(
"INTERPRETER", ngraph::runtime::interpreter::get_backend_constructor_pointer());
#endif
}
class PerfShape : public ngraph::runtime::PerformanceCounter class PerfShape : public ngraph::runtime::PerformanceCounter
{ {
public: public:
...@@ -182,6 +192,7 @@ int main(int argc, char** argv) ...@@ -182,6 +192,7 @@ int main(int argc, char** argv)
bool copy_data = true; bool copy_data = true;
bool dot_file = false; bool dot_file = false;
configure_static_backends();
for (size_t i = 1; i < argc; i++) for (size_t i = 1; i < argc; i++)
{ {
string arg = argv[i]; string arg = argv[i];
......
...@@ -19,11 +19,22 @@ ...@@ -19,11 +19,22 @@
#include "gtest/gtest.h" #include "gtest/gtest.h"
#include "ngraph/log.hpp" #include "ngraph/log.hpp"
#include "ngraph/runtime/backend_manager.hpp"
#include "ngraph/runtime/interpreter/int_backend.hpp"
using namespace std; using namespace std;
static void configure_static_backends()
{
#ifdef NGRAPH_INTERPRETER_STATIC_LIB_ENABLE
ngraph::runtime::BackendManager::register_backend(
"INTERPRETER", ngraph::runtime::interpreter::get_backend_constructor_pointer());
#endif
}
int main(int argc, char** argv) int main(int argc, char** argv)
{ {
configure_static_backends();
const char* exclude = "--gtest_filter=-benchmark.*"; const char* exclude = "--gtest_filter=-benchmark.*";
vector<char*> argv_vector; vector<char*> argv_vector;
argv_vector.push_back(argv[0]); argv_vector.push_back(argv[0]);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment