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 以三个主要阶段运行:
- 获取:解析 Python 字节码,将模型转换为线性 Python 程序(其中间表示)。
- 转换:对这一 IR 应用一系列变换,以处理分布式计算、改变数值精度或修改计算图。
- 执行:将生成的追踪结果路由到各种执行器,包括融合引擎(如
NVFuser或torch.compile)、专用库(cuDNN SDPA、TransformerEngine)、自定义 Triton/CUDA 内核,或标准的 PyTorch 急速操作。
适用人群
适用于需要最大化 PyTorch 模型性能的开发者和研究人员,特别是那些在 NVIDIA 硬件(包括 Blackwell)上处理 LLM 或其他大规模模型的人,以及希望以可检查且可扩展的方式应用量化、混合精度和分布式策略的人。
主要亮点
- 性能提升:能够使 PyTorch 模型运行速度提升高达 40%。
- 灵活精度:支持 FP4、FP6、FP8 以及混合精度策略。
- 分布式扩展:内置对张量并行(TP)、流水线并行(PP)和数据并行(DP)的支持。
- 可检查的 IR:使用 Python 风格的中间表示,允许用户对操作进行性能分析、映射到内核,并交互式检查程序。
- 可组合的配方:可将优化打包为配方,便于在不同模型家族之间移植。
- 支持 CUDAGraphs:包含通过 CUDAGraphs 降低 CPU 开销的插件。
相关
- 项目
- 项目
- 项目
- 项目
- 项目