KernelGemm.job: def of stelliferous@0.0.2.0 Import: import stelliferous@0.0.2.0/kernel_gemm.bend as KernelGemm Lines 42-50 of stelliferous@0.0.2.0/kernel_gemm.bend: https://jend.leeeet.dev/read.txt?path=stelliferous@0.0.2.0/kernel_gemm.bend&start_line=42&end_line=50 import Base # Input-major: one input group stays in cache while every row unit passes # over it (the BLIS loop order). Units 2b and 2b+1 share weight block b. def job(layout: Layout,index: U32) -> Job: Layout{+rows,columns,+inner,+start,+output_columns} = layout +index = index +units = row_units(rows) +unit = (index % units : U32) +group = (index / units : U32) Job{Context{(unit * 4 : U32),(start + group * 8 : U32),rows,output_columns,(group * inner : U32),(unit / 2 * inner : U32)},U32.is_eq((unit % 2 : U32),1),U32.to_nat(inner)} Uses (11): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32 https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.add 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.is_eq https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.mod 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_gemm.bend&name=Context https://jend.leeeet.dev/definition.txt?path=stelliferous@0.0.2.0/kernel_gemm.bend&name=Job https://jend.leeeet.dev/definition.txt?path=stelliferous@0.0.2.0/kernel_gemm.bend&name=Layout https://jend.leeeet.dev/definition.txt?path=stelliferous@0.0.2.0/kernel_gemm.bend&name=row_units