From c8c51244f9bb6f8584105966e64e7734f46e05a3 Mon Sep 17 00:00:00 2001 From: lijiakun Date: Wed, 13 Aug 2025 09:54:32 +0800 Subject: [PATCH] support differenct arch type --- Dockerfile | 14 ++++++++------ build_image.sh | 7 ++++--- install_depend_pkgs.sh | 33 ++++++--------------------------- 3 files changed, 18 insertions(+), 36 deletions(-) diff --git a/Dockerfile b/Dockerfile index df882b2e8..f579daff0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -16,6 +16,8 @@ FROM hub.oepkgs.net/openeuler/openeuler:22.03-lts-sp4 +ARG ARCH=aarch64 + RUN set -ex && \ echo "[OS]" > /etc/yum.repos.d/openEuler.repo && \ echo "name=OS" >> /etc/yum.repos.d/openEuler.repo && \ @@ -76,9 +78,9 @@ RUN set -ex && \ WORKDIR /root RUN set -ex && \ - wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-py311_25.1.1-2-Linux-aarch64.sh && \ - bash /root/Miniconda3-py311_25.1.1-2-Linux-aarch64.sh -b && \ - rm /root/Miniconda3-py311_25.1.1-2-Linux-aarch64.sh + wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-py311_25.1.1-2-Linux-${ARCH}.sh && \ + bash /root/Miniconda3-py311_25.1.1-2-Linux-${ARCH}.sh -b && \ + rm /root/Miniconda3-py311_25.1.1-2-Linux-${ARCH}.sh ENV PATH="/root/miniconda3/bin:$PATH" ENV PYTHONPATH="/root/miniconda3/lib/python3.11/site-packages" @@ -99,9 +101,9 @@ RUN set -ex && \ echo "Driver_Install_Status=complete" >> /etc/ascend_install.info RUN set -ex && \ - curl -s -k "https://ascend-repo.obs.cn-east-2.myhuaweicloud.com/CANN/CANN%208.1.RC1/Ascend-cann-toolkit_8.1.RC1_linux-aarch64.run" -o Ascend-cann-toolkit.run && \ - curl -s -k "https://ascend-repo.obs.cn-east-2.myhuaweicloud.com/CANN/CANN%208.1.RC1/Ascend-cann-kernels-910b_8.1.RC1_linux-aarch64.run" -o Ascend-cann-kernels-910b.run && \ - curl -s -k "https://ascend-repo.obs.cn-east-2.myhuaweicloud.com/CANN/CANN%208.1.RC1/Ascend-cann-nnrt_8.1.RC1_linux-aarch64.run" -o Ascend-cann-nnrt.run && \ + curl -s -k "https://ascend-repo.obs.cn-east-2.myhuaweicloud.com/CANN/CANN%208.1.RC1/Ascend-cann-toolkit_8.1.RC1_linux-${ARCH}.run" -o Ascend-cann-toolkit.run && \ + curl -s -k "https://ascend-repo.obs.cn-east-2.myhuaweicloud.com/CANN/CANN%208.1.RC1/Ascend-cann-kernels-910b_8.1.RC1_linux-${ARCH}.run" -o Ascend-cann-kernels-910b.run && \ + curl -s -k "https://ascend-repo.obs.cn-east-2.myhuaweicloud.com/CANN/CANN%208.1.RC1/Ascend-cann-nnrt_8.1.RC1_linux-${ARCH}.run" -o Ascend-cann-nnrt.run && \ chmod a+x *.run && \ bash /root/Ascend-cann-toolkit.run --install -q && \ bash /root/Ascend-cann-kernels-910b.run --install -q && \ diff --git a/build_image.sh b/build_image.sh index 7459bcf0b..37589f9d1 100644 --- a/build_image.sh +++ b/build_image.sh @@ -18,6 +18,7 @@ set -euo pipefail readonly IMAGE_TAG="vllm_ms_$(date +%Y%m%d)" +ARCH=$([ "$(uname -m)" = "x86_64" ] && echo "x86_64" || echo "aarch64") log() { echo "========= $*" @@ -26,8 +27,8 @@ log() { main() { log "Starting Docker image build process" - log "Step 1: Building base environment" - docker image inspect base_env >/dev/null 2>&1 || docker build -t base_env -f Dockerfile . + log "Step 1: Building base environment for $ARCH" + docker image inspect base_env >/dev/null 2>&1 || docker build --build-arg TARGETARCH=$ARCH -t base_env -f Dockerfile . log "Step 2: Building final image with install script" @@ -44,7 +45,7 @@ COPY .jenkins/test/config/dependent_packages.yaml /workspace/.jenkins/test/confi ARG MINDFORMERS_COMMIT=$mindformers_commit RUN chmod +x /workspace/install_depend_pkgs.sh && \\ cd /workspace && \\ - MINDFORMERS_COMMIT=\$MINDFORMERS_COMMIT AUTO_BUILD=1 ./install_depend_pkgs.sh + MINDFORMERS_COMMIT=\$MINDFORMERS_COMMIT ./install_depend_pkgs.sh ENV PYTHONPATH="/workspace/mindformers/:\$PYTHONPATH" ENV vLLM_MODEL_BACKEND=MindFormers diff --git a/install_depend_pkgs.sh b/install_depend_pkgs.sh index 2892229fa..01060e7b3 100644 --- a/install_depend_pkgs.sh +++ b/install_depend_pkgs.sh @@ -26,6 +26,9 @@ readonly PIP_INDEX="-i https://mirrors.aliyun.com/pypi/simple" FORCE_REINSTALL=false +# Detect architecture +ARCH=$([ "$(uname -m)" = "x86_64" ] && echo "x86_64" || echo "aarch64") + log() { local width=80 local text="$*" @@ -173,14 +176,14 @@ main() { log "This will remove existing mindformers directory and reinstall all dependencies" fi - pip install $PIP_TRUSTED_HOSTS $PIP_INDEX uv + command -v uv &> /dev/null || pip install $PIP_TRUSTED_HOSTS $PIP_INDEX uv [ ! -f "$CONFIG_FILE" ] && { echo "Config file not found: $CONFIG_FILE"; exit 1; } log "Starting dependency installation" local vllm_url=$(get_package_url "vllm" "any") - local mindspore_url=$(get_package_url "mindspore" "unified/aarch64") + local mindspore_url=$(get_package_url "mindspore" "unified/$ARCH") local msadapter_url=$(get_package_url "msadapter" "any") local mindspore_gs_url=$(get_package_url "mindspore_gs" "any") @@ -204,33 +207,9 @@ main() { log "All dependencies installed successfully!" log "" - log "To use vLLM-MindSpore, environment variables need to be configured:" + log "When using MindFormers backend, please configure environment variables manually:" echo " export PYTHONPATH=\"$MF_DIR/:\$PYTHONPATH\"" echo " export vLLM_MODEL_BACKEND=MindFormers" - log "" - - if [ "${AUTO_BUILD:-}" = "1" ]; then - echo "export PYTHONPATH=\"$MF_DIR/:\$PYTHONPATH\"" >> ~/.bashrc - echo "export vLLM_MODEL_BACKEND=MindFormers" >> ~/.bashrc - log "Environment variables added to ~/.bashrc (automated build)" - else - echo -n -e "\033[93mAdd these to ~/.bashrc automatically? (y/N): \033[0m" - read -r response - - if [[ "$response" == "y" || "$response" == "Y" ]]; then - if grep -q "export PYTHONPATH.*mindformers" ~/.bashrc 2>/dev/null && grep -q "export vLLM_MODEL_BACKEND=MindFormers" ~/.bashrc 2>/dev/null; then - log "Environment variables already exist in ~/.bashrc, skipping" - else - echo "export PYTHONPATH=\"$MF_DIR/:\$PYTHONPATH\"" >> ~/.bashrc - echo "export vLLM_MODEL_BACKEND=MindFormers" >> ~/.bashrc - log "Environment variables added to ~/.bashrc" - log "Run:" - echo " source ~/.bashrc" - fi - else - log "Please add the environment variables manually and run 'source ~/.bashrc'" - fi - fi } main "$@" -- Gitee