# 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
# For Triton 3.1/3.2/3.3 (branch: main, triton_v3.2.x, triton_v3.3.x)
cd python
python3 -m pip install . --no-build-isolation -v # Install flagtree and uninstall triton
# For Triton 3.4/3.5/3.6 (branch: triton_v3.4.x, triton_v3.5.x, triton_v3.6.x)
python3 -m pip install . --no-build-isolation -v # Install flagtree and uninstall triton
安装 flagtree 后,可通过下列命令查看:
python3 -m pip show flagtree
cd ${ANY_DIR_OTHER_THAN_FLAGTREE_PYTHON}; 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"
FlagTree 是 FlagOS 的一部分。 FlagOS 是一个面向多元AI芯片的开源、统一系统软件栈,旨在打通模型、系统与芯片层,培育开放协作的生态系统。 它支持 “一次开发,多芯运行” 的工作流,兼容多样化的 AI 加速芯片。 它释放硬件性能潜力,消除各类 AI 芯片专用软件栈之间的碎片化问题,并大幅降低大模型在多种 AI 硬件移植与维护的成本。
FlagTree 是面向多种 AI 芯片的开源、统一编译器。 FlagTree 致力于打造多元 AI 芯片编译器及相关工具平台,发展和壮大 Triton 上下游生态。 项目当前处于初期,目标是兼容现有适配方案,统一代码仓库,快速实现单仓库多后端支持。 对于上游模型用户,提供多后端的统一编译能力; 对于下游芯片厂商,提供 Triton 生态接入范例。
多后端支持
各后端基于不同版本的 Triton 适配,因此位于不同的主干分支。 各主干分支均为保护分支且地位相等,表格中所有后端均搭建了 CI/CD Runner。
AMD
Enflame(燧原)
HYGON(海光信息)
Moore Threads(摩尔线程)
DAMO ACADEMY(阿里达摩院)
Huixi(辉羲智能)
amd
enflame
hcu
mthreads
damoacademy
rpu
install amd
install enflame
install hcu
install mthreads
-
install rpu
AMD
Enflame(燧原)
Huawei Ascend(华为昇腾)
amd
enflame
ascend
install amd
install enflame
install ascend
AMD
Sunrise(曦望芯科)
amd
sunrise
install amd
install sunrise
AMD
x86_64 cpu
ARM China(安谋科技)
Tsingmicro(清微智能)
Enflame(燧原)
ARM64 cpu
amd
triton-shared
aipu
tsingmicro
enflame
cpu
install amd
-
install aipu
install tsingmicro
install enflame
install cpu
AMD
Huawei Ascend(华为昇腾)
Moore Threads(摩尔线程)
Cambricon(寒武纪)
amd
ascend
mthreads
cambricon
install amd
install ascend
install mthreads
-
AMD
x86_64 cpu
ILUVATAR(天数智芯)
Moore Threads(摩尔线程)
KLX
MetaX(沐曦股份)
HYGON(海光信息)
amd
triton-shared
iluvatar
mthreads
xpu
metax
hcu
3.1
3.1
3.1
3.1
3.0
3.0
3.1
install amd
-
install iluvatar
install mthreads
install xpu
install metax
install hcu
FlagTree 的扩展组件当前在部分后端可用:
enflame
TLE-Struct GPU
TLE-Raw
HINTS
TLE-Struct GPU
TLE-Struct DSA
FLIR
HINTS
FLIR
HINTS
TLE(Triton Language Extensions)简介
Triton 在算子开发效率方面表现突出,但在多元 AI 芯片适配和更深层性能调优场景下,往往需要对分布式执行、内存访问模式和硬件相关原语提供更显式的控制。TLE 以分层方式扩展 Triton,在保持现有 Triton 工作流兼容性的同时补齐这部分能力。
TLE 的主要优势包括:
Lite/Struct/Raw)。详细设计、API 与示例请参考 TLE Wiki 和 TLE-Raw Wiki。
性能改进
无需修改任何 Triton 算子代码,FlagTree 可在实际模型中的某些形状上获得性能增益。 下面以 Qwen 模型中调用的一些形状下的 mm 算子为例,展示 FlagTree 在不同芯片上的性能增益。
新特性
环境准备
避免环境匹配问题的最佳实践是使用上文 多后端支持 表格中推荐的镜像。
从源码安装
安装依赖(注意使用正确的 python3.x 执行):
通用的构建安装方式(网络畅通环境下推荐使用):
安装
flagtree后,可通过下列命令查看:免源码安装
如果不希望从源码安装,可以直接拉取安装 whl(支持部分后端)。
版本
GLIBCXX_3.4.33
CXXABI_1.3.15
GLIBCXX_3.4.33
CXXABI_1.3.15
GLIBCXX_3.4.28
CXXABI_1.3.12
GLIBCXX_3.4.33
CXXABI_1.3.15
GLIBCXX_3.4.33
CXXABI_1.3.15
GLIBCXX_3.4.30
CXXABI_1.3.13
GLIBCXX_3.4.30
CXXABI_1.3.13
GLIBCXX_3.4.30
CXXABI_1.3.13
GLIBCXX_3.4.30
CXXABI_1.3.13
GLIBCXX_3.4.28
CXXABI_1.3.12
GLIBCXX_3.4.30
CXXABI_1.3.13
GLIBCXX_3.4.30
CXXABI_1.3.13
GLIBCXX_3.4.30
CXXABI_1.3.13
GLIBCXX_3.4.30
CXXABI_1.3.13
GLIBCXX_3.4.30
CXXABI_1.3.13
GLIBCXX_3.4.28
CXXABI_1.3.12
GLIBCXX_3.4.30
CXXABI_1.3.13
GLIBCXX_3.4.33
CXXABI_1.3.15
GLIBCXX_3.4.33
CXXABI_1.3.15
GLIBCXX_3.4.33
CXXABI_1.3.15
GLIBCXX_3.4.30
CXXABI_1.3.13
flagtree 历史版本可以在 https://resource.flagos.net/#browse/search/pypi/=assets.attributes.pypi.description%3Dflagtree 查询
关于贡献
欢迎参与 FlagTree 的开发并贡献代码,详情请参考 CONTRIBUTING.md。
许可证
FlagTree 使用 MIT license。