flagos-ai/FlagGems

FlagGems is an operator library for large language models implemented in the Triton Language.

解决的问题

FlagGems 旨在消除 AI 芯片专用软件栈之间的碎片化。它解决了需要为不同 AI 加速器重写或维护独立代码库的问题,使 LLM 训练和推理实现「一次开发,随处运行」的工作流。

工作原理

这是一个使用 Triton 语言实现的高性能、通用的算子库。通过注册到 PyTorch ATen 后端,开发者可以使用熟悉的 PyTorch API,而底层操作则通过 Triton 内核执行。这提供了一种与后端无关的方法,支持超过 10 种不同硬件平台,无需用户更改低级 API。

适用人群

  • 希望在不修改 PyTorch 代码的前提下实现硬件加速的 模型开发者
  • 希望使用比 CUDA 更易读、更友好的语言编写高性能内核的 内核开发者

核心亮点

  • 广泛的硬件支持:支持超过 10 种后端,适用于多种 AI 加速器。
  • PyTorch 兼容性:与 PyTorch API 无缝集成,独立于 torch.compile,支持急切模式(eager mode)。
  • 基于 Triton:利用 Triton 实现与 CUDA 相当的性能,同时具备更好的可读性。
  • 自动代码生成:包含自动逐点算子代码生成,支持任意输入类型和布局。
  • 高效的分发机制:具备快速的函数级运行时内核分发能力。

相关

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