tilelang.carver.roller.node

PrimFunc Wrapper and Block information Analaysis

Classes

Functions

pre_order_traverse(block_analyzer, blocks, func)

topo_order(list_of_nodes)

find_topo_sort_priority(output_node_list)

find_topo_sort(output_node_list)

Module Contents

tilelang.carver.roller.node.pre_order_traverse(block_analyzer, blocks, func)
class tilelang.carver.roller.node.BlockAnalyzer(sch)
sch: tvm.tir.Schedule
block_infos: list[tilelang.carver.analysis.BlockInfo] = None
get_block_name(block)
参数:

block (tvm.tir.schedule.schedule.BlockRV)

返回类型:

str

get_block_info(block)
参数:

block (tvm.tir.schedule.schedule.BlockRV)

返回类型:

tilelang.carver.analysis.BlockInfo

get_spatial_axis(block)
参数:

block (tvm.tir.schedule.schedule.BlockRV)

返回类型:

list[tvm.tir.IterVar]

get_reduce_axis(block)
参数:

block (tvm.tir.schedule.schedule.BlockRV)

返回类型:

list[tvm.tir.IterVar]

get_input_buffers(block)
参数:

block (tvm.tir.schedule.schedule.BlockRV)

返回类型:

list[tvm.tir.Buffer]

get_output_buffers(block)
参数:

block (tvm.tir.schedule.schedule.BlockRV)

返回类型:

list[tvm.tir.Buffer]

get_buffers(block)
参数:

block (tvm.tir.schedule.schedule.BlockRV)

返回类型:

list[tvm.tir.Buffer]

get_producer_blocks(block)
参数:

block (tvm.tir.schedule.schedule.BlockRV)

返回类型:

list[tvm.tir.schedule.schedule.BlockRV]

get_consumer_blocks(block)
参数:

block (tvm.tir.schedule.schedule.BlockRV)

返回类型:

list[tvm.tir.schedule.schedule.BlockRV]

class tilelang.carver.roller.node.Edge
src_node: Node
dst_node: Node
src_id: int
dst_id: int
class tilelang.carver.roller.node.Node(tags=None, name='Node')
参数:
  • tags (dict | None)

  • name (str)

name = 'Node'
update_tags(tags)
参数:

tags (dict)

返回类型:

None

set_tag(k, v=True)
参数:
  • k (str)

  • v (Any)

返回类型:

None

add_tag(k, v=True)
参数:
  • k (str)

  • v (Any)

返回类型:

None

get_tag(k)
参数:

k (str)

返回类型:

Any

is_placeholder()
is_output()
property inputs: list[Edge]
返回类型:

list[Edge]

property outputs: list[Edge]
返回类型:

list[Edge]

set_inputs(i, edge)
参数:
  • i (int)

  • edge (Edge)

set_outputs(i, edge)
参数:
  • i (int)

  • edge (Edge)

get_dtype(id=0)
返回类型:

tvm.DataType

set_dtype(dtype, id=0)
参数:

dtype (tvm.DataType)

返回类型:

None

get_shape(id=0)
参数:

id (int)

返回类型:

list[int]

set_shape(shape, id=0, overwrite=False)
参数:

shape (list[int])

返回类型:

None

num_outputs()
返回类型:

int

abstractmethod get_ir()
返回类型:

str

__repr__()
返回类型:

str

class tilelang.carver.roller.node.PlaceHolderNode(name='')

Bases: Node

is_placeholder()
get_ir()
返回类型:

str

class tilelang.carver.roller.node.PrimFuncNode(prim_func, tags=None, name='PrimFuncNode')

Bases: Node

参数:
  • prim_func (tvm.tir.PrimFunc)

  • tags (dict | None)

  • name (str)

prim_func
sch: tvm.tir.Schedule
block_analyzer: BlockAnalyzer
schedule_stages: list[tvm.tir.schedule.schedule.BlockRV] = []
blocks: list[tvm.tir.schedule.schedule.BlockRV] = []
output_blocks: list[tvm.tir.schedule.schedule.BlockRV] = None
reduction_block: tvm.tir.schedule.schedule.BlockRV = None
raxis = []
input_buffers = []
output_buffers = []
buffers = []
args = []
ana
get_opt_shape(name)
返回类型:

int

extent_wrapper(value)
返回类型:

int

get_space_dim()
返回类型:

list[int]

set_dtype(dtype, id=0)
参数:

dtype (tvm.DataType)

返回类型:

None

get_buffer_dtype(buffer)
参数:

buffer (tvm.tir.Buffer)

返回类型:

tvm.DataType

propagate(tile, rstep=None, targets=None)
参数:

rstep (dict | None)

propagate_inputs(tile, rstep=None)
参数:

rstep (dict | None)

返回类型:

list[list[int]]

propagate_inputs_on_reduction(tile, rstep=None)
参数:

rstep (dict | None)

返回类型:

list[list[int]]

propagate_outputs(tile, rstep=None)
参数:

rstep (dict | None)

返回类型:

list[list[int]]

propagate_reduction_inputs(shape, rstep=None)
参数:

rstep (dict | None)

返回类型:

dict[str, list[int]]

get_reduce_inputs_dtype()
infer_tensorcore_axis()
返回类型:

tuple[int]

footprint(shape, rstep, stride_map=None)
参数:

stride_map (dict | None)

返回类型:

int

get_input_buffers()
返回类型:

list[tvm.tir.Buffer]

class tilelang.carver.roller.node.OutputNode(node, id=0)

Bases: Node

is_output()
get_ir()
返回类型:

str

tilelang.carver.roller.node.topo_order(list_of_nodes)
返回类型:

list[Node]

tilelang.carver.roller.node.find_topo_sort_priority(output_node_list)
返回类型:

list[Node]

tilelang.carver.roller.node.find_topo_sort(output_node_list)
返回类型:

list[Node]