Andrew Fribush
fig. 2.2.4 · the query pipeline: a tile that will not fit splits before its first output.
ONE QUERY, TILE BY TILE · QUERY WORKSPACE BOUND 512 MiB BY DEFAULTBOXES ARE STEPS, DIAMONDS ARE CHECKS AGAINST THE BOUND; A TILE THAT FAILS ONE TAKES THE COLOURED LOOPONCE, AT PREPARENORMALIZE ANDOWN THE INPUTSNAPSHOTCHOOSE DENSEOR APROJECTIONRANKNEXT TILETAKE ADISJOINT PAIRTILESCORE ANDCOUNT BUFFERSFIT?SCREENINGDENSEPROJECTED GEMM,OUTWARD BOUNDAND COUNTFULL FP32 GEMMAND COUNTTOO MANYCANDIDATES?YES: ≥1% OF THETILE'S PAIRSREMAININGBUFFERS FIT?SCATTERCANDIDATES ANDCOMPUTE NEEDEDSCORESFUSEDACCEPTANCECLASSIFICATIONFP64 AND EXACTINTEGERREFINEMENT FORUNCERTAIN PAIRSYIELDINDEPENDENTHOST BATCHESFIRST OUTPUTNONOSPLIT BEFORE EMITTING OUTPUTBISECT THE LONGER SIDE; BOTH HALVES GO BACKON THE PENDING STACKTHE SAME SPLIT CATCHES A DEVICEOUT-OF-MEMORYNOTHING EMITTED YET: A SPLIT CANNOT REPEAT A DELIVERED PAIR

source: gpu-threshold-join docs/ARCHITECTURE.md:9-29, :38-40 · _workspace.py:9-10, :62-77 · _screen_gpu.py:330-376 · cudaPipeline.data.ts

View in context: Knuth's Root of All Evil Has a Break-Even Point → · All figures

Andrew Fribush, software and computer engineer in Austin. I build consequential systems where software meets institutions: finance, healthcare, commerce, government data, and the mechanisms that govern AI agents. Taking new engagements: hello@andrewfribush.com.