chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
# coding: utf-8
|
||||
# pylint: disable=invalid-name, import-outside-toplevel
|
||||
"""Base library for TVM."""
|
||||
|
||||
import os
|
||||
|
||||
from tvm_ffi.libinfo import load_lib_ctypes
|
||||
|
||||
from . import libinfo
|
||||
|
||||
# ----------------------------
|
||||
# library loading
|
||||
# ----------------------------
|
||||
|
||||
# Whether only the runtime library is loaded (runtime-only wheel, or
|
||||
# ``TVM_USE_RUNTIME_LIB=1``). Set during library loading below.
|
||||
_RUNTIME_ONLY = os.environ.get("TVM_USE_RUNTIME_LIB") == "1"
|
||||
|
||||
# Handles of the core libraries actually loaded, keyed by basename
|
||||
# (e.g. ``{"tvm_runtime": <CDLL>, "tvm_compiler": <CDLL>}``). Downstream /
|
||||
# autoloaded extensions can inspect this to skip duplicate libraries
|
||||
# (``"tvm_runtime" in _LOADED_LIBS``) and obtain the loaded handle.
|
||||
_LOADED_LIBS = {}
|
||||
|
||||
|
||||
# runtime is loaded RTLD_GLOBAL to expose its symbols to subsequent loads;
|
||||
# compiler is loaded RTLD_LOCAL.
|
||||
_LOADED_LIBS["tvm_runtime"] = load_lib_ctypes(
|
||||
"tvm", "tvm_runtime", "RTLD_GLOBAL", extra_lib_paths=libinfo.package_lib_paths()
|
||||
)
|
||||
|
||||
if not _RUNTIME_ONLY:
|
||||
try:
|
||||
_LOADED_LIBS["tvm_compiler"] = load_lib_ctypes(
|
||||
"tvm", "tvm_compiler", "RTLD_LOCAL", extra_lib_paths=libinfo.package_lib_paths()
|
||||
)
|
||||
except (RuntimeError, OSError):
|
||||
# Compiler lib not present, or present but unloadable (missing LLVM
|
||||
# deps / linker issues) — fall back to runtime-only mode.
|
||||
_RUNTIME_ONLY = True
|
||||
|
||||
if _RUNTIME_ONLY:
|
||||
from tvm_ffi import registry as _tvm_ffi_registry
|
||||
|
||||
_tvm_ffi_registry._SKIP_UNKNOWN_OBJECTS = True
|
||||
Reference in New Issue
Block a user