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

Bases: object

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')ΒΆ

Bases: object

Parameters:
  • tags (Optional[Dict])

  • 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 (Optional[Dict])

  • 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 (Optional[Dict])

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

rstep (Optional[Dict])

Return type:

List[List[int]]

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

rstep (Optional[Dict])

Return type:

List[List[int]]

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

rstep (Optional[Dict])

Return type:

List[List[int]]

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

rstep (Optional[Dict])

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 (Optional[Dict])

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]