安装 FlagTree#
方式一:从预构建的 Docker 镜像安装#
有关在不同后端上从预构建 Docker 镜像安装 FlagTree 的信息,请参见以下列表:
方式二:从源码安装#
克隆 FlagTree 并进入 FlagTree 目录。
# 从远程 Git 仓库克隆 FlagTree 项目到本地 git clone https://github.com/flagos-ai/flagtree # 将当前工作目录切换到克隆的 FlagTree 项目目录 cd flagtree
安装 Ubuntu 和 Python 依赖。
# 安装 Ubuntu 依赖 apt install zlib1g zlib1g-dev libxml2 libxml2-dev nlohmann-json3-dev # ubuntu # 安装 Python 依赖 # 依赖项包含在 flagtree/python 目录下的 requirements.txt 中。 cd python; python3 -m pip install -r requirements.txt
构建并安装 FlagTree 以下是用于构建和安装 FlagTree 的常用命令。然而,不同的后端有不同的要求。有关更多信息,请参见"为不同后端安装 FlagTree"部分。
# 使用上表中的后端名称设置 FLAGTREE_BACKEND export FLAGTREE_BACKEND=${backend_name} # 在 nvidia/amd/triton-shared 上不要设置此项 # 对于 Triton 3.1/3.2/3.3(分支:main、triton_v3.2.x、triton_v3.3.x) cd python python3 -m pip install . --no-build-isolation -v # 安装 flagtree 并卸载 triton # 对于 Triton 3.4/3.5/3.6(分支:triton_v3.4.x、triton_v3.5.x、triton_v3.6.x) python3 -m pip install . --no-build-isolation -v # 安装 flagtree 并卸载 triton
验证 FlagTree 安装
python3 -m pip show flagtree cd ${ANY_DIR_OTHER_THAN_FLAGTREE_PYTHON}; python3 -c 'import triton; print(triton.__path__)'
有关在不同后端上从源码安装 FlagTree 的信息,请参见以下列表:
方式三:安装 wheel 包#
如果您不想从源码构建,可以直接拉取并安装 whl(部分后端支持)。
安装 PyTorch
卸载 Triton
python3 -m pip uninstall -y triton # 重复此命令直到完全卸载 RES="--index-url=https://resource.flagos.net/repository/flagos-pypi-hosted/simple"
安装 FlagTree 和 Triton
后端
安装命令
(版本对应 git 标签)Triton
版本libc.so &
libstdc++.sonvidia
python3.12 -m pip install flagtree===0.6.0rc1 $RES
3.6
GLIBC_2.39
GLIBCXX_3.4.33
CXXABI_1.3.15nvidia
python3.12 -m pip install flagtree===0.5.1 $RES
3.6
GLIBC_2.39
GLIBCXX_3.4.33
CXXABI_1.3.15nvidia
python3.12 -m pip install flagtree===0.5.0+3.5 $RES
3.5
GLIBC_2.39
GLIBCXX_3.4.33
CXXABI_1.3.15nvidia
python3.12 -m pip install flagtree===0.4.0+3.3 $RES
3.3
GLIBC_2.30
GLIBCXX_3.4.28
CXXABI_1.3.12nvidia
python3.12 -m pip install flagtree===0.5.1+3.1 $RES
3.1
GLIBC_2.39
GLIBCXX_3.4.33
CXXABI_1.3.15iluvatar
python3.12 -m pip install flagtree===0.5.1+iluvatar3.1 $RES
3.1
GLIBC_2.39
GLIBCXX_3.4.33
CXXABI_1.3.15iluvatar
python3.10 -m pip install flagtree===0.5.1+iluvatar3.1 $RES
3.1
GLIBC_2.35
GLIBCXX_3.4.30
CXXABI_1.3.13mthreads
python3.10 -m pip install flagtree===0.6.0rc1+mthreads3.6 $RES
3.6
GLIBC_2.35
GLIBCXX_3.4.30
CXXABI_1.3.13mthreads
python3.10 -m pip install flagtree===0.5.1+mthreads3.1 $RES
3.1
GLIBC_2.35
GLIBCXX_3.4.30
CXXABI_1.3.13mthreads
python3.10 -m pip install flagtree===0.5.1+mthreads3.2 $RES
3.2
GLIBC_2.35
GLIBCXX_3.4.30
CXXABI_1.3.13xpu
python3.10 -m pip install flagtree===0.5.1+xpu3.0 $RES
3.0
GLIBC_2.31
GLIBCXX_3.4.28
CXXABI_1.3.12metax
python3.12 -m pip install flagtree===0.5.1+metax3.0 $RES
3.0
GLIBC_2.35
GLIBCXX_3.4.30
CXXABI_1.3.13hcu
python3.10 -m pip install flagtree===0.6.0rc1+hcu3.6 $RES
3.6
GLIBC_2.35
GLIBCXX_3.4.30
CXXABI_1.3.13hcu
python3.10 -m pip install flagtree===0.5.1+hcu3.1 $RES
3.1
GLIBC_2.35
GLIBCXX_3.4.30
CXXABI_1.3.13hcu
python3.10 -m pip install flagtree===0.5.1+hcu3.6 $RES
3.6
GLIBC_2.35
GLIBCXX_3.4.30
CXXABI_1.3.13ascend
python3.11 -m pip install flagtree===0.6.0rc1+ascend3.2 $RES
3.2
GLIBC_2.35
GLIBCXX_3.4.30
CXXABI_1.3.13ascend
python3.11 -m pip install flagtree===0.5.0+ascend3.2 $RES
3.2
GLIBC_2.35
GLIBCXX_3.4.30
CXXABI_1.3.13tsingmicro
python3.10 -m pip install flagtree===0.5.0+tsingmicro3.3 $RES
3.3
GLIBC_2.30
GLIBCXX_3.4.28
CXXABI_1.3.12aipu
python3.10 -m pip install flagtree===0.5.0+aipu3.3 $RES
3.3
GLIBC_2.35
GLIBCXX_3.4.30
CXXABI_1.3.13sunrise
python3.10 -m pip install flagtree===0.4.0+sunrise3.4 $RES
3.4
GLIBC_2.39
GLIBCXX_3.4.33
CXXABI_1.3.15enflame
python3.10 -m pip install flagtree===0.4.0+enflame3.3 $RES
3.3
GLIBC_2.35
GLIBCXX_3.4.30
CXXABI_1.3.13enflame
python3.12 -m pip install flagtree===0.5.0+enflame3.5 $RES
3.5
GLIBC_2.39
GLIBCXX_3.4.33
CXXABI_1.3.15enflame
python3.12 -m pip install flagtree===0.5.0+enflame3.6 $RES
3.6
GLIBC_2.39
GLIBCXX_3.4.33
CXXABI_1.3.15
FlagTree 的历史版本可在 https://resource.flagos.net/#browse/search/pypi/=assets.attributes.pypi.description%3Dflagtree 找到。
运行测试#
安装完成后,您通常可以运行以下测试。有关特定后端支持的测试,请参考对应分支中的 .github/workflow/${backend_name}-build-and-test.yml。
# nvidia/amd
cd python/test/unit
python3 -m pytest -s
# 其他后端
cd third_party/${backend_name}/python/test/unit
python3 -m pytest -s
常见问题#
问:安装后运行程序报错:找不到 GLIBC 或 GLIBCXX 版本
答:检查您环境中 libc.so.6 和 libstdc++.so.6.0.30 支持的 GLIBC / GLIBCXX 版本:
strings /lib/x86_64-linux-gnu/libc.so.6 |grep GLIBC
strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 | grep GLIBCXX
如果所需的 GLIBC / GLIBCXX 版本已受支持,您也可以尝试:
export LD_PRELOAD="/lib/x86_64-linux-gnu/libc.so.6" # 如果找不到 GLIBC
export LD_PRELOAD="/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30" # 如果找不到 GLIBCXX
export LD_PRELOAD="/lib/x86_64-linux-gnu/libc.so.6 \
/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30" # 如果 GLIBC 和 GLIBCXX 都找不到