__sf16_sub/__sf16_negand a true__sf16_divare needed for the device path; nothing in Stage 1.0 depends on them.- Accumulation order and accumulator width per target are needed before
Stage 1.1
sum/dot/@can be bit-identical on host and GPU. - Per-tile sticky SAT / DIV0 / INVALID flags decide whether heavy-op events
can ever
raiseinstead ofwarn. The code path exists: aDevicewithsticky_flags = Truegets exact status and honoursover="raise". - Confirm
__sf16_mat_fmameans(A @ B) + Dand notDas the initial accumulator (see Stage 1.1 decisions). - Stage 3: the cycle model constants (lane width 256, systolic 4096 MACs per
cycle), what the machine does on two lanes storing to one address, and the
driver interface for
atreides-hw(launch(ir, grid, block, buffers, scalars)is the proposal).
Design decisions
Still open for the compiler / hardware teams (spec section 12)
Decision log: still open for the compiler / hardware teams (spec section 12)