Paper summary
Send the tensors needed next first
Network scheduling can prioritize the model layers that block the next training iteration.
Distributed training sends layer tensors through shared switch queues. TensorExpress uses layer information to prioritize communication that the next forward pass needs first.
Map layer dependencies to switch priorities
A ticketer places the layer identifier in the packet’s IP option field. A P4 switch reads it and maps layers to a limited set of priority queues. A sliding priority window updates that mapping as tensors from successive layers arrive.
View full-size figureMeasure the wait for the next iteration
In the bmv2 evaluation, TensorExpress reduces network blocking time by 46% on average and by up to 59% for the evaluated workers. Network blocking time measures the transfer wait for layer-zero tensors.
| Network blocking time | Reduction |
|---|---|
| Average across evaluated workers | 46% |
| Largest measured reduction | 59% |
Key takeaways
- Tensor traffic has dependencies that ordinary packet queues cannot see. Layer metadata lets the switch prioritize communication according to training progress.
- A small queue budget can still express changing priorities. The sliding window reuses queues for the layers that matter at the current stage.