首页
/ 计算机自学指南|UCSD CSE234:Data Systems for Machine Learning——从 GPU Kernel 到端到端 LLM 系统的硬核进阶课

计算机自学指南|UCSD CSE234:Data Systems for Machine Learning——从 GPU Kernel 到端到端 LLM 系统的硬核进阶课

2026-09-06 18:34:08作者:宗隆裙

导读

本篇是「计算机自学指南」机器学习系统板块中对 UCSD CSE234《Data Systems for Machine Learning》的深度解读。该课程以「端到端设计高效大语言模型系统」为核心,横跨现代深度学习表示、GPU/CUDA Kernel 优化、算子与图编译、内存管理、量化,以及并行策略与 LLM 训练/推理优化,是一张理解真实 LLM Infra / AI Compiler / ML Systems 方向的完整路线图。读完本文,你将掌握这门课的定位、三大知识模块的脉络、前置知识与自学节奏、配套动手项目建议,以及它与仓库内其他机器学习系统类课程的互补关系,从而判断它是否适合放入你自己的学习规划。

课程基本信息

项目 内容
所属大学 UCSD
课程全名 CSE234: Data Systems for Machine Learning
先修要求 线性代数、深度学习、操作系统、计算机网络、分布式系统
编程语言 Python、Triton
课程难度 🌟🌟🌟
预计学时 约 120 小时

本课程专注于设计一个全面的大语言模型(LLM)系统,作为设计高效 LLM 系统的入门介绍。它并不停留在「怎么调 API、怎么训模型」的算法层面,而是聚焦真实系统设计中的取舍(trade-off)与工程约束,回答「为什么某些 LLM 系统设计是现在这个样子」这类系统工程师关心的问题。

注意:CSE234 位于仓库的 docs/机器学习系统 目录,与其并列的还有 CMU 10-414/714(从零手写深度学习系统)、CMU 15-442/642(机器学习系统)、EML(MIT6.5940 TinyML 与高效深度学习计算)、AICS(智能计算系统)、MLC(机器学习编译)等姊妹课程文档,可在规划时横向对比。

课程结构:三大知识模块

课程内容可以更准确地划分为三部分(另加若干 guest lecture),整体脉络是从「算法/框架表示」逐步深入到「系统性能」,最后汇合到「LLM 训练与推理系统」这条主线。

Part 1. 基础:现代深度学习与计算表示

  • Modern DL 与计算图(computational graph / framework 基础):理解 PyTorch、TensorFlow 等框架如何把网络表达为计算图,这是后续所有系统优化的载体;
  • Autodiff 与 ML system 架构概览:从自动微分入手纵览机器学习系统整体架构——这也是仓库姊妹课程 CMU10-414(Needle 深度学习库)的主线内容,两者在「框架内部怎么工作」上相互印证;
  • Tensor format、MatMul 深入与硬件加速器(accelerators):搞清楚张量在内存中的排布(layout/format)、矩阵乘法为什么是深度学习的核心算子,以及加速器硬件结构对算子实现提出的约束。

这一部分对系统背景薄弱的自学者起到「补齐地基」的作用,难度相对平缓。

Part 2. 系统与性能优化:从 GPU Kernel 到编译与内存

这是课程中段也是分水岭,主题完全转向「性能」:

  • GPUs & CUDA(含基本性能模型):掌握 GPU 的线程层次、内存层次与执行模型,学会用简单的性能模型(如对内存带宽、计算吞吐的估算)解释 Kernel 快慢;
  • GPU MatMul 与算子编译(operator compilation):从手写矩阵乘法 Kernel 出发,体会 Tile/Block 切分、寄存器与共享内存复用等经典优化手段,并引出算子层编译;
  • Triton 编程、图优化与编译(graph optimization & compilation):课程采用 Triton 作为主要编程语言——它让开发者以接近 Python 的体验编写高性能 GPU Kernel,无需深入 CUDA 底层繁琐细节。这一主题与仓库中 MLC 机器学习编译(以 Apache TVM 为例讲解算子与图优化)形成呼应;
  • Memory(训练/推理中的内存问题与技巧):包括激活值显存占用、梯度与优化器状态开销、KV Cache 等,训练和推理的内存瓶颈是两类完全不同的问题;
  • Quantization(量化方法与系统落地):了解常见量化方案及其在真实系统中的落地方式。

从这一部分开始,没有 CUDA / 并行编程与基础系统知识积累的自学者会明显感到曲线变陡。

Part 3. LLM 系统:训练与推理

课程最终汇聚到当前工业界最关心的 LLM 系统设计问题:

  • 并行策略:模型并行、collective communication(集合通信,如 all-reduce 等)、intra-/inter-op 并行、自动并行化——对应多卡训练的系统拆分方式;
  • LLM 基础:Transformer、Attention、MoE(混合专家)——MoE 是理解稀疏激活与大规模并行系统设计的关键;
  • LLM 训练优化:以 FlashAttention 为代表,把「访存优化 Kernel」思路贯彻到 Attention 算子;
  • LLM 推理continuous batching(连续批处理,提升吞吐的关键调度技术)、paged attention(把 KV Cache 按页管理、消除碎片化)、disaggregated prefill/decoding(将预填充与逐 token 解码阶段拆分到不同实例)等新一代推理系统核心概念;
  • Scaling law:从系统角度理解模型规模与数据、算力之间的权衡。

Guest lectures 作为补充与扩展,覆盖 ML compiler、LLM pretraining/open science、fast inference、tool use & agents 等前沿主题,帮助把课程主线和产业最新实践衔接起来。

课程最大特点:以 LLM System 为核心场景,重工程取舍

CSE234 区别于一般深度学习课程的核心在于:以 LLM 系统作为贯穿始终的应用场景,强调真实系统设计中的取舍与工程约束,而非停留在算法或 API 使用层面。课程作业通常要求直接面对真实性能瓶颈并动手解决,典型如:

  • 内存带宽:理解 Kernel 是否受限于访存(memory-bound)而非计算,从而选择最优的融合与数据复用策略;
  • 通信开销:在多卡训练场景中量化集合通信成本,设计合理的并行切分;
  • Kernel fusion:把多个串行算子融合为单个 Kernel,减少中间张量的读写(HBM 访存),这也是 FlashAttention 系列工作的系统本质。

学生需要通过 Triton 或系统级优化手段逐一应对上述瓶颈,而不是套用现成 API。因此这门课对「理解 LLM 系统为什么长成现在这样」极有帮助——例如为什么推理要引入 PagedAttention、为什么训练要做算子融合,都能在动手实现后获得直觉。

从系统学习价值看,一旦跟上节奏,它对从事 LLM Infra / ML Systems / AI Compiler 方向的学习者具有长期的实用价值,恰好对应本仓库 机器学习系统 分类要覆盖的能力图谱。

前置要求与难度预警

先修要求为线性代数、深度学习、操作系统、计算机网络、分布式系统。如果对照仓库自学路线补齐:

学习体验整体偏硬核:前期对系统与并行计算背景要求较高。文档中的经验总结是:如果缺少 CUDA / 并行编程与基础系统知识,建议自学时提前补齐,否则在课程后半部分(尤其 LLM 优化与推理相关内容)会感到明显陡峭的学习曲线。难度三星是对它系统深度的一种写照,建议规划至少 120 学时并预留大量动手调优的时间。

学习路线推荐与配套开源项目

课程本身循序渐进,但对无系统与并行计算背景的同学,进入第二部分后会感觉陡峭。文档给出的核心建议是:这门课最核心的部分是需要花大量时间动手实现与优化系统,因此在读论文的同时,就可以在 GitHub 上寻找相关的开源项目,动手实现相关系统或 Kernel,以加深理解。针对不同阶段的配套项目:

  • 基础部分:配合 micrograd(Karpathy 的微型自动微分引擎)学习——用极简代码打通「前向计算图 + 反向传播」的直觉,与课程 Part 1 的 Autodiff 内容精准对应,仓库中 CMU10-414 的「从零实现深度学习库」也是同一思路的更大规模版本;
  • 系统与性能优化 & LLM 系统:配合 nanoGPT(Karpathy 的最简 GPT 训练实现)与 nano-vllm(微型 vLLM,聚焦 LLM 推理系统核心机制)一起学习。前者帮助你理解训练侧最小闭环,后者把 continuous batching、KV Cache 管理等推理系统关键点压缩到可读的代码量级,非常适合在学 Part 3 推理章节时对照实现。

这种「课程主线 + 开源复刻」的组合式学习法,恰好也与仓库 CS学习规划 中强调的「动手实践」学习理念一致。

此外,课程官方页面还提供了整理好的参考书籍与文档清单(Book related documentation and courses),可作为延伸阅读索引,建议结合各章的论文列表逐篇精读。

课程资源与开源现状

课程配套资源如下:

  • 课程网站 / 课程视频:由 Hao AI Lab 维护的官方课程站,同时承载课件与录播;
  • 课程教材 / 阅读材料:官方 resources 页面集中给出阅读清单;
  • 课程作业:官方 assignments 页面提供各次作业说明。

从资源开放程度上看:所有课程内容都已发布对应的开源版本(课件、视频、阅读材料、作业题目均可获取),但在线测评(online grading)与作业参考答案部分尚未开源。这意味着自学时无法依赖自动判题系统核对正确性,需要靠本地验证、对比社区实现或自己编写测试来确认结果——文档中已有多位贡献者在其他课程上采用类似的「作业实现 + 开源汇总」模式(可参考 CMU10-414 一节中的先例),值得借鉴。

延伸资源:围绕 GPU Kernel / LLM 系统的深度讲解

文档特别推荐 GPUMode 频道,其上有大量关于 GPU Kernel / System 的深度讲解视频。课程中提及的若干关键主题在 GPUMode 中都有对应的优质延伸内容,建议按需观看:

  • DistServe:关于 disaggregated prefill/decoding 推理架构的代表性工作,可深化对 Part 3 推理章节的理解;
  • FlashAttention:从访存优化视角剖析 Attention Kernel,是 Part 2/Part 3 交汇处的核心案例;
  • Triton:作为课程主编程语言的专题讲解,能帮你更快上手课程作业所需的 Kernel 开发。

这些资源与课程章节是「论文 + 视频拆解」的互补关系,在动手实现 Kernel 遇到瓶颈时尤其有用。

小结:这门课适合谁、如何放入自学计划

CSE234 是一张以 LLM 系统为主轴的「系统性能全景图」:从框架与计算图、Autodiff,到 GPU Kernel 与 Triton、算子/图编译、内存、量化,最终汇合到并行策略与 LLM 训练/推理系统。它与仓库机器学习系统分类下的其他课程构成很好的互补:

  • 想从「框架内部实现」入手、自底向上写一个深度学习系统,可参考 CMU10-414
  • 想系统学习编译视角的算子与图优化,可参考 MLC 机器学习编译
  • 想侧重高效端侧/边缘部署,可参考 EML(MIT6.5940 TinyML)
  • 而 CSE234 的最大差异化价值在于以 LLM System 为最终落点、以真实工程性能约束贯穿全课

是否选它,取决于两条判断:(1) 是否已经补齐系统 / CUDA / 并行计算前置知识(否则建议先用 CS149MIT6.S081 等补课);(2) 是否愿意投入约 120 学时做大量 Kernel 与系统级动手实现。如果你志在 LLM Infra、ML Systems 或 AI Compiler 方向,这门课值得作为机器学习系统板块的重头戏放入学习计划,并搭配 micrograd、nanoGPT、nano-vllm 等项目同步实践。

登录后查看全文
热门项目推荐
相关项目推荐