FasterTransformer 是由 NVIDIA 测试并维护的 Transformer 推理优化项目,主要面向自然语言处理中的编码器和解码器组件提供高度优化的推理实现。项目源码基于 C++,底层依赖 CUDA、cuBLAS、cuBLASLt,能够在 Volta、Turing 和 Ampere GPU 上自动利用 Tensor Core 加速 FP16 精度的数据与权重计算。
用途方面,FasterTransformer 专注于 Transformer 模型的推理加速。编码器和解码器是 NLP 中的两个重要组件,Transformer 层已成为二者的主流架构,FasterTransformer 即为这两类组件实现了高度优化的 Transformer 层。
主要能力包括:提供 TensorFlow、PyTorch 和 Triton 后端中至少一种 API,用户可将 FasterTransformer 直接集成到这些框架中,官方还提供了示例代码演示用法和性能表现;支持 BERT、GPT 等模型,并覆盖 FP16、INT8、bfloat16、FP8(实验性)等多种数据类型;支持多节点多 GPU 推理、张量并行、流水线并行、流式生成、beam search、sampling、MoE、软提示、前缀提示等多种推理特性。所有模型支持均在 C++ 层面实现。
使用方式方面,用户可通过仓库提供的示例代码和对应框架的 API 进行集成。每个模型的详细指南存放在 docs/ 目录下的 xxx_guide.md 文件中(xxx 为模型名),编码器与 BERT 的说明合并放在 bert_guide.md 中。常见问题见 docs/QAList.md。仓库还提供若干环境变量用于调试与测试:FT_LOG_LEVEL 控制调试日志级别;FT_NVTX 设置为 ON 时可插入 nvtx 标记辅助性能分析;FT_DEBUG_LEVEL 设为 DEBUG 时会在每个 kernel 后执行 cudaDeviceSynchronize(),便于定位错误点,但会显著影响性能,仅建议调试时使用。
适用场景方面,该项目适用于需要在 NVIDIA GPU 上对 Transformer 模型进行高效推理的开发者,涵盖机器翻译、文本生成等任务。性能数据基于 8xA100-80GBs 和 T4 等硬件配置测试。
限制方面,官方明确指出 FasterTransformer 开发已迁移至 TensorRT-LLM,原仓库不再有后续开发,鼓励开发者使用 TensorRT-LLM 获取 LLM 推理的最新改进。此外,某些特性存在硬件限制,例如自定义 all reduce kernel 仅支持 DGX-A100 上张量并行大小为 8,且仅支持使用 cudaMallocAsync 的 CUDA。其他更具体的限制条件建议参考官方文档。