‘asctile’ Dialect
Tile-level operations
Operations
asctile.accumulator (asctile::AccumulatorOp)
Create a zeros tensor in L0C or initialize with bias
Syntax:
operation ::= `asctile.accumulator` ($bias^)? attr-dict `:` qualified(type($result)) (`,` type($bias)^)?
Operands:
Operand |
Description |
|---|---|
|
local tensor of bfloat16 type or 16-bit float or 32-bit float values of ranks 1 |
Results:
Result |
Description |
|---|---|
|
local tensor of 16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer values |
asctile.adds (asctile::AddSOp)
Compute element-wise addition of tensor and scalar
Syntax:
operation ::= `asctile.adds` $base `,` $value attr-dict `:` qualified(type($base))
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand |
Description |
|---|---|
|
local tensor of 16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer values |
|
16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer |
Results:
Result |
Description |
|---|---|
|
local tensor of 16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer values |
asctile.atomic_rmw (asctile::AtomicRMWOp)
Atomic accumulation the tensor data into a tensor
Syntax:
operation ::= `asctile.atomic_rmw` `<` $kind `>` $value `,` $base `[` $offsets `]` attr-dict `:` qualified(type($value)) `,` qualified(type($base))
Interfaces: MemoryEffectsOpInterface
Attributes:
| Attribute | MLIR Type | Description |
|---|---|---|
kind | ::mlir::asctile::AtomicKindAttr | kind of atomic{{% markdown %}}Kind of atomic operation{{% /markdown %}} |
Operands:
Operand |
Description |
|---|---|
|
local tensor of 16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer values |
|
global tensor |
|
variadic of 32-bit signless integer |
asctile.bitwise_mask (asctile::BitwiseMaskOp)
Apply mask (bit mode) to nested operations
Syntax:
operation ::= `asctile.bitwise_mask` $highBits `,` $lowBits (`,` $other^ `:` type($other))? $region attr-dict
Traits: SingleBlockImplicitTerminator<YieldOp>, SingleBlock
Operands:
Operand |
Description |
|---|---|
|
64-bit signless integer |
|
64-bit signless integer |
|
16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer |
asctile.broadcast (asctile::BroadcastOp)
Broadcast tensor to the provided shape
Syntax:
operation ::= `asctile.broadcast` $operand attr-dict `:` qualified(type($operand)) `to` qualified(type($result))
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand |
Description |
|---|---|
|
local tensor of 16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer values |
Results:
Result |
Description |
|---|---|
|
local tensor of 16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer values |
asctile.cast (asctile::CastOp)
Cast tensor elements to other data type
Syntax:
operation ::= `asctile.cast` $roundMode $in attr-dict `:` qualified(type($in)) `to` qualified(type($out))
Traits: AlwaysSpeculatableImplTrait, SameOperandsAndResultShape
Interfaces: CastOpInterface, ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes:
| Attribute | MLIR Type | Description |
|---|---|---|
roundMode | ::mlir::asctile::RoundModeAttr | cast rounding mode{{% markdown %}}Cast rounding mode{{% /markdown %}} |
Operands:
Operand |
Description |
|---|---|
|
local tensor of 16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer values |
Results:
Result |
Description |
|---|---|
|
local tensor of 16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer values |
asctile.cmp (asctile::CmpOp)
Compute element-wise comparison of two tiles
Syntax:
operation ::= `asctile.cmp` $cmpMode $lhs `,` $rhs attr-dict `:` qualified(type($lhs))
Traits: AlwaysSpeculatableImplTrait, SameTypeOperands
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes:
| Attribute | MLIR Type | Description |
|---|---|---|
cmpMode | ::mlir::asctile::CompareModeAttr | comparsion type{{% markdown %}}Comparsion mode{{% /markdown %}} |
Operands:
Operand |
Description |
|---|---|
|
local tensor of 16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer values |
|
local tensor of 16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer values |
Results:
Result |
Description |
|---|---|
|
local tensor of 1-bit signless integer values |
asctile.cmps (asctile::CmpSOp)
Compute element-wise comparison of tensor and scalar
Syntax:
operation ::= `asctile.cmps` $cmpMode $base `,` $value attr-dict `:` qualified(type($base))
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes:
| Attribute | MLIR Type | Description |
|---|---|---|
cmpMode | ::mlir::asctile::CompareModeAttr | comparsion type{{% markdown %}}Comparsion mode{{% /markdown %}} |
Operands:
Operand |
Description |
|---|---|
|
local tensor of 16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer values |
|
16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer |
Results:
Result |
Description |
|---|---|
|
local tensor of 1-bit signless integer values |
asctile.concat (asctile::ConcatOp)
Concatenates the sequence of tiles along the first dimension
Syntax:
operation ::= `asctile.concat` operands attr-dict `:` type(operands) `->` qualified(type($result))
Traits: AlwaysSpeculatableImplTrait, SameOperandsAndResultElementType
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand |
Description |
|---|---|
«unnamed» |
variadic of local tensor of 16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer values |
Results:
Result |
Description |
|---|---|
|
local tensor of 16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer values |
asctile.copy (asctile::CopyOp)
Copy from a tensor into a new sub-tensor
Syntax:
operation ::= `asctile.copy` $base `[` $offsets `]` attr-dict `:` qualified(type($base)) `,` qualified(type($result))
Operands:
Operand |
Description |
|---|---|
|
local tensor of 16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer values |
|
variadic of 32-bit signless integer |
Results:
Result |
Description |
|---|---|
|
local tensor of 16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer values |
asctile.copy_fixpipe (asctile::CopyFixpipeOp)
Store a tensor into a sub-tensor via FixPipe
Syntax:
operation ::= `asctile.copy_fixpipe` $base `[` $offsets `]` attr-dict `:` qualified(type($base)) `,` qualified(type($result))
Attributes:
| Attribute | MLIR Type | Description |
|---|---|---|
relu | ::mlir::UnitAttr | unit attribute |
quantize | ::mlir::UnitAttr | unit attribute |
Operands:
Operand |
Description |
|---|---|
|
local tensor of 16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer values |
|
variadic of 32-bit signless integer |
Results:
Result |
Description |
|---|---|
|
local tensor of 16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer values |
asctile.count_mask (asctile::CountMaskOp)
Apply mask (count mode) to nested operations
Syntax:
operation ::= `asctile.count_mask` $count (`,` $other^ `:` type($other))? $region attr-dict
Traits: SingleBlockImplicitTerminator<YieldOp>, SingleBlock
Operands:
Operand |
Description |
|---|---|
|
64-bit signless integer |
|
16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer |
asctile.dim (asctile::DimOp)
Obtain dimension of given tensor
Syntax:
operation ::= `asctile.dim` $base `,` $index attr-dict `:` qualified(type($base))
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes:
| Attribute | MLIR Type | Description |
|---|---|---|
index | ::mlir::IntegerAttr | 32-bit signless integer attribute |
Operands:
Operand |
Description |
|---|---|
|
global tensor |
Results:
Result |
Description |
|---|---|
|
32-bit signless integer |
asctile.divs (asctile::DivSOp)
Compute element-wise division of tensor and scalar
Syntax:
operation ::= `asctile.divs` $base `,` $value attr-dict `:` qualified(type($base))
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand |
Description |
|---|---|
|
local tensor of 16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer values |
|
16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer |
Results:
Result |
Description |
|---|---|
|
local tensor of 16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer values |
asctile.get_value (asctile::GetValueOp)
Load value from a global tensor
Syntax:
operation ::= `asctile.get_value` $base `[` $offsets `]` attr-dict `:` qualified(type($base))
Interfaces: MemoryEffectsOpInterface
Operands:
Operand |
Description |
|---|---|
|
global tensor |
|
variadic of 32-bit signless integer |
Results:
Result |
Description |
|---|---|
|
16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer |
asctile.inline_vf (asctile::InlineVFOp)
Declare vector function provided as C++ code
Syntax:
operation ::= `asctile.inline_vf` `(` $inputs `)` $code attr-dict `:` functional-type($inputs, results)
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes:
| Attribute | MLIR Type | Description |
|---|---|---|
code | ::mlir::StringAttr | string attribute |
Operands:
Operand |
Description |
|---|---|
|
variadic of local tensor of 16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer values |
Results:
Result |
Description |
|---|---|
|
local tensor of 16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer values |
asctile.load (asctile::LoadOp)
Load from the global tensor into a new local tensor
Syntax:
operation ::= `asctile.load` $base `[` $offsets `]` (`,` $padValue^)? (`,` `(` $realShape^ `)`)? attr-dict `:` qualified(type($base)) `,`
qualified(type($result))
Traits: AttrSizedOperandSegments
Interfaces: MemoryEffectsOpInterface
Operands:
Operand |
Description |
|---|---|
|
global tensor |
|
variadic of 32-bit signless integer |
|
16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer |
|
variadic of 32-bit signless integer |
Results:
Result |
Description |
|---|---|
|
local tensor of 16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer values |
asctile.matmul (asctile::MatmulOp)
Compute matrix multiplication on 2D tiles with optional bias
Syntax:
operation ::= `asctile.matmul` $matrixA `,` $matrixB (`,` $bias^)? attr-dict `:` type($matrixA) `,` type($matrixB) (`,` type($bias)^)? `->`
type($result)
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes:
| Attribute | MLIR Type | Description |
|---|---|---|
hf32 | ::mlir::UnitAttr | unit attribute |
Operands:
Operand |
Description |
|---|---|
|
local tensor of 16-bit float or bfloat16 type or 32-bit float or 64-bit float values of ranks 2 |
|
local tensor of 16-bit float or bfloat16 type or 32-bit float or 64-bit float values of ranks 2 |
|
local tensor of bfloat16 type or 16-bit float or 32-bit float values of ranks 1 |
Results:
Result |
Description |
|---|---|
|
local tensor of 32-bit float values of ranks 2 |
asctile.matmul_acc (asctile::MatmulAccOp)
Compute matrix multiplication with accumulator on 2D tiles
Syntax:
operation ::= `asctile.matmul_acc` $acc `,` $matrixA `,` $matrixB attr-dict `:` type($acc) `,` type($matrixA) `,` type($matrixB)
Interfaces: MemoryEffectsOpInterface
Attributes:
| Attribute | MLIR Type | Description |
|---|---|---|
hf32 | ::mlir::UnitAttr | unit attribute |
Operands:
Operand |
Description |
|---|---|
|
local tensor of 32-bit float values of ranks 2 |
|
local tensor of 16-bit float or bfloat16 type or 32-bit float or 64-bit float values of ranks 2 |
|
local tensor of 16-bit float or bfloat16 type or 32-bit float or 64-bit float values of ranks 2 |
asctile.maxs (asctile::MaxSOp)
Compute element-wise maximum value of tensor and scalar
Syntax:
operation ::= `asctile.maxs` $base `,` $value attr-dict `:` qualified(type($base))
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand |
Description |
|---|---|
|
local tensor of 16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer values |
|
16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer |
Results:
Result |
Description |
|---|---|
|
local tensor of 16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer values |
asctile.mins (asctile::MinSOp)
Compute element-wise minimum value of tensor and scalar
Syntax:
operation ::= `asctile.mins` $base `,` $value attr-dict `:` qualified(type($base))
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand |
Description |
|---|---|
|
local tensor of 16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer values |
|
16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer |
Results:
Result |
Description |
|---|---|
|
local tensor of 16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer values |
asctile.muls (asctile::MulSOp)
Compute element-wise multiplication of tensor and scalar
Syntax:
operation ::= `asctile.muls` $base `,` $value attr-dict `:` qualified(type($base))
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand |
Description |
|---|---|
|
local tensor of 16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer values |
|
16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer |
Results:
Result |
Description |
|---|---|
|
local tensor of 16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer values |
asctile.reduce (asctile::ReduceOp)
Reduce tensor to the provided shape
Syntax:
operation ::= `asctile.reduce` $kind $operand attr-dict `:` qualified(type($operand)) `,` qualified(type($result))
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes:
| Attribute | MLIR Type | Description |
|---|---|---|
dims | ::mlir::ArrayAttr | 32-bit integer array attribute |
kind | ::mlir::asctile::ReduceKindAttr | kind of reduce{{% markdown %}}Kind of reduce operation{{% /markdown %}} |
Operands:
Operand |
Description |
|---|---|
|
local tensor of 16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer values |
Results:
Result |
Description |
|---|---|
|
local tensor of 16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer values |
asctile.reduce_as_1d (asctile::ReduceAs1dOp)
Reduce tensor to 1-element tensor or a scalar value
Syntax:
operation ::= `asctile.reduce_as_1d` $kind $operand attr-dict `:` qualified(type($operand)) `,` type($result)
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes:
| Attribute | MLIR Type | Description |
|---|---|---|
kind | ::mlir::asctile::ReduceKindAttr | kind of reduce{{% markdown %}}Kind of reduce operation{{% /markdown %}} |
Operands:
Operand |
Description |
|---|---|
|
local tensor of 16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer values |
Results:
Result |
Description |
|---|---|
|
16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer or local tensor of 16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer values of length 1 |
asctile.relu (asctile::ReluOp)
Compute element-wise ReLU value of tensor
Syntax:
operation ::= `asctile.relu` $operand attr-dict `:` qualified(type($result))
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand |
Description |
|---|---|
|
local tensor of 16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer values |
Results:
Result |
Description |
|---|---|
|
local tensor of 16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer values |
asctile.reshape (asctile::ReshapeOp)
Create tensor with same data but different shape
Syntax:
operation ::= `asctile.reshape` $in attr-dict `:` qualified(type($in)) `to` qualified(type($out))
Traits: AlwaysSpeculatableImplTrait, SameOperandsAndResultElementType
Interfaces: CastOpInterface, ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand |
Description |
|---|---|
|
local tensor of 16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer values |
Results:
Result |
Description |
|---|---|
|
local tensor of 16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer values |
asctile.rms_norm (asctile::RmsNormOp)
Compute RmsNorm function over a tensor
Syntax:
operation ::= `asctile.rms_norm` $input `,` $gamma `,` $epsilon attr-dict `:` qualified(type($input)) `,` qualified(type($gamma))
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand |
Description |
|---|---|
|
local tensor of 16-bit float or bfloat16 type or 32-bit float or 64-bit float values |
|
local tensor of 16-bit float or bfloat16 type or 32-bit float or 64-bit float values |
|
16-bit float or bfloat16 type or 32-bit float or 64-bit float |
Results:
Result |
Description |
|---|---|
|
local tensor of 16-bit float or bfloat16 type or 32-bit float or 64-bit float values |
asctile.select (asctile::SelectOp)
Select elements from two tiles depending on a mask
Syntax:
operation ::= `asctile.select` $selMask `,` $src0 `,` $src1 attr-dict `:` qualified(type($result))
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand |
Description |
|---|---|
|
local tensor of 1-bit signless integer values |
|
local tensor of 16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer values |
|
local tensor of 16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer values |
Results:
Result |
Description |
|---|---|
|
local tensor of 16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer values |
asctile.set_value (asctile::SetValueOp)
Store value into a global tensor
Syntax:
operation ::= `asctile.set_value` $value `,` $base `[` $offsets `]` attr-dict `:` type($value) `,` qualified(type($base))
Interfaces: MemoryEffectsOpInterface
Operands:
Operand |
Description |
|---|---|
|
16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer or local tensor of 16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer values of length 1 |
|
global tensor |
|
variadic of 32-bit signless integer |
asctile.shls (asctile::ShLSOp)
Compute element-wise bitwise left shift of tensor and scalar
Syntax:
operation ::= `asctile.shls` $base `,` $value attr-dict `:` qualified(type($base))
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand |
Description |
|---|---|
|
local tensor of 16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer values |
|
16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer |
Results:
Result |
Description |
|---|---|
|
local tensor of 16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer values |
asctile.shrs (asctile::ShRSOp)
Compute element-wise bitwise right shift of tensor and scalar
Syntax:
operation ::= `asctile.shrs` $base `,` $value attr-dict `:` qualified(type($base))
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand |
Description |
|---|---|
|
local tensor of 16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer values |
|
16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer |
Results:
Result |
Description |
|---|---|
|
local tensor of 16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer values |
asctile.softmax (asctile::SoftmaxOp)
Compute row-wise softmax of 1D or 2D tensor
Syntax:
operation ::= `asctile.softmax` $operand attr-dict `:` qualified(type($result))
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand |
Description |
|---|---|
|
local tensor of 16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer values of ranks 1/2 |
Results:
Result |
Description |
|---|---|
|
local tensor of 16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer values of ranks 1/2 |
asctile.splat (asctile::SplatOp)
Create a tensor filled with splat value
Syntax:
operation ::= `asctile.splat` $value attr-dict `:` qualified(type($result))
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand |
Description |
|---|---|
|
16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer |
Results:
Result |
Description |
|---|---|
|
local tensor of 16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer values |
asctile.store (asctile::StoreOp)
Store a local tensor into a global tensor
Syntax:
operation ::= `asctile.store` $value `,` $base `[` $offsets `]` (`,` `(` $realShape^ `)`)? attr-dict `:` qualified(type($value)) `,`
qualified(type($base))
Traits: AttrSizedOperandSegments
Interfaces: MemoryEffectsOpInterface
Operands:
Operand |
Description |
|---|---|
|
local tensor of 16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer values |
|
global tensor |
|
variadic of 32-bit signless integer |
|
variadic of 32-bit signless integer |
asctile.store_fixpipe (asctile::StoreFixpipeOp)
Store a local tensor into a global tensor via FixPipe
Syntax:
operation ::= `asctile.store_fixpipe` $value `,` $base `[` $offsets `]` (`,` `(` $realShape^ `)`)? attr-dict `:` qualified(type($value)) `,`
qualified(type($base))
Traits: AttrSizedOperandSegments
Interfaces: MemoryEffectsOpInterface
Attributes:
| Attribute | MLIR Type | Description |
|---|---|---|
relu | ::mlir::UnitAttr | unit attribute |
quantize | ::mlir::UnitAttr | unit attribute |
Operands:
Operand |
Description |
|---|---|
|
local tensor of 16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer values |
|
global tensor |
|
variadic of 32-bit signless integer |
|
variadic of 32-bit signless integer |
asctile.subs (asctile::SubSOp)
Compute element-wise subtraction of tensor and scalar
Syntax:
operation ::= `asctile.subs` $base `,` $value attr-dict `:` qualified(type($base))
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand |
Description |
|---|---|
|
local tensor of 16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer values |
|
16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer |
Results:
Result |
Description |
|---|---|
|
local tensor of 16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer values |
asctile.tensor (asctile::TensorOp)
Create tensor
Syntax:
operation ::= `asctile.tensor` $base `(` $sizes `)` attr-dict `:` qualified(type($base)) `,` qualified(type($result))
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
Operand |
Description |
|---|---|
|
ranked or unranked memref of any type values |
|
variadic of 32-bit signless integer |
Results:
Result |
Description |
|---|---|
|
global tensor |
asctile.transpose (asctile::TransposeOp)
Transpose a tensor
Syntax:
operation ::= `asctile.transpose` $operand `,` $dims attr-dict `:` qualified(type($operand)) `to` qualified(type($result))
Traits: AlwaysSpeculatableImplTrait, SameOperandsAndResultElementType
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes:
| Attribute | MLIR Type | Description |
|---|---|---|
dims | ::mlir::ArrayAttr | 32-bit integer array attribute |
Operands:
Operand |
Description |
|---|---|
|
local tensor of 16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer values |
Results:
Result |
Description |
|---|---|
|
local tensor of 16-bit float or bfloat16 type or 32-bit float or 64-bit float or 8-bit signless integer or 16-bit signless integer or 32-bit signless integer or 64-bit signless integer values |
asctile.yield (asctile::YieldOp)
Terminator for operations with region
Syntax:
operation ::= `asctile.yield` attr-dict
Traits: Terminator
Attributes
GlobalTensorAttr
An encoding for a global tensor
Syntax: #asctile.global
LocalTensorAttr
An encoding for a local tensor
Syntax:
#asctile.local<
TensorLocation # loc
>
Parameters:
Parameter |
C++ type |
Description |
|---|---|---|
loc |
|
ReduceKindAttr
kind of reduce
Syntax:
#asctile.kind<
::mlir::asctile::ReduceKind # value
>
Kind of reduce operation
Parameters:
Parameter |
C++ type |
Description |
|---|---|---|
value |
|
an enum of type ReduceKind |
RoundModeAttr
cast rounding mode
Syntax:
#asctile.round_mode<
::mlir::asctile::RoundMode # value
>
Cast rounding mode
Parameters:
Parameter |
C++ type |
Description |
|---|---|---|
value |
|
an enum of type RoundMode |
Enums
AtomicKind
kind of atomic
Cases:
Symbol |
Value |
String |
|---|---|---|
Add |
|
Add |
Max |
|
Max |
Min |
|
Min |
CompareMode
comparsion type
Cases:
Symbol |
Value |
String |
|---|---|---|
LT |
|
LT |
GT |
|
GT |
EQ |
|
EQ |
LE |
|
LE |
GE |
|
GE |
NE |
|
NE |
ReduceKind
kind of reduce
Cases:
Symbol |
Value |
String |
|---|---|---|
Sum |
|
sum |
Max |
|
max |
Min |
|
min |
Prod |
|
prod |
Mean |
|
mean |
All |
|
all |
Any |
|
any |
XorSum |
|
xor_sum |
RoundMode
cast rounding mode
Cases:
Symbol |
Value |
String |
|---|---|---|
NoRound |
|
noround |
Rint |
|
rint |
Floor |
|
floor |
Ceil |
|
ceil |
Round |
|
round |
Trunc |
|
trunc |
Odd |
|
odd |
Default |
|
default |
TensorLocation
tensor location
Cases:
Symbol |
Value |
String |
|---|---|---|
L0A |
|
L0A |
L0B |
|
L0B |
L0C |
|
L0C |
UB |
|
UB |
L1 |
|
L1 |
FIX |
|
FIX |
BT |
|
BT |