2270f749bf
gemmtest.c computes Y[M][N]=X[M][K]*W[K][N] for M larger than one CBUF tile by splitting M via rkt_gemm_plan and running each chunk as a verified single-op matmul (fresh BOs/tile, weights packed once), assembling the output. M=4096 via 4x1024-row tiles -> output matches CPU exactly (0/32768 wrong). Key HW limit found: a single rocket op writes correct output only up to M~1024 rows (K=16); M=2048 silently drops rows past ~971 (CBUF input capacity), so tile_m<=1024 is the safe per-op bound. Also: fresh BOs per tile are needed (reusing in/out/reg BOs across jobs corrupted later tiles). This is the tiling orchestration U6/ggml will use; N-tiling (weight-column) + weight-reuse optimization are next. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>