TransformerEngine: 一个在 NVIDIA GPU 上使用低精度数值格式加速 Transformer 模型的库
TransformerEngine: 一个在 NVIDIA GPU 上使用低精度数值格式加速 Transformer 模型的库
它解决了什么问题
Transformer Engine (TE) 解决了将 Transformer 模型扩展到数千亿参数时带来的高内存和计算需求。它通过利用低精度数值格式,在不牺牲模型准确性的情况下,减少内存占用,从而实现更快的训练和推理。
工作原理
TE 为 Transformer 架构提供了一系列高度优化的构建块和融合内核 (fused kernels)。它实现了一个自动混合精度 API,允许开发者将低精度格式——例如 8-bit floating point (FP8)、MXFP8 和 NVFP4——无缝集成到他们现有的 PyTorch 或 JAX 工作流中。该库在内部管理低精度训练所需的缩放因子 (scaling factors),从而为用户简化了流程。
适用对象
它专为使用 NVIDIA GPU (Ampere, Ada, Hopper, 和 Blackwell 架构) 构建大规模 Transformer 模型 (包括 LLMs, MoE 架构, 和多模态模型) 的 AI 研究人员和工程师设计。
亮点
- 在 Hopper, Ada, 和 Blackwell GPU 上支持 FP8 精度
- 在 Blackwell GPU 上支持 MXFP8 和 NVFP4 格式
- 为 Transformer 模型优化的构建块和融合内核 (fused kernels)
- 与 PyTorch 和 JAX 等主流框架以及 DeepSpeed, Hugging Face Accelerate, 和 Megatron-LM 等 LLM 库集成
- 在 Ampere 及更新的 GPU 上支持 FP16 和 BF16 的优化
Sources
- undefinedNVIDIA/TransformerEngine