db5f4fe65c
(See https://discuss.tvm.apache.org/t/byoc-supporting-cutlass-byoc-with-collage/12796/6 for context, which in turn is part of Collage (https://github.com/apache/tvm-rfcs/blob/main/rfcs/0062-collage.md). This adds a new 'DSO exportable' runtime module representing the contents of a .o file. It allows external codegen toolchains to yield a result which: - Like CSource modules, can be conveyed directly to the final export_library compilation step for linking into the final .so and saved to a know location without risk the underlying code artifact will be lost. - Like DSOLibrary modules, are self contained so that no additional compile-time arguments need be conveyed from the CSource module to the final export_library command line Since this is the third flavor of 'DSO exportable' module, add a Module::IsDSOExportable. Since adding the above, can't resist also adding a Module::ImplementsFunction virtual and calling it from TEComplier to check if an external codegen function actually provided the implementation it promised. Note: - I've left the existing implementation of runtime.load_module alone which relinks .o files to .so files. - Though also contained in the .o metadata, I require static libraries to always carry their list of exported function names. This is all pretty stop gap pending a good rework of TVM to supoprt the notion of artifacts and, perhaps, build rules.
36 lines
1.4 KiB
Python
36 lines
1.4 KiB
Python
# 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.
|
|
"""TVM runtime namespace."""
|
|
|
|
# class exposures
|
|
from .packed_func import PackedFunc
|
|
from .object import Object
|
|
from .object_generic import ObjectGeneric, ObjectTypes
|
|
from .ndarray import NDArray, DataType, DataTypeCode, Device
|
|
from .module import Module, num_threads
|
|
from .profiling import Report
|
|
|
|
# function exposures
|
|
from .object_generic import convert_to_object, convert, const
|
|
from .ndarray import device, cpu, cuda, gpu, opencl, cl, vulkan, metal, mtl
|
|
from .ndarray import vpi, rocm, ext_dev
|
|
from .module import load_module, enabled, system_lib, load_static_library
|
|
from .container import String, ShapeTuple
|
|
from .params import save_param_dict, load_param_dict
|
|
|
|
from . import executor
|