Understand Pipeline Parallelism components
mainNanotron's pipeline parallelism is built on four core components:
PipelineBlock: Contains model computation split across devices. A block's.rankspecifies its assigned pipeline parallel rank.PipelineEngine: Orchestrates forward/backward passes. Subclasses overridetrain_batch_iterandvalidate_batch_iterto implement different schedules like1F1BorGPipe.PipelineBatchState: Manages P2P operations and orchestrates communication across microbatches.TensorPointer: A placeholder for tensors produced on different devices. It enables lazy communication, allowing pipeline stages to request tensors on-demand rather than communicating all activations upfront.