Files
paddlepaddle--paddle/tools/dockerfile/Dockerfile.develop.npu
T
2026-07-13 12:40:42 +08:00

88 lines
3.6 KiB
Docker

# Docker Image for PaddlePaddle Ascend NPU
FROM registry.baidubce.com/device/paddle-cpu:ubuntu20-npu-base-x86_64-gcc84
LABEL maintainer="PaddlePaddle Authors <paddle-dev@baidu.com>"
ARG CANN_VERSION=8.0.T113
ARG SYSTEM=x86_64
ARG NPU_VERSION=910b
# HwHiAiUser
RUN groupadd -g 1000 HwHiAiUser && \
useradd -u 1000 -g 1000 -m -d /home/HwHiAiUser HwHiAiUser
RUN mkdir -p /usr/local/Ascend/driver
WORKDIR /usr/local/Ascend
# install CANN requirement
# https://www.hiascend.com/document/detail/zh/CANNCommunityEdition/700alpha003/softwareinstall/instg/instg_0026.html
RUN apt-get update -y && apt-get install -y zlib1g zlib1g-dev libsqlite3-dev openssl libssl-dev libffi-dev libbz2-dev \
libxslt1-dev unzip pciutils net-tools libblas-dev gfortran libblas3 liblapack-dev liblapack3 libopenblas-dev zstd
RUN pip3.10 install --upgrade pip setuptools wheel
RUN pip3.10 install 'numpy>=1.19.2' 'decorator>=4.4.0' 'sympy>=1.5.1' 'cffi>=1.12.3' 'protobuf>=3.13.0'
RUN pip3.10 install attrs pyyaml pathlib2 scipy requests psutil absl-py
# update envs for driver
ENV LD_LIBRARY_PATH=/usr/local/Ascend/driver/lib64:$LD_LIBRARY_PATH
ENV LD_LIBRARY_PATH=/usr/local/Ascend/driver/lib64/common:$LD_LIBRARY_PATH
ENV LD_LIBRARY_PATH=/usr/local/Ascend/driver/lib64/driver:$LD_LIBRARY_PATH
# Install Ascend toolkit
RUN wget -q --no-proxy https://paddle-ascend.bj.bcebos.com/cvmodel/ascend-materials/Ascend-cann-toolkit_${CANN_VERSION}_linux-${SYSTEM}.run --no-check-certificate && \
chmod +x Ascend-cann-toolkit_${CANN_VERSION}_linux-*.run && \
./Ascend-cann-toolkit_${CANN_VERSION}_linux-*.run --install --quiet && \
echo "source /usr/local/Ascend/ascend-toolkit/set_env.sh" >>~/.bashrc && \
rm -rf Ascend-cann-toolkit_${CANN_VERSION}_linux-*.run
# Install Ascend Kernels
ARG ASCEND_KLS=Ascend-cann-kernels-${NPU_VERSION}_${CANN_VERSION}_linux-${SYSTEM}.run
RUN wget -q --no-proxy https://paddle-ascend.bj.bcebos.com/cvmodel/ascend-materials/${ASCEND_KLS} --no-check-certificate && \
chmod +x ${ASCEND_KLS} && ./${ASCEND_KLS} --install --quiet && rm -rf ${ASCEND_KLS}
# Install Ascend nnal
RUN wget -q --no-proxy https://paddle-ascend.bj.bcebos.com/cvmodel/ascend-materials/Ascend-cann-nnal_${CANN_VERSION}_linux-${SYSTEM}.run --no-check-certificate && \
chmod +x Ascend-cann-nnal_${CANN_VERSION}_linux-${SYSTEM}.run && \
. /usr/local/Ascend/ascend-toolkit/set_env.sh && \
./Ascend-cann-nnal_${CANN_VERSION}_linux-${SYSTEM}.run --install --quiet &&\
rm -rf Ascend-cann-nnal_${CANN_VERSION}_linux-${SYSTEM}.run && \
echo "source /usr/local/Ascend/nnal/atb/set_env.sh" >> /root/.bashrc
# install post process ops
RUN wget -q --no-proxy https://paddle-ascend.bj.bcebos.com/code-share-master.zip --no-check-certificate && \
. /usr/local/Ascend/ascend-toolkit/set_env.sh && \
unzip code-share-master.zip && \
cd code-share-master/build && bash build_ops.sh > /dev/null && \
chmod +x aie_ops.run && ./aie_ops.run --extract=/usr/local/Ascend/ && \
rm -rf /usr/local/Ascend/code-share-master
# update env for ascendc
ENV ASCEND_CUSTOM_OPP_PATH=/usr/local/Ascend/vendors/aie_ascendc
# DEV image should open error level log
# 0 debug; 1 info; 2 warning; 3 error; 4 null
ENV ASCEND_GLOBAL_LOG_LEVEL=3
# environment for HCCL
ENV HCCL_CONNECT_TIMEOUT=7200
ENV HCCL_WHITELIST_DISABLE=1
ENV HCCL_SECURITY_MODE=1
ENV HCCL_BUFFSIZE=120
# environment for PaddlePaddle
ENV FLAGS_npu_storage_format=0
ENV FLAGS_use_stride_kernel=0
ENV FLAGS_allocator_strategy=naive_best_fit
ENV PADDLE_XCCL_BACKEND=npu
# map this folder in docker run
RUN rm -rf /usr/local/Ascend/driver
# Clean
RUN apt-get clean -y
RUN pip cache purge
EXPOSE 22