~/bend-docscommunity

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

type HeadContext source · line 58 · raw

@-Context:Data -> Data

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)