transport.await (::catalyst::transport::AwaitOp)¶
Await an asynchronous bring-up step.
Syntax:
operation ::= `transport.await` $token attr-dict `:` type($token)
Interfaces: MemoryEffectOpInterface (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{MemoryEffects::Write on ::mlir::SideEffects::DefaultResource}
Operands:¶
Operand |
Description |
|---|---|
|
A handle to an in-flight asynchronous step, awaited with transport.await. |
transport.collect (::catalyst::transport::CollectOp)¶
Receive the current round’s reply.
Syntax:
operation ::= `transport.collect` $session (`,` $dest^)? attr-dict `:` qualified(type($session))
(`,` type($dest)^)? (`->` type($result)^)?
Receives the current round’s reply in one of two forms: a value form that
returns it as a tensor $result, or a destination-passing form that writes
it into the $dest buffer. The buffer shape gives the expected reply size.
Interfaces: MemoryEffectOpInterface (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{MemoryEffects::Write on ::mlir::SideEffects::DefaultResource}
Operands:¶
Operand |
Description |
|---|---|
|
An opaque transport session handle, tagged with its role. |
|
1D memref of 1-bit signless integer or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer or index values |
Results:¶
Result |
Description |
|---|---|
|
1D tensor of 1-bit signless integer or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer or index values |
transport.connect_async (::catalyst::transport::ConnectAsyncOp)¶
Non-blocking connect; await the token with transport.await.
Syntax:
operation ::= `transport.connect_async` $session attr-dict `:` qualified(type($session)) `->` type($token)
Interfaces: MemoryEffectOpInterface (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{MemoryEffects::Write on ::mlir::SideEffects::DefaultResource}
Attributes:¶
| Attribute | MLIR Type | Description |
|---|---|---|
peer | ::mlir::StringAttr | string attribute |
oob_port | ::mlir::IntegerAttr | 16-bit unsigned integer attribute |
Operands:¶
Operand |
Description |
|---|---|
|
An opaque transport session handle, tagged with its role. |
Results:¶
Result |
Description |
|---|---|
|
A handle to an in-flight asynchronous step, awaited with transport.await. |
transport.connect (::catalyst::transport::ConnectOp)¶
Connect to the peer (blocking).
Syntax:
operation ::= `transport.connect` $session attr-dict `:` qualified(type($session))
Interfaces: MemoryEffectOpInterface (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{MemoryEffects::Write on ::mlir::SideEffects::DefaultResource}
Attributes:¶
| Attribute | MLIR Type | Description |
|---|---|---|
peer | ::mlir::StringAttr | string attribute |
oob_port | ::mlir::IntegerAttr | 16-bit unsigned integer attribute |
Operands:¶
Operand |
Description |
|---|---|
|
An opaque transport session handle, tagged with its role. |
transport.create (::catalyst::transport::CreateOp)¶
Create a transport session for a role.
Syntax:
operation ::= `transport.create` attr-dict `->` qualified(type($session))
Creates a session on the backend selected by backend_lib and config; the
result type’s role picks controller or coprocessor. When key is set, the
session is registered under it so transport.get_session can resolve it from
another function.
Interfaces: MemoryEffectOpInterface (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{MemoryEffects::Write on ::mlir::SideEffects::DefaultResource}
Attributes:¶
| Attribute | MLIR Type | Description |
|---|---|---|
backend_lib | ::mlir::StringAttr | string attribute |
config | ::mlir::StringAttr | string attribute |
key | ::mlir::StringAttr | string attribute |
Results:¶
Result |
Description |
|---|---|
|
An opaque transport session handle, tagged with its role. |
transport.destroy (::catalyst::transport::DestroyOp)¶
Destroy the session and release it.
Syntax:
operation ::= `transport.destroy` $session attr-dict `:` qualified(type($session))
Interfaces: MemoryEffectOpInterface (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{MemoryEffects::Write on ::mlir::SideEffects::DefaultResource}
Operands:¶
Operand |
Description |
|---|---|
|
An opaque transport session handle, tagged with its role. |
transport.establish_channel (::catalyst::transport::EstablishChannelOp)¶
Arm the channel for the given transport.
Syntax:
operation ::= `transport.establish_channel` $session $transport attr-dict `:` qualified(type($session))
Prepares the channel selected by transport for the rounds that follow.
Runs after exchange_keys and before post/collect.
Interfaces: MemoryEffectOpInterface (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{MemoryEffects::Write on ::mlir::SideEffects::DefaultResource}
Attributes:¶
| Attribute | MLIR Type | Description |
|---|---|---|
transport | ::mlir::StringAttr | string attribute |
Operands:¶
Operand |
Description |
|---|---|
|
An opaque transport session handle, tagged with its role. |
transport.exchange_keys_async (::catalyst::transport::ExchangeKeysAsyncOp)¶
_Non-blocking exchangekeys; await the token with transport.await.
Syntax:
operation ::= `transport.exchange_keys_async` $session attr-dict `:` qualified(type($session)) `->` type($token)
Interfaces: MemoryEffectOpInterface (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{MemoryEffects::Write on ::mlir::SideEffects::DefaultResource}
Operands:¶
Operand |
Description |
|---|---|
|
An opaque transport session handle, tagged with its role. |
Results:¶
Result |
Description |
|---|---|
|
A handle to an in-flight asynchronous step, awaited with transport.await. |
transport.exchange_keys (::catalyst::transport::ExchangeKeysOp)¶
Exchange memory-region handles with the peer (blocking).
Syntax:
operation ::= `transport.exchange_keys` $session attr-dict `:` qualified(type($session))
Interfaces: MemoryEffectOpInterface (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{MemoryEffects::Write on ::mlir::SideEffects::DefaultResource}
Operands:¶
Operand |
Description |
|---|---|
|
An opaque transport session handle, tagged with its role. |
transport.get_session (::catalyst::transport::GetSessionOp)¶
Resolve a session by role and key.
Syntax:
operation ::= `transport.get_session` attr-dict `:` qualified(type($session))
Returns the session that transport.create registered under (role, key),
where the role is taken from the result type. Lets a session created in one
function be used in another without passing it as a value.
Interfaces: MemoryEffectOpInterface (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{MemoryEffects::Write on ::mlir::SideEffects::DefaultResource}
Attributes:¶
| Attribute | MLIR Type | Description |
|---|---|---|
key | ::mlir::StringAttr | string attribute |
Results:¶
Result |
Description |
|---|---|
|
An opaque transport session handle, tagged with its role. |
transport.last_rtt_ns (::catalyst::transport::LastRttNsOp)¶
Round-trip time of the last round, in nanoseconds.
Syntax:
operation ::= `transport.last_rtt_ns` $session attr-dict `:` qualified(type($session)) `->` type($rtt_ns)
Interfaces: MemoryEffectOpInterface (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{MemoryEffects::Write on ::mlir::SideEffects::DefaultResource}
Operands:¶
Operand |
Description |
|---|---|
|
An opaque transport session handle, tagged with its role. |
Results:¶
Result |
Description |
|---|---|
|
64-bit signless integer |
transport.post (::catalyst::transport::PostOp)¶
Post this round’s payload (controller).
Syntax:
operation ::= `transport.post` $session attr-dict `:` qualified(type($session))
Transmits the payload transport.stage_payload put in the request slot.
Interfaces: MemoryEffectOpInterface (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{MemoryEffects::Write on ::mlir::SideEffects::DefaultResource}
Attributes:¶
| Attribute | MLIR Type | Description |
|---|---|---|
work_item_idx | ::mlir::IntegerAttr | 32-bit signless integer attribute |
Operands:¶
Operand |
Description |
|---|---|
|
controller transport session |
transport.reply_slot (::catalyst::transport::ReplySlotOp)¶
This round’s slot in the transport-owned reply ring (controller).
Syntax:
operation ::= `transport.reply_slot` $session attr-dict `:` qualified(type($session)) `->` type($slot)
The peer writes its reply here. Handing this to transport.collect.
The slot is reused every ring wrap, so a consumer has to read it before the next round.
Interfaces: MemoryEffectOpInterface (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{MemoryEffects::Write on ::mlir::SideEffects::DefaultResource}
Operands:¶
Operand |
Description |
|---|---|
|
controller transport session |
Results:¶
Result |
Description |
|---|---|
|
1D memref of 1-bit signless integer or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer or index values |
transport.set_coprocessor_fn (::catalyst::transport::SetCoprocessorFnOp)¶
Bind the function the coprocessor runs.
Syntax:
operation ::= `transport.set_coprocessor_fn` $session attr-dict `:` qualified(type($session))
Binds the function the coprocessor applies to received messages before
replying. symbol is the name the coprocessor resolves and invokes; an
empty symbol selects a default.
Whether that function is invoked per message or once at start to launch a persistent engine belongs to the backend. The runtime binds through whichever of the two the backend implements.
Interfaces: MemoryEffectOpInterface (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{MemoryEffects::Write on ::mlir::SideEffects::DefaultResource}
Attributes:¶
| Attribute | MLIR Type | Description |
|---|---|---|
symbol | ::mlir::StringAttr | string attribute |
Operands:¶
Operand |
Description |
|---|---|
|
coprocessor transport session |
transport.set_message_sizes (::catalyst::transport::SetMessageSizesOp)¶
Declare how big a round’s request and reply are (controller).
Syntax:
operation ::= `transport.set_message_sizes` $session attr-dict `:` qualified(type($session))
Called once at bring-up. work_item_idx selects which of the backend’s pre-programmed
transfer descriptors this describes
Interfaces: MemoryEffectOpInterface (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{MemoryEffects::Write on ::mlir::SideEffects::DefaultResource}
Attributes:¶
| Attribute | MLIR Type | Description |
|---|---|---|
work_item_idx | ::mlir::IntegerAttr | 32-bit signless integer attribute |
in_bytes | ::mlir::IntegerAttr | 64-bit signless integer attribute |
out_bytes | ::mlir::IntegerAttr | 64-bit signless integer attribute |
Operands:¶
Operand |
Description |
|---|---|
|
controller transport session |
transport.stage_payload (::catalyst::transport::StagePayloadOp)¶
Stage a payload into this round’s request slot (controller).
Syntax:
operation ::= `transport.stage_payload` $session `,` $payload attr-dict `:` qualified(type($session)) `,` type($payload)
Writes through the backend, which knows how its slot memory has to be written.
decoder_id addresses the round at one of the peer’s decoders. It travels in the frame
beside the payload, so it is staged with the payload rather than given to the send.
Interfaces: MemoryEffectOpInterface (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{MemoryEffects::Write on ::mlir::SideEffects::DefaultResource}
Attributes:¶
| Attribute | MLIR Type | Description |
|---|---|---|
decoder_id | ::mlir::IntegerAttr | 32-bit signless integer attribute |
Operands:¶
Operand |
Description |
|---|---|
|
controller transport session |
|
1D memref of 1-bit signless integer or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer or index values or 1D tensor of 1-bit signless integer or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer or index values |
transport.start (::catalyst::transport::StartOp)¶
Start the session; runs until stop (non-blocking).
Syntax:
operation ::= `transport.start` $session attr-dict `:` qualified(type($session))
Interfaces: MemoryEffectOpInterface (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{MemoryEffects::Write on ::mlir::SideEffects::DefaultResource}
Operands:¶
Operand |
Description |
|---|---|
|
An opaque transport session handle, tagged with its role. |
transport.stop (::catalyst::transport::StopOp)¶
Stop the session (idempotent).
Syntax:
operation ::= `transport.stop` $session attr-dict `:` qualified(type($session))
Interfaces: MemoryEffectOpInterface (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{MemoryEffects::Write on ::mlir::SideEffects::DefaultResource}
Operands:¶
Operand |
Description |
|---|---|
|
An opaque transport session handle, tagged with its role. |