FlagGems 是由北京智源人工智能研究院于 2024 年 6 月推出的面向多种 AI 芯片的开源大模型通用算子库。FlagGems 使用 Triton 语言开发,在 Triton 生态开源开放的基础上,为多种 AI 芯片提供开源、统一、高效的算子层生态接入方案。FlagGems 沿着统一的中间语言、统一的算子接口和统一的开源算子库方向进行了深入探索与实践。

2024 年第四季度,FlagGems 仍处于高速迭代升级过程中。算子总数由 2024 年 9 月 6 日(V2.1)的 103 个算子,增加到了 2024 年 12 月 23 日(V2.2)的 135 个算子。算子在 Nvidia GPU 上依然保持整体性能优越的态势,各硬件厂商持续适配跟进,算子实现的覆盖度均在 85% 以上,大部分厂商的适配性能都优于各自自研原生算子库。

四大能力升级

  • 提供大模型算子总数 135 个,是目前提供算子数量最多、覆盖广度最大的 Triton 算子库。

  • 提供多后端支持,目前已有 7 家厂商的不同 AI 芯片接入 FlagGems,为大模型提供更多算力选择。

  • 实现代码生成技术、运行时优化技术,在开发效率和运行性能等重要指标上都优于同类开源项目。

  • 持续优化多种 AI 芯片性能,加速比显著提升,多数超越原生算子。算子在 Nvidia GPU 上整体性能优越,90% 以上的算子性能(Kernel Time)快于 Pytorch CUDA 版本。

算子库新特性列表

  • CI 测试升级,重新定义模式,新增测试用例。

  • Benchmark 框架重构与升级,重新定义模式,新增评测指标,支持多维度选择输入参数、输出格式。

  • PointwiseDynamic 升级,新增支持 zero-sized 张量。

  • 对部分旧版本 Triton 特性的适配性修改。

  • 安装脚本中添加对已安装的不同包名的 Triton 的检查。

  • 新增 LibTuner 的实现代替 AutoTuner,通过在数据库保存 tuned configs 的结果以供调用前预加载,解决在实际模型中耗时高的问题。

  • 算子性能优化,部分算子进行了重写,reduction 类算子进行了重写。

  • 对一些算子的输入增加 corner case 的支持。

  • 多后端支持,多元芯片在算子层完成代码与配置统一。

  • Bug 修改,例如部分数据类型提升为 int64 防止整型溢出。

扫码回复“Triton”

加入Triton中文社区交流群

Logo

欢迎来到由智源人工智能研究院发起的Triton中文社区,这里是一个汇聚了AI开发者、数据科学家、机器学习爱好者以及业界专家的活力平台。我们致力于成为业内领先的Triton技术交流与应用分享的殿堂,为推动人工智能技术的普及与深化应用贡献力量。

更多推荐