
8 月 10 日,2026 夏季 InfiniTensor 训练营 CUDA 编程方向第九课《量化与工业级算子调优部署》开讲。
上节课《异步并行、底层控制与系统优化》聚焦系统层面性能优化,讲解 NCU 瓶颈诊断、双缓冲存算重叠、异步流与统一内存、CUDA Graph、NCCL 多卡通信及阿姆达尔/古斯塔夫优化定律等内容。
本节课作为 CUDA 编程系列收尾课程,介绍各类浮点/整数低精度类型、量化全体系、PTX 底层指令、编译器调优、分支发散优化与官方加速库落地部署等相关内容。


低精度浮点数据类型完整解析
主流低精度类型特性对比
1.FP 16(Half)
- 5 bit 指数 + 10 bit 尾数,精度更高、动态范围偏小,通用推理基础类型。
2.BF 16(Brain Floating Point)
- 8 bit 指数 + 7 bit 尾数,与 FP 32 动态范围完全对齐,训练场景首选。

3.TF 32
- 保持 FP32 的 8 bit 指数位;
- 尾数缩减至 10 bit,提高 Tensor Core 矩阵计算性能;



4.FP 8 双变体
- E4M3:4 bit 指数 + 3 bit 尾数,精度高,推理权重常用;
- E5M2:5 bit 指数 + 2 bit 尾数,动态范围更大,超大数值场景适配;
- Hopper 架构原生硬件支持 FP 8 混合乘加。

5.INT 8 整数类型
- 不包含指数和尾数,通过整数编码表示数值;
- 通常通过 scale / zero point 将 FP32 映射到 INT8;

6.拓展高精度 FP 128
- 金融、科学计算等高敏感精度场景使用。
深度学习量化完整技术体系
量化基础定义
- 量化 = 将高精度 FP 32 数值映射至低位宽整数/浮点区间;
- 正向映射为量化,反向恢复数值为反量化,核心权衡显存占用与任务精度损失。
量化四大分类维度
1. 线性 vs 非线性量化
- 线性:通过 scale / zero 线性缩放,计算简单、推理开销低;
- 非线性:对数、聚类等映射,数值分布拟合更好,但运行时计算开销更高。
2. 对称 vs 非对称量化
- 对称:无零点偏移,正负数值区间完全对称,计算逻辑极简;
- 非对称:增加 zero 偏移适配非均匀数据分布,精度上限更高。
3. 静态 vs 动态量化
- 静态:离线标定固定 scale,推理无额外计算开销;
- 动态:每批数据实时计算缩放因子,精度更优但增加运行时计算。
4. 量化粒度(逐层/通道/分组)
- 张量级:整张张量共用一组 scale,实现最简单;
- 通道级:每个通道独立缩放,精度提升;
- 组级(MXFP4 等方案):多个连续元素共享一个缩放因子,兼顾显存与精度。

INT 8 量化完整执行流程
- 推理前:FP 32 权重经标定计算 scale / zero,量化存储为 INT 8;
- 推理前向:根据硬件和算子实现,可采用 INT8 输入直接进行整数计算,或者在计算前转换为低精度浮点执行;
- 进阶优化:全程 INT 8 向量化访存与计算,减少 HBM 读写次数;
- 性能收益:同等硬件下吞吐相比 FP 16 可提升近一倍,代价为有限精度损耗。


量化取舍原则
- 量化依靠牺牲部分数值精度换取显存、算力收益;
- 文本、图像生成任务可适度采用,金融、仿真等强精度场景不建议无限制低位宽量化。

性能优化——PTX
PTX 核心价值
介于 C++ 与硬件指令之间的虚拟汇编层:
- 提供上层代码未暴露的细粒度硬件操作;
- 规避编译器保守优化,手动调度 MMA、异步拷贝等专用指令;
- 跨 GPU 架构向前兼容,提高代码迁移灵活性。
典型 PTX 落地项目案例
- DeepSeek MoE 通信库:自定义分组门控 PTX 汇编优化通信开销;
- DeepGEMM FP 8 矩阵乘:利用 PTX 中的矩阵加载/存储指令优化 Tensor Core 数据搬运;
- Flash LLM:Load/Store 专用内存指令优化长上下文访存。






Runtime vs Driver API
- Runtime API:高层封装,开发效率高,通用场景首选;
- Driver API:底层管控,支持动态加载、硬件精细调优,算子极致优化场景使用。
微指令调优
循环优化指令
#pragma unroll 循环展开:消除循环分支开销、提升 ILP 指令并行;
注意过度展开会造成代码膨胀、寄存器溢出,需控制展开倍数。
断言与约束修饰符
__builtin_assume(cond):向编译器提供条件约束信息,帮助优化代码路径;__align__:指定数据对齐要求,提高满足硬件访存对齐条件的可能性。
缓存控制编译选项
- CA(默认):完整启用 L1 缓存;
- CG:绕过 L1,全部资源分配给共享内存;
- CS:流式内存标记,缓存数据使用后立即丢弃,减少缓存污染。

浮点与计算编译开关
--use_fast_math:近似三角函数,提速小幅损失精度;--ftz=true:刷新非规格浮点数为 0,简化计算;
3 寄存器上限限制:防止寄存器溢出至本地内存拖慢速度。
Warp 线程发散问题与优化
发散成因
同一 Warp(32 线程)内执行不同分支路径,GPU 串行执行所有分支,硬件利用率暴跌,NCU 可观测长 Stall 指标。


主流规避方案
- Mask 掩码计算:所有线程完整执行计算,通过掩码控制写入,消除分支跳转;
- 算法重构:拆分条件逻辑,对齐线程执行路径;





指标观测
NCU 查看 average predicate thread 平均激活线程数,数值越低发散越严重。

并行平衡与数据排布调优
ILP 指令级并行
无依赖指令重叠执行,利用访存等待周期同步计算;手写 PTX 可手动调度指令顺序放大 ILP 收益。

TLP 线程级并行
多线程分摊计算负载;ILP 与 TLP 需要平衡,单一维度拉满会占用过多寄存器/共享内存。



AOS / SOA 数据结构选择
- AOS:结构体数组,随机访存友好,批量连续读取效率差;
- SOA:数组结构体,同字段连续排布,向量化加载、矩阵乘场景性能显著优于 AOS。

Block Size 调优
默认 256 非最优,不同算子、硬件架构适配最优 Block 尺寸,需结合寄存器占用、共享内存上限测试。
CUDA 官方库
1. cuDNN
深度神经网络专用库,卷积、归一化、激活高度优化,原生支持 Tensor Core 混合精度、算子融合。
2. cuBLAS
标准线性代数库,向量/矩阵乘全精度实现。
3. CUB
CUDA 高性能并行原语库,提供 Block、Warp、Device 级别的扫描、归约、排序等基础操作。
4. CUTLASS

5.cuSPARSE
稀疏矩阵专用运算库,支持多种稀疏存储格式与分解求解。
CUDA 全系列课程完整复盘

加入训练营
📺完整课程内容,请观看直播或查看课程回放:
InfiniTensor 官网: https://www.infinitensor.com
B站直播: InfiniTensor 官方直播间
视频号直播: InfiniTensor 视频号预约
答疑交流: 训练营官方社群⬇️

关注与交流

