首页 › programming › 驯服GPU:并行内核实战

驯服GPU:并行内核实战 —— 七大优质 YouTube 频道与视频深度精读

概述

大模型训练、推理、科学计算、图形渲染——今天几乎所有"算力"故事的尽头,都站着同一块芯片:GPU。但 GPU 的算力从来不是"把 for 循环搬上去"就能拿到的。一块 H100 标称 989 TFLOPS(FP16)的峰值,普通工程师手写的第一个内核往往只能跑到峰值的 3%–5%。从 3% 到 60% 之间的这段路,就是 GPU 并行内核(kernel)编程 的全部艺术。

本轮「编程与开发」精选聚焦一个具体而硬核的切入点:如何为 GPU 写出又快又对的内并行内核——从 NVIDIA 官方的 CUDA C++ 课程、Stephen Jones 在 GTC 上的"并行思维"启蒙,到独立创作者 CoffeeBeforeArch 的实战 Crash Course,再到 OpenAI Triton 用 Python 重写 GPU 内核的新范式,以及"如何用 Triton 干翻 PyTorch 矩阵乘法"的极限优化实战。七个频道/视频覆盖了 官方权威、思维启蒙、独立实战、硬核科普、底层原理、新范式、极限优化 七个层级,恰好构成一条从"看得懂"到"写得快"的完整学习链路。

本期一个清晰发现:2025–2026 年 GPU 编程的范式正在分裂。底层仍有 CUDA C++ 这座无法绕开的"性能圣杯";上层则快速崛起 Triton、 CUTLASS 高层 API、甚至 AI 自动生成内核(如 AutoTriton、Karpathy 的 Autoresearch 调用手写 Flash Attention 内核)。会 CUDA 是基本功,懂 Triton 是新门票——两者并用,才是当下 AI 基础设施工程师的核心竞争力。

频道 / 视频对比总览

# 频道 / 视频 定位层级 难度 形式 核心价值
1 NVIDIA Developer · Modern CUDA C++ Programming Class 官方权威 ⭐⭐ 入门→进阶 系列课程 一手标准、内容权威完整
2 Stephen Jones · Getting Started with CUDA (GTC 2025) 思维启蒙 ⭐⭐ 入门 GTC 单集演讲 重建"并行思维"心智模型
3 CoffeeBeforeArch · CUDA Crash Course 独立实战 ⭐⭐⭐ 中阶 系列 + GitHub 代码 性能工程师视角、可复现
4 Parallel Routines (@parallelroutines) 趣味硬核科普 ⭐⭐ 入门→中阶 频道 把"隐藏的 GPU 世界"讲简单
5 GPU Warps Explained: How SIMT Really Works 底层原理 ⭐⭐⭐⭐ 高阶 单集深讲 SIMT/warp 硬件真相
6 OpenAI Triton Explained: GPU Programming for AI 新范式 ⭐⭐⭐ 中阶 单集讲解 Python 写内核的捷径
7 How to Beat PyTorch: Fast MatMul Kernel in Triton 极限优化 ⭐⭐⭐⭐⭐ 专家 实战长视频 内存合并/分块/自调优实战

一、NVIDIA Developer · Modern CUDA C++ Programming Class —— 不可绕过的官方正典

频道:NVIDIA Developer(官方开发者频道,订阅量百万级,YouTube 上 GPU 计算事实标准的权威来源) 链接:播放列表|首集 Accelerating Applications with Parallel Algorithms

这是 NVIDIA 自己录制的"现代 CUDA C++ 编程课",由 CUDA 架构师与开发者布道师主讲。它的价值在于权威与体系:从并行算法思维、kernel 编写、线程/块/网格组织,到异步与 CUDA Streams(Part 2)、内存层次、性能分析工具 Nsight Systems/Compute,几乎覆盖了一个 GPU 工程师需要的全部地基。

关键洞察:官方课程反复强调一个核心理念——"先测量,再优化"。它把 nsys 与 ncu(Nsight Compute)当作教学主线,让你学会用 Roofline 模型判断瓶颈究竟在算力(compute-bound)还是访存(memory-bound),而不是凭感觉改代码。这种"数据驱动优化"的工程习惯,比任何一个 API 细节都更值钱。

实用价值:把这套课完整跟下来,你将掌握 CUDA C++ 的现代写法(__ldg、统一内存 Unified Memory、协作组 Cooperative Groups、半精度 __half2),并能读懂 NVIDIA 各类 SDK 示例。 适合人群:零基础到中阶、希望走"正门"而不是二手教程的工程师;任何想进 AI 基础设施、HPC、自动驾驶算法优化方向的人。


二、Stephen Jones · Getting Started with CUDA and Parallel Programming (GTC 2025) —— 重装你的"并行思维"

频道:NVIDIA GTC 官方议程 链接:YouTube 观看

Stephen Jones 是 NVIDIA 的 CUDA 架构师,这场 GTC 2025 演讲堪称"并行编程思维的第一课"。它的特别之处不在于教语法,而在于摧毁你脑子里那套串行思维。

关键洞察:Jones 用一个绝佳比喻开场——CPU 像是"四个法拉利跑车",GPU 像是"一万辆自行车"。法拉利单辆快,但要把一百万个快递送完,自行车大军碾压一切。他由此引出 GPU 编程的两大心法:(1)"问题必须能被切成成千上万个独立小任务"——这就是"embarrassingly parallel"(令人尴尬的并行);(2)"延迟藏起来(hide latency),而不是消灭它"——GPU 靠海量线程切换来掩盖访存延迟,所以"高占用率(occupancy)"和"足够的并发"比"单个线程快"更重要。

实用价值:看完这一集,你会真正理解为什么 GPU 内核里要写"一个线程只处理一个元素",以及为什么给 GPU 喂"顺序依赖的递推循环"(如带数据依赖的扫描)会极难加速。 适合人群:刚接触 GPU、总觉得"为什么我的代码搬到 GPU 上更慢了"的开发者;想做技术决策、需要判断"这个问题适不适合上 GPU"的架构师。

flowchart LR
    A[问题特征] --> B{可并行切分?}
    B -- 是 --> C[GPU 友好<br/>大规模独立任务]
    B -- 否 --> D[CPU 友好<br/>强依赖串行]
    C --> E{瓶颈类型?}
    E -- 算力受限 --> F[优化: 减少指令/用张量核]
    E -- 访存受限 --> G[优化: 内存合并/分块/共享内存]
    G --> H[藏延迟: 提高占用率]

三、CoffeeBeforeArch (Nick) · CUDA Crash Course —— 独立实战派的可复现教学

频道:CoffeeBeforeArch(又名 Nick,自称 ML 性能工程师,万人级独立技术频道) 链接:频道主页|配套 GitHub 代码仓库

如果说 NVIDIA 官方课是"教科书",CoffeeBeforeArch 的 CUDA Crash Course 就是"教练带你撸代码"。Nick 的风格极其工程化:每一集都从一个具体问题(如向量加法、矩阵转置、归约 reduction、并行扫描 scan)出发,先写出"朴素但正确"的版本,再用 Nsight 量化瓶颈,再一步步优化到接近峰值。整套系列代码全部开源在 GitHub 上,逐 commit 对应每一集。

关键洞察:Nick 把教学重心放在了几个 CUDA 工程师的"必踩坑点"——(1)未合并的访存(uncoalesced memory access):线程访问全局内存必须连续对齐,否则带宽暴跌一个数量级;(2)warp 分支发散(warp divergence):同一 warp 内的 32 个线程若走了不同 if/else 分支,会串行执行,性能减半;(3)归约的层次设计:从"原子操作的暴力版"到"树形归约 + 共享内存 + warp shuffle(__shfl_down_sync)",一步步把 reduce kernel 推到极限。

实用价值:这是少数能让你"动手写出并跑通"的免费资源。配套代码 + 教学视频 + 性能剖析截图,构成了一个完整可复现的学习闭环。 适合人群:有 C/C++ 基础、想"撸起袖子写内核"的实战派;准备 GPU/算子优化岗位面试的求职者(这些题正是高频考点)。


四、Parallel Routines (@parallelroutines) —— 把"隐藏的 GPU 世界"讲得简单又兴奋

频道:Parallel Routines 链接:频道主页

这个频道的自我介绍一语中的:"Parallel Routines 致力于让 GPU 与计算的隐藏世界变得简单而令人兴奋"("make the hidden world of GPUs and computing feel simple and exciting")。它是 GPU 编程圈近两年成长最快的内容之一,定位介于"硬核科普"和"原理深讲"之间,画面精良、节奏明快。

关键洞察:Parallel Routines 最擅长的是把抽象的硬件概念可视化——比如用动画展示一个 warp 的 32 个线程如何被 SM(流多处理器)调度、寄存器文件与共享内存如何争抢、Tensor Core 如何用一个时钟周期完成 4×4×4 矩阵乘。它也覆盖了 CUDA 之外的新动向:Triton、cuDNN、Flash Attention 背后的内存复用技巧等。

实用价值:它是极佳的"概念补全器"。如果你看官方文档觉得干瘪、看纯代码又抓不住全局,这个频道用 10–20 分钟就能帮你建立一张"GPU 内部地图"。特别适合面试前快速复习架构原理、或给团队做技术分享时借用其可视化思路。 适合人群:视觉学习者;想快速建立硬件直觉的 AI 工程师;需要向非硬件背景同事解释"为什么我们的算子慢"的开发者。


五、GPU Warps Explained: How SIMT Really Works Under the Hood —— 揭开 SIMT 的硬件真相

视频:GPU Warps Explained: How SIMT Really Works Under the Hood 链接:YouTube 观看

这是单集深讲类视频的代表作,主题是 GPU 最核心、也最容易被误解的执行模型——SIMT(Single Instruction, Multiple Threads,单指令多线程)。CPU 的 SIMD(如 AVX-512)要求程序员手动把数据打包成向量;而 GPU 的 SIMT 让你"假装"每个线程独立,由硬件把 32 个线程捆绑成一个 warp 统一发射指令。

关键洞察:这集彻底讲清了几个"反直觉"的真相:(1)一个 warp 内的 32 个线程必须执行同一条指令——它们共享一个程序计数器,所以 if (threadIdx.x % 2 == 0) 这种写法会让奇偶线程被迫串行执行两个分支;(2)warp 是调度的最小单位,不是单个线程——所以"线程数不是 32 的倍数"会浪费算力;(3)寄存器分配决定占用率——每个线程用太多寄存器,SM 能容纳的 warp 数就少,延迟就没法被藏住。配套的还有 GPU Programming Model Explained 讲编译与线程组织,GPU Architecture Explained 讲硬件全貌。

实用价值:理解了 SIMT 与 warp,你才能解释 90% 的"GPU 内核为什么慢"。这是从"会写 CUDA"到"会调优 CUDA"的分水岭。 适合人群:已经能写出可运行 kernel、但性能只有峰值 5%–10%、想知道"钱都漏在哪"的中阶工程师。


六、OpenAI Triton Explained: GPU Programming for AI —— Python 写内核的新范式

视频:OpenAI Triton Explained: GPU Programming for AI 链接:YouTube 观看

Triton 是 OpenAI 开源的 GPU 内核编程语言与编译器,地位微妙而关键:它让你用 Python 写出接近手写 CUDA 性能的内核,同时无需直接管理每个线程。PyTorch 2.0 的 torch.compile、Flash Attention 的部分实现、xformers 都建立在它之上。这集视频是入门 Triton 思想的好入口。

关键洞察:Triton 的革命性在于其编程粒度——不是"线程级"(per-thread)而是"块级"(block-level)。你只需声明"用一块 64×128 的 tile 来算",编译器自动处理线程映射、共享内存分配、内存合并、bank conflict 消除。它的核心抽象是 tl.programs 与 tl.load/tl.store,配合 program_id 完成块级并行。相比 CUDA,它把工程师从"管理 32 个线程一组的琐碎细节"中解放出来,让算法本身成为焦点。

实用价值:掌握 Triton 后,你可以为自家模型的特殊算子(如定制 attention 变体、稀疏矩阵运算)快速写出高效实现,而无需啃 CUDA C++。这是当下 AI infra 招聘里和 CUDA 并列的硬通货。配套可看 Triton GPU Programming From Scratch 与 DevConf.US 2025 的 Triton 实战。 适合人群:Python 优先的 ML 工程师;想给模型写定制算子但被 CUDA 劝退的人;关注 PyTorch 编译生态的开发者。


七、How to Beat PyTorch? Writing a Fast MatMul Kernel in Triton —— 极限优化的公开课

视频:How to Beat PyTorch? Writing a Fast MatMul Kernel in Triton 链接:YouTube 观看

这是七强里最硬核、最痛快的一集:作者从一个"朴素 Triton 矩阵乘法"起步,然后一路"丧心病狂"地优化,目标是干翻 PyTorch 的 cuBLAS 后端。它把前面六集积累的所有理论——内存合并、分块(tiling)、L2 缓存命中、流水线(software pipelining)、autotuning——全部串成一场实战表演。

关键洞察:视频浓缩了 GPU 性能优化的"三大杀器":(1)分块(tiling)+ 共享内存:把大矩阵切成小块搬进共享内存,把全局内存的 O(N²) 访问降为 O(N);(2)软件流水线:用多缓冲(multi-buffering)+ 异步拷贝(cp.async)让"计算"和"访存"重叠,藏起延迟;(3)autotuning:用 @triton.autotune 让编译器在几十种 BLOCK_SIZE 组合里自动搜索最优解——这恰恰是 Triton 相对手写 CUDA 的最大工程优势。看到朴素实现从峰值的 8% 一路被推到 70%+,那种"性能阶梯"的爽感极具教育意义。

实用价值:这是面试"算子优化"岗位的最佳准备材料,也是理解"为什么 cuBLAS/Tensor Core 难以被超越"的活教材。看完你不仅能复现,更能迁移到 attention、卷积等其他算子的优化上。 适合人群:目标直指极致性能的内核工程师;想理解 PyTorch 2.x 编译器黑盒的高级开发者。


本期知识图谱:从"看得懂"到"写得快"的七层链路

graph TD
    Start[想为 GPU 写内核] --> L1[思维层<br/>Stephen Jones: 并行思维]
    L1 --> L2[基础层<br/>NVIDIA 官方 CUDA C++ 课]
    L1 --> L3[科普层<br/>Parallel Routines 可视化]
    L2 --> L4[实战层<br/>CoffeeBeforeArch Crash Course]
    L3 --> L4
    L4 --> L5[底层层<br/>SIMT/Warp 原理深讲]
    L4 --> L6[新范式层<br/>OpenAI Triton 块级编程]
    L5 --> L6
    L6 --> L7[极限层<br/>Triton MatMul 干翻 PyTorch]
    L5 -.硬件瓶颈分析.-> L7

    classDef mind fill:#e3f2fd,stroke:#1976d2,stroke-width:1px;
    classDef pro fill:#fff3e0,stroke:#f57c00,stroke-width:1px;
    classDef top fill:#e8f5e9,stroke:#388e3c,stroke-width:1px;
    class L1,L3 mind;
    class L2,L4 pro;
    class L5,L6,L7 top;

学习路径建议:零基础者按 ①思维 → ②官方课 → ④实战 走 CUDA 主线;已有 CUDA 基础者可直接跳 ⑤底层原理 → ⑥Triton → ⑦极限优化 升级。两条线最终在"性能优化"汇合——这也正是 GPU 工程师最稀缺、最高薪的能力象限。


延伸推荐

  1. The Cherno(@TheCherno)—— C++ 教育标杆,其 C++ 系列是写 CUDA C++ 之前最好的语言铺垫。
  2. NVIDIA GTC · CUDA: New Features and Beyond(课程页)—— 跟进 CUDA 平台最新进展的官方风向标。
  3. University of Oxford CUDA Course(people.maths.ox.ac.uk/gilesm/cuda)—— 牛津一周密集 hands-on 课程,学术严谨。
  4. Triton GPU Programming From Scratch(YouTube)—— 上手 Triton 的零基础友好补充。
  5. r/CUDA(reddit.com/r/CUDA)—— 社区问答与学习路径验证,补充视频之外的真实工程踩坑。

参考来源

  1. NVIDIA Modern CUDA C++ Programming Class (播放列表) — NVIDIA 官方权威 CUDA C++ 课程系列
  2. Getting Started with CUDA and Parallel Programming | NVIDIA GTC 2025 (Stephen Jones) — CUDA 架构师讲解并行思维
  3. CoffeeBeforeArch/cuda_programming (GitHub) — CUDA Crash Course 全套开源代码
  4. Parallel Routines (YouTube 频道) — GPU 计算可视化硬核科普频道
  5. NVIDIA CUDA Programming Guide — CUDA 官方编程指南权威文档

本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵爱卫生(微信ID: gprshome201101)维护,聚焦5G/6G核心网、3GPP标准解读、通信前沿技术深度分析。 出版作品有《5G核心网原理与实践》《IMS原理与实践》等4本通信专业书籍。知识星球「51学通信」提供深度技术答疑和行业洞察。

[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。

51学通信知识星球海报-扫码加入