kernel_weights.bend checks
raw source on the hub · import stelliferous@0.0.2.0/kernel_weights.bend as Kernel_weights
6 imports
import Base import ./storage_buffer.bend as Storage import ./storage_allocation.bend as Allocation import ./traversal_array.bend as Traversal import ./kernel_tile.bend as Tile import ./tensor.bend as Tensors
Types
type Layout source · line 11 · raw
Data
Each ordered K coordinate owns eight adjacent weights, one per output row of a block; rows past the last output read zero. One native tile read replaces eight separately masked scalar reads.
Layout@rows:U32 -> @inner:U32 -> Layout
type Context source · line 14 · raw
Data
Context@rows:U32 -> @inner:U32 -> @row:U32 -> @destination:U32 -> Context
Definitions
def eighth source · line 17 · raw
@a:F32 -> @b:F32 -> @c:F32 -> @d:F32 -> @e:F32 -> @f:F32 -> @g:F32 -> @read:Pair(Array<F32>, F32) -> Pair(Array<F32>, 0x9be3b13bf249759bc81e1958bcd1a4c0/kernel_tile.Tile8)
def seventh source · line 21 · raw
@+rows:U32 -> @+inner:U32 -> @+row:U32 -> @+index:U32 -> @a:F32 -> @b:F32 -> @c:F32 -> @d:F32 -> @e:F32 -> @f:F32 -> @read:Pair(Array<F32>, F32) -> Pair(Array<F32>, 0x9be3b13bf249759bc81e1958bcd1a4c0/kernel_tile.Tile8)
def sixth source · line 25 · raw
@+rows:U32 -> @+inner:U32 -> @+row:U32 -> @+index:U32 -> @a:F32 -> @b:F32 -> @c:F32 -> @d:F32 -> @e:F32 -> @read:Pair(Array<F32>, F32) -> Pair(Array<F32>, 0x9be3b13bf249759bc81e1958bcd1a4c0/kernel_tile.Tile8)
def fifth source · line 29 · raw
@+rows:U32 -> @+inner:U32 -> @+row:U32 -> @+index:U32 -> @a:F32 -> @b:F32 -> @c:F32 -> @d:F32 -> @read:Pair(Array<F32>, F32) -> Pair(Array<F32>, 0x9be3b13bf249759bc81e1958bcd1a4c0/kernel_tile.Tile8)
def fourth source · line 33 · raw
@+rows:U32 -> @+inner:U32 -> @+row:U32 -> @+index:U32 -> @a:F32 -> @b:F32 -> @c:F32 -> @read:Pair(Array<F32>, F32) -> Pair(Array<F32>, 0x9be3b13bf249759bc81e1958bcd1a4c0/kernel_tile.Tile8)
def third source · line 37 · raw
@+rows:U32 -> @+inner:U32 -> @+row:U32 -> @+index:U32 -> @a:F32 -> @b:F32 -> @read:Pair(Array<F32>, F32) -> Pair(Array<F32>, 0x9be3b13bf249759bc81e1958bcd1a4c0/kernel_tile.Tile8)
def second source · line 41 · raw
@+rows:U32 -> @+inner:U32 -> @+row:U32 -> @+index:U32 -> @a:F32 -> @read:Pair(Array<F32>, F32) -> Pair(Array<F32>, 0x9be3b13bf249759bc81e1958bcd1a4c0/kernel_tile.Tile8)
def first source · line 45 · raw
@+rows:U32 -> @+inner:U32 -> @+row:U32 -> @+index:U32 -> @read:Pair(Array<F32>, F32) -> Pair(Array<F32>, 0x9be3b13bf249759bc81e1958bcd1a4c0/kernel_tile.Tile8)
def read source · line 49 · raw
@input:Array<F32> -> @context:Context -> @index:U32 -> Pair(Array<F32>, 0x9be3b13bf249759bc81e1958bcd1a4c0/kernel_tile.Tile8)
def destination source · line 54 · raw
@context:Context -> @index:U32 -> U32
def copy_block source · line 58 · raw
@block:U32 -> @layout:Layout -> @owners:Pair(Array<F32>, Array<0x9be3b13bf249759bc81e1958bcd1a4c0/kernel_tile.Tile8>) -> Pair(Array<F32>, Array<0x9be3b13bf249759bc81e1958bcd1a4c0/kernel_tile.Tile8>)
def reordered source · line 66 · raw
@pair:Pair(Array<F32>, Array<0x9be3b13bf249759bc81e1958bcd1a4c0/kernel_tile.Tile8>) -> Array<0x9be3b13bf249759bc81e1958bcd1a4c0/kernel_tile.Tile8>
def run source · line 70 · raw
@+rows:U32 -> @+inner:U32 -> @input:Array<F32> -> Array<0x9be3b13bf249759bc81e1958bcd1a4c0/kernel_tile.Tile8>