Kind of an instruction, e.g. Split, Reorder, etc. Besides the name, every kind of instruction has its own properties, including: 1) A boolean indicating if the instruction is pure, i.e. change nothing in the schedule state 2) A functor that applies the instruction to a TensorIR schedule 3) A functor that converts the instruction to a statement in python syntax 4) A functor that serialize its attributes to JSON 5) A functor that deserialize its attributes from JSON.
More...
#include <instruction.h>
Kind of an instruction, e.g. Split, Reorder, etc. Besides the name, every kind of instruction has its own properties, including: 1) A boolean indicating if the instruction is pure, i.e. change nothing in the schedule state 2) A functor that applies the instruction to a TensorIR schedule 3) A functor that converts the instruction to a statement in python syntax 4) A functor that serialize its attributes to JSON 5) A functor that deserialize its attributes from JSON.
Unlike tvm::OpNode, InstructionKindNode doesn't support unstructured properties, mainly because there is no such usecase yet to add any other property.
◆ IsPostproc()
| bool tvm::tir::InstructionKindNode::IsPostproc |
( |
| ) |
const |
Checks if the instruction kind is EnterPostproc.
◆ RegisterReflection()
| static void tvm::tir::InstructionKindNode::RegisterReflection |
( |
| ) |
|
|
inlinestatic |
◆ TVM_FFI_DECLARE_OBJECT_INFO_FINAL()
| tvm::tir::InstructionKindNode::TVM_FFI_DECLARE_OBJECT_INFO_FINAL |
( |
"tir.InstructionKind" |
, |
|
|
InstructionKindNode |
, |
|
|
runtime::Object |
|
|
) |
| |
◆ f_apply_to_schedule
A functor that applies the instruction to a TensorIR schedule.
◆ f_as_python
A functor that converts the instruction to a statement in python syntax.
◆ f_attrs_as_json
A functor that serialize its attributes to JSON.
- Note
- If the functor is null, it means no conversion is needed
◆ f_attrs_from_json
A functor that deserialize its attributes from JSON.
- Note
- If the functor is null, it means no conversion is needed
◆ is_pure
| bool tvm::tir::InstructionKindNode::is_pure {false} |
Indicates if the instruction is pure, i.e. removing it alone doesn't mutate the schedule state. For example, the instruction GetBlock is pure because it changes nothing, while ComputeInline is not because removing it leads to a different resulting schedule.
◆ name
| ffi::String tvm::tir::InstructionKindNode::name |
The name of a kind of instructions.
The documentation for this class was generated from the following file: