
2026 年 1 月 15 日,2025 冬季 InfiniTensor 大模型与人工智能系统训练营 CUDA 编程系列第二课《性能模型与逐元素优化》开讲。
本节课涵盖并行编程基础、Roofline 模型等内容,并涉及向量化实现与性能对比等知识。
课程回顾与背景引入
- 什么是并行编程?为什么需要并行?
- CPU 与 GPU 的架构差异
- 向量加法的 GPU 实现与编译
- 性能初步分析工具
- CPU 与 GPU 性能对比

性能瓶颈分析与内存墙
1. 传输开销与计算时间对比
- CPU-GPU 数据传输时间 vs GPU 内核计算时间
- 通信带宽成为性能瓶颈
2. 内存墙概念引入
- 摩尔定律与内存增长速度对比
- 冯·诺依曼架构的限制
- 计算速度远快于内存访问速度

Roofline 模型:量化性能瓶颈
1. Roofline 模型基本概念
- 纵轴:性能(GFLOPS)
- 横轴:计算强度(FLOPS/byte)
- 关键参数:
- π(峰值算力)
- β(峰值内存带宽)
- Imax(计算强度拐点)

2. 模型分区解释

3. 向量加法案例分析

性能分析工具:Nsight Compute(NCU)
1. NCU 简介与使用
- 内核级性能分析工具
- 命令行与 GUI 版本使用方式
- 输出文件分析
2. 关键分析界面
- Summary Page(核函数汇总)
- Details Page(吞吐量与 Roofline 图)
- 内存与计算利用率分析

向量化技术:提升访存效率
1. 什么是向量化?
- 标量操作 vs 向量操作
- SIMD(单指令多数据) vs SIMT(单指令多线程)
2. CUDA 中的向量化访存类型

3. 向量化实现与性能对比
- 不同向量化程度的性能测试
- 寄存器使用与溢出问题
- 数据规模对向量化效果的影响
半精度计算
1. 半精度浮点数简介
- 结构对比(FP16 vs FP32)
- CUDA 中的 half 类型与转换函数

2. 半精度性能优势
- 内存占用减半
- 计算强度提升
- 向量化支持(half2)
3. 向量化计算与访存结合

课后思考题
1.可以有效使用 float3 吗?如果可以,怎么做?
2.之前提到向量化访存有多种方法,今天主要介绍了使用内置类型的方式,想想还有什么其他方式吗?(Hint: 今天的课中其实已经提到了,同时也和第一问有关)
总结与思考
本节课我们对优化路径进行了系统性学习,向量化访存 → 半精度 → 向量化计算,性能提升幅度对比等知识。后续课程我们将进一步对于优化方法,算子融合、内存层级优化等知识进行学习,同时将会迎来新的挑战!

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

