KernelPipeline.block_step: def of stelliferous@0.0.2.0 Import: import stelliferous@0.0.2.0/kernel_pipeline.bend as KernelPipeline Lines 132-138 of stelliferous@0.0.2.0/kernel_pipeline.bend: https://jend.leeeet.dev/read.txt?path=stelliferous@0.0.2.0/kernel_pipeline.bend&start_line=132&end_line=138 import Base import stelliferous@0.0.2.0/kernel_spatial_packing.bend as Packing import stelliferous@0.0.2.0/kernel_packing_buffer.bend as PackingBuffer # Packing addresses the input window; output positions are local to the leaf. # Each block overwrites tiles from zero and writes directly into the leaf output. def block_step(work: Work,pack_start: U32,output_start: U32,+span: U32,state: BlockState) -> BlockState: Work{rows,h,w,k,s,p,ow,positions,+inner} = work BlockState{input,tiles,weights,bias,output} = state block_packed(rows,positions,inner,output_start,span,weights,bias,output, PackingBuffer.run(Packing.Call{U32.to_nat((span / 8 * inner : U32)),pack_start,h,w,k,s,p,ow,inner},input,tiles)) Uses (9): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32 https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.div https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.mul https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.to_nat https://jend.leeeet.dev/definition.txt?path=stelliferous@0.0.2.0/kernel_packing_buffer.bend&name=run https://jend.leeeet.dev/definition.txt?path=stelliferous@0.0.2.0/kernel_pipeline.bend&name=BlockState https://jend.leeeet.dev/definition.txt?path=stelliferous@0.0.2.0/kernel_pipeline.bend&name=Work https://jend.leeeet.dev/definition.txt?path=stelliferous@0.0.2.0/kernel_pipeline.bend&name=block_packed https://jend.leeeet.dev/definition.txt?path=stelliferous@0.0.2.0/kernel_spatial_packing.bend&name=Call