kernel_tile.bend checks
raw source on the hub · import stelliferous@0.0.2.0/kernel_tile.bend as Kernel_tile
Measured flat FP32 tile representation; logical views stay out of hot loops.
4 imports
import Base import ./kernel_block.bend as Block import ./math_sequence.bend as Sequence import ./math_fp32.bend as Fp32
Types
type Tile8 source · line 7 · raw
Data
Tile@a0:F32 -> @a1:F32 -> @a2:F32 -> @a3:F32 -> @a4:F32 -> @a5:F32 -> @a6:F32 -> @a7:F32 -> Tile8
type HeadContext source · line 58 · raw
@-Context:Data -> Data
HeadContext@-Context:Data -> @head:F32 -> @context:Context -> HeadContext<Context>
Definitions
def filled source · line 10 · raw
@+value:F32 -> Tile8
def lane0 source · line 13 · raw
@tile:Tile8 -> F32
def lane1 source · line 17 · raw
@tile:Tile8 -> F32
def lane2 source · line 21 · raw
@tile:Tile8 -> F32
def lane3 source · line 25 · raw
@tile:Tile8 -> F32
def lane4 source · line 29 · raw
@tile:Tile8 -> F32
def lane5 source · line 33 · raw
@tile:Tile8 -> F32
def lane6 source · line 37 · raw
@tile:Tile8 -> F32
def lane7 source · line 41 · raw
@tile:Tile8 -> F32
def update source · line 46 · raw
@accumulator:Tile8 -> @input:Tile8 -> @weight:F32 -> Tile8
One ordered multiply-add per lane: eight output positions, one weight.
def from_sequence source · line 53 · raw
@vector:0x9be3b13bf249759bc81e1958bcd1a4c0/math_sequence.Values(F32, 8n) -> Tile8
def pairs_value source · line 70 · raw
@vector:0x9be3b13bf249759bc81e1958bcd1a4c0/kernel_block.Twin<0x9be3b13bf249759bc81e1958bcd1a4c0/kernel_block.Twin<0x9be3b13bf249759bc81e1958bcd1a4c0/kernel_block.Twin<F32>>> -> Tile8
def view source · line 90 · raw
@tile:Tile8 -> 0x9be3b13bf249759bc81e1958bcd1a4c0/math_sequence.Values(F32, 8n)
def element_at source · line 95 · raw
@index:0x9be3b13bf249759bc81e1958bcd1a4c0/math_sequence.Index(8n) -> @tile:Tile8 -> F32
Templates
template read_with_head source · line 61 · raw
@-State:Type -> @-Context:Data -> @-read:(@_:State -> @_:Context -> @_:Nat -> Pair(State, F32)) -> @state:State -> @combined:HeadContext<Context> -> @index:Nat -> Pair(State, F32)
template finish_pairs source · line 75 · raw
@-State:Type -> @result:Pair(State, 0x9be3b13bf249759bc81e1958bcd1a4c0/kernel_block.Twin<0x9be3b13bf249759bc81e1958bcd1a4c0/kernel_block.Twin<0x9be3b13bf249759bc81e1958bcd1a4c0/kernel_block.Twin<F32>>>) -> Pair(State, Tile8)
template read_tail source · line 79 · raw
@-State:Type -> @-Context:Data -> @-read:(@_:State -> @_:Context -> @_:Nat -> Pair(State, F32)) -> @first:Pair(State, F32) -> @context:Context -> Pair(State, Tile8)