Repository navigation
Commit 30fc960
committed
feat(standalone): emit FP32/rv32imf platform kernels for Stage-2 problems
The platform's Stage-2 paper (fwht/winograd/spmm) is float32 with -march=rv32imf and self-describing inputs; the previous Q16.16 int32 kernels could never pass it.
- _emit_platform_fwht: int32 -> float32 (flw/fsw/fadd.s/fsub.s), same butterfly order as the oracle
- _emit_platform_conv: rewrite to the winograd ABI ([batch,H,W,Cin,Cout,K] header, NHWC feat, OIHW weights, NCHW out, SAME pad, no bias)
- _emit_platform_spmm: rewrite to the spmm ABI ([M,K,N,nnz] + row_ptr + col_idx int32 + values + B float32)
- emit_platform_asm: route Conv/WinogradConv to the FP32 conv kernel
- tests: extend the in-test interpreter with RV32F ops; move platform-kernel and Stage-2 references to float32/new ABI
Verified: platform_asm + kernels 16 passed; Stage-2 30 passed; submitted to the platform -> fwht 30/30, winograd 30/30, spmm 40/40.1 parent 91286f6 commit 30fc960
3 files changed
Lines changed: 390 additions & 348 deletions
File tree
- scratchv/standalone
- tests
0 commit comments