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
option(NGRAPH_FAST_MATH_ENABLE "Enable fast math" ON)
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_INTERPRETER_STATIC_LIB_ENABLE "Enable build INTERPRETER backend static library" FALSE)
if (NGRAPH_CPU_ENABLE
AND
......@@ -258,30 +259,32 @@ NORMALIZE_BOOL(NGRAPH_USE_PREBUILT_LLVM)
NORMALIZE_BOOL(NGRAPH_PLAIDML_ENABLE)
NORMALIZE_BOOL(NGRAPH_JSON_ENABLE)
NORMALIZE_BOOL(NGRAPH_STATIC_LIB_ENABLE)
message(STATUS "NGRAPH_UNIT_TEST_ENABLE: ${NGRAPH_UNIT_TEST_ENABLE}")
message(STATUS "NGRAPH_TOOLS_ENABLE: ${NGRAPH_TOOLS_ENABLE}")
message(STATUS "NGRAPH_CPU_ENABLE: ${NGRAPH_CPU_ENABLE}")
message(STATUS "NGRAPH_MLIR_ENABLE: ${NGRAPH_MLIR_ENABLE}")
message(STATUS "NGRAPH_INTELGPU_ENABLE: ${NGRAPH_INTELGPU_ENABLE}")
message(STATUS "NGRAPH_GPU_ENABLE: ${NGRAPH_GPU_ENABLE}")
message(STATUS "NGRAPH_INTERPRETER_ENABLE: ${NGRAPH_INTERPRETER_ENABLE}")
message(STATUS "NGRAPH_NOP_ENABLE: ${NGRAPH_NOP_ENABLE}")
message(STATUS "NGRAPH_GPUH_ENABLE: ${NGRAPH_GPUH_ENABLE}")
message(STATUS "NGRAPH_GENERIC_CPU_ENABLE: ${NGRAPH_GENERIC_CPU_ENABLE}")
message(STATUS "NGRAPH_DEBUG_ENABLE: ${NGRAPH_DEBUG_ENABLE}")
message(STATUS "NGRAPH_DEPRECATED_ENABLE: ${NGRAPH_DEPRECATED_ENABLE}")
message(STATUS "NGRAPH_ONNX_IMPORT_ENABLE: ${NGRAPH_ONNX_IMPORT_ENABLE}")
message(STATUS "NGRAPH_DEX_ONLY: ${NGRAPH_DEX_ONLY}")
message(STATUS "NGRAPH_ENABLE_CPU_CONV_AUTO: ${NGRAPH_ENABLE_CPU_CONV_AUTO}")
message(STATUS "NGRAPH_CODE_COVERAGE_ENABLE: ${NGRAPH_CODE_COVERAGE_ENABLE}")
message(STATUS "NGRAPH_LIB_VERSIONING_ENABLE: ${NGRAPH_LIB_VERSIONING_ENABLE}")
message(STATUS "NGRAPH_PYTHON_BUILD_ENABLE: ${NGRAPH_PYTHON_BUILD_ENABLE}")
message(STATUS "NGRAPH_USE_PREBUILT_LLVM: ${NGRAPH_USE_PREBUILT_LLVM}")
message(STATUS "NGRAPH_PLAIDML_ENABLE: ${NGRAPH_PLAIDML_ENABLE}")
message(STATUS "NGRAPH_DISTRIBUTED_ENABLE: ${NGRAPH_DISTRIBUTED_ENABLE}")
message(STATUS "NGRAPH_JSON_ENABLE: ${NGRAPH_JSON_ENABLE}")
message(STATUS "NGRAPH_STATIC_LIB_ENABLE: ${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_CPU_ENABLE: ${NGRAPH_CPU_ENABLE}")
message(STATUS "NGRAPH_MLIR_ENABLE: ${NGRAPH_MLIR_ENABLE}")
message(STATUS "NGRAPH_INTELGPU_ENABLE: ${NGRAPH_INTELGPU_ENABLE}")
message(STATUS "NGRAPH_GPU_ENABLE: ${NGRAPH_GPU_ENABLE}")
message(STATUS "NGRAPH_INTERPRETER_ENABLE: ${NGRAPH_INTERPRETER_ENABLE}")
message(STATUS "NGRAPH_NOP_ENABLE: ${NGRAPH_NOP_ENABLE}")
message(STATUS "NGRAPH_GPUH_ENABLE: ${NGRAPH_GPUH_ENABLE}")
message(STATUS "NGRAPH_GENERIC_CPU_ENABLE: ${NGRAPH_GENERIC_CPU_ENABLE}")
message(STATUS "NGRAPH_DEBUG_ENABLE: ${NGRAPH_DEBUG_ENABLE}")
message(STATUS "NGRAPH_DEPRECATED_ENABLE: ${NGRAPH_DEPRECATED_ENABLE}")
message(STATUS "NGRAPH_ONNX_IMPORT_ENABLE: ${NGRAPH_ONNX_IMPORT_ENABLE}")
message(STATUS "NGRAPH_DEX_ONLY: ${NGRAPH_DEX_ONLY}")
message(STATUS "NGRAPH_ENABLE_CPU_CONV_AUTO: ${NGRAPH_ENABLE_CPU_CONV_AUTO}")
message(STATUS "NGRAPH_CODE_COVERAGE_ENABLE: ${NGRAPH_CODE_COVERAGE_ENABLE}")
message(STATUS "NGRAPH_LIB_VERSIONING_ENABLE: ${NGRAPH_LIB_VERSIONING_ENABLE}")
message(STATUS "NGRAPH_PYTHON_BUILD_ENABLE: ${NGRAPH_PYTHON_BUILD_ENABLE}")
message(STATUS "NGRAPH_USE_PREBUILT_LLVM: ${NGRAPH_USE_PREBUILT_LLVM}")
message(STATUS "NGRAPH_PLAIDML_ENABLE: ${NGRAPH_PLAIDML_ENABLE}")
message(STATUS "NGRAPH_DISTRIBUTED_ENABLE: ${NGRAPH_DISTRIBUTED_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...
......
......@@ -505,36 +505,6 @@ configure_file(version.in.hpp version.hpp)
if (NGRAPH_STATIC_LIB_ENABLE)
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()
add_library(ngraph SHARED ${SRC})
endif()
......
......@@ -42,14 +42,6 @@ using namespace ngraph;
unordered_map<string, runtime::BackendConstructor*>& runtime::BackendManager::get_registry()
{
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;
}
......
......@@ -14,7 +14,7 @@
# limitations under the License.
# ******************************************************************************
if (NGRAPH_STATIC_LIB_ENABLE)
if (NGRAPH_INTERPRETER_STATIC_LIB_ENABLE)
set(LIBRARY_TYPE STATIC)
else()
set(LIBRARY_TYPE SHARED)
......@@ -28,6 +28,7 @@ if (NGRAPH_INTERPRETER_ENABLE)
SOVERSION ${NGRAPH_API_VERSION})
endif()
target_link_libraries(interpreter_backend PUBLIC ngraph)
target_compile_definitions(interpreter_backend PUBLIC NGRAPH_INTERPRETER_STATIC_LIB_ENABLE)
install(TARGETS interpreter_backend
LIBRARY DESTINATION "${NGRAPH_INSTALL_LIB}"
......
......@@ -27,7 +27,7 @@
using namespace std;
using namespace ngraph;
static runtime::BackendConstructor* interpreter_get_backend_constructor_pointer()
runtime::BackendConstructor* runtime::interpreter::get_backend_constructor_pointer()
{
class INTBackendConstructor : public runtime::BackendConstructor
{
......@@ -46,7 +46,7 @@ static runtime::BackendConstructor* interpreter_get_backend_constructor_pointer(
#ifndef INTERPRETER_BACKEND_STATIC
extern "C" runtime::BackendConstructor* get_backend_constructor_pointer()
{
return interpreter_get_backend_constructor_pointer();
return runtime::interpreter::get_backend_constructor_pointer();
}
#endif
......@@ -57,7 +57,7 @@ void runtime::interpreter::static_initialize()
{
s_is_initialized = true;
BackendManager::register_backend("INTERPRETER",
interpreter_get_backend_constructor_pointer());
runtime::interpreter::get_backend_constructor_pointer());
}
}
......
......@@ -34,6 +34,7 @@ namespace ngraph
class INTBackend;
class INTExecutable;
class INTBackendConstructor;
BackendConstructor* get_backend_constructor_pointer();
}
}
}
......
......@@ -33,12 +33,22 @@
#include "ngraph/pass/memory_layout.hpp"
#include "ngraph/pass/visualize_tree.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/util.hpp"
using namespace std;
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
{
public:
......@@ -182,6 +192,7 @@ int main(int argc, char** argv)
bool copy_data = true;
bool dot_file = false;
configure_static_backends();
for (size_t i = 1; i < argc; i++)
{
string arg = argv[i];
......
......@@ -19,11 +19,22 @@
#include "gtest/gtest.h"
#include "ngraph/log.hpp"
#include "ngraph/runtime/backend_manager.hpp"
#include "ngraph/runtime/interpreter/int_backend.hpp"
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)
{
configure_static_backends();
const char* exclude = "--gtest_filter=-benchmark.*";
vector<char*> argv_vector;
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