ProtonOps
proton.allocate_event (triton::proton::AllocateEventOp)
Allocate a named asynchronous event
Syntax:
operation ::= `proton.allocate_event` $name attr-dict `:` type($event)
Allocate a static correlation identity for an asynchronous event without recording a timestamp. Each event operation remains distinct even when names are reused; its write effect prevents common-subexpression elimination from merging those identities.
Interfaces: InferTypeOpInterface, MemoryEffectOpInterface (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{MemoryEffects::Write on ::mlir::SideEffects::DefaultResource}
Attributes:
| Attribute | MLIR Type | Description |
|---|---|---|
name | ::mlir::StringAttr | string attribute |
Results:
Result |
Description |
|---|---|
|
32-bit signless integer |
proton.event (triton::proton::EventOp)
Record an asynchronous event
Syntax:
operation ::= `proton.event` (`start` $isStart^):(`end`)? $event attr-dict `:` type($event)
Record the timestamp at which an asynchronous transaction starts or ends. The event identifies the corresponding endpoints even when they execute in different regions.
Interfaces: MemoryEffectOpInterface (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{MemoryEffects::Read on ::mlir::SideEffects::DefaultResource, MemoryEffects::Write on ::mlir::SideEffects::DefaultResource}
Attributes:
| Attribute | MLIR Type | Description |
|---|---|---|
isStart | ::mlir::UnitAttr | unit attribute |
Operands:
Operand |
Description |
|---|---|
|
32-bit signless integer |
proton.record (triton::proton::RecordOp)
Record an event
Syntax:
operation ::= `proton.record` (`start` $isStart^):(`end`)? $name attr-dict
This operation annotates a region of IR where events are recorded. Events can be classified as hardware or software events. Hardware events are provided by the hardware performance counters obtained in later passes that convert Triton to target-specific IR. Software events are provided by the user or the compiler.
Example:
proton.record start "name0"
...
proton.record end "name0"
Scope names cannot be reused within the same function.
Interfaces: MemoryEffectOpInterface (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{MemoryEffects::Read on ::mlir::SideEffects::DefaultResource, MemoryEffects::Write on ::mlir::SideEffects::DefaultResource}
Attributes:
| Attribute | MLIR Type | Description |
|---|---|---|
isStart | ::mlir::UnitAttr | unit attribute |
name | ::mlir::StringAttr | string attribute |