pipeline parallelism

Pipeline Parallelism — decomposing a computation into sequential stages that operate concurrently on different data items, analogous to an assembly line.

Concept

Time →   T1    T2    T3    T4    T5
Stage 1: [D1]  [D2]  [D3]  [D4]  [D5]
Stage 2:       [D1]  [D2]  [D3]  [D4]
Stage 3:             [D1]  [D2]  [D3]
  • Each stage processes a different data item simultaneously
  • Latency for one item: same as sequential
  • Throughput: One result per stage time (N stages → Nx throughput)

Hardware Pipelines

  • CPU instruction pipeline: Fetch → Decode → Execute → Memory → Writeback (5+ stages). Modern CPUs: 15-20 stages
  • GPU shader pipeline: Vertex → geometry → rasterization → fragment
  • Fixed-function accelerators: Common in network processors, AI chips

Software Pipelines

  • Deep learning training: Split model layers across GPUs (GPipe, PipeDream)
  • GPU 0: Layers 1-10, GPU 1: Layers 11-20, GPU 2: Layers 21-30
  • Micro-batches flow through the pipeline
  • Data processing: ETL pipelines (extract → transform → load)
  • Unix pipes: `cat file | grep pattern | sort | uniq -c`

Challenges

  • Pipeline bubble: All stages idle during startup and drain
  • Stage imbalance: Slowest stage determines throughput
  • Inter-stage buffering: Need queues between stages

Pipeline parallelism is one of the three fundamental forms of parallelism alongside data parallelism and task parallelism.

Go deeper with CFSGPT

Get AI-powered deep-dives, save terms, and run advanced simulations — free account.

Create Free Account