Lightning-AI/lightning-thunder

PyTorch compiler that accelerates training and inference. Get built-in optimizations for performance, memory, parallelism, and easily write your own.

解决的问题

Thunder 是一个为 PyTorch 设计的源到源编译器,旨在简化深度学习模型在训练和推理方面的优化过程。它通过提供一种透明的方式来应用性能增强,弥合了 "未优化" 的 PyTorch 急速模式与高度优化执行之间的差距,避免了传统编译器的不透明性。

工作原理

Thunder 以三个主要阶段运行:

  1. 获取:解析 Python 字节码,将模型转换为线性 Python 程序(其中间表示)。
  2. 转换:对这一 IR 应用一系列变换,以处理分布式计算、改变数值精度或修改计算图。
  3. 执行:将生成的追踪结果路由到各种执行器,包括融合引擎(如 NVFusertorch.compile)、专用库(cuDNN SDPA、TransformerEngine)、自定义 Triton/CUDA 内核,或标准的 PyTorch 急速操作。

适用人群

适用于需要最大化 PyTorch 模型性能的开发者和研究人员,特别是那些在 NVIDIA 硬件(包括 Blackwell)上处理 LLM 或其他大规模模型的人,以及希望以可检查且可扩展的方式应用量化、混合精度和分布式策略的人。

主要亮点

  • 性能提升:能够使 PyTorch 模型运行速度提升高达 40%。
  • 灵活精度:支持 FP4、FP6、FP8 以及混合精度策略。
  • 分布式扩展:内置对张量并行(TP)、流水线并行(PP)和数据并行(DP)的支持。
  • 可检查的 IR:使用 Python 风格的中间表示,允许用户对操作进行性能分析、映射到内核,并交互式检查程序。
  • 可组合的配方:可将优化打包为配方,便于在不同模型家族之间移植。
  • 支持 CUDAGraphs:包含通过 CUDAGraphs 降低 CPU 开销的插件。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目