~/bend-docscommunity

kernel_gemm_buffer.bend checks

raw source on the hub · import stelliferous@0.0.2.0/kernel_gemm_buffer.bend as Kernel_gemm_buffer

7 imports
import Base
import ./kernel_tile.bend as Tile
import ./kernel_gemm.bend as Gemm
import ./storage_buffer.bend as Storage
import ./proofs/kernel_gemm_certificate.bend as GemmCertificate
import ./kernel_weights.bend as Weights
import ./proofs/kernel_weights_certificate.bend as WeightCertificate

Types

type Kept source · line 21 · raw

Type

The tiles, the weights and the bias come back with the output, for a caller that uses them again.

Definitions

def run source · line 10 · raw

@+rows:U32 -> @input:0x9be3b13bf249759bc81e1958bcd1a4c0/storage_buffer.Buffer<0x9be3b13bf249759bc81e1958bcd1a4c0/kernel_tile.Tile8> -> @weights:0x9be3b13bf249759bc81e1958bcd1a4c0/storage_buffer.Buffer<0x9be3b13bf249759bc81e1958bcd1a4c0/kernel_tile.Tile8> -> @bias:0x9be3b13bf249759bc81e1958bcd1a4c0/storage_buffer.Buffer<F32> -> @output:0x9be3b13bf249759bc81e1958bcd1a4c0/storage_buffer.Buffer<F32> -> @+columns:U32 -> @+inner:U32 -> 0x9be3b13bf249759bc81e1958bcd1a4c0/storage_buffer.Buffer<F32>

The live certificate is updated once, outside every output and MAC loop.

def kept source · line 24 · raw

@state:0x9be3b13bf249759bc81e1958bcd1a4c0/kernel_gemm.Buffers -> @input_length:Nat -> @weight_length:Nat -> @bias_length:Nat -> @length:Nat -> @certificates:0x9be3b13bf249759bc81e1958bcd1a4c0/proofs/kernel_gemm_certificate.Kept<state> -> Kept

def run_keeping source · line 30 · raw

@+rows:U32 -> @input:0x9be3b13bf249759bc81e1958bcd1a4c0/storage_buffer.Buffer<0x9be3b13bf249759bc81e1958bcd1a4c0/kernel_tile.Tile8> -> @weights:0x9be3b13bf249759bc81e1958bcd1a4c0/storage_buffer.Buffer<0x9be3b13bf249759bc81e1958bcd1a4c0/kernel_tile.Tile8> -> @bias:0x9be3b13bf249759bc81e1958bcd1a4c0/storage_buffer.Buffer<F32> -> @output:0x9be3b13bf249759bc81e1958bcd1a4c0/storage_buffer.Buffer<F32> -> @+columns:U32 -> @+inner:U32 -> @+start:U32 -> @+output_columns:U32 -> Kept

def reorder source · line 39 · raw

@+rows:U32 -> @+inner:U32 -> @weights:0x9be3b13bf249759bc81e1958bcd1a4c0/storage_buffer.Buffer<F32> -> 0x9be3b13bf249759bc81e1958bcd1a4c0/storage_buffer.Buffer<0x9be3b13bf249759bc81e1958bcd1a4c0/kernel_tile.Tile8>