
2026 年 1 月 27 日,2025 冬季 InfiniTensor 大模型与人工智能系统训练营 CUDA 编程系列第六课《异步并行、底层控制与系统优化》开讲。
本节课将深入讲解 CUDA 系统优化与高级技术,重点围绕延迟瓶颈的识别与优化展开。
延迟瓶颈与优化基础
1.延迟瓶颈(Latency-bounded)概念:
- 计算与访存利用率低,线程因等待长延迟操作而阻塞
2.性能瓶颈识别方法:
- 使用 NCU 分析工具识别瓶颈指标(如 Stall Long Scoreboard)
3.硬件单元独立性:
- 计算单元与访存单元属于不同的硬件执行单元,在满足依赖与调度条件时可实现一定程度的并行重叠。

存算重叠技术
1.核心概念:
- 访存与计算的时间重叠,实现延迟隐藏(Latency Hiding)
2.实现方法:
- 双缓冲(Double Buffering):设置两个共享内存缓冲区
- 线程束特化(Warp Specialization):不同 warps 承担不同角色(计算/访存)
3.硬件基础:
- SM 内多流水线并行执行能力

异步执行与流水线
1.异步编程模型:
- 核函数发射的异步特性
- CUDA Pipelining API
- memcpy_async 异步数据拷贝

2.生产者-消费者模型:
- Pipelining 工作流程:Creates→Acquire→Submit→Commit→Wait→Compute→Release
3.性能对比:
- 异步加载相比同步加载有显著性能提升

多流并行技术
1.流(Stream)概念:
- CUDA 中的执行队列(FIFO)
2.流类型
- 默认流(Default Stream):在 Legacy 模式下与所有其他流隐式同步
- 显示流(Named Streams):可创建的非阻塞流

3.多流并行
- 使用 cudaStreamCreateWithFlags 创建非阻塞流
- 通过 NVIDIA Nsight Systems 分析时间线
4.异步内存操作
- cudaMallocAsync/cudaMemcpyAsync 异步分配和拷贝
- 固定内存(Pinned Memory)与零拷贝技术
统一内存管理
1.统一内存(Unified Memory):
- CPU/GPU 共享内存空间
2.管理策略:
- cudaMallocManaged 自动数据迁移
- 基于 Page Fault 的换页机制
- 优化 API:cudaMemAdvise 启发式策略、cudaMemPrefetchAsync 异步预取

计算图优化
1.CUDA Graph 概念:
- 将操作序列组织为有向无环图
2.核心优势
- 减少核函数启动开销
- 增强任务并行性与依赖性识别
- 避免重复工作
3.工作流程
- 流捕获→图创建→实例化→启动执行
4.性能表现
- 批量提交操作,消除执行间隙(Bubble)

多 GPU 协同计算
1.硬件互联结构:
- PCIe 树状连接 vs NVLink 网状连接

2.协作方式
- 点对点传输(P2P)与 RDMA 直接内存访问
- 统一内存跨设备访问
- NCCL 集合通信库
3.通信模式
- 点对点通信(Send/Receive)
- 集合通信(AllReduce等)
- 多进程/多线程环境下的 GPU 管理
优化指导原则
1.性能定律
- 阿姆达尔定律:串行部分限制加速上限

- 古斯塔夫森定律:扩大问题规模提升实际加速

2.优化哲学
- 优先解决性能瓶颈最大的环节,避免盲目优化
总结
本节课深入探讨了 CUDA 系统级优化与高级技术,重点围绕延迟瓶颈的识别与优化展开,从单一 GPU 优化扩展到多 GPU 协同计算,下节课将详细介绍更加快速性能提升的方法,和高阶的优化方法。

💡 学习贴士
更多细节及完整课程内容,请观看直播或查看课程回放。
链接:https://www.infinitensor.com/camp/winter2025
📚 训练营报名持续进行中
扫码报名与加入群聊,或点击 「阅读原文」 直达官网报名

