所有標籤11-868 第 10 講用 Lei Li 團隊自己的 LightSeq/LightSeq2 當教材,拆出四招:把矩陣乘法以外的小運算融合成一個 kernel、改寫 LayerNorm 與 Softmax 的公式來減少 thread 同步、參數與梯度用 FP16 存但 FP32 算、依反向傳播的相依關係重用記憶體。投影片報告的 WMT14 英德翻譯訓練加速是 1.4–3.5 倍。沒有錄影,本文依投影片頁碼與兩篇論文整理。
11-868 第 14、15 講從 parameter server 講到 PyTorch DDP:先用 NCCL 的五個 collective(Broadcast、Reduce、AllReduce、ReduceScatter、AllGather)當積木,推出 ring 為什麼能讓廣播時間幾乎不隨 GPU 數增加,再把 AllReduce 拆成 ReduceScatter 加 AllGather。第二講拆 DDP 的兩個關鍵設計:把梯度分桶(預設 25 MB)、在反向傳播還沒結束時就開始同步。沒有錄影,本文依投影片頁碼與 VLDB 2020 論文整理。
標準 attention 會把 N×N 的分數矩陣寫回 HBM 再讀出來,時間大多花在搬資料。FlashAttention 用 tiling 加 softmax rescaling,讓每一塊都在 SRAM 裡算完,backward 則重算而不存。Tri Dao 在 11-868 的客座講義裡給了一組數字:backward 的 FLOPs 多了 13%,HBM 讀寫少了 9 倍,時間快了 6 倍。之後 FA3、FA4 的主題也一樣:硬體變了,瓶頸跟著搬家,演算法就得跟著改。
CMU 11-868 的 GPU 三講回答一個問題:為什麼寫對的 CUDA matmul 在 A100 上只用到 2.48% 的 FP32 算力。L02 講 SM、warp 與 grid/block/thread,L03 講 cudaMalloc、cudaMemcpy 與 kernel 索引,L04 用 tiling、coalesced access 與避開 bank conflict,把資料從約 500 個 cycle 外的 global memory 搬近一點。
11-868 第一份作業要你在 src/combine.cu 寫四個 CUDA kernel(map 15、zip 25、reduce 25、matmul 30 分),接回 MiniTorch 的 Python 後端,再用 5 分的整合測試收尾。reduce 與 matmul 的 shared-memory 優化標為 Optional。作業頁明寫需要 GPU,評分用的是不公開的私有測資。
HW3 要你在 HW1、HW2 做出來的 MiniTorch 上補齊 softmax loss、Dropout、LayerNorm、Embedding,再組出 pre-LN 的 GPT-2 decoder,最後在 IWSLT14 德英翻譯上訓練。配分是 tensor functions 20、basic modules 20、decoder LM 40、翻譯管線 20;滿分條件是通過私有測試且 BLEU 約 20±2。作業頁警告光訓練就要至少 10 小時,PSC 的 V100 一個 epoch 約一小時,要跑 10 個 epoch。2026 春季版 2/4 發、2/18 截止。
11-868 第四份作業要你照 LightSeq 的做法,親手寫 attention softmax 與 LayerNorm 的 CUDA kernel(前向、反向各一),接回自己的 MiniTorch,再換進 HW3 的 Transformer 訓練一個 epoch。配分是 Softmax 40、LayerNorm 40、整合 20。作業頁預期單一 kernel 快 3.7 到 15.8 倍,整個訓練卻只快約 1.1 倍,原因是 Amdahl 定律。需要一張 NVIDIA GPU;repo 在 2026 秋季已被改過。
CMU 11-868 第五份作業改用 PyTorch 與 Hugging Face 的 GPT-2,要你只用 torch.distributed 和 torch.multiprocessing 寫出資料平行(切資料、建 process group、平均梯度,50 分),再寫出 GPipe 式的管線平行(切模型、產生時脈排程、用 worker thread 跑 micro-batch,50 分)。兩部分都要在至少兩張 GPU 上做 benchmark 並交圖:資料平行要在 2 張卡上達到至少 1.5 倍加速,管線平行要比單純模型平行快。2026 春季版 3/25 截止。
CMU 11-868 第一講用 51 頁投影片論證一件事:LLM 的瓶頸不只在模型,而在「用更少的 GPU、記憶體與電力,更快地在更大的資料上訓練與推論更大的模型」。它把一個 Transformer 拆成矩陣乘法、reduction、map、記憶體搬移四種底層運算子,再把難題分到 kernel、框架、分散式系統三層,並提醒光把計算變快不夠,資料搬移同樣花時間。
CMU 11-868 在 2026 春季用兩講回答「模型太大,一張 GPU 放不下」:L16 講切層的 pipeline parallelism(GPipe 的 micro-batch、1F1B、交錯 stage)和切矩陣的 tensor parallelism(Megatron-LM 對 FFN、attention、embedding 的切法),結論是節點內用 TP、跨節點用 PP、再外面疊 DP;L17 把 MoE 當成第三種切法——每張卡放不同的專家、其餘部分複製,代價換成 all-to-all 通訊與負載平衡,並以 GShard、DeepSpeed-MoE、DeepSeek-V3 的設計逐一說明。
11-868 最後一組講義有五份:DistServe 的 Hao Zhang、NVIDIA Dynamo 的 Vikram Mailthody、LMCache 的 Junchen Jiang、Mooncake/KTransformers 的 Mingxing Zhang,加上 Lei Li 的框架地圖。它們回答同一個問題:服務規模從一台機器擴到一座資料中心之後,算力和 KV cache 要放在哪裡。主線有三步:量尺從 throughput 換成符合 SLO 的 goodput;prefill 與 decode 拆到不同 GPU;KV cache 從 GPU 記憶體擴張到 CPU、SSD 與遠端儲存。
資料平行每張卡都存一份完整的參數、梯度和 optimizer state;用 Adam 混合精度訓練時,每個參數約要 20 bytes,其中 16 bytes 是 optimizer 相關,LLaMA-3 8B 光這些就要 160GB。CMU 11-868 L18 以 ZeRO 論文為主軸,逐格動畫示範三個階段:ZeRO-1 切 optimizer state、ZeRO-2 再切梯度、ZeRO-3 連參數也切。投影片的結論是前兩階段不增加通訊、最多省 8 倍記憶體;第三階段每張卡的用量隨 GPU 數下降,代價是投影片估的約 3 倍通訊。
CS149 是 Kayvon Fatahalian 與 Kunle Olukotun 在 Stanford 教的平行計算課,從多核 CPU、SIMD 一路講到 GPU、AI 加速器、資料中心,最後回到 cache coherence 與 lock-free。Fall 2025 的 18 份投影片、5 個程式作業的 starter code 與 README、4 份書面作業 PDF 都能匿名取得,本系列評為 A3(足以自學)。缺口有四個:當期錄影只在 Canvas;PA1 評分用 Stanford myth 機器;PA4 要自費租 AWS Trainium2,而且課程 AMI 是私有的;PA5 的 H100 排隊系統與排行榜要 SUNet ID。公開錄影是 2023 版,本系列只拿它當聽講補充。
第 8 講要你換一個腦袋:不再想「每個 worker 做什麼」,而是把演算法寫成對序列的操作,例如 map、fold、scan、segmented scan、gather/scatter、sort、groupBy。這些原語都有高效的平行實作,能把不規則的平行變規則、把細粒度同步變粗粒度。代價是要多掃幾遍資料,所以很吃頻寬。
L9 開場就說:懂了 arithmetic intensity 與 roofline,你就幾乎懂了現代 AI 軟體面效能最佳化的一切。接著示範三件事:全連接層、卷積層、attention 最後都變成矩陣乘(GEMM);GEMM 要靠分塊(blocking)讓資料留在快取裡;層與層之間要融合(fusion),別把中間結果寫回 DRAM 再讀回來。softmax 可以分塊計算,這就是融合版 attention(FlashAttention 的核心想法)不必存下 N×N 矩陣的原因。
CUDA 的 grid、thread block、CUDA thread 是一套程式抽象;GPU 用 SM、warp 與硬體 block 排程器把它實作出來。這一講的核心是分清兩件事:thread block 之間系統可以任意排序,同一個 block 裡的 thread 則保證同時存在,所以 block 能用 shared memory 和 __syncthreads() 合作,也所以一個 SM 能塞幾個 block 由暫存器與 shared memory 的量決定。
L10 從一條式子出發:功耗固定時,效能只能靠「每個運算花多少焦耳」來換,而通用處理器把大部分能量花在取指令、解碼、搬資料,不是在算。投影片的經驗法則是 GPU 比 CPU 好約 10 倍 perf/watt,固定功能 ASIC 可達 100–1000 倍。接著用同一套標準(分塊 tensor、非同步計算與記憶體、運算單元直接互傳)檢視 H100 的 Tensor Core 與 TMA、Google TPU 的脈動陣列,以及可重組資料流架構。
PA3 有三部分:把 SAXPY 改寫成 CUDA 並分開計時、用 exclusive scan 實作 find_repeats、再寫一個又對又快的 CUDA 圓形渲染器(85 分)。渲染器的難點是半透明圓的混色不可交換,每個像素都得照輸入順序更新,而起始程式碼一個圓一個 thread 的做法兩樣都沒守住。Written 2 則是五題計分題(fusion、SIMD 利用率、用 barrier 取代鎖、用資料平行原語處理圖、粒子模擬的鎖)加 14 題練習。校外要自備 NVIDIA GPU,本文不提供解答。
CS149 Fall 2025 的最後一份程式作業是開放式的:從 Histogram、1D occupancy decoder、FlashAttention、3D 熱方程 RK4、SwiGLU 五題挑一題以上,在 H100 上把 PyTorch baseline 調快,可以用 CUDA、Triton 或 TileLang,也允許用 LLM。分數不看速度門檻,看你交的工作日誌能不能說清楚每一步量了什麼、推出什麼假設、為什麼停手。H100 job queue 與排行榜要 SUNet ID,校外只能在自己的 NVIDIA GPU 上用 eval.py 跑。
L11 問的是:硬體為 AI 專用化之後,程式設計師要付出什麼?投影片以 H100 為例:要吃滿 Tensor Core,就得用 16×16 tile、讓 TMA 非同步搬資料、讓 producer 與 consumer warp 管線化,寫起來很複雜,所以有了 ThunderKittens 這類 DSL。另一條路是資料流架構(SambaNova SN40L):用 map/reduce/zip 等平行模式描述計算,編譯器做分塊、metapipelining 與佈局,投影片說它能把 Llama 3.1 8B 的整個 decoder 融成一個 kernel。
CS231N 第 11 講以 Llama3-405B 為貫穿範例,先講 GPU 硬體與叢集(H100、8 卡伺服器、24,576 張 GPU 的叢集),再把 Transformer activation 的四個維度對應到四種平行化:切 batch 是資料平行(再演進成 FSDP、HSDP),切序列是 context parallelism,切層是 pipeline parallelism,切通道是 tensor parallelism。中間插入 activation checkpointing(用重算換記憶體)和一份實用的擴展配方,並用 Model FLOPs Utilization(MFU)當調參目標:超過 30% 算好,超過 40% 算優秀。
這篇是 Fall 2026 的材料,不屬於本系列主幹的 Fall 2024。Fall 2026 把 Lab 1 從剪枝換成「Efficient AI Fundamentals」(lab1_gpu_basics.zip):Part 1 手刻三層迴圈的 GEMM、算 MAC/FLOPs/I/O;Part 2 畫 GEMM 與 GEMV 的 roofline;Part 3 拿 gemma-3-270m-it 的 decoder layer 算 attention 與 MLP,比較 prefill 與 decode;Part 4 用 PyTorch Profiler 看 kernel、自己寫 GeLU 體會 kernel fusion、再試 torch.compile 與 CUDA Graph;Part 5 比較 SDPA 與 FlashAttention。主題 80 分,另有 20 分 bonus,Part 5 因為 Colab T4 跑不動整段改成 bonus。
李宏毅在 ML 2026 第三週講推論加速,前半堂只講一招:Flash Attention。GPU 的運算單元很快,但工作台(on-chip SRAM)很小,資料得從倉庫(HBM)搬上搬下,搬運才是瓶頸。一般的 softmax 要來回倉庫好幾次;Flash Attention 用「先假設目前最大值就是 Amax,之後再乘一個修正項」的技巧,把找最大值、算分母、做 weighted sum 合進同一次掃描,連 attention weight 都不必真的算出來。結果和原本的 attention 一模一樣,不需要重訓,代價只是一點額外運算和一點燒腦。
2026 版 CME295 第 5 講「LLM systems」(10 月 30 日)課表列了 7 個主題:分散式訓練、推論最佳化、KV caching、speculative decoding、高效 kernel、FlashAttention、硬體取捨。本篇在開課前,用 2025 版第 3、4 講約 70 頁投影片加原始論文,把它們串成同一本帳:H100 每搬 1 byte 大約要做 295 次運算才吃得滿算力,而逐字生成時每讀 1 byte 權重只做約 1 次,所以多數加速手法都在想辦法少搬資料。
learn-inference.com 是 Philip Kiely《Inference Engineering》(256 頁,Baseten 出版,可免費下載 PDF)的非官方互動版:照原書 8 章、42 節重寫解說,把 TTFT、P99、speculative decoding、prefix cache 路由這類靠直覺的概念做成可以拖滑桿的模擬器,另外附免金鑰的 JSON API 與 MCP server。
系列實作篇:在 RunPod 租一張 RTX 3090(Secure Cloud $0.5/hr、Community Cloud $0.22/hr),照 README 步驟跑完 MiniMind 的 pretrain(約 1.21h)+ SFT(約 1.10h),總成本約 $0.55–1.50 美元,就能在終端機跟自己從零訓出來的 64M 模型對話。
GPUtw.ai 適合個人把短租 GPU 當成學習工具:先跑 Jupyter、Ollama、ComfyUI,再用 LoRA/QLoRA 做小模型微調。它不是大型基礎模型訓練平台,第一次使用應該小額測部署、計費與資料保存。
2026 年開源模型在 coding benchmark 追平閉源,但自架不只是選模型——vLLM 適合高併發生產服務、SGLang 在前綴重用場景快 29%、Ollama 是本地開發首選、llama.cpp 吃最少資源。A100 雲端租金約 $1.4-2.2/hr,自架損益兩平點大約在每月 100M tokens。
自架推論的關鍵不在引擎多快,而在你的 GPU 使用率:一張打滿的 A100 約 $0.70 / 百萬輸出 token,使用率掉到一成就變 $7,比多數雲端 API 貴。這篇是系列導讀,把七套工具分成三層,幫你判斷該選哪一層。
TensorRT-LLM 是 NVIDIA 的開源 LLM 推論庫(Apache 2.0),用離線編譯把模型權重與計算圖轉成最佳化的 TensorRT engine,再用自訂 CUDA kernel、in-flight batching 與多種平行化壓出硬體極限。代價是只支援 NVIDIA GPU、編譯要數十分鐘、換模型或量化就要重新 build。
Text Generation Inference(TGI)是 HuggingFace 自家的 LLM 推論伺服器,用 Rust + Python 實作,率先在開源推論引擎裡引入 continuous batching 與 Flash Attention。2026 年 3 月 GitHub 倉庫歸檔進入維護模式,官方建議遷移到 vLLM 或 SGLang。了解 TGI 仍然重要:它定義了後繼引擎的架構基線,而且許多 HuggingFace Inference Endpoint 上的既有服務仍在跑它。
自架推論伺服器分三層:執行引擎(llama.cpp)、服務引擎(vLLM、SGLang)、模型管理平台(Ollama、Xinference、Triton)。選對層級比選對工具重要——先問你的瓶頸在排程還是在部署流程,再決定複雜度放在哪裡。
Xinference 把 vLLM、SGLang、llama.cpp、Transformers、MLX 五種後端包在同一個管理層,用 Web UI 和 OpenAI 相容 API 統一管理 LLM、embedding、rerank、語音和圖像模型,適合需要多類型模型共存的自架部署;但管理層的解析邏輯也讓攻擊面比純 serving engine 大(CVE-2026-61539 是案例)。
Baseten 把自訂模型的打包、GPU 部署、推論引擎、autoscaling 與發布流程收進同一平台;價值不在多一個 OpenAI API,而是讓 ML 團隊保留 runtime 控制權,同時少維護一層 GPU orchestration。
第五講從 SM、warp 與記憶體階層解釋 GPU,再用低精度、fusion、recomputation、coalescing 與 tiling 統一常見優化;FlashAttention 正是這些原則在 attention 上的組合。
第六講把 GPU 原理落到 kernel:benchmark 看不同尺寸如何縮放,profiler 看實際呼叫與時間,再以 Triton 實作 GeLU、softmax、reduction 與 tiled matmul;快的前提是先量對。
第七講不從 FSDP API 開始,而是用 broadcast、all-reduce、all-gather、reduce-scatter 與 all-to-all 建立通訊語言,再親手組出 data、tensor 與 pipeline parallelism。
第二講把模型訓練還原成 tensor、FLOPs、bytes 與時間:用 einops 管維度,以 arithmetic intensity 和 roofline 判斷瓶頸,再用 gradient accumulation 與 activation checkpointing 交換運算和記憶體。
五份作業從 CPU 友善的 imitation learning 走到 H100 LLM RL 與六小時 offline RL runs;自學者應按成本分三階段,而非整套照搬。
Ray Serve 是建立在 Ray 上的分散式 serving layer:用 deployment 與 handle 組合 Python 服務圖,配置 CPU/GPU replica、自動擴縮與模型多工;它負責編排,不取代 vLLM 或 SGLang 的 LLM 執行引擎。
SGLang 是專攻生成式模型的推論引擎:用 RadixAttention 重用共同前綴的 KV cache,提供 OpenAI 相容 API、結構化輸出與多 GPU 平行化;它解決的是高吞吐 LLM serving,不是完整的產品後端。
Triton Inference Server 用統一的 HTTP/gRPC 介面服務 TensorRT、ONNX、PyTorch 等模型,核心能力是 model repository、動態批次、instance group 與 ensemble;它適合異質模型平台,不是專為 LLM KV cache 打造的引擎。
Modal 是按秒計費的 serverless GPU 平台,同時把 agent sandbox 做成一級公民(官方自報累計啟動逾 10 億個 sandbox、佔營收三分之一以上)。選型的關鍵不是它多方便,是你的 GPU 使用率:2026-08-21 實查,Modal A100 80GB 折算 $2.50/hr、RunPod 同卡 $1.59/hr,使用率超過六成四自己開機器就比較便宜;但同一天 H100 SXM Modal $3.95/hr、Lambda $3.99/hr,這張卡的溢價幾乎是零。
CS336 的十七堂正課裡,只有九堂是可以執行的 Python 程式,另外八堂是 PDF 投影片——分界線剛好是兩位授課者。第一份作業的講義有八個「低資源提示」教你怎麼在筆電上做完,第二到第五份一個都沒有。課程頁自己列了 B200 的每小時單價,作業講義自己列了每題要幾個 B200 小時。
vLLM 是自架 LLM 推論的事實標準(GitHub 89,470 stars,2026-08-21 實查),核心是把 KV cache 當作業系統的分頁來管。但選型的關鍵不在它多快,在你的 GPU 使用率:以 Red Hat 實測的每秒 793 個輸出 token 換算,一張打滿的 A100 約 $0.70 / 百萬輸出 token,使用率掉到一成就變 $7——比多數雲端 API 貴。
NVIDIA 生成式 AI 線有四張:NCA-GENL、NCA-GENM(各 $125,associate)、NCP-GENL、NCP-AAI(各 $200,professional)。選之前先看三件別家沒有的事:一、兩張 professional 的 Register 按鈕都標著「Coming soon」,近期計畫直接只剩兩張 associate;二、NVIDIA 是本系列唯一官方備考課全部付費的廠商,真實成本是考試費加課程費,NCA-GENL 自學五門 $390、NCA-GENM 有兩門只有 $500 講師版、NCP-GENL 官方清單列價合計 $1,620;三、官方文件自相矛盾——NCP-AAI 的權重網頁加總 98%、PDF 加總 92%,NCP-GENL 網頁表格有兩格描述錯置(其中一格是 OpenUSD 的文字)。另外綁定程度差很多:NCP-AAI 只有 7% 綁 NVIDIA 產品,NCP-GENL 有 31% 在考 GPU 與模型壓縮。
NCP-GENL 是 NVIDIA 的 LLM 專業級認證,$200、120 分鐘、60–70 題。它跟其他 GenAI 證照最大的差別在重心:Model Optimization 17% 加 GPU Acceleration 14% 合計 31%,考的是量化、蒸餾、剪枝、分散式平行與 CUDA profiling,不是接 API。兩個要先知道的:官方頁面的 Register 標著 Coming soon,還不能報名;而且同一頁的權重表有兩格描述文字是壞的——Fine-Tuning 那格寫的是 OpenUSD 的資料交換,Model Optimization 那格寫的是部署內容,兩處我都逐字驗過,正確描述在官方 PDF 裡。
NVIDIA DGX Spark 搭載 GB10 Grace Blackwell Superchip,128GB 統一記憶體,提供 1 petaFLOP FP4 算力,售價約 $3,999 美元起。適合開發者在本地跑 200B 參數模型、fine-tune 70B 模型,是目前最容易入手的 NVIDIA AI 開發平台。
vLLM 用 PagedAttention 解決 KV cache 記憶體浪費問題,搭配 continuous batching 和 prefix caching,成為目前最主流的開源 LLM 推論引擎。