| ARG CANN_VERSION=8.5.0 |
| ARG DEVICE_TYPE=a3 |
| ARG OS=ubuntu22.04 |
| ARG PYTHON_VERSION=py3.11 |
|
|
| FROM quay.io/ascend/cann:$CANN_VERSION-$DEVICE_TYPE-$OS-$PYTHON_VERSION |
|
|
| |
| ARG TARGETARCH |
| ARG CANN_VERSION |
| ARG DEVICE_TYPE |
| ARG PIP_INDEX_URL="https://pypi.org/simple/" |
| ARG APTMIRROR="" |
| ARG PYTORCH_VERSION="2.8.0" |
| ARG TORCHVISION_VERSION="0.23.0" |
| ARG PTA_URL_ARM64="https://gitcode.com/Ascend/pytorch/releases/download/v7.3.0-pytorch2.8.0/torch_npu-2.8.0.post2-cp311-cp311-manylinux_2_28_aarch64.whl" |
| ARG PTA_URL_AMD64="https://gitcode.com/Ascend/pytorch/releases/download/v7.3.0-pytorch2.8.0/torch_npu-2.8.0.post2-cp311-cp311-manylinux_2_28_x86_64.whl" |
| ARG SGLANG_TAG=main |
| ARG ASCEND_CANN_PATH=/usr/local/Ascend/ascend-toolkit |
| ARG SGLANG_KERNEL_NPU_TAG=main |
|
|
| ARG PIP_INSTALL="python3 -m pip install --no-cache-dir" |
| ARG DEVICE_TYPE |
|
|
| RUN if [ "$TARGETARCH" = "amd64" ]; then \ |
| echo "Using x86_64 dependencies"; \ |
| echo "PTA_URL=$PTA_URL_AMD64" >> /etc/environment_new; \ |
| elif [ "$TARGETARCH" = "arm64" ]; then \ |
| echo "Using aarch64 dependencies"; \ |
| echo "PTA_URL=$PTA_URL_ARM64" >> /etc/environment_new; \ |
| else \ |
| echo "Unsupported TARGETARCH: $TARGETARCH"; exit 1; \ |
| fi |
|
|
| WORKDIR /workspace |
|
|
| |
| ENV DEBIAN_FRONTEND=noninteractive |
|
|
| RUN pip config set global.index-url $PIP_INDEX_URL |
| RUN if [ -n "$APTMIRROR" ];then sed -i "s|.*.ubuntu.com|$APTMIRROR|g" /etc/apt/sources.list ;fi |
|
|
| |
| RUN apt-get update -y && apt upgrade -y && apt-get install -y \ |
| unzip \ |
| build-essential \ |
| cmake \ |
| vim \ |
| wget \ |
| curl \ |
| net-tools \ |
| zlib1g-dev \ |
| lld \ |
| clang \ |
| locales \ |
| ccache \ |
| openssl \ |
| libssl-dev \ |
| pkg-config \ |
| ca-certificates \ |
| && rm -rf /var/cache/apt/* \ |
| && rm -rf /var/lib/apt/lists/* \ |
| && update-ca-certificates \ |
| && locale-gen en_US.UTF-8 |
|
|
| ENV LANG=en_US.UTF-8 |
| ENV LANGUAGE=en_US:en |
| ENV LC_ALL=en_US.UTF-8 |
|
|
|
|
| |
| RUN ${PIP_INSTALL} memfabric-hybrid==1.0.5 |
| |
| RUN ${PIP_INSTALL} sglang-router |
|
|
|
|
| |
| RUN . /etc/environment_new && \ |
| (${PIP_INSTALL} torch==${PYTORCH_VERSION} torchvision==${TORCHVISION_VERSION} --index-url https://download.pytorch.org/whl/cpu) \ |
| && (${PIP_INSTALL} ${PTA_URL}) |
|
|
|
|
| |
| RUN (${PIP_INSTALL} pybind11 triton-ascend) |
|
|
| |
| RUN git clone https://github.com/sgl-project/sglang --branch $SGLANG_TAG && \ |
| (cd sglang/python && rm -rf pyproject.toml && mv pyproject_npu.toml pyproject.toml && ${PIP_INSTALL} -v .[all_npu]) && \ |
| rm -rf sglang |
|
|
| |
| |
| RUN ${PIP_INSTALL} wheel==0.45.1 pybind11 pyyaml decorator scipy attrs psutil \ |
| && mkdir sgl-kernel-npu \ |
| && cd sgl-kernel-npu \ |
| && wget https://github.com/sgl-project/sgl-kernel-npu/releases/download/${SGLANG_KERNEL_NPU_TAG}/sgl-kernel-npu-${SGLANG_KERNEL_NPU_TAG}-torch2.8.0-py311-cann${CANN_VERSION}-${DEVICE_TYPE}-$(arch).zip \ |
| && unzip sgl-kernel-npu-${SGLANG_KERNEL_NPU_TAG}-torch2.8.0-py311-cann${CANN_VERSION}-${DEVICE_TYPE}-$(arch).zip \ |
| && ${PIP_INSTALL} deep_ep*.whl sgl_kernel_npu*.whl \ |
| && cd .. && rm -rf sgl-kernel-npu \ |
| && cd "$(python3 -m pip show deep-ep | awk '/^Location:/ {print $2}')" && ln -sf deep_ep/deep_ep_cpp*.so |
|
|
| CMD ["/bin/bash"] |
|
|