From e7587617c208ae6a614fa35b1bfff08b582784df Mon Sep 17 00:00:00 2001 From: Megvii Engine Team Date: Tue, 14 Jun 2022 21:57:50 +0800 Subject: [PATCH] fix(lite): fix packed model compatibility GitOrigin-RevId: 47976477d101fc3f931637449f3ff818a59340b5 --- lite/CMakeLists.txt | 8 ++++---- lite/load_and_run/CMakeLists.txt | 12 ++++++------ lite/src/pack_model/pack_model.cpp | 14 ++++++++++++++ 3 files changed, 24 insertions(+), 10 deletions(-) diff --git a/lite/CMakeLists.txt b/lite/CMakeLists.txt index 127b15ece..067289124 100644 --- a/lite/CMakeLists.txt +++ b/lite/CMakeLists.txt @@ -36,8 +36,8 @@ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/genfiles/lite_build_config.h # begin config lite if(LITE_BUILD_WITH_MGE - AND LITE_WITH_CUDA - AND NOT WIN32) + AND NOT WIN32 + AND NOT APPLE) # FXIME third_party cpp redis do not support build with clang-cl list(APPEND SOURCES_LITE ${CPP_REDIS_SRCS}) endif() @@ -129,8 +129,8 @@ if(LITE_BUILD_WITH_MGE AND NOT WIN32) endif() if(LITE_BUILD_WITH_MGE - AND LITE_WITH_CUDA - AND NOT WIN32) + AND NOT WIN32 + AND NOT APPLE) # FXIME third_party cpp redis do not support build with clang-cl target_include_directories(lite_static PRIVATE ${CPP_REDIS_INCLUDES}) target_include_directories(lite_shared PRIVATE ${CPP_REDIS_INCLUDES}) diff --git a/lite/load_and_run/CMakeLists.txt b/lite/load_and_run/CMakeLists.txt index 6940024f7..2b8d4e51e 100644 --- a/lite/load_and_run/CMakeLists.txt +++ b/lite/load_and_run/CMakeLists.txt @@ -31,8 +31,8 @@ if(UNIX) endif() if(LITE_BUILD_WITH_MGE - AND LITE_WITH_CUDA - AND NOT WIN32) + AND NOT WIN32 + AND NOT APPLE) # FXIME third_party cpp redis do not support build with clang-cl target_include_directories(load_and_run PRIVATE ${CPP_REDIS_INCLUDES}) endif() @@ -43,8 +43,8 @@ install( RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) if(BUILD_SHARED_LIBS) if(LITE_BUILD_WITH_MGE - AND LITE_WITH_CUDA - AND NOT WIN32) + AND NOT WIN32 + AND NOT APPLE) # FXIME third_party cpp redis do not support build with clang-cl list(APPEND SOURCES ${CPP_REDIS_SRCS}) endif() @@ -72,8 +72,8 @@ if(BUILD_SHARED_LIBS) endif() if(LITE_BUILD_WITH_MGE - AND LITE_WITH_CUDA - AND NOT WIN32) + AND NOT WIN32 + AND NOT APPLE) # FXIME third_party cpp redis do not support build with clang-cl target_include_directories(load_and_run_depends_shared PRIVATE ${CPP_REDIS_INCLUDES}) diff --git a/lite/src/pack_model/pack_model.cpp b/lite/src/pack_model/pack_model.cpp index 9a7e0206d..d904cc2dd 100644 --- a/lite/src/pack_model/pack_model.cpp +++ b/lite/src/pack_model/pack_model.cpp @@ -2,6 +2,7 @@ #include "../misc.h" #if LITE_BUILD_WITH_MGE #include "megbrain/utils/infile_persistent_cache.h" +#include "megbrain/utils/json.h" #endif #include @@ -127,6 +128,19 @@ flatbuffers::Offset FbsHelper::build_info() { fb_data = m_builder.CreateVector(data, size); } else if (!m_packer->m_info_data.empty()) { fb_data = m_builder.CreateVector(m_packer->m_info_data); + } else { + //! set info->data() to non-null to avoid load_and_run parse model compatibility + //! issue + std::string default_data; +#if MGB_ENABLE_JSON + std::vector>> + info; + info.push_back({mgb::json::String("valid"), mgb::json::Bool::make(false)}); + auto obj = mgb::json::Object::make(info); + default_data = obj->to_string(); +#endif + std::vector json_info(default_data.begin(), default_data.end()); + fb_data = m_builder.CreateVector(json_info); } flatbuffers::Offset> fb_algo_policy; -- GitLab