利用NVIDIA Transformer Engine、融合内核、BF16、FP8与GPU基准测试加速Transformer训练
NVIDIA
本教程探讨了NVIDIA Transformer Engine如何通过结合融合GPU内核、BF16计算以及硬件感知的FP8执行来加速Transformer工作负载。内容涵盖安装、GPU检测、模块导览、FP8配方配置、模型训练、基准测试以及自回归生成。
教程首先介绍安装 NVIDIA Transformer Engine 并初始化 PyTorch 环境。它检测 GPU 架构,以确定是否支持 TE 内核和 FP8 张量核心,对不支持的硬件则采用纯 PyTorch 回退方案。随后检查了诸如 te.Linear、te.LayerNorm、te.LayerNormLinear、te.LayerNormMLP 和 te.TransformerLayer 等核心融合组件。配置了采用混合 E4M3/E5M2 格式和 amax 历史的延迟缩放 FP8 配方。使用融合的 te.TransformerLayer 块构建了一个紧凑的 GPT 风格因果语言模型,并实现了一个等效的纯 PyTorch 模型以作比较。模型在确定性的合成算术序列模式上进行训练,并在支持时启用条件 FP8 自动转换。基准测试测量了 BF16 和 FP8 模式下的平均步进延迟和峰值 GPU 内存。检查了 FP8 元数据,包括缩放因子和 amax 历史。最后,贪婪自回归生成验证了模型学会了算术步长,并提出了扩展建议,如更大的模型和备选 FP8 格式。
来源: MarkTechPost —
原文
