Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 19 additions & 29 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,17 +34,19 @@ Currently in its initial phase, the project aims to maintain compatibility with
For upstream model users, it provides unified compilation capabilities across multiple backends;
for downstream chip manufacturers, it offers examples of Triton ecosystem integration.

## Multi-backend support

Each backend is based on different versions of Triton, and therefore resides in different protected branches.
All these protected branches have equal status. CI/CD runners are provisioned for every backend listed in the table.

|Branch|Vendor|Backend|Triton<br>version|Build<br>from source|Source-free<br>Installation|
|:-----|:-----|:------|:----------------|:-------------------|:--------------------------|
|[main](https://github.com/flagos-ai/flagtree/tree/main)|NVIDIA<br>AMD<br>x86_64 cpu<br>ILUVATAR(天数智芯)<br>Moore Threads(摩尔线程)<br>KLX<br>MetaX(沐曦股份)<br>HYGON(海光信息)|[nvidia](/third_party/nvidia/)<br>[amd](/third_party/amd/)<br>[triton-shared](https://github.com/microsoft/triton-shared)<br>[iluvatar](/third_party/iluvatar/)<br>[mthreads](/third_party/mthreads/)<br>[xpu](/third_party/xpu/)<br>[metax](/third_party/metax/)<br>[hcu](third_party/hcu/)|3.1<br>3.1<br>3.1<br>3.1<br>3.1<br>3.0<br>3.1<br>3.0|[nvidia](/documents/build.md#-nvidia--amd-nvidia--amd)<br>[amd](/documents/build.md#-nvidia--amd-nvidia--amd)<br>-<br>[iluvatar](/documents/build.md#-iluvatar天数智芯iluvatar)<br>[mthreads](/documents/build_cn.md#-moore-threads摩尔线程mthreads)<br>[xpu](/documents/build.md#-klx-xpu)<br>-<br>[hcu](/documents/build.md#-hygon海光信息hcu)|[Installation](/README.md#source-free-installation)|
|[triton_v3.2.x](https://github.com/flagos-ai/flagtree/tree/triton_v3.2.x)|NVIDIA<br>AMD<br>Huawei Ascend(华为昇腾)<br>Cambricon(寒武纪)|[nvidia](https://github.com/flagos-ai/FlagTree/tree/triton_v3.2.x/third_party/nvidia/)<br>[amd](https://github.com/flagos-ai/FlagTree/tree/triton_v3.2.x/third_party/amd/)<br>[ascend](https://github.com/flagos-ai/FlagTree/blob/triton_v3.2.x/third_party/ascend/)<br>[cambricon](https://github.com/flagos-ai/FlagTree/tree/triton_v3.2.x/third_party/cambricon/)|3.2|[nvidia](/documents/build.md#-nvidia--amd-nvidia--amd)<br>[amd](/documents/build.md#-nvidia--amd-nvidia--amd)<br>[ascend](/documents/build.md#-huawei-ascend华为昇腾ascend)<br>-|[Installation](/README.md#source-free-installation)|
|[triton_v3.3.x](https://github.com/flagos-ai/flagtree/tree/triton_v3.3.x)|NVIDIA<br>AMD<br>x86_64 cpu<br>ARM China(安谋科技)<br>Tsingmicro(清微智能)<br>Enflame(燧原)|[nvidia](https://github.com/flagos-ai/FlagTree/tree/triton_v3.3.x/third_party/nvidia/)<br>[amd](https://github.com/flagos-ai/FlagTree/tree/triton_v3.3.x/third_party/amd/)<br>[triton-shared](https://github.com/microsoft/triton-shared)<br>[aipu](https://github.com/flagos-ai/FlagTree/tree/triton_v3.3.x/third_party/aipu/)<br>[tsingmicro](https://github.com/flagos-ai/FlagTree/tree/triton_v3.3.x/third_party/tsingmicro/)<br>[enflame](https://github.com/flagos-ai/FlagTree/tree/triton_v3.3.x/third_party/enflame/)|3.3|[nvidia](/documents/build.md#-nvidia--amd-nvidia--amd)<br>[amd](/documents/build.md#-nvidia--amd-nvidia--amd)<br>-<br>[aipu](/documents/build.md#-arm-china安谋科技aipu)<br>[tsingmicro](/documents/build.md#-tsingmicro清微智能tsingmicro)<br>[enflame](/documents/build.md#-enflame燧原enflametriton-33)|[Installation](/README.md#source-free-installation)|
|[triton_v3.4.x](https://github.com/flagos-ai/flagtree/tree/triton_v3.4.x)|NVIDIA<br>AMD<br>Sunrise(曦望芯科)|[nvidia](https://github.com/flagos-ai/FlagTree/tree/triton_v3.4.x/third_party/nvidia/)<br>[amd](https://github.com/flagos-ai/FlagTree/tree/triton_v3.4.x/third_party/amd/)<br>[sunrise](https://github.com/flagos-ai/FlagTree/tree/triton_v3.4.x/third_party/sunrise/)|3.4|[nvidia](/documents/build.md#-nvidia--amd-nvidia--amd)<br>[amd](/documents/build.md#-nvidia--amd-nvidia--amd)<br>[sunrise](/documents/build.md#-sunrise曦望芯科sunrise)|[Installation](/README.md#source-free-installation)|
|[triton_v3.5.x](https://github.com/flagos-ai/flagtree/tree/triton_v3.5.x)|NVIDIA<br>AMD<br>Enflame(燧原)|[nvidia](https://github.com/flagos-ai/FlagTree/tree/triton_v3.5.x/third_party/nvidia/)<br>[amd](https://github.com/flagos-ai/FlagTree/tree/triton_v3.5.x/third_party/amd/)<br>[enflame](https://github.com/flagos-ai/FlagTree/tree/triton_v3.5.x/third_party/enflame/)|3.5|[nvidia](/documents/build.md#-nvidia--amd-nvidia--amd)<br>[amd](/documents/build.md#-nvidia--amd-nvidia--amd)<br>[enflame](/documents/build.md#-enflame燧原enflametriton-35)|[Installation](/README.md#source-free-installation)|
|[triton_v3.6.x](https://github.com/flagos-ai/flagtree/tree/triton_v3.6.x)|NVIDIA<br>AMD|[nvidia](https://github.com/flagos-ai/FlagTree/tree/triton_v3.6.x/third_party/nvidia/)<br>[amd](https://github.com/flagos-ai/FlagTree/tree/triton_v3.6.x/third_party/amd/)|3.6|[nvidia](/documents/build.md#-nvidia--amd-nvidia--amd)<br>[amd](/documents/build.md#-nvidia--amd-nvidia--amd)|[Installation](/README.md#source-free-installation)|
|Branch|Vendor|Backend|Triton<br>version|Installation|
|:-----|:-----|:------|:----------------|:-----------|
|[main](https://github.com/flagos-ai/flagtree/tree/main)|NVIDIA<br>AMD<br>x86_64 cpu<br>ILUVATAR(天数智芯)<br>Moore Threads(摩尔线程)<br>KLX<br>MetaX(沐曦股份)<br>HYGON(海光信息)|[nvidia](/third_party/nvidia/)<br>[amd](/third_party/amd/)<br>[triton-shared](https://github.com/microsoft/triton-shared)<br>[iluvatar](/third_party/iluvatar/)<br>[mthreads](/third_party/mthreads/)<br>[xpu](/third_party/xpu/)<br>[metax](/third_party/metax/)<br>[hcu](third_party/hcu/)|3.1<br>3.1<br>3.1<br>3.1<br>3.1<br>3.0<br>3.1<br>3.0|[install nvidia](/documents/install.md)<br>[install amd](/documents/install.md)<br>-<br>[install iluvatar](/documents/install_iluvatar.md)<br>[install mthreads](/documents/install_mthreads.md)<br>[install xpu](/documents/install_xpu.md)<br>[install metax](/documents/install_metax.md)<br>[install hcu](/documents/install_hcu.md)|
|[triton_v3.2.x](https://github.com/flagos-ai/flagtree/tree/triton_v3.2.x)|NVIDIA<br>AMD<br>Huawei Ascend(华为昇腾)<br>Cambricon(寒武纪)|[nvidia](https://github.com/flagos-ai/FlagTree/tree/triton_v3.2.x/third_party/nvidia/)<br>[amd](https://github.com/flagos-ai/FlagTree/tree/triton_v3.2.x/third_party/amd/)<br>[ascend](https://github.com/flagos-ai/FlagTree/blob/triton_v3.2.x/third_party/ascend/)<br>[cambricon](https://github.com/flagos-ai/FlagTree/tree/triton_v3.2.x/third_party/cambricon/)|3.2|[install nvidia](/documents/install.md)<br>[install amd](/documents/install.md)<br>[install ascend](/documents/install_ascend.md)<br>-|
|[triton_v3.3.x](https://github.com/flagos-ai/flagtree/tree/triton_v3.3.x)|NVIDIA<br>AMD<br>x86_64 cpu<br>ARM China(安谋科技)<br>Tsingmicro(清微智能)<br>Enflame(燧原)|[nvidia](https://github.com/flagos-ai/FlagTree/tree/triton_v3.3.x/third_party/nvidia/)<br>[amd](https://github.com/flagos-ai/FlagTree/tree/triton_v3.3.x/third_party/amd/)<br>[triton-shared](https://github.com/microsoft/triton-shared)<br>[aipu](https://github.com/flagos-ai/FlagTree/tree/triton_v3.3.x/third_party/aipu/)<br>[tsingmicro](https://github.com/flagos-ai/FlagTree/tree/triton_v3.3.x/third_party/tsingmicro/)<br>[enflame](https://github.com/flagos-ai/FlagTree/tree/triton_v3.3.x/third_party/enflame/)|3.3|[install nvidia](/documents/install.md)<br>[install amd](/documents/install.md)<br>-<br>[install aipu](/documents/install_aipu.md)<br>[install tsingmicro](/documents/install_tsingmicro.md)<br>[install enflame](/documents/install_enflame.md)|
|[triton_v3.4.x](https://github.com/flagos-ai/flagtree/tree/triton_v3.4.x)|NVIDIA<br>AMD<br>Sunrise(曦望芯科)|[nvidia](https://github.com/flagos-ai/FlagTree/tree/triton_v3.4.x/third_party/nvidia/)<br>[amd](https://github.com/flagos-ai/FlagTree/tree/triton_v3.4.x/third_party/amd/)<br>[sunrise](https://github.com/flagos-ai/FlagTree/tree/triton_v3.4.x/third_party/sunrise/)|3.4|[install nvidia](/documents/install.md)<br>[install amd](/documents/install.md)<br>[install sunrise](/documents/install_sunrise.md)|
|[triton_v3.5.x](https://github.com/flagos-ai/flagtree/tree/triton_v3.5.x)|NVIDIA<br>AMD<br>Enflame(燧原)|[nvidia](https://github.com/flagos-ai/FlagTree/tree/triton_v3.5.x/third_party/nvidia/)<br>[amd](https://github.com/flagos-ai/FlagTree/tree/triton_v3.5.x/third_party/amd/)<br>[enflame](https://github.com/flagos-ai/FlagTree/tree/triton_v3.5.x/third_party/enflame/)|3.5|[install nvidia](/documents/install.md)<br>[install amd](/documents/install.md)<br>[install enflame](/documents/install_enflame.md)|
|[triton_v3.6.x](https://github.com/flagos-ai/flagtree/tree/triton_v3.6.x)|NVIDIA<br>AMD|[nvidia](https://github.com/flagos-ai/FlagTree/tree/triton_v3.6.x/third_party/nvidia/)<br>[amd](https://github.com/flagos-ai/FlagTree/tree/triton_v3.6.x/third_party/amd/)|3.6|[install nvidia](/documents/install.md)<br>[install amd](/documents/install.md)|

FlagTree’s extension components are currently available on some backends:

Expand Down Expand Up @@ -103,16 +105,21 @@ For detailed design, APIs, and examples, please refer to the [TLE Wiki](https://
* 2025/03/19 Added [mthreads](https://github.com/flagos-ai/FlagTree/tree/main/third_party/mthreads/) backend integration (based on Triton 3.1), and added CI/CD.
* 2025/03/12 Added [iluvatar](https://github.com/flagos-ai/FlagTree/tree/main/third_party/iluvatar/) backend integration (based on Triton 3.1), and added CI/CD.

# Environment setup

The best practice to avoid environment compatibility issues is to use the image recommended in [Multi-backend support](#multi-backend-support) table.

## Install from source

Installation dependencies (Confirm the correct python3.x version is being used):

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

General building and installation procedure (Recommended for environments with good network connectivity):

```shell
# 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
Expand All @@ -122,13 +129,9 @@ python3 -m pip show flagtree
cd ${ANY_OTHER_PATH}; python3 -c 'import triton; print(triton.__path__)'
```

- [Tips for building](/documents/build.md#tips-for-building)
- [Offline build support: pre-downloading dependency packages](/documents/build.md#offline-build-support)

## Source-free Installation

If you do not wish to build from source, you can directly pull and install whl (partial backend support).
The best practice to avoid environment compatibility issues is to use the image recommended in [Tips for building](/documents/build.md#tips-for-building).

```shell
# Note: First install PyTorch, then execute the following commands
Expand All @@ -142,9 +145,9 @@ RES="--index-url=https://resource.flagos.net/repository/flagos-pypi-hosted/simpl
|nvidia |python3 -m pip install flagtree==0.5.0+3.5 $RES |3.5|3.12|GLIBC_2.39<br>GLIBCXX_3.4.33<br>CXXABI_1.3.15|
|nvidia |python3 -m pip install flagtree==0.4.0+3.3 $RES |3.3|3.10<br>3.11<br>3.12|GLIBC_2.30<br>GLIBCXX_3.4.28<br>CXXABI_1.3.12|
|nvidia |python3 -m pip install flagtree==0.5.0+3.1 $RES |3.1|3.12|GLIBC_2.39<br>GLIBCXX_3.4.33<br>CXXABI_1.3.15|
|iluvatar |python3 -m pip install flagtree==0.5.0+iluvatar3.1 $RES |3.1|3.10|GLIBC_2.35<br>GLIBCXX_3.4.30<br>CXXABI_1.3.13|
|mthreads |python3 -m pip install flagtree==0.5.0+mthreads3.1 $RES |3.1|3.10|GLIBC_2.35<br>GLIBCXX_3.4.30<br>CXXABI_1.3.13|
|metax |python3 -m pip install flagtree==0.5.0+metax3.1 $RES |3.1|3.10|GLIBC_2.39<br>GLIBCXX_3.4.33<br>CXXABI_1.3.15|
|iluvatar |python3 -m pip install flagtree==0.5.1+iluvatar3.1 $RES |3.1|3.10|GLIBC_2.35<br>GLIBCXX_3.4.30<br>CXXABI_1.3.13|
|mthreads |python3 -m pip install flagtree==0.5.1+mthreads3.1 $RES |3.1|3.10|GLIBC_2.35<br>GLIBCXX_3.4.30<br>CXXABI_1.3.13|
|metax |python3 -m pip install flagtree==0.5.1+metax3.1 $RES |3.1|3.10|GLIBC_2.39<br>GLIBCXX_3.4.33<br>CXXABI_1.3.15|
|hcu |python3 -m pip install flagtree==0.5.0+hcu3.0 $RES |3.0|3.10|GLIBC_2.35<br>GLIBCXX_3.4.30<br>CXXABI_1.3.13|
|ascend |python3 -m pip install flagtree==0.5.0+ascend3.2 $RES |3.2|3.11|GLIBC_2.35<br>GLIBCXX_3.4.30<br>CXXABI_1.3.13|
|tsingmicro|python3 -m pip install flagtree==0.5.0+tsingmicro3.3 $RES |3.3|3.10|GLIBC_2.30<br>GLIBCXX_3.4.28<br>CXXABI_1.3.12|
Expand All @@ -155,19 +158,6 @@ RES="--index-url=https://resource.flagos.net/repository/flagos-pypi-hosted/simpl

Historical versions of flagtree can be found at https://resource.flagos.net/#browse/search/pypi/=assets.attributes.pypi.description%3Dflagtree

## Running tests

After installation, you can generally run the following tests. For specific backend support tests, please refer to `.github/workflow/${backend_name}-build-and-test.yml` in the corresponding branch.
```shell
cd ${YOUR_CODE_DIR}/FlagTree
# nvidia/amd
cd python/test/unit
python3 -m pytest -s
# other backends
cd third_party/${backend_name}/python/test/unit
python3 -m pytest -s
```

## Contributing

Contributions to FlagTree development are welcome. Please refer to [CONTRIBUTING.md](/CONTRIBUTING_cn.md) for details.
Expand Down
Loading
Loading