# 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
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
AMD
Huawei Ascend(华为昇腾)
Moore Threads(摩尔线程)
Cambricon(寒武纪)
amd
ascend
mthreads
cambricon
install amd
install ascend
install mthreads
-
AMD
x86_64 cpu
ARM China(安谋科技)
Tsingmicro(清微智能)
Enflame(燧原)
amd
triton-shared
aipu
tsingmicro
enflame
install amd
-
install aipu
install tsingmicro
install enflame
AMD
Sunrise(曦望芯科)
amd
sunrise
install amd
install sunrise
AMD
Enflame(燧原)
amd
enflame
install amd
install enflame
AMD
Enflame(燧原)
HYGON(海光信息)
Moore Threads(摩尔线程)
amd
enflame
hcu
mthreads
install amd
install enflame
install hcu
install mthreads
FlagTree 的扩展组件当前在部分后端可用:
enflame
TLE-Struct GPU
TLE-Raw
HINTS
FLIR
HINTS
TLE-Struct DSA
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.28
CXXABI_1.3.12
GLIBCXX_3.4.30
CXXABI_1.3.13
GLIBCXX_3.4.33
CXXABI_1.3.15
GLIBCXX_3.4.30
CXXABI_1.3.13
GLIBCXX_3.4.33
CXXABI_1.3.15
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。