Skip to content

Commit 248073a

Browse files
authored
[DOC] Update build command in readme (#33)
1 parent f003b29 commit 248073a

4 files changed

Lines changed: 38 additions & 25 deletions

File tree

README.md

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
## FlagTree
44

5-
FlagTree is an open source, unified compiler for multiple AI chips project dedicated to developing a diverse ecosystem of AI chip compilers and related tooling platforms, thereby fostering and strengthening the upstream and downstream Triton ecosystem. Currently in its initial phase, the project aims to maintain compatibility with existing adaptation solutions while unifying the codebase to rapidly implement single-version multi-backend support.
5+
FlagTree is an open source, unified compiler for multiple AI chips project dedicated to developing a diverse ecosystem of AI chip compilers and related tooling platforms, thereby fostering and strengthening the upstream and downstream Triton ecosystem. Currently in its initial phase, the project aims to maintain compatibility with existing adaptation solutions while unifying the codebase to rapidly implement single-repository multi-backend support. For upstream model users, it provides unified compilation capabilities across multiple backends; for downstream chip manufacturers, it offers examples of Triton ecosystem integration.
66

77
## Install from source
88
Installation dependencies (ensure you use the correct python3.x version):
@@ -28,7 +28,9 @@ Complete build commands for each backend:
2828
# Recommended: Use Ubuntu 20.04
2929
mkdir -p ~/.flagtree/iluvatar; cd ~/.flagtree/iluvatar
3030
wget https://github.com/FlagTree/flagtree/releases/download/v0.1.0-build-deps/iluvatar-llvm18-x86_64.tar.gz
31+
tar zxvf iluvatar-llvm18-x86_64.tar.gz
3132
wget https://github.com/FlagTree/flagtree/releases/download/v0.1.0-build-deps/iluvatarTritonPlugin-cpython3.10-glibc2.30-glibcxx3.4.28-cxxabi1.3.12-ubuntu-x86_64.tar.gz
33+
tar zxvf iluvatarTritonPlugin-cpython3.10-glibc2.30-glibcxx3.4.28-cxxabi1.3.12-ubuntu-x86_64.tar.gz
3234
cd ${YOUR_CODE_DIR}/flagtree/python
3335
export FLAGTREE_BACKEND=iluvatar
3436
python3 -m pip install . --no-build-isolation -v
@@ -39,7 +41,9 @@ python3 -m pip install . --no-build-isolation -v
3941
# Contact kunlunxin-support@baidu.com for support
4042
mkdir -p ~/.flagtree/xpu; cd ~/.flagtree/xpu
4143
wget https://github.com/FlagTree/flagtree/releases/download/v0.1.0-build-deps/XTDK-llvm19-ubuntu2004_x86_64.tar.gz
44+
tar zxvf XTDK-llvm19-ubuntu2004_x86_64.tar.gz
4245
wget https://github.com/FlagTree/flagtree/releases/download/v0.1.0-build-deps/xre-Linux-x86_64.tar.gz
46+
tar zxvf xre-Linux-x86_64.tar.gz
4347
cd ${YOUR_CODE_DIR}/flagtree/python
4448
export FLAGTREE_BACKEND=xpu
4549
python3 -m pip install . --no-build-isolation -v
@@ -49,6 +53,7 @@ python3 -m pip install . --no-build-isolation -v
4953
# Recommended: Use the Dockerfile flagtree/dockerfiles/Dockerfile-ubuntu22.04-python3.10-mthreads
5054
mkdir -p ~/.flagtree/mthreads; cd ~/.flagtree/mthreads
5155
wget https://github.com/FlagTree/flagtree/releases/download/v0.1.0-build-deps/mthreads-llvm19-glibc2.34-glibcxx3.4.30-x64.tar.gz
56+
tar zxvf mthreads-llvm19-glibc2.34-glibcxx3.4.30-x64.tar.gz
5257
cd ${YOUR_CODE_DIR}/flagtree/python
5358
export FLAGTREE_BACKEND=mthreads
5459
python3 -m pip install . --no-build-isolation -v
@@ -58,6 +63,7 @@ python3 -m pip install . --no-build-isolation -v
5863
# Recommended: Use Ubuntu 20.04
5964
mkdir -p ~/.flagtree/aipu; cd ~/.flagtree/aipu
6065
wget https://oaitriton.blob.core.windows.net/public/llvm-builds/llvm-a66376b0-ubuntu-x64.tar.gz
66+
tar zxvf llvm-a66376b0-ubuntu-x64.tar.gz
6167
cd ${YOUR_CODE_DIR}/flagtree/
6268
git checkout -b triton_v3.3.x origin/triton_v3.3.x
6369
export FLAGTREE_BACKEND=aipu
@@ -68,6 +74,7 @@ python3 -m pip install . --no-build-isolation -v
6874
# Recommended: Use Ubuntu 20.04
6975
mkdir -p ~/.flagtree/tsingmicro; cd ~/.flagtree/tsingmicro
7076
wget https://github.com/FlagTree/flagtree/releases/download/v0.2.0-build-deps/tsingmicro-llvm21-glibc2.30-glibcxx3.4.28-x64.tar.gz
77+
tar zxvf tsingmicro-llvm21-glibc2.30-glibcxx3.4.28-x64.tar.gz
7178
cd ${YOUR_CODE_DIR}/flagtree/
7279
git checkout -b triton_v3.3.x origin/triton_v3.3.x
7380
export FLAGTREE_BACKEND=tsingmicro
@@ -86,28 +93,28 @@ chmod +x Atlas-A3-cann-kernels_8.1.RC1_linux-aarch64.run
8693
# build
8794
mkdir -p ~/.flagtree/ascend; cd ~/.flagtree/ascend
8895
wget https://oaitriton.blob.core.windows.net/public/llvm-builds/llvm-b5cc222d-ubuntu-arm64.tar.gz
96+
tar zxvf llvm-b5cc222d-ubuntu-arm64.tar.gz
8997
cd ${YOUR_CODE_DIR}/flagtree/python
9098
git checkout -b triton_v3.2.x origin/triton_v3.2.x
9199
export FLAGTREE_BACKEND=ascend
92100
python3 -m pip install . --no-build-isolation -v
93101
```
94102

95-
To build with default backends (nvidia, amd, triton_shared):
103+
To build with default backends nvidia, amd, triton_shared (cpu):
96104
```shell
97105
# manually download LLVM
98106
cd ${YOUR_LLVM_DOWNLOAD_DIR}
99107
wget https://oaitriton.blob.core.windows.net/public/llvm-builds/llvm-10dc3a8e-ubuntu-x64.tar.gz
100-
tar -zxvf llvm-10dc3a8e-ubuntu-x64.tar.gz
108+
tar zxvf llvm-10dc3a8e-ubuntu-x64.tar.gz
101109
# build
102110
cd ${YOUR_CODE_DIR}/flagtree/python
103-
export LLVM_BUILD_DIR=${YOUR_LLVM_DOWNLOAD_DIR}/llvm-10dc3a8e-ubuntu-x64
104-
export LLVM_INCLUDE_DIRS=$LLVM_BUILD_DIR/include
105-
export LLVM_LIBRARY_DIR=$LLVM_BUILD_DIR/lib
106-
export LLVM_SYSPATH=$LLVM_BUILD_DIR
111+
export LLVM_SYSPATH=${YOUR_LLVM_DOWNLOAD_DIR}/llvm-10dc3a8e-ubuntu-x64
112+
export LLVM_INCLUDE_DIRS=$LLVM_SYSPATH/include
113+
export LLVM_LIBRARY_DIR=$LLVM_SYSPATH/lib
107114
unset FLAGTREE_BACKEND
108115
python3 -m pip install . --no-build-isolation -v
109116
# If you need to build other backends afterward, you should clear LLVM-related environment variables
110-
unset LLVM_BUILD_DIR LLVM_INCLUDE_DIRS LLVM_LIBRARY_DIR LLVM_SYSPATH
117+
unset LLVM_SYSPATH LLVM_INCLUDE_DIRS LLVM_LIBRARY_DIR
111118
```
112119

113120
## Running tests

README_cn.md

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
## FlagTree
44

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

77
## 从源代码安装
88
安装依赖(注意使用正确的 python3.x 执行):
@@ -20,15 +20,17 @@ python3 -m pip install . --no-build-isolation -v
2020

2121
## 构建技巧
2222

23-
自动下载依赖库的速度可能受限于网络环境,编译前可自行下载至缓存目录 ~/.flagtree(可通过环境变量 FLAGTREE_CACHE_DIR 修改),无需自行设置 LLVM_BUILD_DIR 等环境变量。
24-
各后端完整编译命令如下:
23+
自动下载依赖库的速度可能受限于网络环境,编译前可自行下载至缓存目录 ~/.flagtree(可通过环境变量 FLAGTREE_CACHE_DIR 修改),无需自行设置 LLVM_BUILD_DIR 等环境变量。 <br>
24+
各后端完整编译命令如下: <br>
2525

2626
[iluvatar](/third_party/iluvatar/)
2727
```shell
2828
# 推荐使用镜像 Ubuntu 20.04
2929
mkdir -p ~/.flagtree/iluvatar; cd ~/.flagtree/iluvatar
3030
wget https://github.com/FlagTree/flagtree/releases/download/v0.1.0-build-deps/iluvatar-llvm18-x86_64.tar.gz
31+
tar zxvf iluvatar-llvm18-x86_64.tar.gz
3132
wget https://github.com/FlagTree/flagtree/releases/download/v0.1.0-build-deps/iluvatarTritonPlugin-cpython3.10-glibc2.30-glibcxx3.4.28-cxxabi1.3.12-ubuntu-x86_64.tar.gz
33+
tar zxvf iluvatarTritonPlugin-cpython3.10-glibc2.30-glibcxx3.4.28-cxxabi1.3.12-ubuntu-x86_64.tar.gz
3234
cd ${YOUR_CODE_DIR}/flagtree/python
3335
export FLAGTREE_BACKEND=iluvatar
3436
python3 -m pip install . --no-build-isolation -v
@@ -39,7 +41,9 @@ python3 -m pip install . --no-build-isolation -v
3941
# 联系 kunlunxin-support@baidu.com 可获取进一步支持
4042
mkdir -p ~/.flagtree/xpu; cd ~/.flagtree/xpu
4143
wget https://github.com/FlagTree/flagtree/releases/download/v0.1.0-build-deps/XTDK-llvm19-ubuntu2004_x86_64.tar.gz
44+
tar zxvf XTDK-llvm19-ubuntu2004_x86_64.tar.gz
4245
wget https://github.com/FlagTree/flagtree/releases/download/v0.1.0-build-deps/xre-Linux-x86_64.tar.gz
46+
tar zxvf xre-Linux-x86_64.tar.gz
4347
cd ${YOUR_CODE_DIR}/flagtree/python
4448
export FLAGTREE_BACKEND=xpu
4549
python3 -m pip install . --no-build-isolation -v
@@ -49,6 +53,7 @@ python3 -m pip install . --no-build-isolation -v
4953
# 推荐使用镜像 flagtree/dockerfiles/Dockerfile-ubuntu22.04-python3.10-mthreads
5054
mkdir -p ~/.flagtree/mthreads; cd ~/.flagtree/mthreads
5155
wget https://github.com/FlagTree/flagtree/releases/download/v0.1.0-build-deps/mthreads-llvm19-glibc2.34-glibcxx3.4.30-x64.tar.gz
56+
tar zxvf mthreads-llvm19-glibc2.34-glibcxx3.4.30-x64.tar.gz
5257
cd ${YOUR_CODE_DIR}/flagtree/python
5358
export FLAGTREE_BACKEND=mthreads
5459
python3 -m pip install . --no-build-isolation -v
@@ -58,6 +63,7 @@ python3 -m pip install . --no-build-isolation -v
5863
# 推荐使用镜像 Ubuntu 20.04
5964
mkdir -p ~/.flagtree/aipu; cd ~/.flagtree/aipu
6065
wget https://oaitriton.blob.core.windows.net/public/llvm-builds/llvm-a66376b0-ubuntu-x64.tar.gz
66+
tar zxvf llvm-a66376b0-ubuntu-x64.tar.gz
6167
cd ${YOUR_CODE_DIR}/flagtree/
6268
git checkout -b triton_v3.3.x origin/triton_v3.3.x
6369
export FLAGTREE_BACKEND=aipu
@@ -68,6 +74,7 @@ python3 -m pip install . --no-build-isolation -v
6874
# 推荐使用镜像 Ubuntu 20.04
6975
mkdir -p ~/.flagtree/tsingmicro; cd ~/.flagtree/tsingmicro
7076
wget https://github.com/FlagTree/flagtree/releases/download/v0.2.0-build-deps/tsingmicro-llvm21-glibc2.30-glibcxx3.4.28-x64.tar.gz
77+
tar zxvf tsingmicro-llvm21-glibc2.30-glibcxx3.4.28-x64.tar.gz
7178
cd ${YOUR_CODE_DIR}/flagtree/
7279
git checkout -b triton_v3.3.x origin/triton_v3.3.x
7380
export FLAGTREE_BACKEND=tsingmicro
@@ -77,35 +84,37 @@ python3 -m pip install . --no-build-isolation -v
7784
```shell
7885
# 推荐使用镜像 flagtree/dockerfiles/Dockerfile-ubuntu20.04-python3.9-ascend
7986
# 在 https://www.hiascend.com/developer/download/community/result?module=cann
80-
# 注册账号后下载对应平台的 cann-toolkit、cann-kernels,这里以 AArch64 架构的 A3 处理器为例展示如何安装
87+
# 注册账号后下载对应平台的 cann-toolkit、cann-kernels
88+
# 这里以 AArch64 架构的 A3 处理器为例展示如何安装
8189
chmod +x Ascend-cann-toolkit_8.2.RC1.alpha002_linux-aarch64.run
8290
./Ascend-cann-toolkit_8.2.RC1.alpha002_linux-aarch64.run --install
8391
chmod +x Atlas-A3-cann-kernels_8.1.RC1_linux-aarch64.run
8492
./Atlas-A3-cann-kernels_8.1.RC1_linux-aarch64.run --install
8593
# 编译安装
8694
mkdir -p ~/.flagtree/ascend; cd ~/.flagtree/ascend
8795
wget https://oaitriton.blob.core.windows.net/public/llvm-builds/llvm-b5cc222d-ubuntu-arm64.tar.gz
96+
tar zxvf llvm-b5cc222d-ubuntu-arm64.tar.gz
8897
cd ${YOUR_CODE_DIR}/flagtree/python
98+
git checkout -b triton_v3.2.x origin/triton_v3.2.x
8999
export FLAGTREE_BACKEND=ascend
90100
python3 -m pip install . --no-build-isolation -v
91101
```
92102

93-
使用默认的编译命令,可以编译安装 nvidia、amd、triton_shared 后端:
103+
使用默认的编译命令,可以编译安装 nvidia、amd、triton_shared (cpu) 后端:
94104
```shell
95105
# 自行下载 llvm
96106
cd ${YOUR_LLVM_DOWNLOAD_DIR}
97107
wget https://oaitriton.blob.core.windows.net/public/llvm-builds/llvm-10dc3a8e-ubuntu-x64.tar.gz
98-
tar -zxvf llvm-10dc3a8e-ubuntu-x64.tar.gz
108+
tar zxvf llvm-10dc3a8e-ubuntu-x64.tar.gz
99109
# 编译安装
100110
cd ${YOUR_CODE_DIR}/flagtree/python
101-
export LLVM_BUILD_DIR=${YOUR_LLVM_DOWNLOAD_DIR}/llvm-10dc3a8e-ubuntu-x64
102-
export LLVM_INCLUDE_DIRS=$LLVM_BUILD_DIR/include
103-
export LLVM_LIBRARY_DIR=$LLVM_BUILD_DIR/lib
104-
export LLVM_SYSPATH=$LLVM_BUILD_DIR
111+
export LLVM_SYSPATH=${YOUR_LLVM_DOWNLOAD_DIR}/llvm-10dc3a8e-ubuntu-x64
112+
export LLVM_INCLUDE_DIRS=$LLVM_SYSPATH/include
113+
export LLVM_LIBRARY_DIR=$LLVM_SYSPATH/lib
105114
unset FLAGTREE_BACKEND
106115
python3 -m pip install . --no-build-isolation -v
107116
# 如果接下来需要编译安装其他后端,应清空 LLVM 相关环境变量
108-
unset LLVM_BUILD_DIR LLVM_INCLUDE_DIRS LLVM_LIBRARY_DIR LLVM_SYSPATH
117+
unset LLVM_SYSPATH LLVM_INCLUDE_DIRS LLVM_LIBRARY_DIR
109118
```
110119

111120
## 运行测试

python/setup_tools/setup_helper.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -431,7 +431,7 @@ def check_env(env_val):
431431

432432
# ascend
433433
cache.store(
434-
file="ascend-llvm-b5cc222d-ubuntu-arm64",
434+
file="llvm-b5cc222d-ubuntu-arm64",
435435
condition=("ascend" == flagtree_backend),
436436
url="https://oaitriton.blob.core.windows.net/public/llvm-builds/llvm-b5cc222d-ubuntu-arm64.tar.gz",
437437
pre_hock=lambda: check_env('LLVM_SYSPATH'),
@@ -440,7 +440,7 @@ def check_env(env_val):
440440

441441
# aipu
442442
cache.store(
443-
file="aipu-llvm-a66376b0-ubuntu-x64",
443+
file="llvm-a66376b0-ubuntu-x64",
444444
condition=("aipu" == flagtree_backend),
445445
url="https://oaitriton.blob.core.windows.net/public/llvm-builds/llvm-a66376b0-ubuntu-x64.tar.gz",
446446
pre_hock=lambda: check_env('LLVM_SYSPATH'),

python/setup_tools/utils/__init__.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,7 @@ class FlagTreeBackend:
1717
tag="380b87122c88af131530903a702d5318ec59bb33"),
1818
FlagTreeBackend(name="cambricon", url="https://github.com/Cambricon/triton-linalg.git",
1919
tag="00f51c2e48a943922f86f03d58e29f514def646d"),
20-
FlagTreeBackend(
21-
name="ascend",
22-
url="https://gitee.com/ascend/triton-ascend.git",
23-
),
20+
FlagTreeBackend(name="ascend", url="https://gitee.com/ascend/triton-ascend.git"),
2421
)
2522

2623

0 commit comments

Comments
 (0)