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)ΒΆ
Parameters:

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

Return type:

str

get_block_info(block)ΒΆ
Parameters:

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

Return type:

tilelang.carver.analysis.BlockInfo

get_spatial_axis(block)ΒΆ
Parameters:

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

Return type:

list[tvm.tir.IterVar]

get_reduce_axis(block)ΒΆ
Parameters:

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

Return type:

list[tvm.tir.IterVar]

get_input_buffers(block)ΒΆ
Parameters:

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

Return type:

list[tvm.tir.Buffer]

get_output_buffers(block)ΒΆ
Parameters:

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

Return type:

list[tvm.tir.Buffer]

get_buffers(block)ΒΆ
Parameters:

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

Return type:

list[tvm.tir.Buffer]

get_producer_blocks(block)ΒΆ
Parameters:

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

Return type:

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

get_consumer_blocks(block)ΒΆ
Parameters:

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

Return type:

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')ΒΆ
Parameters:
  • tags (dict | None)

  • name (str)

name = 'Node'ΒΆ
update_tags(tags)ΒΆ
Parameters:

tags (dict)

Return type:

None

set_tag(k, v=True)ΒΆ
Parameters:
  • k (str)

  • v (Any)

Return type:

None

add_tag(k, v=True)ΒΆ
Parameters:
  • k (str)

  • v (Any)

Return type:

None

get_tag(k)ΒΆ
Parameters:

k (str)

Return type:

Any

is_placeholder()ΒΆ
is_output()ΒΆ
property inputs: list[Edge]ΒΆ
Return type:

list[Edge]

property outputs: list[Edge]ΒΆ
Return type:

list[Edge]

set_inputs(i, edge)ΒΆ
Parameters:
  • i (int)

  • edge (Edge)

set_outputs(i, edge)ΒΆ
Parameters:
  • i (int)

  • edge (Edge)

get_dtype(id=0)ΒΆ
Return type:

tvm.DataType

set_dtype(dtype, id=0)ΒΆ
Parameters:

dtype (tvm.DataType)

Return type:

None

get_shape(id=0)ΒΆ
Parameters:

id (int)

Return type:

list[int]

set_shape(shape, id=0, overwrite=False)ΒΆ
Parameters:

shape (list[int])

Return type:

None

num_outputs()ΒΆ
Return type:

int

abstract get_ir()ΒΆ
Return type:

str

__repr__()ΒΆ
Return type:

str

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

Bases: Node

is_placeholder()ΒΆ
get_ir()ΒΆ
Return type:

str

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

Bases: Node

Parameters:
  • 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)ΒΆ
Return type:

int

extent_wrapper(value)ΒΆ
Return type:

int

get_space_dim()ΒΆ
Return type:

list[int]

set_dtype(dtype, id=0)ΒΆ
Parameters:

dtype (tvm.DataType)

Return type:

None

get_buffer_dtype(buffer)ΒΆ
Parameters:

buffer (tvm.tir.Buffer)

Return type:

tvm.DataType

propagate(tile, rstep=None, targets=None)ΒΆ
Parameters:

rstep (dict | None)

propagate_inputs(tile, rstep=None)ΒΆ
Parameters:

rstep (dict | None)

Return type:

list[list[int]]

propagate_inputs_on_reduction(tile, rstep=None)ΒΆ
Parameters:

rstep (dict | None)

Return type:

list[list[int]]

propagate_outputs(tile, rstep=None)ΒΆ
Parameters:

rstep (dict | None)

Return type:

list[list[int]]

propagate_reduction_inputs(shape, rstep=None)ΒΆ
Parameters:

rstep (dict | None)

Return type:

dict[str, list[int]]

get_reduce_inputs_dtype()ΒΆ
infer_tensorcore_axis()ΒΆ
Return type:

tuple[int]

footprint(shape, rstep, stride_map=None)ΒΆ
Parameters:

stride_map (dict | None)

Return type:

int

get_input_buffers()ΒΆ
Return type:

list[tvm.tir.Buffer]

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

Bases: Node

is_output()ΒΆ
get_ir()ΒΆ
Return type:

str

tilelang.carver.roller.node.topo_order(list_of_nodes)ΒΆ
Return type:

list[Node]

tilelang.carver.roller.node.find_topo_sort_priority(output_node_list)ΒΆ
Return type:

list[Node]

tilelang.carver.roller.node.find_topo_sort(output_node_list)ΒΆ
Return type:

list[Node]