|
tvm
|
Transform op constructors. More...
#include <tvm/arith/analyzer.h>#include <tvm/te/operation.h>#include <tvm/tir/data_layout.h>#include <tvm/tir/index_map.h>#include <tvm/topi/broadcast.h>#include <tvm/topi/detail/broadcast.h>#include <tvm/topi/detail/constant_utils.h>#include <tvm/topi/detail/ravel_unravel.h>#include <tvm/topi/detail/strided_slice.h>#include <tvm/topi/detail/tensor_utils.h>#include <tvm/topi/tags.h>#include <algorithm>#include <iterator>#include <limits>#include <string>#include <unordered_set>#include <utility>#include <vector>#include "tvm/ir/expr.h"#include "tvm/runtime/data_type.h"#include "tvm/tir/expr.h"#include "tvm/tir/op.h"#include "tvm/tir/var.h"Go to the source code of this file.
Namespaces | |
| tvm | |
| Performance counters for profiling via the PAPI library. | |
| tvm::topi | |
| tvm::topi::relax | |
Functions | |
| Tensor | tvm::topi::sliding_window (const Tensor &x, int axis, ffi::Array< Integer > window_shape, ffi::Array< Integer > strides, std::string name="T_sliding_window", std::string tag="") |
| Creates an operation to slide a window over the input x. More... | |
| Tensor | tvm::topi::expand_dims (const Tensor &x, int axis, int num_newaxis=1, std::string name="T_expand_dims", std::string tag=kBroadcast) |
| Creates an operation to insert new dimensions of length 1. More... | |
| Tensor | tvm::topi::transpose (const Tensor &x, ffi::Optional< ffi::Array< Integer >> opt_axes, std::string name="T_transpose", std::string tag=kInjective) |
| Permute the dimensions of an array. More... | |
| Tensor | tvm::topi::reverse_sequence (const Tensor &x, const Tensor &seq_lengths, int seq_axis=1, int batch_axis=0, std::string name="T_reverse_sequence", std::string tag=kInjective) |
| Reverse the tensor for variable length slices. Input is first sliced along batch axis and then elements are reversed along seq axis. More... | |
| Tensor | tvm::topi::reshape (const Tensor &x, ffi::Array< PrimExpr > newshape, std::string name="T_reshape", std::string tag=kInjective) |
| Reshape a tensor. More... | |
| Tensor | tvm::topi::unravel_index (const Tensor &x, const Tensor &shape, std::string name="T_unravel", std::string tag=kInjective) |
| Converts a flat index or array of flat indices into a tuple of coordinate arrays. More... | |
| Tensor | tvm::topi::squeeze (const Tensor &x, ffi::Optional< ffi::Array< Integer >> opt_axes, bool atleast1d=false, std::string name="T_squeeze", std::string tag=kInjective) |
| Remove size 1 dimensions from the shape of a tensor. The removed dimensions must have a constant size of 1. More... | |
| Tensor | tvm::topi::concatenate (const ffi::Array< Tensor > &inputs, int axis=0, std::string name="T_concat", std::string tag=kInjective) |
| Join a sequence of tensors along an existing axis. More... | |
| Tensor | tvm::topi::stack (const ffi::Array< Tensor > &inputs, int axis=0, std::string name="T_stack", std::string tag=kInjective) |
| Join a sequence of tensors along a new axis. More... | |
| ffi::Array< Tensor > | tvm::topi::split_indices_array (const Tensor &x, ffi::Array< PrimExpr > split_indices, int axis, std::string name="T_split", std::string tag=kInjective) |
| Split a tensor into multiple sub-tensors. More... | |
| PrimExpr | tvm::topi::DynamicCanonicalizeIndex (PrimExpr index, PrimExpr extent, PrimExpr stride) |
| int64_t | tvm::topi::StaticCanonicalizeIndex (int64_t index, int64_t extent, int64_t stride) |
| PrimExpr | tvm::topi::CanonicalizeIndex (PrimExpr index, PrimExpr extent, PrimExpr stride) |
| PrimExpr | tvm::topi::GetLength (PrimExpr begin, PrimExpr end, PrimExpr stride, PrimExpr extent, bool assume_inbound=true) |
| te::Tensor | tvm::topi::dynamic_strided_slice_with_axes (const te::Tensor &x, const ffi::Array< PrimExpr > &begin, const ffi::Array< PrimExpr > &end, const ffi::Array< PrimExpr > &strides, const ffi::Array< Integer > &axes, bool assume_inbound=true, std::string name="T_dynamic_strided_slice_with_axes", std::string tag=kInjective) |
| strided_slice of a tensor where begin/end/stride can be mixed static and dynamic More... | |
| Tensor | tvm::topi::dynamic_strided_slice (const Tensor &x, const ffi::Array< PrimExpr > &begin, const ffi::Array< PrimExpr > &end, const ffi::Array< PrimExpr > &strides, bool assume_inbound=true, std::string name="T_dynamic_strided_slice", std::string tag=kInjective) |
| strided_slice of a tensor where begin/end/stride can be mixed static and dynamic More... | |
| te::Tensor | tvm::topi::dynamic_strided_slice (const te::Tensor &x, const te::Tensor &begin, const te::Tensor &end, const te::Tensor &strides, bool assume_inbound=true, std::string name="T_strided_slice_dynamic", std::string tag=topi::kInjective) |
| strided_slice of a tensor with dynamic begin/end/stride More... | |
| ffi::Array< PrimExpr > | tvm::topi::StridedSliceOutputShape (const ffi::Array< PrimExpr > &ishape, const ffi::Array< Integer > &begin, const ffi::Array< Integer > &end, const ffi::Array< Integer > &strides, const ffi::Array< Integer > &axes, const std::string &slice_mode) |
| Calculate the output shape of strided_slice, the entry point for Relax type relation. More... | |
| Tensor | tvm::topi::strided_slice_with_axes (const Tensor &x, const ffi::Array< Integer > &begin, const ffi::Array< Integer > &end, const ffi::Array< Integer > &strides, const ffi::Array< Integer > &axes, std::string slice_mode="end", std::string name="T_strided_slice_with_axes", std::string tag=kInjective) |
| strided_slice of a tensor More... | |
| Tensor | tvm::topi::strided_slice (const Tensor &x, const ffi::Array< Integer > &begin, const ffi::Array< Integer > &end, const ffi::Array< Integer > &strides, std::string slice_mode="end", std::string name="T_strided_slice", std::string tag=kInjective) |
| strided_slice of a tensor More... | |
| ffi::Array< Tensor > | tvm::topi::split_n_sections (const Tensor &x, int num_sections, int axis, std::string name="T_split_sections", std::string tag=kInjective) |
| Split a tensor into a number of sub-tensors. More... | |
| Tensor | tvm::topi::take (const Tensor &a, const Tensor &indices, int batch_dims, std::string mode="fast", std::string name="T_take", std::string tag=kInjective) |
| Take elements from an flattened input array when axis is None. More... | |
| Tensor | tvm::topi::sequence_mask (const Tensor &data, const Tensor &valid_length, double mask_value, int axis, std::string name="T_sequence_mask", std::string tag=kInjective) |
| Mask the out-of-boundary elements of each sequence. More... | |
| Tensor | tvm::topi::take (const Tensor &a, ffi::Variant< Tensor, PrimExpr > indices, int batch_dims, int axis, std::string mode="fast", std::string name="T_take", std::string tag=kInjective) |
| Take elements from an array along an axis. More... | |
| Tensor | tvm::topi::where (const Tensor &condition, const Tensor &x, const Tensor &y, std::string name="T_where", std::string tag=kBroadcast) |
| Return the elements, either from x or y, depending on the condition. More... | |
| Tensor | tvm::topi::repeat (const Tensor &x, int repeats, int axis, std::string name="T_repeat", std::string tag=kBroadcast) |
| Creates an operation to repeat elements of an array. More... | |
| Tensor | tvm::topi::tile (const Tensor &x, ffi::Array< Integer > reps, std::string name="T_tile", std::string tag=kBroadcast) |
| Creates an operation to tile elements of an array. More... | |
| Tensor | tvm::topi::dyn_tile (const Tensor &x, ffi::Array< PrimExpr > new_shape, size_t rdim, std::string name="T_tile", std::string tag=kBroadcast) |
| Creates an operation to tile elements of an array. More... | |
| Tensor | tvm::topi::gather (const Tensor &data, int axis, const Tensor &indices, std::string name="T_gather", std::string tag=kInjective) |
| Gather values along given axis from given indices. More... | |
| Tensor | tvm::topi::gather_nd (const Tensor &data, const Tensor &indices, int batch_dims=0, std::string name="T_gather_nd", std::string tag=kInjective) |
| Gather elements from a n-dimension array. More... | |
| tvm::te::Tensor | tvm::topi::matmul (const tvm::te::Tensor &A, const tvm::te::Tensor &B, bool trans_a=false, bool trans_b=false, std::string name="T_matmul", std::string tag=kMatMul) |
| Creates an operation that calculates a matrix multiplication (row-major notation): A(i, k) * B(k, j), if trans_a == trans_b the usual transposed combinations, otherwise. More... | |
| Tensor | tvm::topi::tensordot (const Tensor &A, const tvm::te::Tensor &B, int axes=2, std::string name="T_tensordot", std::string tag=kMatMul) |
| A generalization of matrix multiplication to tensors. More... | |
| Tensor | tvm::topi::tensordot (const Tensor &A, const tvm::te::Tensor &B, ffi::Array< PrimExpr > A_axes, ffi::Array< PrimExpr > B_axes, std::string name="T_tensordot", std::string tag=kMatMul) |
| A generalization of matrix multiplication to tensors. More... | |
| Tensor | tvm::topi::arange (const PrimExpr &start, const PrimExpr &stop, const PrimExpr &step, DataType dtype, std::string name="T_arange", std::string tag=kInjective) |
| ffi::Array< Tensor > | tvm::topi::meshgrid (const ffi::Array< Tensor > &inputs, const std::string &indexing, std::string name="T_meshgrid", std::string tag=kInjective) |
| Produce grids by expanding input over dimensions defined by other inputs. More... | |
| Tensor | tvm::topi::layout_transform (const Tensor &src, const std::string &src_layout, const std::string &dst_layout, const std::string schedule_rule="None", const std::string name="T_layout_trans", const std::string tag=kInjective) |
Transform the layout according to src_layout and dst_layout. More... | |
| void | tvm::topi::parse_auto_scheduler_layout (const ffi::String &layout, ffi::Array< PrimExpr > *shape, std::vector< std::string > *axes) |
| Utility function for auto_scheduler_layout_transform. More... | |
| Tensor | tvm::topi::auto_scheduler_layout_transform (const Tensor &src, const ffi::String &src_layout, const ffi::String &dst_layout, const ffi::String name="T_auto_scheduler_layout_trans", const ffi::String tag=kInjective) |
Transform the auto-scheduler generated layout according to src_layout and dst_layout. More... | |
| Tensor | tvm::topi::meta_schedule_layout_transform (const Tensor &src, const tir::IndexMap &index_map, const ffi::String name="T_meta_schedule_layout_trans", const ffi::String tag=kInjective) |
| Transform the meta-schedule generated layout according to TIR's IndexMap. More... | |
| Tensor | tvm::topi::shape (const Tensor &src, DataType dtype, const std::string name="T_shape", const std::string tag=kInjective) |
| Get the shape of input tensor. More... | |
| te::Tensor | tvm::topi::tensor_size (const te::Tensor &src, const DataType &dtype, const std::string &name="tensor_size", const std::string &tag=kInjective) |
| Get the size of input tensor. More... | |
| Tensor | tvm::topi::one_hot (const Tensor &indices, const PrimExpr on_value, const PrimExpr off_value, int depth, int axis, const DataType &dtype, ffi::Array< PrimExpr > oshape=ffi::Array< PrimExpr >(), const std::string name="T_one_hot", const std::string tag=kInjective) |
| Returns a one-hot tensor where the locations repsented by indices take value on_value, other locations take value off_value. More... | |
| Tensor | tvm::topi::sparse_to_dense (const Tensor &sparse_indices, const ffi::Array< PrimExpr > &output_shape, const Tensor &sparse_values, const PrimExpr &default_value, const std::string name="T_sparse_to_dense", const std::string tag=kInjective) |
| Get a dense tensor. More... | |
| Tensor | tvm::topi::matrix_set_diag (const Tensor &input, const Tensor &diagonal, int k1, int k2, bool super_diag_right_align, bool sub_diag_right_align, const std::string name="T_matrix_set_diag", const std::string tag=kInjective) |
| Returns a tensor with the diagonal of input tensor replaced with the provided diagonals. More... | |
| Tensor | tvm::topi::adv_index (const Tensor &data, const ffi::Array< Tensor > &indices, const std::string name="advanced_index", const std::string tag=kInjective) |
| Numpy style advanced indexing with tensor. More... | |
| te::Tensor | tvm::topi::relax::dynamic_strided_slice (const te::Tensor &x, const te::Tensor &begin, const te::Tensor &end, const te::Tensor &strides, ffi::Array< PrimExpr > output_shape, std::string name="T_strided_slice_dynamic", std::string tag=kInjective) |
Transform op constructors.