The Fastest Way to Become a Backend Developer Online
Build the Finance Skills That Lead to Promotions — Not Just Certificates
Overview
Google, IBM & Meta Certificates — All 10,000+ Courses at 40% Off
One annual plan covers every course and certificate on Coursera. 40% off for a limited time.
Get Full Access
Learn to build pipeline parallelism systems from the ground up in this comprehensive 3-hour tutorial that teaches distributed AI model training techniques. Start with a simple monolithic MLP and progressively develop a complete distributed training system by manually partitioning models across multiple GPUs. Master the fundamentals of distributed communication primitives through hands-on implementation, including building communication protocols and understanding how data flows between different GPU devices. Explore three distinct pipeline scheduling algorithms: naive stop-and-wait parallelism, GPipe with micro-batching optimization, and the advanced interleaved 1F1B (one-forward-one-backward) algorithm. Gain practical experience through step-by-step coding exercises that cover model sharding, training orchestration, and asynchronous communication patterns. Understand the theoretical foundations behind pipeline parallelism including spreadsheet derivations for the 1F1B algorithm and learn how to optimize memory usage and training throughput. Work with real code examples and a complete GitHub repository to implement each component of the pipeline parallelism system, from basic model partitioning to advanced scheduling algorithms that maximize GPU utilization and minimize idle time during distributed training.
Syllabus
- Introduction, Repository Setup & Syllabus
- Step 0: The Monolith Baseline
- Step 1: Manual Model Partitioning
- Step 2: Distributed Communication Primitives
- Step 3: Distributed Ping Pong Lab
- Step 4: Building the Sharded Model
- Step 5: The Main Training Orchestrator
- Step 6a: Naive Pipeline Parallelism
- Step 6b: GPipe & Micro-batching
- Step 6c: 1F1B Theory & Spreadsheet Derivation
- Step 6c: Implementing 1F1B & Async Sends
Taught by
freeCodeCamp.org