diff --git a/README.md b/README.md index 066e64f6c..b9b7f5546 100644 --- a/README.md +++ b/README.md @@ -22,8 +22,9 @@ python3 -m pip install . --no-build-isolation -v Automatic dependency library downloads may be limited by network conditions. You can manually download to the cache directory ~/.flagtree (modifiable via the FLAGTREE_CACHE_DIR environment variable). No need to manually set LLVM environment variables such as LLVM_BUILD_DIR. Complete build commands for each backend: + +[iluvatar](/third_party/iluvatar/) ```shell -# iluvatar # Recommended: Use Ubuntu 20.04 mkdir -p ~/.flagtree/iluvatar; cd ~/.flagtree/iluvatar wget https://github.com/FlagTree/flagtree/releases/download/v0.1.0-build-deps/iluvatar-llvm18-x86_64.tar.gz @@ -32,8 +33,8 @@ cd ${YOUR_CODE_DIR}/flagtree/python export FLAGTREE_BACKEND=iluvatar python3 -m pip install . --no-build-isolation -v ``` +[xpu (klx)](/third_party/xpu/) ```shell -# xpu (klx) # Recommended: Use the Docker image (22GB) https://su.bcebos.com/klx-sdk-release-public/xpytorch/docker/ubuntu2004_v030/ubuntu_2004_x86_64_v30.tar # Contact kunlunxin-support@baidu.com for support mkdir -p ~/.flagtree/xpu; cd ~/.flagtree/xpu @@ -43,8 +44,8 @@ cd ${YOUR_CODE_DIR}/flagtree/python export FLAGTREE_BACKEND=xpu python3 -m pip install . --no-build-isolation -v ``` +[mthreads](https://github.com/FlagTree/flagtree/tree/main/third_party/mthreads/) ```shell -# mthreads # Recommended: Use the Dockerfile flagtree/dockerfiles/Dockerfile-ubuntu22.04-python3.10-mthreads mkdir -p ~/.flagtree/mthreads; cd ~/.flagtree/mthreads wget https://github.com/FlagTree/flagtree/releases/download/v0.1.0-build-deps/mthreads-llvm19-glibc2.34-glibcxx3.4.30-x64.tar.gz @@ -52,6 +53,44 @@ cd ${YOUR_CODE_DIR}/flagtree/python export FLAGTREE_BACKEND=mthreads python3 -m pip install . --no-build-isolation -v ``` +[aipu (arm npu)](https://github.com/FlagTree/flagtree/tree/triton_v3.3.x/third_party/aipu/) +```shell +# Recommended: Use Ubuntu 20.04 +mkdir -p ~/.flagtree/aipu; cd ~/.flagtree/aipu +wget https://oaitriton.blob.core.windows.net/public/llvm-builds/llvm-a66376b0-ubuntu-x64.tar.gz +cd ${YOUR_CODE_DIR}/flagtree/ +git checkout -b triton_v3.3.x origin/triton_v3.3.x +export FLAGTREE_BACKEND=aipu +python3 -m pip install . --no-build-isolation -v +``` +[tsingmicro](https://github.com/FlagTree/flagtree/tree/triton_v3.3.x/third_party/tsingmicro/) +```shell +# Recommended: Use Ubuntu 20.04 +mkdir -p ~/.flagtree/tsingmicro; cd ~/.flagtree/tsingmicro +wget https://github.com/FlagTree/flagtree/releases/download/v0.2.0-build-deps/tsingmicro-llvm21-glibc2.35-glibcxx3.4.30-x64.tar.gz +cd ${YOUR_CODE_DIR}/flagtree/ +git checkout -b triton_v3.3.x origin/triton_v3.3.x +export FLAGTREE_BACKEND=tsingmicro +python3 -m pip install . --no-build-isolation -v +``` +[ascend](https://github.com/FlagTree/flagtree/tree/triton_v3.2.x/third_party/ascend/) +```shell +# Recommended: Use the Dockerfile flagtree/dockerfiles/Dockerfile-ubuntu20.04-python3.9-ascend +# After registering an account at https://www.hiascend.com/developer/download/community/result?module=cann, +# download the cann-toolkit and cann-kernels for the corresponding platform. +# Here we use the A3 processor with AArch64 architecture as an example to demonstrate how to install. +chmod +x Ascend-cann-toolkit_8.2.RC1.alpha002_linux-aarch64.run +./Ascend-cann-toolkit_8.2.RC1.alpha002_linux-aarch64.run --install +chmod +x Atlas-A3-cann-kernels_8.1.RC1_linux-aarch64.run +./Atlas-A3-cann-kernels_8.1.RC1_linux-aarch64.run --install +# build +mkdir -p ~/.flagtree/ascend; cd ~/.flagtree/ascend +wget https://oaitriton.blob.core.windows.net/public/llvm-builds/llvm-b5cc222d-ubuntu-arm64.tar.gz +cd ${YOUR_CODE_DIR}/flagtree/python +git checkout -b triton_v3.2.x origin/triton_v3.2.x +export FLAGTREE_BACKEND=ascend +python3 -m pip install . --no-build-isolation -v +``` To build with default backends (nvidia, amd, triton_shared): ```shell diff --git a/README_cn.md b/README_cn.md index aa8c10403..d74e0745a 100644 --- a/README_cn.md +++ b/README_cn.md @@ -22,8 +22,9 @@ python3 -m pip install . --no-build-isolation -v 自动下载依赖库的速度可能受限于网络环境,编译前可自行下载至缓存目录 ~/.flagtree(可通过环境变量 FLAGTREE_CACHE_DIR 修改),无需自行设置 LLVM_BUILD_DIR 等环境变量。 各后端完整编译命令如下: + +[iluvatar](/third_party/iluvatar/) ```shell -# iluvatar # 推荐使用镜像 Ubuntu 20.04 mkdir -p ~/.flagtree/iluvatar; cd ~/.flagtree/iluvatar wget https://github.com/FlagTree/flagtree/releases/download/v0.1.0-build-deps/iluvatar-llvm18-x86_64.tar.gz @@ -32,8 +33,8 @@ cd ${YOUR_CODE_DIR}/flagtree/python export FLAGTREE_BACKEND=iluvatar python3 -m pip install . --no-build-isolation -v ``` +[xpu (klx)](/third_party/xpu/) ```shell -# xpu (klx) # 推荐使用镜像(22GB)https://su.bcebos.com/klx-sdk-release-public/xpytorch/docker/ubuntu2004_v030/ubuntu_2004_x86_64_v30.tar # 联系 kunlunxin-support@baidu.com 可获取进一步支持 mkdir -p ~/.flagtree/xpu; cd ~/.flagtree/xpu @@ -43,8 +44,8 @@ cd ${YOUR_CODE_DIR}/flagtree/python export FLAGTREE_BACKEND=xpu python3 -m pip install . --no-build-isolation -v ``` +[mthreads](https://github.com/FlagTree/flagtree/tree/main/third_party/mthreads/) ```shell -# mthreads # 推荐使用镜像 flagtree/dockerfiles/Dockerfile-ubuntu22.04-python3.10-mthreads mkdir -p ~/.flagtree/mthreads; cd ~/.flagtree/mthreads wget https://github.com/FlagTree/flagtree/releases/download/v0.1.0-build-deps/mthreads-llvm19-glibc2.34-glibcxx3.4.30-x64.tar.gz @@ -52,6 +53,42 @@ cd ${YOUR_CODE_DIR}/flagtree/python export FLAGTREE_BACKEND=mthreads python3 -m pip install . --no-build-isolation -v ``` +[aipu (arm npu)](https://github.com/FlagTree/flagtree/tree/triton_v3.3.x/third_party/aipu/) +```shell +# 推荐使用镜像 Ubuntu 20.04 +mkdir -p ~/.flagtree/aipu; cd ~/.flagtree/aipu +wget https://oaitriton.blob.core.windows.net/public/llvm-builds/llvm-a66376b0-ubuntu-x64.tar.gz +cd ${YOUR_CODE_DIR}/flagtree/ +git checkout -b triton_v3.3.x origin/triton_v3.3.x +export FLAGTREE_BACKEND=aipu +python3 -m pip install . --no-build-isolation -v +``` +[tsingmicro](https://github.com/FlagTree/flagtree/tree/triton_v3.3.x/third_party/tsingmicro/) +```shell +# 推荐使用镜像 Ubuntu 20.04 +mkdir -p ~/.flagtree/tsingmicro; cd ~/.flagtree/tsingmicro +wget https://github.com/FlagTree/flagtree/releases/download/v0.2.0-build-deps/tsingmicro-llvm21-glibc2.35-glibcxx3.4.30-x64.tar.gz +cd ${YOUR_CODE_DIR}/flagtree/ +git checkout -b triton_v3.3.x origin/triton_v3.3.x +export FLAGTREE_BACKEND=tsingmicro +python3 -m pip install . --no-build-isolation -v +``` +[ascend](https://github.com/FlagTree/flagtree/tree/triton_v3.2.x/third_party/ascend/) +```shell +# 推荐使用镜像 flagtree/dockerfiles/Dockerfile-ubuntu20.04-python3.9-ascend +# 在 https://www.hiascend.com/developer/download/community/result?module=cann +# 注册账号后下载对应平台的 cann-toolkit、cann-kernels,这里以 AArch64 架构的 A3 处理器为例展示如何安装 +chmod +x Ascend-cann-toolkit_8.2.RC1.alpha002_linux-aarch64.run +./Ascend-cann-toolkit_8.2.RC1.alpha002_linux-aarch64.run --install +chmod +x Atlas-A3-cann-kernels_8.1.RC1_linux-aarch64.run +./Atlas-A3-cann-kernels_8.1.RC1_linux-aarch64.run --install +# 编译安装 +mkdir -p ~/.flagtree/ascend; cd ~/.flagtree/ascend +wget https://oaitriton.blob.core.windows.net/public/llvm-builds/llvm-b5cc222d-ubuntu-arm64.tar.gz +cd ${YOUR_CODE_DIR}/flagtree/python +export FLAGTREE_BACKEND=ascend +python3 -m pip install . --no-build-isolation -v +``` 使用默认的编译命令,可以编译安装 nvidia、amd、triton_shared 后端: ```shell diff --git a/python/setup_helper.py b/python/setup_helper.py index 51780605a..262b18e5a 100644 --- a/python/setup_helper.py +++ b/python/setup_helper.py @@ -36,7 +36,6 @@ class FlagTreeBackend: } set_llvm_env = lambda path: set_env({ - 'LLVM_BUILD_DIR': path, 'LLVM_INCLUDE_DIRS': Path(path) / "include", 'LLVM_LIBRARY_DIR': Path(path) / "lib", 'LLVM_SYSPATH': path, @@ -330,7 +329,7 @@ def check_env(env_val): file="iluvatar-llvm18-x86_64", condition=("iluvatar" == flagtree_backend), url="https://github.com/FlagTree/flagtree/releases/download/v0.1.0-build-deps/iluvatar-llvm18-x86_64.tar.gz", - pre_hock=lambda: check_env('LLVM_BUILD_DIR'), + pre_hock=lambda: check_env('LLVM_SYSPATH'), post_hock=set_llvm_env, ) @@ -339,7 +338,7 @@ def check_env(env_val): file="XTDK-llvm19-ubuntu2004_x86_64", condition=("xpu" == flagtree_backend), url="https://github.com/FlagTree/flagtree/releases/download/v0.1.0-build-deps/XTDK-llvm19-ubuntu2004_x86_64.tar.gz", - pre_hock=lambda: check_env('LLVM_BUILD_DIR'), + pre_hock=lambda: check_env('LLVM_SYSPATH'), post_hock=set_llvm_env, ) @@ -350,10 +349,10 @@ def check_env(env_val): cache.store( files=("clang", "xpu-xxd", "xpu3-crt.xpu", "xpu-kernel.t", "ld.lld", "llvm-readelf", "llvm-objdump", "llvm-objcopy"), condition=("xpu" == flagtree_backend), - copy_src_path=f"{os.environ.get('LLVM_BUILD_DIR','')}/bin", copy_dst_path="third_party/xpu/backend/xpu3/bin") + copy_src_path=f"{os.environ.get('LLVM_SYSPATH','')}/bin", copy_dst_path="third_party/xpu/backend/xpu3/bin") cache.store(files=("libclang_rt.builtins-xpu3.a", "libclang_rt.builtins-xpu3s.a"), - condition=("xpu" == flagtree_backend), copy_src_path=f"{os.environ.get('LLVM_BUILD_DIR','')}/lib/linux", + condition=("xpu" == flagtree_backend), copy_src_path=f"{os.environ.get('LLVM_SYSPATH','')}/lib/linux", copy_dst_path="third_party/xpu/backend/xpu3/lib/linux") cache.store(files=("include", "so"), condition=("xpu" == flagtree_backend), @@ -365,6 +364,6 @@ def check_env(env_val): condition=("mthreads" == flagtree_backend), url= "https://github.com/FlagTree/flagtree/releases/download/v0.1.0-build-deps/mthreads-llvm19-glibc2.34-glibcxx3.4.30-x64.tar.gz", - pre_hock=lambda: check_env('LLVM_BUILD_DIR'), + pre_hock=lambda: check_env('LLVM_SYSPATH'), post_hock=set_llvm_env, )