学习针对NVIDIA Hopper GPU的CUDA编程技术。
我们刚刚在freeCodeCamp.org的YouTube频道上发布了一门课程,该课程将教你如何构建高效的WGMMA计算流程,并利用Cutlass优化技术来执行那些支撑现代人工智能发展的大规模矩阵乘法运算。
除了单芯片性能之外,这门课程还涵盖了多GPU扩展技术以及训练万亿参数模型所需的NCCL基础功能。要想充分利用这些学习内容,你需要具备扎实的C++语法知识和线性代数基础,尤其是了解矩阵是如何被分割并进行乘法运算的。
以下是这门课程的所有章节内容:
-
课程介绍
-
目录与课程概览
-
第1课 — H100 Hopper GPU架构
-
H100技术规格:HBM3内存、带宽与功耗
-
Tensor核心概述
-
Tensor内存加速器(TMA)
-
Transformer引擎
-
L2缓存架构
-
GPC、TPC与SM布局结构
-
线程块组织方式
-
分布式共享内存机制
-
SM子分区(SMSP)结构
-
共享内存与数据传输技术
-
资源利用率优化
-
第2课 — 线程块集群、数据类型、内联PTX代码及指针操作
-
线程块编程技巧
-
内联PTX汇编语言
-
第3课 — 异步编程与同步屏障机制
-
异步操作简介
- 代理对象在异步编程中的作用
- 预期计数值与线程执行顺序
-
第4课 — CuTensorMap描述符的使用方法
-
第5课 — 使用TMA进行异步批量数据复制
-
第6课 — WGMMA编程基础(第一部分:Warp组矩阵乘法与累加操作)
-
第7课 — WGMMA编程基础(第二部分)
-
第8课 — 内核函数设计技巧
-
多GPU编程技术——第一部分
-
多GPU编程技术——第二部分
Warp调度器与数据分发单元
集群维度配置方法
状态空间概念
PTX中的数据类型
通用指针的使用方法
地址空间转换技巧
Fence屏障与内存排序规则
Fence屏障的排序方式与可见性原理
Fence屏障的作用范围
获取屏障与释放屏障的操作
M型屏障及相关操作指令
屏障等待机制
相位控制与奇偶校验机制
提交操作流程
张量形状、步长与数据类型
元素步长与维度计算
数据块的大小与排列方式
内存银行冲突问题及其解决方法
数据交换技巧与公式解析
交错布局结构的设计原理
越界数据填充处理方法
批量张量运算(1D至5D维度)
多播通信技术应用
预取机制在数据处理中的作用
Warp组与矩阵乘法运算原理
WGMMA描述符的配置方法
累加器的设计及寄存器重用技巧
缩放因子(Scale D、Scale A、Scale B)的作用
核心矩阵与16×16数据块的结构
提交组与等待组的概念与应用
使用FP8数据类型进行WGMMA运算
计算密集型内核与内存密集型内核的区别
Warp级别的优化方法
协作式流水线与乒乓式流水线的区别
流水线编程的基本原理
循环缓冲区的使用方法
乒乓式流水线的深入分析
流水线中的异常处理机制
持久性调度策略
Split-K与Stream-K调度算法
数据并行性驱动下的瓦片级调度技术
融合运算环节的设计(偏置值计算、激活函数应用、缩放操作)
各类运算操作的概述
CUTLASS源代码解析
主循环结构与调度策略
数据分发机制的实现原理
SM90瓦片调度器的设计细节
SM90中的特殊优化技术(TMA与Warp级优化)
SM90构建模块的工作原理
Collective构建模块的功能与应用
FAST.CU内核函数的实现过程
主循环的具体实现方式
生产者Warp组与消费者Warp组的结构设计
程序的前置处理阶段
NVSwitch技术简介
拓扑结构与系统架构
NVSwitch、BlueField DPU及存储系统之间的协同工作原理
CUDA中的点对点通信技术
MPI(消息传递接口)的应用
P2P通信技术的局限性与权衡因素
SLURM资源分配机制
PMIx进程管理技术
NCCL(NVIDIA集体通信库)的功能与应用
NCCL的内部工作机制与环形算法原理
AllReduce操作流程
NCCL提供的集合运算函数:Broadcast、AllGather、ReduceScatter
并行性优化策略:数据并行性、张量并行性、流水线并行性及专家级并行性
课程总结与后续学习建议
您可以在 freeCodeCamp.org 的 YouTube 频道上观看该课程,该课程可以随时观看,没有时间限制。