Skip to content

ailzhang/minPP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Pipeline Parallelism for Minimalists

Every paper seems to present pipeline schedules in a slightly different setup, which makes it hard to compare them side by side. So I went down the rabbit hole and built a tiny simulator to explore them in a unified way.

It’s a lightweight, CPU-only tool that lets you:

  • Mix and match partitioning, assignment, and execution strategies
  • Simulate microbatch flows step by step
  • Visualize all schedules in a consistent timeline format

The whole thing is under 1,000 lines of code—not production-ready, a bit rough around the edges—but it helped me understand and compare schedules much more clearly.

📝 Check out the full blog post here: https://ailzhang.github.io/posts/pipeline-parallelism-demystified/

Supported schedules

  • gpipe Gpipe schedule
  • 1f1b 1F1B schedule
  • zero bubble 1f1b ZB1F1B schedule
  • eager 1f1b Eager 1F1B schedule
  • interleaved virtual pipeline Interleaved virtual pipeline schedule
  • vshape zero bubble Vshape zb schedule
  • bfs looping BFS looping schedule
  • dualpipev Dualpipev schedule

Bug reports

This repo started as a toy side project without thorough testing and there will definitely be rough edges. PRs and bug reports are welcome!

About

Pipeline parallelism for the minimalist

Resources

License

Stars

Watchers

Forks

Languages