tvm.contrib#
Contrib APIs of TVM python package.
Contrib API provides many useful not core features. Some of these are useful utilities to interact with thirdparty libraries and tools.
tvm.contrib.cblas#
External function interface to BLAS libraries.
- tvm.contrib.cblas.batch_matmul(lhs, rhs, transa=False, transb=False, iterative=False, **kwargs)[源代码]#
Create an extern op that compute batched matrix mult of A and rhs with CBLAS This function serves as an example on how to call external libraries.
Parameters#
- lhs: Tensor
The left matrix operand
- rhs: Tensor
The right matrix operand
- transa: bool
Whether transpose lhs
- transb: bool
Whether transpose rhs
Returns#
- C: Tensor
The result tensor.
- tvm.contrib.cblas.matmul(lhs, rhs, transa=False, transb=False, **kwargs)[源代码]#
Create an extern op that compute matrix mult of A and rhs with CrhsLAS This function serves as an example on how to call external libraries.
Parameters#
- lhs: Tensor
The left matrix operand
- rhs: Tensor
The right matrix operand
- transa: bool
Whether transpose lhs
- transb: bool
Whether transpose rhs
Returns#
- C: Tensor
The result tensor.
tvm.contrib.clang#
Util to invoke clang in the system.
- tvm.contrib.clang.create_llvm(inputs, output=None, options=None, cc=None)[源代码]#
Create llvm text ir.
Parameters#
- inputslist of str
List of input files name or code source.
- outputstr, optional
Output file, if it is none a temporary file is created
- optionslist
The list of additional options string.
- ccstr, optional
The clang compiler, if not specified, we will try to guess the matched clang version.
Returns#
- codestr
The generated llvm text IR.
- tvm.contrib.clang.find_clang(required=True)[源代码]#
Find clang in system.
Parameters#
- requiredbool
Whether it is required, runtime error will be raised if the compiler is required.
Returns#
- valid_listlist of str
List of possible paths.
Note#
This function will first search clang that matches the major llvm version that built with tvm
tvm.contrib.cc#
Util to invoke C/C++ compilers in the system.
- tvm.contrib.cc.create_executable(output, objects, options=None, cc=None, cwd=None, ccache_env=None)[源代码]#
Create executable binary.
Parameters#
- outputstr
The target executable.
- objectsList[str]
List of object files.
- optionsList[str]
The list of additional options string.
- ccOptional[str]
The compiler command.
- cwdOptional[str]
The urrent working directory.
- ccache_envOptional[Dict[str, str]]
The environment variable for ccache. Set None to disable ccache by default.
Create shared library.
Parameters#
- outputstr
The target shared library.
- objectsList[str]
List of object files.
- optionsList[str]
The list of additional options string.
- ccOptional[str]
The compiler command.
- cwdOptional[str]
The current working directory.
- ccache_envOptional[Dict[str, str]]
The environment variable for ccache. Set None to disable ccache by default.
- tvm.contrib.cc.create_staticlib(output, inputs, ar=None)[源代码]#
Create static library.
Parameters#
- outputstr
The target shared library.
- inputsList[str]
List of inputs files. Each input file can be a tarball of objects or an object file.
- arOptional[str]
Path to the ar command to be used
- tvm.contrib.cc.cross_compiler(compile_func, options=None, output_format=None, get_target_triple=None, add_files=None)[源代码]#
Create a cross compiler function by specializing compile_func with options.
This function can be used to construct compile functions that can be passed to AutoTVM measure or export_library.
Parameters#
- compile_funcUnion[str, Callable[[str, str, Optional[str]], None]]
Function that performs the actual compilation
- optionsOptional[List[str]]
List of additional optional string.
- output_formatOptional[str]
Library output format.
- get_target_triple: Optional[Callable]
Function that can target triple according to dumpmachine option of compiler.
- add_files: Optional[List[str]]
List of paths to additional object, source, library files to pass as part of the compilation.
Returns#
- fcompileCallable[[str, str, Optional[str]], None]
A compilation function that can be passed to export_library.
Examples#
from tvm.contrib import cc, ndk # export using arm gcc mod = build_runtime_module() mod.export_library(path_dso, fcompile=cc.cross_compiler("arm-linux-gnueabihf-gcc")) # specialize ndk compilation options. specialized_ndk = cc.cross_compiler( ndk.create_shared, ["--sysroot=/path/to/sysroot", "-shared", "-fPIC", "-lm"]) mod.export_library(path_dso, fcompile=specialized_ndk)
- tvm.contrib.cc.get_cc()[源代码]#
Return the path to the default C/C++ compiler.
Returns#
- out: Optional[str]
The path to the default C/C++ compiler, or None if none was found.
tvm.contrib.cublas#
External function interface to cuBLAS libraries.
- tvm.contrib.cublas.batch_matmul(lhs, rhs, transa=False, transb=False, dtype=None)[源代码]#
Create an extern op that compute batch matrix mult of A and rhs with cuBLAS
Parameters#
- lhsTensor
The left matrix operand
- rhsTensor
The right matrix operand
- transabool
Whether transpose lhs
- transbbool
Whether transpose rhs
Returns#
- CTensor
The result tensor.
- tvm.contrib.cublas.matmul(lhs, rhs, transa=False, transb=False, dtype=None)[源代码]#
Create an extern op that compute matrix mult of A and rhs with cuBLAS
Parameters#
- lhsTensor
The left matrix operand
- rhsTensor
The right matrix operand
- transabool
Whether transpose lhs
- transbbool
Whether transpose rhs
Returns#
- CTensor
The result tensor.
tvm.contrib.dlpack#
Wrapping functions to bridge frameworks with DLPack support to TVM
- tvm.contrib.dlpack.convert_func(tvm_func, tensor_type, to_dlpack_func)[源代码]#
- Convert a tvm function into one that accepts a tensor from another
framework, provided the other framework supports DLPACK
Parameters#
- tvm_func: Function
Built tvm function operating on arrays
- tensor_type: Type
Type of the tensors of the target framework
- to_dlpack_func: Function
Function to convert the source tensors to DLPACK
tvm.contrib.emcc#
Util to invoke emscripten compilers in the system.
- tvm.contrib.emcc.create_tvmjs_wasm(output, objects, options=None, cc='emcc', libs=None)[源代码]#
Create wasm that is supposed to run with the tvmjs.
Parameters#
- outputstr
The target shared library.
- objectslist
List of object files.
- optionsstr
The additional options.
- ccstr, optional
The compile string.
- libslist
List of user-defined library files (e.g. .bc files) to add into the wasm.
tvm.contrib.miopen#
External function interface to MIOpen library.
- tvm.contrib.miopen._get_np_int32_array_handle(arr)[源代码]#
Return a void_p handle for a numpy array
Parameters#
- arr: numpy.NDArray
source numpy array
Returns#
- ptr: ctypes.c_void_p
pointer to the data
- tvm.contrib.miopen.conv2d_forward(x, w, stride_h=1, stride_w=1, pad_h=0, pad_w=0, dilation_h=1, dilation_w=1, conv_mode=0, data_type=1, group_count=1)[源代码]#
Create an extern op that compute 2D convolution with MIOpen
Parameters#
- x: Tensor
input feature map
- w: Tensor
convolution weight
- stride_h: int
height stride
- stride_w: int
width stride
- pad_h: int
height pad
- pad_w: int
weight pad
- dilation_h: int
height dilation
- dilation_w: int
width dilation
- conv_mode: int
0: miopenConvolution 1: miopenTranspose
- data_type: int
0: miopenHalf (fp16) 1: miopenFloat (fp32)
- group_count: int
number of groups
Returns#
- y: Tensor
The result tensor
tvm.contrib.mxnet#
MXNet bridge wrap Function MXNet's async function.
- tvm.contrib.mxnet.to_mxnet_func(func, const_loc=None)[源代码]#
Wrap a TVM function as MXNet function
MXNet function runs asynchrously via its engine.
Parameters#
- funcFunction
A TVM function that can take positional arguments
- const_loclist of int
List of integers indicating the argument position of read only NDArray argument. The NDArray argument location that are not annotated will be viewed as mutable arrays in MXNet's engine.
Returns#
- async_funcFunction
A function that can take MXNet NDArray as argument in places that used to expect TVM NDArray. Run asynchrously in MXNet's async engine.
tvm.contrib.ndk#
Util to invoke NDK compiler toolchain.
Create shared library.
Parameters#
- outputstr
The target shared library.
- objectslist
List of object files.
- optionslist of str, optional
The additional options.
- tvm.contrib.ndk.create_staticlib(output, inputs)[源代码]#
Create static library:
Parameters#
- outputstr
The target static library.
- inputslist
List of object files or tar files
tvm.contrib.nnpack#
External function interface to NNPACK libraries.
- tvm.contrib.nnpack.convolution_inference(data, kernel, bias, padding, stride, nthreads=1, algorithm=0)[源代码]#
Create an extern op to do inference convolution of 4D tensor data and 4D tensor kernel and 1D tensor bias with nnpack.
Parameters#
- dataTensor
data 4D tensor input[batch][input_channels][input_height][input_width] of FP32 elements.
- kernelTensor
kernel 4D tensor kernel[output_channels][input_channels][kernel_height] [kernel_width] of FP32 elements.
- biasTensor
bias 1D array bias[output_channels][input_channels][kernel_height] [kernel_width] of FP32 elements.
- paddinglist
padding A 4-dim list of [pad_top, pad_bottom, pad_left, pad_right], which indicates the padding around the feature map.
- stridelist
stride A 2-dim list of [stride_height, stride_width], which indicates the stride.
Returns#
- outputTensor
output 4D tensor output[batch][output_channels][output_height][output_width] of FP32 elements.
- tvm.contrib.nnpack.convolution_inference_weight_transform(kernel, nthreads=1, algorithm=0, dtype='float32')[源代码]#
Create an extern op to do inference convolution of 3D tensor data and 4D tensor kernel and 1D tensor bias with nnpack.
Parameters#
- kernelTensor
kernel 4D tensor kernel[output_channels][input_channels][kernel_height] [kernel_width] of FP32 elements.
Returns#
- outputTensor
output 4D tensor output[output_channels][input_channels][tile][tile] of FP32 elements.
- tvm.contrib.nnpack.convolution_inference_without_weight_transform(data, transformed_kernel, bias, padding, stride, nthreads=1, algorithm=0)[源代码]#
Create an extern op to do inference convolution of 4D tensor data and 4D pre-transformed tensor kernel and 1D tensor bias with nnpack.
Parameters#
- dataTensor
data 4D tensor input[batch][input_channels][input_height][input_width] of FP32 elements.
- transformed_kernelTensor
transformed_kernel 4D tensor kernel[output_channels][input_channels][tile] [tile] of FP32 elements.
- biasTensor
bias 1D array bias[output_channels][input_channels][kernel_height] [kernel_width] of FP32 elements.
- paddinglist
padding A 4-dim list of [pad_top, pad_bottom, pad_left, pad_right], which indicates the padding around the feature map.
- stridelist
stride A 2-dim list of [stride_height, stride_width], which indicates the stride.
Returns#
- outputTensor
output 4D tensor output[batch][output_channels][output_height][output_width] of FP32 elements.
- tvm.contrib.nnpack.fully_connected_inference(lhs, rhs, nthreads=1)[源代码]#
Create an extern op that compute fully connected of 1D tensor lhs and 2D tensor rhs with nnpack.
Parameters#
- lhsTensor
lhs 1D array input[input_channels] of FP32 elements
- rhsTensor
lhs 2D matrix kernel[output_channels][input_channels] of FP32 elements
Returns#
- CTensor
lhs 1D array out[output_channels] of FP32 elements.
tvm.contrib.nvcc#
Utility to invoke nvcc compiler in the system
- tvm.contrib.nvcc.compile_cuda(code, target_format='ptx', arch=None, options=None, path_target=None)[源代码]#
Compile cuda code with NVCC from env.
Parameters#
- codestr
The cuda code.
- target_formatstr
The target format of nvcc compiler.
- archstr
The cuda architecture.
- optionsstr or list of str
The additional options.
- path_targetstr, optional
Output file.
Return#
- cubinbytearray
The bytearray of the cubin
- tvm.contrib.nvcc.find_cuda_path()[源代码]#
Utility function to find cuda path
Returns#
- pathstr
Path to cuda root.
- tvm.contrib.nvcc.get_cuda_version(cuda_path=None)[源代码]#
Utility function to get cuda version
Parameters#
cuda_path : Optional[str]
Path to cuda root. If None is passed, will use find_cuda_path() as default.
Returns#
- versionfloat
The cuda version
- tvm.contrib.nvcc.have_fp16(compute_version)[源代码]#
Either fp16 support is provided in the compute capability or not
Parameters#
- compute_version: str
compute capability of a GPU (e.g. "6.0")
- tvm.contrib.nvcc.have_int8(compute_version)[源代码]#
Either int8 support is provided in the compute capability or not
Parameters#
- compute_versionstr
compute capability of a GPU (e.g. "6.1")
- tvm.contrib.nvcc.have_tensorcore(compute_version=None, target=None)[源代码]#
Either TensorCore support is provided in the compute capability or not
Parameters#
- compute_versionstr, optional
compute capability of a GPU (e.g. "7.0").
- targettvm.target.Target, optional
The compilation target, will be used to determine arch if compute_version isn't specified.
tvm.contrib.pickle_memoize#
Memoize result of function via pickle, used for cache testcases.
- class tvm.contrib.pickle_memoize.Cache(key, save_at_exit)[源代码]#
A cache object for result cache.
Parameters#
- key: str
The file key to the function
- save_at_exit: bool
Whether save the cache to file when the program exits
- property cache#
Return the cache, initializing on first use.
- tvm.contrib.pickle_memoize.memoize(key, save_at_exit=False)[源代码]#
Memoize the result of function and reuse multiple times.
Parameters#
- key: str
The unique key to the file
- save_at_exit: bool
Whether save the cache to file when the program exits
Returns#
- fmemoizefunction
The decorator function to perform memoization.
tvm.contrib.random#
External function interface to random library.
- tvm.contrib.random.normal(loc, scale, size)[源代码]#
Draw samples from a normal distribution.
Return random samples from a normal distribution.
Parameters#
- locfloat
loc of the distribution.
- scalefloat
Standard deviation of the distribution.
- sizetuple of ints
Output shape. If the given shape is, e.g., (m, n, k), then m * n * k samples are drawn.
Returns#
- outTensor
A tensor with specified size and dtype
- tvm.contrib.random.randint(low, high, size, dtype='int32')[源代码]#
Return random integers from low (inclusive) to high (exclusive). Return random integers from the "discrete uniform" distribution of the specified dtype in the "half-open" interval [low, high).
Parameters#
- lowint
Lowest (signed) integer to be drawn from the distribution
- highint
One above the largest (signed) integer to be drawn from the distribution
Returns#
- outTensor
A tensor with specified size and dtype
- tvm.contrib.random.uniform(low, high, size)[源代码]#
Draw samples from a uniform distribution.
Samples are uniformly distributed over the half-open interval [low, high) (includes low, but excludes high). In other words, any value within the given interval is equally likely to be drawn by uniform.
Parameters#
- lowfloat
Lower boundary of the output interval. All values generated will be greater than or equal to low.
- highfloat
Upper boundary of the output interval. All values generated will be less than high.
- sizetuple of ints
Output shape. If the given shape is, e.g., (m, n, k), then m * n * k samples are drawn.
Returns#
- outTensor
A tensor with specified size and dtype.
tvm.contrib.relay_viz#
Relay IR Visualizer
- class tvm.contrib.relay_viz.RelayVisualizer(relay_mod, relay_param=None, plotter=None, parser=None)[源代码]#
Relay IR Visualizer
Parameters#
- relay_mod: tvm.IRModule
Relay IR module.
- relay_param: None | Dict[str, tvm.runtime.NDArray]
Relay parameter dictionary. Default None.
- plotter: Plotter
An instance of class inheriting from Plotter interface. Default is an instance of terminal.TermPlotter.
- parser: VizParser
An instance of class inheriting from VizParser interface. Default is an instance of terminal.TermVizParser.
Visualize Relay IR by Graphviz DOT language.
- class tvm.contrib.relay_viz.dot.DotGraph(name, graph_attr=None, node_attr=None, edge_attr=None, get_node_attr=None)[源代码]#
DOT graph for relay IR.
See also
tvm.contrib.relay_viz.dot.DotPlotter
Parameters#
- name: str
name of this graph.
- graph_attr: Optional[Dict[str, str]]
key-value pairs for the graph.
- node_attr: Optional[Dict[str, str]]
key-value pairs for all nodes.
- edge_attr: Optional[Dict[str, str]]
key-value pairs for all edges.
- get_node_attr: Optional[Callable[[VizNode], Dict[str, str]]]
A callable returning attributes for the node.
- class tvm.contrib.relay_viz.dot.DotPlotter(graph_attr=None, node_attr=None, edge_attr=None, get_node_attr=None, render_kwargs=None)[源代码]#
DOT language graph plotter
The plotter accepts various graphviz attributes for graphs, nodes, and edges. Please refer to https://graphviz.org/doc/info/attrs.html for available attributes.
Parameters#
- graph_attr: Optional[Dict[str, str]]
key-value pairs for all graphs.
- node_attr: Optional[Dict[str, str]]
key-value pairs for all nodes.
- edge_attr: Optional[Dict[str, str]]
key-value pairs for all edges.
- get_node_attr: Optional[Callable[[VizNode], Dict[str, str]]]
A callable returning attributes for a specific node.
- render_kwargs: Optional[Dict[str, Any]]
keyword arguments directly passed to graphviz.Digraph.render().
Examples#
from tvm.contrib import relay_viz from tvm.relay.testing import resnet mod, param = resnet.get_workload(num_layers=18) # graphviz attributes graph_attr = {"color": "red"} node_attr = {"color": "blue"} edge_attr = {"color": "black"} # VizNode is passed to the callback. # We want to color NCHW conv2d nodes. Also give Var a different shape. def get_node_attr(node): if "nn.conv2d" in node.type_name and "NCHW" in node.detail: return { "fillcolor": "green", "style": "filled", "shape": "box", } if "Var" in node.type_name: return {"shape": "ellipse"} return {"shape": "box"} # Create plotter and pass it to viz. Then render the graph. dot_plotter = relay_viz.DotPlotter( graph_attr=graph_attr, node_attr=node_attr, edge_attr=edge_attr, get_node_attr=get_node_attr) viz = relay_viz.RelayVisualizer( mod, relay_param=param, plotter=dot_plotter, parser=relay_viz.DotVizParser()) viz.render("hello")
Visualize Relay IR in AST text-form.
- class tvm.contrib.relay_viz.terminal.TermGraph(name)[源代码]#
Terminal graph for a relay IR Module
Parameters#
- name: str
name of this graph.
- edge(viz_edge)[源代码]#
Add an edge to the terminal graph.
Parameters#
- viz_edgeVizEdge
A VizEdge instance.
- 参数:
viz_edge (VizEdge)
- 返回类型:
None
- 参数:
name (str)
- class tvm.contrib.relay_viz.terminal.TermNode(viz_node)[源代码]#
TermNode is aimed to generate text more suitable for terminal visualization.
- 参数:
viz_node (VizNode)
- class tvm.contrib.relay_viz.terminal.TermPlotter[源代码]#
Terminal plotter
- class tvm.contrib.relay_viz.terminal.TermVizParser[源代码]#
TermVizParser parse nodes and edges for TermPlotter.
Abstract class used by tvm.contrib.relay_viz.RelayVisualizer
.
- class tvm.contrib.relay_viz.interface.DefaultVizParser[源代码]#
DefaultVizParser provde a set of logics to parse a various relay types. These logics are inspired and heavily based on visualize function in https://tvm.apache.org/2020/07/14/bert-pytorch-tvm
- get_node_edges(node, relay_param, node_to_id)[源代码]#
Get VizNode and VizEdges for a relay.Expr.
Parameters#
- noderelay.Expr
relay.Expr which will be parsed and generate a node and edges.
- relay_param: Dict[str, tvm.runtime.NDArray]
relay parameters dictionary.
- node_to_idDict[relay.Expr, str]
This is a mapping from relay.Expr to a unique id, generated by RelayVisualizer.
Returns#
- rv1Union[VizNode, None]
VizNode represent the relay.Expr. If the relay.Expr is not intended to introduce a node to the graph, return None.
- rv2List[VizEdge]
a list of VizEdges to describe the connectivity of the relay.Expr. Can be empty list to indicate no connectivity.
- class tvm.contrib.relay_viz.interface.Plotter[源代码]#
Plotter can render a collection of Graph interfaces to a file.
- class tvm.contrib.relay_viz.interface.VizEdge(start_node, end_node)[源代码]#
VizEdge connect two VizNode.
Parameters#
- start_node: str
The identifier of the node starting the edge.
- end_node: str
The identifier of the node ending the edge.
- class tvm.contrib.relay_viz.interface.VizGraph[源代码]#
Abstract class for graph, which is composed of nodes and edges.
- class tvm.contrib.relay_viz.interface.VizNode(node_id, node_type, node_detail)[源代码]#
VizNode carry node information for VizGraph interface.
Parameters#
- node_id: str
Unique identifier for this node.
- node_type: str
Type of this node.
- node_detail: str
Any supplement for this node such as attributes.
- class tvm.contrib.relay_viz.interface.VizParser[源代码]#
VizParser parses out a VizNode and VizEdges from a relay.Expr.
- abstract get_node_edges(node, relay_param, node_to_id)[源代码]#
Get VizNode and VizEdges for a relay.Expr.
Parameters#
- noderelay.Expr
relay.Expr which will be parsed and generate a node and edges.
- relay_param: Dict[str, tvm.runtime.NDArray]
relay parameters dictionary.
- node_to_idDict[relay.Expr, str]
This is a mapping from relay.Expr to a unique id, generated by RelayVisualizer.
Returns#
- rv1Union[VizNode, None]
VizNode represent the relay.Expr. If the relay.Expr is not intended to introduce a node to the graph, return None.
- rv2List[VizEdge]
a list of VizEdges to describe the connectivity of the relay.Expr. Can be empty list to indicate no connectivity.
tvm.contrib.rocblas#
External function interface to rocBLAS libraries.
- tvm.contrib.rocblas.batch_matmul(lhs, rhs, transa=False, transb=False)[源代码]#
Create an extern op that compute matrix mult of A and rhs with rocBLAS
Parameters#
- lhsTensor
The left batched matrix operand
- rhsTensor
The right batched matrix operand
- transabool
Whether transpose lhs
- transbbool
Whether transpose rhs
Returns#
- CTensor
The result tensor.
- tvm.contrib.rocblas.matmul(lhs, rhs, transa=False, transb=False)[源代码]#
Create an extern op that compute matrix mult of A and rhs with rocBLAS
Parameters#
- lhsTensor
The left matrix operand
- rhsTensor
The right matrix operand
- transabool
Whether transpose lhs
- transbbool
Whether transpose rhs
Returns#
- CTensor
The result tensor.
tvm.contrib.rocm#
Utility for ROCm backend
- tvm.contrib.rocm.find_lld(required=True)[源代码]#
Find ld.lld in system.
Parameters#
- requiredbool
Whether it is required, runtime error will be raised if the compiler is required.
Returns#
- valid_listlist of str
List of possible paths.
Note#
This function will first search ld.lld that matches the major llvm version that built with tvm
- tvm.contrib.rocm.find_rocm_path()[源代码]#
Utility function to find ROCm path
Returns#
- pathstr
Path to ROCm root.
- tvm.contrib.rocm.have_matrixcore(compute_version=None)[源代码]#
Either MatrixCore support is provided in the compute capability or not
Parameters#
- compute_versionstr, optional
compute capability of a GPU (e.g. "7.0").
Returns#
- have_matrixcorebool
True if MatrixCore support is provided, False otherwise
- tvm.contrib.rocm.parse_compute_version(compute_version)[源代码]#
Parse compute capability string to divide major and minor version
Parameters#
- compute_versionstr
compute capability of a GPU (e.g. "6.0")
Returns#
- majorint
major version number
- minorint
minor version number
- tvm.contrib.rocm.rocm_link(in_file, out_file, lld=None)[源代码]#
Link relocatable ELF object to shared ELF object using lld
Parameters#
- in_filestr
Input file name (relocatable ELF object file)
- out_filestr
Output file name (shared ELF object file)
- lldstr, optional
The lld linker, if not specified, we will try to guess the matched clang version.
tvm.contrib.sparse#
Tensor and Operation class for computation declaration.
- class tvm.contrib.sparse.CSRNDArray(arg1, device=None, shape=None)[源代码]#
Sparse tensor object in CSR format.
- __init__(arg1, device=None, shape=None)[源代码]#
Construct a sparse matrix in CSR format.
Parameters#
- arg1numpy.ndarray or a tuple with (data, indices, indptr)
The corresponding a dense numpy array, or a tuple for constructing a sparse matrix directly.
- device: Device
The corresponding device.
- shapetuple of int
The shape of the array
- class tvm.contrib.sparse.CSRPlaceholderOp(shape, nonzeros, dtype, name)[源代码]#
Placeholder class for CSR based sparse tensor representation.
- class tvm.contrib.sparse.SparsePlaceholderOp(shape, nonzeros, dtype, name)[源代码]#
Placeholder class for sparse tensor representations.
- tvm.contrib.sparse.array(source_array, device=None, shape=None, stype='csr')[源代码]#
Construct a sparse NDArray from numpy.ndarray
- tvm.contrib.sparse.placeholder(shape, nonzeros=None, dtype=None, name='placeholder', stype=None)[源代码]#
Construct an empty sparse tensor object.
Parameters#
- shape: Tuple of Expr
The shape of the tensor
- nonzeros: int
The number of non-zero values
- dtype: str, optional
The data type of the tensor
- name: str, optional
The name hint of the tensor
- stype: str, optional
The name storage type of the sparse tensor (e.g. csr, coo, ell)
Returns#
- tensor: SparsePlaceholderOp
The created sparse tensor placeholder
tvm.contrib.spirv#
Utility for Interacting with SPIRV Tools
tvm.contrib.tar#
Util to invoke tarball in the system.
- tvm.contrib.tar.normalize_file_list_by_unpacking_tars(temp, file_list)[源代码]#
Normalize the file list by unpacking tars in list.
When a filename is a tar, it will untar it into an unique dir in temp and return the list of files in the tar. When a filename is a normal file, it will be simply added to the list.
This is useful to untar objects in tar and then turn them into a library.
Parameters#
- temp: tvm.contrib.utils.TempDirectory
A temp dir to hold the untared files.
- file_list: List[str]
List of path
Returns#
- ret_list: List[str]
An updated list of files
tvm.contrib.utils#
Common system utilities
- exception tvm.contrib.utils.DirectoryCreatedPastAtExit[源代码]#
Raised when a TempDirectory is created after the atexit hook runs.
- class tvm.contrib.utils.FileLock(path)[源代码]#
File lock object
Parameters#
- pathstr
The path to the lock
- class tvm.contrib.utils.TempDirectory(custom_path=None, keep_for_debug=None)[源代码]#
Helper object to manage temp directory during testing.
Automatically removes the directory when it went out of scope.
- tvm.contrib.utils.filelock(path)[源代码]#
Create a file lock which locks on path
Parameters#
- pathstr
The path to the lock
Returns#
lock : File lock object
- tvm.contrib.utils.is_source_path(path)[源代码]#
Check if path is source code path.
Parameters#
- pathstr
A possible path
Returns#
- validbool
Whether path is a possible source path
- tvm.contrib.utils.tempdir(custom_path=None, keep_for_debug=None)[源代码]#
Create temp dir which deletes the contents when exit.
Parameters#
- custom_pathstr, optional
Manually specify the exact temp dir path
- keep_for_debugbool
Keep temp directory for debugging purposes
Returns#
- tempTempDirectory
The temp directory object
tvm.contrib.xcode#
Utility to invoke Xcode compiler toolchain
- tvm.contrib.xcode.compile_coreml(model, model_name='main', out_dir='.')[源代码]#
Compile coreml model and return the compiled model path.
- tvm.contrib.xcode.compile_metal(code, path_target=None, sdk='macosx', min_os_version=None)[源代码]#
Compile metal with CLI tool from env.
Parameters#
- codestr
The cuda code.
- path_targetstr, optional
Output file.
- sdkstr, optional
The target platform SDK.
Return#
- metallibbytearray
The bytearray of the metallib