'hal_loader' Dialectlink
IREE HAL inline executable loader runtime module dialect.
Low-level dialect for dynamically loading executables and dispatching work. Only operates synchronously, single-threaded, and on host-local buffers. Use the full HAL for all other cases.
This dialect can be used alongside the full HAL but is intended for use in
conjunction with the hal_inline
dialect which also carries the same usage
restrictions.
See hal_loader.imports.mlir
for the full list of exported functions.
- 'hal_loader' Dialect
- Operations
- Executable ops
- hal_loader.executable.dispatch (HAL::Loader::ExecutableDispatchOp)
- hal_loader.executable.export.ordinal (HAL::Loader::ExecutableExportOrdinalOp)
- hal_loader.executable.load (HAL::Loader::ExecutableLoadOp)
- hal_loader.executable.lookup (HAL::Loader::ExecutableLookupOp)
- hal_loader.executable.query_support (HAL::Loader::ExecutableQuerySupportOp)
- Executable ops
- Operations
Operationslink
Executable opslink
Ops for !hal.executable
/ iree_hal_executable_t
.
hal_loader.executable.dispatch
(HAL::Loader::ExecutableDispatchOp)link
Inline executable dispatch operation
Syntax:
operation ::= `hal_loader.executable.dispatch` `executable` `(` $executable `:` type($executable) `)`
`` `[` $entry_point `]`
`workgroups` `(` `[`
$workgroup_x `,`
$workgroup_y `,`
$workgroup_z
`]` `)`
(`constants` `(` `[` $push_constants^ `]` `)`)?
`bindings` `(` `[`
custom<DispatchBindings>($binding_buffers,
type($binding_buffers),
$binding_offsets,
$binding_lengths)
`]` `)`
attr-dict-with-keyword
Dispatches execution to an executable entry point with the given parameters.
Traits: AttrSizedOperandSegments
Operands:link
Operand | Description |
---|---|
executable |
executable |
entry_point |
index |
workgroup_x |
index |
workgroup_y |
index |
workgroup_z |
index |
push_constants |
variadic of 32-bit signless integer |
binding_buffers |
variadic of a reference counted byte buffer |
binding_offsets |
variadic of index |
binding_lengths |
variadic of index |
hal_loader.executable.export.ordinal
(HAL::Loader::ExecutableExportOrdinalOp)link
Executable export ordinal lookup pseudo-op
Syntax:
operation ::= `hal_loader.executable.export.ordinal` `target` `(` $entry_point `)`
`:` type($result)
attr-dict-with-keyword
Resolves an executable export ordinal to a value once ordinals have been assigned.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
, OpAsmOpInterface
, SymbolUserOpInterface
Effects: MemoryEffects::Effect{}
Attributes:link
Attribute | MLIR Type | Description |
---|---|---|
entry_point | ::mlir::SymbolRefAttr | symbol reference attribute |
Results:link
Result | Description |
---|---|
result |
index |
hal_loader.executable.load
(HAL::Loader::ExecutableLoadOp)link
Dynamically loads an executable
Syntax:
operation ::= `hal_loader.executable.load` `format` `(` $format `)`
`data` `(` $data `)`
(`constants` `(` `[` $constants^ `]` `)`)?
`:` type($result)
attr-dict-with-keyword
Creates, loads, and dynamically links an executable.
Optional constants provide for specialization of the executable based on runtime-derived parameters.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
, OpAsmOpInterface
Effects: MemoryEffects::Effect{}
Attributes:link
Attribute | MLIR Type | Description |
---|---|---|
format | ::mlir::StringAttr | string attribute |
Operands:link
Operand | Description |
---|---|
data |
a reference counted byte buffer |
constants |
variadic of 32-bit signless integer |
Results:link
Result | Description |
---|---|
result |
executable |
hal_loader.executable.lookup
(HAL::Loader::ExecutableLookupOp)link
Executable cache lookup pseudo-op
Syntax:
operation ::= `hal_loader.executable.lookup` `executable` `(` $executable `)`
`:` type($result)
attr-dict-with-keyword
Used during conversion to provide a placeholder for a globally cached and possibly lazy-initialized executable.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
, OpAsmOpInterface
, SymbolUserOpInterface
Effects: MemoryEffects::Effect{}
Attributes:link
Attribute | MLIR Type | Description |
---|---|---|
executable | ::mlir::FlatSymbolRefAttr | flat symbol reference attribute |
Results:link
Result | Description |
---|---|
result |
executable |
hal_loader.executable.query_support
(HAL::Loader::ExecutableQuerySupportOp)link
Queries whether an executable format is supported
Syntax:
operation ::= `hal_loader.executable.query_support` `format` `(` $executable_format `)`
`:` type($supported)
attr-dict-with-keyword
Returns true if the given format is supported by the device loader. This does not guarantee that loading will succeed as the executable may require functionality that cannot be met my the hosting runtime environment.
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable
, NoMemoryEffect (MemoryEffectOpInterface)
, OpAsmOpInterface
Effects: MemoryEffects::Effect{}
Attributes:link
Attribute | MLIR Type | Description |
---|---|---|
executable_format | ::mlir::StringAttr | string attribute |
Results:link
Result | Description |
---|---|
supported |
1-bit signless integer |