Skip to content

昇腾环境配置(Ver:1.0_alpha001)-CANN8.5.0+torch2.9.0+FlagTree+FlagGems #3

@winfan1314

Description

@winfan1314

下载,载入并启动容器

wget https://baai-cp-web.ks3-cn-beijing.ksyuncs.com/trans/docker_image_cann-8.2.rc1.alpha003-a3-ubuntu22.04-py3.11-flagtree.tar.gz
docker load -i docker_image_cann-8.2.rc1.alpha003-a3-ubuntu22.04-py3.11-flagtree.tar.gz
docker run -it \
        --name ***起个名字*** \
        --network host \
        --ipc host \
        --privileged \
        --device /dev/davinci0 \
        --device /dev/davinci1 \
        --device /dev/davinci2 \
        --device /dev/davinci3 \
        --device /dev/davinci4 \
        --device /dev/davinci5 \
        --device /dev/davinci6 \
        --device /dev/davinci7 \
        --device /dev/davinci_manager \
        --device /dev/devmm_svm \
        --device /dev/hisi_hdc \
        -v ***你的代码目录***:/workspace \
        -v ***找个可写目录用来映射/root***:/root \
        -v /usr/local/Ascend/driver:/usr/local/Ascend/driver:ro \
        -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi:ro \
        -v /usr/local/dcmi:/usr/local/dcmi:ro \
        -v /etc/ascend_install.info:/etc/ascend_install.info:ro \
        -w ***设置默认工作目录*** \
        cann:8.2.rc1.alpha003-a3-ubuntu22.04-py3.11-flagtree \
        /bin/bash -lc 'export LD_LIBRARY_PATH=/usr/local/Ascend/driver/lib64/common:/usr/local/Ascend/driver/lib64/driver:$LD_LIBRARY_PATH && bash'

容器内 装CANN, 910B ops

wget https://ascend-repo.obs.cn-east-2.myhuaweicloud.com/CANN/CANN%208.5.0/Ascend-cann-toolkit_8.5.0_linux-aarch64.run
wget https://ascend-repo.obs.cn-east-2.myhuaweicloud.com/CANN/CANN%208.5.0/Ascend-cann-910b-ops_8.5.0_linux-aarch64.run
bash Ascend-cann-toolkit_8.5.0_linux-aarch64.run --install --quiet
bash Ascend-cann-910b-ops_8.5.0_linux-aarch64.run --install --quiet

容器内 装llvm

mkdir -p ~/.flagtree/ascend; cd ~/.flagtree/ascend
wget https://baai-cp-web.ks3-cn-beijing.ksyuncs.com/trans/llvm-a66376b0-ubuntu-aarch64-python311-compat_v0.3.0.tar.gz
tar zxf llvm-a66376b0-ubuntu-aarch64-python311-compat_v0.3.0.tar.gz

容器内 装Flagtree依赖

cd /workspace/container_workspace
git clone https://github.com/flagos-ai/FlagTree.git
cd FlagTree
git checkout -b triton_v3.2.x origin/triton_v3.2.x
wget https://baai-cp-web.ks3-cn-beijing.ksyuncs.com/trans/build-deps-triton_3.2.x-linux-aarch64.tar.gz
sh python/scripts/unpack_triton_build_deps.sh ./build-deps-triton_3.2.x-linux-aarch64.tar.gz

容器内 装FlagTree

cd python
python3 -m pip install -r requirements.txt
export FLAGTREE_BACKEND=ascend
python3 -m pip install . --no-build-isolation -v

容器内 装其他依赖

pip install numpy sqlalchemy scikit-build-core pybind11 ninja cmake -i https://repo.huaweicloud.com/repository/pypi/simple

容器内 装FlagGems

git clone https://github.com/siliconflow/FlagGems.git 
cd FlagGems
pip install --no-build-isolation -e .

容器内 装 torch torch_npu triton-ascend

wget https://download.pytorch.org/whl/cpu/torch-2.9.0%2Bcpu-cp311-cp311-manylinux_2_28_aarch64.whl
wget https://gitcode.com/Ascend/pytorch/releases/download/v7.3.0-pytorch2.9.0/torch_npu-2.9.0-cp311-cp311-manylinux_2_28_aarch64.whl
pip install torch-2.9.0+cpu-cp311-cp311-manylinux_2_28_aarch64.whl torch_npu-2.9.0-cp311-cp311-manylinux_2_28_aarch64.whl -i https://repo.huaweicloud.com/repository/pypi/simple
pip install triton-ascend -i https://repo.huaweicloud.com/repository/pypi/simple

容器内 小测试FlagGems

import torch
import flag_gems
flag_gems.enable()
M, N, K = 1024, 1024, 1024
A = torch.randn((M, K), dtype=torch.float16, device="npu:0")
B = torch.randn((K, N), dtype=torch.float16, device="npu:0")
C = torch.mm(A, B)
print("shape:", C.shape, "dtype:", C.dtype, "device:", C.device)
print("C values:", C[:5, :5].cpu())
s = C.sum()
print("sum:", s.item(), "dtype:", s.dtype, "device:", s.device)
c = input("Press Enter to continue...")

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions