User manual for ppu - flagos-ai/FlagTree GitHub Wiki
💫 T-Head(平头哥)ppu3.6
- Based on Triton 3.6, x64
- Available for 810E, 890P
1.1 Use the image (810E|890P)
Tips: You can use apt install aria2; aria2c -c ... instead of wget ... to download large files with resume support.
IMAGE=harbor.baai.ac.cn/flagtree/flagtree-ppu-py312-torch2.10.0-sdk2.1.0-cu130-ubuntu24.04:202607-3.6-vllm0.24.0
# Plan A: docker pull (42.8GB)
docker pull ${IMAGE}
# Plan B: docker load (18GB)
wget https://baai-cp-web.ks3-cn-beijing.ksyuncs.com/trans/flagtree-ppu-py312-torch2.10.0-sdk2.1.0-cu130-ubuntu24.04.202607-3.6-vllm0.24.0.tar.gz
docker load -i flagtree-ppu-py312-torch2.10.0-sdk2.1.0-cu130-ubuntu24.04.202607-3.6-vllm0.24.0.tar.gzCONTAINER=flagtree-dev-xxx
devices=()
for i in {0..15}; do
devices+=(--device=/dev/alixpu_ppu$i)
done
docker run -dit \
--network=host \
--device=/dev/alixpu \
--device=/dev/alixpu_ctl \
"${devices[@]}" \
-v /etc/localtime:/etc/localtime:ro \
-v /home:/home \
-w /root --name ${CONTAINER} ${IMAGE} bash
docker exec -it ${CONTAINER} /bin/bash1.2 Source-free Installation
# 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"
python3.12 -m pip install flagtree===0.7.0+ppu3.6 $RES2.1 Manually download the LLVM
If your network connection is available, you do not need to download the dependencies which will be fetched automatically during the build.
RES="--index-url=https://resource.flagos.net/repository/flagos-pypi-hosted/simple"
python3.12 -m pip install mlir $RES2.2 Manually download the Triton dependencies
The Triton dependencies are already downloaded and installed in the image. If your network connection is available, you do not need to download the dependencies which will be fetched automatically during the build.
cd ${YOUR_CODE_DIR}/FlagTree
# For Triton 3.6 (x64)
wget https://baai-cp-web.ks3-cn-beijing.ksyuncs.com/trans/build-deps-triton_3.6.x-linux-x64.tar.gz
sh python/scripts/unpack_triton_build_deps.sh ./build-deps-triton_3.6.x-linux-x64.tar.gzAfter executing the above script, the original ~/.triton directory will be renamed, and a new ~/.triton directory will be created to store the pre-downloaded packages. Note that the script will prompt for manual confirmation during execution.
2.3 Build Commands
cd ${YOUR_CODE_DIR}/FlagTree
git checkout main
export FLAGTREE_BACKEND=ppu
MAX_JOBS=32 python3 -m pip install . --no-build-isolation -vAfter installing flagtree, you can check it with:
python3 -m pip show flagtreeRefer to Tests of ppu3.6 backend
4.1 Install FlagOS
Install flagtree as described above.
Install flag_gems and vllm-plugin-fl as follows.
git clone https://github.com/flagos-ai/FlagGems.git
cd FlagGems; git checkout v5.3.4
python3 -m pip install --no-build-isolation .git clone https://github.com/flagos-ai/vllm-plugin-FL.git
cd vllm-plugin-FL; git checkout v0.3.0-rc2.post1
python3 -m pip install --no-build-isolation .4.2 Download the model
python3 -m modelscope.cli.cli download --model Qwen/Qwen3.6-27B \
--local_dir ${MODEL_DIR}/Qwen3.6-27B
python3 -m modelscope.cli.cli download --model Qwen/Qwen3.6-35B-A3B \
--local_dir ${MODEL_DIR}/Qwen3.6-35B-A3B4.3 Run the benchmark
# ~/env.sh
export CUDA_VISIBLE_DEVICES=0,1 # 810E * 2 for Qwen3.6-27B
export VLLM_QWEN3_PORT=7000export BENCH_SCRIPT_DIR="${GIT_DIR}/FlagTree/.github/workflows/benchmark/ppu/ppu3.6-qwen3.6"
cd ${MODEL_DIR}
vim ${BENCH_SCRIPT_DIR}/start.sh # Edit vllm serve Qwen3.6-27B or Qwen3.6-35B-A3B
bash ${BENCH_SCRIPT_DIR}/start.sh
bash ${BENCH_SCRIPT_DIR}/test.sh
vim ${BENCH_SCRIPT_DIR}/all_perf.py # Edit TOKENIZER_PATH
bash ${BENCH_SCRIPT_DIR}/perf.sh
bash ${BENCH_SCRIPT_DIR}/stop.shRefer to Qwen Benchmark of ppu3.6 backend