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.
Kept@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> -> Kept
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>