From aac1d96ec8a8c4417cc59dd11cc1c12ccc736487 Mon Sep 17 00:00:00 2001 From: Matthew Brookhart Date: Mon, 18 Oct 2021 11:28:38 -0600 Subject: [PATCH 1/5] Move libinfo into the runtime build --- CMakeLists.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 72ac58c0b67e..bbfc39a8bd2a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -473,11 +473,11 @@ add_library(tvm_objs OBJECT ${COMPILER_SRCS}) add_library(tvm_runtime_objs OBJECT ${RUNTIME_SRCS}) add_library(tvm_libinfo_objs OBJECT ${LIBINFO_FILE}) -add_library(tvm SHARED $ $ $) +add_library(tvm SHARED $ $) set_property(TARGET tvm APPEND PROPERTY LINK_OPTIONS "${TVM_NO_UNDEFINED_SYMBOLS}") set_property(TARGET tvm APPEND PROPERTY LINK_OPTIONS "${TVM_VISIBILITY_FLAG}") if(BUILD_STATIC_RUNTIME) - add_library(tvm_runtime STATIC $) + add_library(tvm_runtime STATIC $ $) set(NOTICE_MULTILINE "You have build static version of the TVM runtime library. Make " "sure to use --whole-archive when linking it into your project.") @@ -485,7 +485,7 @@ if(BUILD_STATIC_RUNTIME) add_custom_command(TARGET tvm_runtime POST_BUILD COMMAND ${CMAKE_COMMAND} -E cmake_echo_color --yellow --bold ${NOTICE}) else() - add_library(tvm_runtime SHARED $) + add_library(tvm_runtime SHARED $ $) set_property(TARGET tvm_runtime APPEND PROPERTY LINK_OPTIONS "${TVM_NO_UNDEFINED_SYMBOLS}") endif() set_property(TARGET tvm_runtime APPEND PROPERTY LINK_OPTIONS "${TVM_VISIBILITY_FLAG}") From d5b5a62a4cbecfcca6856a5c214a9b0f8beb04a6 Mon Sep 17 00:00:00 2001 From: Matthew Brookhart Date: Mon, 18 Oct 2021 13:04:58 -0600 Subject: [PATCH 2/5] put libinfo back into libtvm --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index bbfc39a8bd2a..7293abb60f7c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -473,7 +473,7 @@ add_library(tvm_objs OBJECT ${COMPILER_SRCS}) add_library(tvm_runtime_objs OBJECT ${RUNTIME_SRCS}) add_library(tvm_libinfo_objs OBJECT ${LIBINFO_FILE}) -add_library(tvm SHARED $ $) +add_library(tvm SHARED $ $ $) set_property(TARGET tvm APPEND PROPERTY LINK_OPTIONS "${TVM_NO_UNDEFINED_SYMBOLS}") set_property(TARGET tvm APPEND PROPERTY LINK_OPTIONS "${TVM_VISIBILITY_FLAG}") if(BUILD_STATIC_RUNTIME) From f936a956ddd7882ca3a6afe9ae87d60ff4586482 Mon Sep 17 00:00:00 2001 From: Matthew Brookhart Date: Fri, 5 Nov 2021 16:53:14 -0600 Subject: [PATCH 3/5] limit microtvm imports when we only have the runtime lib --- python/tvm/micro/__init__.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/python/tvm/micro/__init__.py b/python/tvm/micro/__init__.py index ba966d3791bb..55be3eb0a514 100644 --- a/python/tvm/micro/__init__.py +++ b/python/tvm/micro/__init__.py @@ -15,12 +15,18 @@ # specific language governing permissions and limitations # under the License. """MicroTVM module for bare-metal backends""" +from tvm._ffi.base import _RUNTIME_ONLY from .build import autotvm_build_func from .build import AutoTvmModuleLoader from .build import get_standalone_crt_dir from .build import get_microtvm_template_projects -from .model_library_format import export_model_library_format, UnsupportedInModelLibraryFormatError + +if not _RUNTIME_ONLY: + from .model_library_format import ( + export_model_library_format, + UnsupportedInModelLibraryFormatError, + ) from .project import generate_project, GeneratedProject, TemplateProject from .session import ( create_local_graph_executor, From f5a69a556f1096ed7d9132ce36d8f36217590cdc Mon Sep 17 00:00:00 2001 From: Matthew Brookhart Date: Mon, 8 Nov 2021 21:45:49 -0700 Subject: [PATCH 4/5] fix lint --- python/tvm/micro/__init__.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/python/tvm/micro/__init__.py b/python/tvm/micro/__init__.py index 55be3eb0a514..e9b21924c6e3 100644 --- a/python/tvm/micro/__init__.py +++ b/python/tvm/micro/__init__.py @@ -22,11 +22,6 @@ from .build import get_standalone_crt_dir from .build import get_microtvm_template_projects -if not _RUNTIME_ONLY: - from .model_library_format import ( - export_model_library_format, - UnsupportedInModelLibraryFormatError, - ) from .project import generate_project, GeneratedProject, TemplateProject from .session import ( create_local_graph_executor, @@ -35,3 +30,9 @@ SessionTerminatedError, ) from .transport import TransportLogger + +if not _RUNTIME_ONLY: + from .model_library_format import ( + export_model_library_format, + UnsupportedInModelLibraryFormatError, + ) From f7455b54dc85d08f8652422650c797ca8328c72e Mon Sep 17 00:00:00 2001 From: Matthew Brookhart Date: Tue, 9 Nov 2021 11:07:43 -0700 Subject: [PATCH 5/5] try conditional for micro import --- python/tvm/__init__.py | 5 +++-- python/tvm/micro/__init__.py | 12 ++++-------- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/python/tvm/__init__.py b/python/tvm/__init__.py index 57374c54b297..3f2f277d2926 100644 --- a/python/tvm/__init__.py +++ b/python/tvm/__init__.py @@ -23,7 +23,8 @@ # top-level alias # tvm._ffi -from ._ffi.base import TVMError, __version__ +from ._ffi.base import TVMError, __version__, _RUNTIME_ONLY + from ._ffi.runtime_ctypes import DataTypeCode, DataType from ._ffi import register_object, register_func, register_extension, get_global_func @@ -68,7 +69,7 @@ # Contrib initializers from .contrib import rocm as _rocm, nvcc as _nvcc, sdaccel as _sdaccel -if support.libinfo().get("USE_MICRO", "OFF") == "ON": +if not _RUNTIME_ONLY and support.libinfo().get("USE_MICRO", "OFF") == "ON": from . import micro # NOTE: This file should be python2 compatible so we can diff --git a/python/tvm/micro/__init__.py b/python/tvm/micro/__init__.py index e9b21924c6e3..3b323f4227a2 100644 --- a/python/tvm/micro/__init__.py +++ b/python/tvm/micro/__init__.py @@ -15,13 +15,15 @@ # specific language governing permissions and limitations # under the License. """MicroTVM module for bare-metal backends""" -from tvm._ffi.base import _RUNTIME_ONLY - from .build import autotvm_build_func from .build import AutoTvmModuleLoader from .build import get_standalone_crt_dir from .build import get_microtvm_template_projects +from .model_library_format import ( + export_model_library_format, + UnsupportedInModelLibraryFormatError, +) from .project import generate_project, GeneratedProject, TemplateProject from .session import ( create_local_graph_executor, @@ -30,9 +32,3 @@ SessionTerminatedError, ) from .transport import TransportLogger - -if not _RUNTIME_ONLY: - from .model_library_format import ( - export_model_library_format, - UnsupportedInModelLibraryFormatError, - )