mirror of
https://github.com/harvard-edge/cs249r_book.git
synced 2026-07-16 06:07:17 -05:00
174 lines
5.6 KiB
TeX
174 lines
5.6 KiB
TeX
% =============================================================================
|
|
% MLSys·im Tutorial — Module 3: Scale, Dollars, and Carbon
|
|
% =============================================================================
|
|
\documentclass[aspectratio=169, 12pt]{beamer}
|
|
\usepackage{../../../slides/assets/beamerthememlsys}
|
|
|
|
\mlsyssetup{
|
|
volume = {Tutorial},
|
|
chapter = {Module 3},
|
|
logo = {../../../slides/assets/img/logo-mlsysbook.png},
|
|
instlogo = {../../../slides/assets/img/logo-harvard.png},
|
|
chaptertitle = {MLSys·im: Scale, Dollars, and Carbon},
|
|
}
|
|
|
|
% --- Fonts & Packages ---
|
|
\usepackage[T1]{fontenc}
|
|
\usepackage[scaled=0.9]{helvet}
|
|
\usepackage{courier}
|
|
\renewcommand{\familydefault}{\sfdefault}
|
|
\usepackage{amsmath}
|
|
\usepackage{booktabs}
|
|
\usepackage[table]{xcolor}
|
|
\usepackage{listings}
|
|
\usepackage{tikz}
|
|
|
|
% --- Code listings ---
|
|
\lstset{
|
|
language=Python,
|
|
basicstyle=\ttfamily\scriptsize,
|
|
keywordstyle=\color{crimson}\bfseries,
|
|
stringstyle=\color{datastroke},
|
|
commentstyle=\color{midgray}\itshape,
|
|
backgroundcolor=\color{computeblue!20},
|
|
frame=single,
|
|
rulecolor=\color{computestroke},
|
|
numbers=none,
|
|
breaklines=true,
|
|
columns=fullflexible,
|
|
keepspaces=true,
|
|
showstringspaces=false,
|
|
xleftmargin=4pt,
|
|
xrightmargin=4pt,
|
|
aboveskip=3pt,
|
|
belowskip=2pt,
|
|
}
|
|
|
|
\newcommand{\mlsysim}{\texttt{mlsysim}}
|
|
\graphicspath{{images/}}
|
|
|
|
\title{MLSys·im Tutorial --- Module 3}
|
|
\subtitle{Scale, Dollars, and Carbon}
|
|
\author{Vijay Janapa Reddi}
|
|
\institute{Harvard University}
|
|
\date{Conference Tutorial}
|
|
|
|
\begin{document}
|
|
|
|
\begin{frame}[plain,shrink=10]
|
|
\titlepage
|
|
\end{frame}
|
|
|
|
\begin{frame}{Roadmap: Conference Tutorial}
|
|
\centering\small
|
|
\begin{tabular}{rll}
|
|
\toprule
|
|
\textbf{Module} & \textbf{Topic} & \textbf{Status} \\
|
|
\midrule
|
|
Module 1 & Foundations \& Architecture & \checkmark Done \\
|
|
Module 2 & Advanced Single-Node Analysis & \checkmark Done \\
|
|
\rowcolor{crimson!12}
|
|
\textbf{Module 3} & \textbf{Scale, Dollars, and Carbon} & \textbf{$\leftarrow$ You are here} \\
|
|
Module 4 & Design Space Exploration \& Synthesis & \\
|
|
\bottomrule
|
|
\end{tabular}
|
|
\end{frame}
|
|
|
|
\section{Going Distributed}
|
|
|
|
\begin{frame}{The Distributed Computing Taxonomy}
|
|
When models outgrow a single GPU, we must partition them:
|
|
\begin{itemize}
|
|
\item \textbf{Data Parallelism (DP):} Replicate model, shard data.
|
|
\item \textbf{Tensor Parallelism (TP):} Shard matrix multiplications. High communication bandwidth required (NVLink).
|
|
\item \textbf{Pipeline Parallelism (PP):} Shard layers across GPUs. Leads to pipeline bubbles.
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
\begin{frame}{The Amdahl Trap}
|
|
Scaling efficiency is never 100\%. It degrades due to:
|
|
\begin{enumerate}
|
|
\item \textbf{Communication overhead:} Time spent passing tensors over InfiniBand (AllReduce, AllGather).
|
|
\item \textbf{Pipeline bubbles:} GPUs sitting idle waiting for previous pipeline stages to finish.
|
|
\item \textbf{Stragglers:} The cluster is only as fast as its slowest node.
|
|
\end{enumerate}
|
|
\vfill
|
|
\begin{center}
|
|
The \texttt{DistributedModel} solver automatically calculates network transmission times and pipeline bubbles.
|
|
\end{center}
|
|
\end{frame}
|
|
|
|
\section{Economics \& TCO}
|
|
|
|
\begin{frame}{The Total Cost of Ownership (TCO)}
|
|
\begin{center}
|
|
\Large
|
|
\[
|
|
\text{TCO} = \underbrace{\text{CapEx}}_{\text{hw + facility}}
|
|
+ \underbrace{\text{OpEx}_{\text{energy}}}_{\text{electricity}}
|
|
+ \underbrace{\text{OpEx}_{\text{maint}}}_{\text{staff}}
|
|
\]
|
|
\end{center}
|
|
\vspace{1em}
|
|
\textbf{The Infrastructure Multiplier:}
|
|
GPUs are only $\sim$40\% of total CapEx. Networking (InfiniBand), power delivery, cooling, facility, and operations add 50--150\%.
|
|
\end{frame}
|
|
|
|
\section{Sustainability \& Composition}
|
|
|
|
\begin{frame}[fragile]{Cross-Domain Carbon Accounting}
|
|
\small
|
|
Training time depends on hardware efficiency; carbon depends on grid intensity.
|
|
\begin{lstlisting}[language=Python,basicstyle=\ttfamily\tiny]
|
|
from mlsysim.solvers import DistributedModel, SustainabilityModel
|
|
from mlsysim.systems.registry import Systems
|
|
from mlsysim.infrastructure.registry import Infrastructure
|
|
from mlsysim.models.registry import Models
|
|
|
|
fleet = Systems.Clusters.Research_256 # 32x DGX H100 nodes
|
|
|
|
perf = DistributedModel().solve(
|
|
model=Models.Language.Llama3_70B, fleet=fleet,
|
|
tp_size=8, pp_size=1, dp_size=32)
|
|
days = perf.latency.to("days").magnitude
|
|
|
|
sust = SustainabilityModel().solve(
|
|
fleet=fleet, duration_days=days, mfu=perf.mfu,
|
|
datacenter=Infrastructure.Datacenters.GCP_Iowa)
|
|
print(f"Total Carbon: {sust.carbon_footprint:.1f} tonnes CO2e")
|
|
\end{lstlisting}
|
|
\end{frame}
|
|
|
|
\begin{frame}{Geography is the Biggest Lever}
|
|
\centering
|
|
\begin{tabular}{lcr}
|
|
\toprule
|
|
\textbf{Region} & \textbf{Mix} & \textbf{Carbon Intensity (gCO$_2$/kWh)} \\
|
|
\midrule
|
|
Quebec & Hydro & 20 \\
|
|
Sweden & Hydro+Nuc & 25 \\
|
|
US Avg & Mixed & 390 \\
|
|
Poland & Coal & 820 \\
|
|
\bottomrule
|
|
\end{tabular}
|
|
\vfill
|
|
\begin{alertblock}{The 41$\times$ Gap}
|
|
Training the exact same model on the exact same hardware in Poland emits \textbf{41$\times$ more carbon} than training it in Quebec.
|
|
\end{alertblock}
|
|
\end{frame}
|
|
|
|
\begin{frame}{Summary: Module 3}
|
|
\begin{enumerate}
|
|
\item \textbf{Distributed Computing:} Tensor Parallelism requires high bandwidth (NVLink); Pipeline Parallelism incurs bubbles.
|
|
\item \textbf{Economics:} Hardware is only 40\% of TCO. Do not ignore the Infrastructure Multiplier.
|
|
\item \textbf{Composition:} Output from performance solvers (latency) pipes directly into sustainability and economics solvers.
|
|
\item \textbf{Sustainability:} Geography (Carbon Intensity) is the single biggest lever in AI sustainability.
|
|
\end{enumerate}
|
|
\vspace{1em}
|
|
\begin{center}
|
|
\textit{Next up: Module 4 - Design Space Exploration!}
|
|
\end{center}
|
|
\end{frame}
|
|
|
|
\end{document}
|