Skip to content

Latest commit

 

History

History
166 lines (131 loc) · 15.3 KB

File metadata and controls

166 lines (131 loc) · 15.3 KB

github+banner-20260130 [中文版|English]

FlagTree 是 FlagOS 的一部分。 FlagOS 是一个面向多元AI芯片的开源、统一系统软件栈,旨在打通模型、系统与芯片层,培育开放协作的生态系统。 它支持 “一次开发,多芯运行” 的工作流,兼容多样化的 AI 加速芯片。 它释放硬件性能潜力,消除各类 AI 芯片专用软件栈之间的碎片化问题,并大幅降低大模型在多种 AI 硬件移植与维护的成本。

FlagTree 是面向多种 AI 芯片的开源、统一编译器。 FlagTree 致力于打造多元 AI 芯片编译器及相关工具平台,发展和壮大 Triton 上下游生态。 项目当前处于初期,目标是兼容现有适配方案,统一代码仓库,快速实现单仓库多后端支持。 对于上游模型用户,提供多后端的统一编译能力; 对于下游芯片厂商,提供 Triton 生态接入范例。

多后端支持

各后端基于不同版本的 Triton 适配,因此位于不同的主干分支。 各主干分支均为保护分支且地位相等,表格中所有后端均搭建了 CI/CD Runner。

主干分支 厂商 后端 Triton 版本 安装
main NVIDIA
AMD
x86_64 cpu
ILUVATAR(天数智芯)
Moore Threads(摩尔线程)
KLX
MetaX(沐曦股份)
HYGON(海光信息)
nvidia
amd
triton-shared
iluvatar
mthreads
xpu
metax
hcu
3.1
3.1
3.1
3.1
3.1
3.0
3.0
3.1
install nvidia
install amd
-
install iluvatar
install mthreads
install xpu
install metax
install hcu
triton_v3.2.x NVIDIA
AMD
Huawei Ascend(华为昇腾)
Cambricon(寒武纪)
nvidia
amd
ascend
cambricon
3.2 install nvidia
install amd
install ascend
-
triton_v3.3.x NVIDIA
AMD
x86_64 cpu
ARM China(安谋科技)
Tsingmicro(清微智能)
Enflame(燧原)
nvidia
amd
triton-shared
aipu
tsingmicro
enflame
3.3 install nvidia
install amd
-
install aipu
install tsingmicro
install enflame
triton_v3.4.x NVIDIA
AMD
Sunrise(曦望芯科)
nvidia
amd
sunrise
3.4 install nvidia
install amd
install sunrise
triton_v3.5.x NVIDIA
AMD
Enflame(燧原)
nvidia
amd
enflame
3.5 install nvidia
install amd
install enflame
triton_v3.6.x NVIDIA
AMD
nvidia
amd
3.6 install nvidia
install amd

FlagTree 的扩展组件当前在部分后端可用:

主干分支 后端 Triton 版本 扩展组件
triton_v3.6.x nvidia 3.6 TLE-Lite
TLE-Struct GPU
TLE-Raw
HINTS
triton_v3.2.x ascend 3.2 TLE-Struct DSA
FLIR
HINTS
triton_v3.3.x tsingmicro 3.3 TLE-Lite
TLE-Struct DSA
FLIR
triton_v3.3.x aipu 3.3 FLIR
HINTS

TLE(Triton Language Extensions)简介

Triton 在算子开发效率方面表现突出,但在多元 AI 芯片适配和更深层性能调优场景下,往往需要对分布式执行、内存访问模式和硬件相关原语提供更显式的控制。TLE 以分层方式扩展 Triton,在保持现有 Triton 工作流兼容性的同时补齐这部分能力。

TLE 的主要优势包括:

  • 从可移植到硬件导向调优的渐进式抽象(Lite / Struct / Raw)。
  • 更好覆盖多设备、架构特化与后端 lowering 场景。
  • 在保留优化空间的同时,降低现有 Triton kernel 的迁移改造成本。

详细设计、API 与示例请参考 TLE WikiTLE-Raw Wiki

新特性

  • 2026/03/13 新增接入 enflame GCU400 后端(对应 Triton 3.5),加入 CI/CD。
  • 2026/01/23 新增接入 sunrise 后端(对应 Triton 3.4),加入 CI/CD。
  • 2026/01/08 添加 HINTSTLETLE-Raw 等新功能 WIKI。
  • 2025/12/24 支持拉取和安装 Wheel
  • 2025/12/08 新增接入 enflame GCU300 后端(对应 Triton 3.3),加入 CI/CD。
  • 2025/11/26 添加 FlagTree 后端特化统一设计文档 FlagTree_Backend_Specialization
  • 2025/10/28 提供离线构建支持(预下载依赖包),改善网络环境受限时的构建体验,使用方法见后文。
  • 2025/09/30 在 GPGPU 上支持编译指导 shared memory。
  • 2025/09/29 SDK 存储迁移至金山云,大幅提升下载稳定性。
  • 2025/09/25 支持编译指导 ascend 的后端编译能力。
  • 2025/09/16 新增接入 hcu 后端(对应 Triton 3.0),加入 CI/CD。
  • 2025/09/09 Fork 并修改 llvm-project,承接 FLIR 的功能。
  • 2025/09/01 新增适配 Paddle 框架,加入 CI/CD。
  • 2025/08/16 新增适配北京超级云计算中心 AI 智算云。
  • 2025/08/04 新增接入 T*** 后端(对应 Triton 3.1)。
  • 2025/08/01 FLIR 支持编译指导 shared memory loading。
  • 2025/07/30 更新 cambricon 后端(对应 Triton 3.2)。
  • 2025/07/25 浪潮团队新增适配 OpenAnolis 龙蜥操作系统。
  • 2025/07/09 FLIR 支持编译指导 Async DMA。
  • 2025/07/08 新增多后端编译统一管理模块。
  • 2025/07/02 FlagGems LibTuner 适配 triton_v3.3.x 版本。
  • 2025/07/02 新增接入 S*** 后端(对应 Triton 3.3)。
  • 2025/06/20 FLIR 开始承接 MLIR 扩展功能。
  • 2025/06/06 新增接入 tsingmicro 后端(对应 Triton 3.3),加入 CI/CD。
  • 2025/06/04 新增接入 ascend 后端(对应 Triton 3.2),加入 CI/CD。
  • 2025/06/03 新增接入 metax 后端(对应 Triton 3.1),加入 CI/CD。
  • 2025/05/22 FlagGems LibEntry 适配 triton_v3.3.x 版本。
  • 2025/05/21 FLIR 开始承接到中间层的转换功能。
  • 2025/04/09 新增接入 aipu 后端(对应 Triton 3.3),提供 torch 标准扩展范例,加入 CI/CD。
  • 2025/03/26 接入安全合规扫描。
  • 2025/03/19 新增接入 xpu 后端(对应 Triton 3.0),加入 CI/CD。
  • 2025/03/19 新增接入 mthreads 后端(对应 Triton 3.1),加入 CI/CD。
  • 2025/03/12 新增接入 iluvatar 后端(对应 Triton 3.1),加入 CI/CD。

环境准备

避免环境匹配问题的最佳实践是使用 多后端支持 表格中推荐的镜像。

从源码安装

安装依赖(注意使用正确的 python3.x 执行):

apt update; apt install zlib1g zlib1g-dev libxml2 libxml2-dev
python3 -m pip install -r python/requirements.txt

通用的构建安装方式(网络畅通环境下推荐使用):

# Set FLAGTREE_BACKEND using the backend name from the table above
export FLAGTREE_BACKEND=${backend_name}  # Do not set it on nvidia/amd/triton-shared
cd python  # Need to enter the python directory for Triton 3.1/3.2/3.3
python3 -m pip install . --no-build-isolation -v  # Install flagtree and uninstall triton
python3 -m pip show flagtree
cd ${ANY_OTHER_PATH}; python3 -c 'import triton; print(triton.__path__)'

免源码安装

如果不希望从源码安装,可以直接拉取安装 whl(支持部分后端)。

# Note: First install PyTorch, then execute the following commands
python3 -m pip uninstall -y triton  # Repeat the cmd until fully uninstalled
RES="--index-url=https://resource.flagos.net/repository/flagos-pypi-hosted/simple"
后端 安装命令(版本号对应 git tag) Triton
版本
libc.so & libstdc++.so
nvidia python3.12 -m pip install flagtree===0.5.0 $RES 3.6 GLIBC_2.39
GLIBCXX_3.4.33
CXXABI_1.3.15
nvidia python3.12 -m pip install flagtree==0.5.0+3.5 $RES 3.5 GLIBC_2.39
GLIBCXX_3.4.33
CXXABI_1.3.15
nvidia python3.12 -m pip install flagtree==0.4.0+3.3 $RES 3.3 GLIBC_2.30
GLIBCXX_3.4.28
CXXABI_1.3.12
nvidia python3.12 -m pip install flagtree==0.5.0+3.1 $RES 3.1 GLIBC_2.39
GLIBCXX_3.4.33
CXXABI_1.3.15
iluvatar python3.10 -m pip install flagtree==0.5.1+iluvatar3.1 $RES 3.1 GLIBC_2.35
GLIBCXX_3.4.30
CXXABI_1.3.13
mthreads python3.10 -m pip install flagtree==0.5.1+mthreads3.1 $RES 3.1 GLIBC_2.35
GLIBCXX_3.4.30
CXXABI_1.3.13
metax python3.12 -m pip install flagtree==0.5.1+metax3.0 $RES 3.0 GLIBC_2.35
GLIBCXX_3.4.30
CXXABI_1.3.13
hcu python3.10 -m pip install flagtree==0.5.1+hcu3.1 $RES 3.1 GLIBC_2.35
GLIBCXX_3.4.30
CXXABI_1.3.13
ascend python3.11 -m pip install flagtree==0.5.0+ascend3.2 $RES 3.2 GLIBC_2.35
GLIBCXX_3.4.30
CXXABI_1.3.13
tsingmicro python3.10 -m pip install flagtree==0.5.0+tsingmicro3.3 $RES 3.3 GLIBC_2.30
GLIBCXX_3.4.28
CXXABI_1.3.12
aipu python3.10 -m pip install flagtree==0.5.0+aipu3.3 $RES 3.3 GLIBC_2.35
GLIBCXX_3.4.30
CXXABI_1.3.13
sunrise python3.10 -m pip install flagtree==0.4.0+sunrise3.4 $RES 3.4 GLIBC_2.39
GLIBCXX_3.4.33
CXXABI_1.3.15
enflame python3.12 -m pip install flagtree==0.5.0+enflame3.5 $RES 3.5 GLIBC_2.39
GLIBCXX_3.4.33
CXXABI_1.3.15

flagtree 历史版本可以在 https://resource.flagos.net/#browse/search/pypi/=assets.attributes.pypi.description%3Dflagtree 查询

关于贡献

欢迎参与 FlagTree 的开发并贡献代码,详情请参考 CONTRIBUTING.md

许可证

FlagTree 使用 MIT license