2.8. The resulting event tree
After these choices, one step of the training capture has a clear structure:
training ├── batch.load step=17, activity=data ├── model.forward step=17, module=encoder.block.0 │ backend=eager, device=cuda ├── loss.backward step=17, phase=backward └── optimizer.step step=17, phase=optimizer
withStep supplies metadata; it does not create another span. The trace therefore keeps step 17 on
each event while preserving the actual parent relationships. The summary combines repeated steps
under stable keys. The synchronized forward interval states what completion means, and any memory
fields come from an identified adapter. Nothing in the report has to be interpreted as an
unlabelled convention.