From 5fb987dc6c72d68a743f3aa286a0fc20b1c2fc06 Mon Sep 17 00:00:00 2001 From: zhihang Date: Wed, 11 Jun 2025 13:01:38 +0800 Subject: [PATCH 1/2] add cann 8.1.RC1 for 24.03-LTS --- .../8.1.RC1-python3.11/24.03-lts/Dockerfile | 183 ++++++++++++++++++ AI/cann/README.md | 2 +- AI/cann/meta.yml | 2 + 3 files changed, 186 insertions(+), 1 deletion(-) create mode 100644 AI/cann/8.1.RC1-python3.11/24.03-lts/Dockerfile diff --git a/AI/cann/8.1.RC1-python3.11/24.03-lts/Dockerfile b/AI/cann/8.1.RC1-python3.11/24.03-lts/Dockerfile new file mode 100644 index 0000000..fc2470b --- /dev/null +++ b/AI/cann/8.1.RC1-python3.11/24.03-lts/Dockerfile @@ -0,0 +1,183 @@ +# Stage 1: Install Python +FROM openeuler/openeuler:24.03-lts AS python-installer + +# Python Environment variables +ENV PATH=/usr/local/python3.11.4/bin:${PATH} + +RUN yum update -y && \ + yum install -y \ + gcc \ + gcc-c++ \ + make \ + cmake \ + curl \ + zlib-devel \ + bzip2-devel \ + openssl-devel \ + ncurses-devel \ + sqlite-devel \ + readline-devel \ + tk-devel \ + gdbm-devel \ + libpcap-devel \ + xz-devel \ + libev-devel \ + expat-devel \ + libffi-devel \ + systemtap-sdt-devel \ + && yum clean all \ + && rm -rf /var/cache/yum \ + && rm -rf /tmp/* + +# Install Python +RUN curl -fsSL https://repo.huaweicloud.com/python/3.11.4/Python-3.11.4.tgz -o /tmp/Python-3.11.4.tgz && \ + tar -xf /tmp/Python-3.11.4.tgz -C /tmp && \ + cd /tmp/Python-3.11.4 && \ + mkdir -p /usr/local/python3.11.4/lib && \ + ./configure --enable-shared --enable-shared LDFLAGS="-Wl,-rpath /usr/local/python3.11.4/lib" --prefix=/usr/local/python3.11.4 && \ + make -j $(nproc) && \ + make altinstall && \ + ln -sf /usr/local/python3.11.4/bin/python3.11 /usr/local/python3.11.4/bin/python3 && \ + ln -sf /usr/local/python3.11.4/bin/pip3.11 /usr/local/python3.11.4/bin/pip3 && \ + ln -sf /usr/local/python3.11.4/bin/python3 /usr/local/python3.11.4/bin/python && \ + ln -sf /usr/local/python3.11.4/bin/pip3 /usr/local/python3.11.4/bin/pip && \ + rm -rf /tmp/* + +# Stage 2: Install CANN +FROM python-installer AS cann-installer + +ARG TARGETPLATFORM + +RUN yum update -y && \ + yum install -y \ + unzip \ + pciutils \ + net-tools \ + lapack-devel \ + gcc-gfortran \ + util-linux \ + findutils \ + wget \ + && yum clean all \ + && rm -rf /var/cache/yum + +# Note: Install CANN runtime dependencies +RUN pip install --no-cache-dir --upgrade pip +RUN pip install --no-cache-dir \ + attrs cython numpy==1.24.0 decorator sympy cffi pyyaml pathlib2 \ + psutil protobuf==3.20 scipy requests absl-py + +# Note: Get the download link according to ARCH and download the installation package +RUN ARCH=$(case "${TARGETPLATFORM}" in \ + "linux/amd64") echo "x86_64" ;; \ + "linux/arm64") echo "aarch64" ;; \ + *) echo "Unsupported TARGETPLATFORM: ${TARGETPLATFORM}" && exit 1 ;; \ + esac) && \ + CANN_TOOLKIT_URL=https://ascend-repo.obs.cn-east-2.myhuaweicloud.com/CANN/CANN%208.1.RC1/Ascend-cann-toolkit_8.1.RC1_linux-${ARCH}.run && \ + CANN_KERNELS_URL=https://ascend-repo.obs.cn-east-2.myhuaweicloud.com/CANN/CANN%208.1.RC1/Ascend-cann-kernels-910b_8.1.RC1_linux-${ARCH}.run && \ + CANN_NNAL_URL=https://ascend-repo.obs.cn-east-2.myhuaweicloud.com/CANN/CANN%208.1.RC1/Ascend-cann-nnal_8.1.RC1_linux-${ARCH}.run && \ + wget --quiet --header="Referer: https://www.hiascend.com/" ${CANN_TOOLKIT_URL} -O ~/Ascend-cann-toolkit.run && \ + wget --quiet --header="Referer: https://www.hiascend.com/" ${CANN_KERNELS_URL} -O ~/Ascend-cann-kernels.run && \ + wget --quiet --header="Referer: https://www.hiascend.com/" ${CANN_NNAL_URL} -O ~/Ascend-cann-nnal.run + +# Note: Install CANN Toolkit Development Kit Package +RUN chmod +x ~/Ascend-cann-toolkit.run && \ + ~/Ascend-cann-toolkit.run --quiet --install --install-for-all && \ + rm -f ~/Ascend-cann-toolkit.run + +# Note: Install CANN Kernels Operator Package +RUN chmod +x ~/Ascend-cann-kernels.run && \ + ~/Ascend-cann-kernels.run --quiet --install --install-for-all && \ + rm -f ~/Ascend-cann-kernels.run + +# Note: Install CANN NNAL Neural Network Acceleration Library +RUN . /usr/local/Ascend/ascend-toolkit/set_env.sh && \ + chmod +x ~/Ascend-cann-nnal.run && \ + ~/Ascend-cann-nnal.run --quiet --install --install-for-all && \ + rm -f ~/Ascend-cann-nnal.run + +# Stage 3: Copy results from previous stages +FROM openeuler/openeuler:24.03-lts AS official-openeuler + +# Python Environment variables +ENV PATH=/usr/local/python3.11.4/bin:${PATH} + +# Note: Toolkit Environment variables, obtained from /usr/local/Ascend/ascend-toolkit/set_env.sh +ENV ASCEND_TOOLKIT_HOME=/usr/local/Ascend/ascend-toolkit/latest +ENV LD_LIBRARY_PATH=/usr/local/Ascend/driver/lib64/common/:/usr/local/Ascend/driver/lib64/driver/:$LD_LIBRARY_PATH +ENV LD_LIBRARY_PATH=${ASCEND_TOOLKIT_HOME}/lib64:${ASCEND_TOOLKIT_HOME}/lib64/plugin/opskernel:${ASCEND_TOOLKIT_HOME}/lib64/plugin/nnengine:${ASCEND_TOOLKIT_HOME}/opp/built-in/op_impl/ai_core/tbe/op_tiling:$LD_LIBRARY_PATH +ENV LD_LIBRARY_PATH=${ASCEND_TOOLKIT_HOME}/tools/aml/lib64:${ASCEND_TOOLKIT_HOME}/tools/aml/lib64/plugin:$LD_LIBRARY_PATH +ENV PYTHONPATH=${ASCEND_TOOLKIT_HOME}/python/site-packages:${ASCEND_TOOLKIT_HOME}/opp/built-in/op_impl/ai_core/tbe:$PYTHONPATH +ENV PATH=${ASCEND_TOOLKIT_HOME}/bin:${ASCEND_TOOLKIT_HOME}/compiler/ccec_compiler/bin:${ASCEND_TOOLKIT_HOME}/tools/ccec_compiler/bin:$PATH +ENV ASCEND_AICPU_PATH=${ASCEND_TOOLKIT_HOME} +ENV ASCEND_OPP_PATH=${ASCEND_TOOLKIT_HOME}/opp +ENV TOOLCHAIN_HOME=${ASCEND_TOOLKIT_HOME}/toolkit +ENV ASCEND_HOME_PATH=${ASCEND_TOOLKIT_HOME} + +# Note: NNAL Environment variables, obtained from /usr/local/Ascend/nnal/set_env.sh +ENV ATB_HOME_PATH=/usr/local/Ascend/nnal/atb/latest/atb/cxx_abi_0 +ENV LD_LIBRARY_PATH=${ATB_HOME_PATH}/lib:${ATB_HOME_PATH}/examples:${ATB_HOME_PATH}/tests/atbopstest:${LD_LIBRARY_PATH} +ENV PATH=${ATB_HOME_PATH}/bin:$PATH +ENV ATB_STREAM_SYNC_EVERY_KERNEL_ENABLE=0 +ENV ATB_STREAM_SYNC_EVERY_RUNNER_ENABLE=0 +ENV ATB_STREAM_SYNC_EVERY_OPERATION_ENABLE=0 +ENV ATB_OPSRUNNER_SETUP_CACHE_ENABLE=1 +ENV ATB_OPSRUNNER_KERNEL_CACHE_TYPE=3 +ENV ATB_OPSRUNNER_KERNEL_CACHE_LOCAL_COUNT=1 +ENV ATB_OPSRUNNER_KERNEL_CACHE_GLOABL_COUNT=5 +ENV ATB_OPSRUNNER_KERNEL_CACHE_TILING_SIZE=10240 +ENV ATB_WORKSPACE_MEM_ALLOC_ALG_TYPE=1 +ENV ATB_WORKSPACE_MEM_ALLOC_GLOBAL=0 +ENV ATB_COMPARE_TILING_EVERY_KERNEL=0 +ENV ATB_HOST_TILING_BUFFER_BLOCK_NUM=128 +ENV ATB_DEVICE_TILING_BUFFER_BLOCK_NUM=32 +ENV ATB_SHARE_MEMORY_NAME_SUFFIX="" +ENV ATB_LAUNCH_KERNEL_WITH_TILING=1 +ENV ATB_MATMUL_SHUFFLE_K_ENABLE=1 +ENV ATB_RUNNER_POOL_SIZE=64 +ENV ASDOPS_HOME_PATH=${ATB_HOME_PATH} +ENV ASDOPS_MATMUL_PP_FLAG=1 +ENV ASDOPS_LOG_LEVEL=ERROR +ENV ASDOPS_LOG_TO_STDOUT=0 +ENV ASDOPS_LOG_TO_FILE=1 +ENV ASDOPS_LOG_TO_FILE_FLUSH=0 +ENV ASDOPS_LOG_TO_BOOST_TYPE=atb +ENV ASDOPS_LOG_PATH=/root +ENV ASDOPS_TILING_PARSE_CACHE_DISABLE=0 +ENV LCCL_DETERMINISTIC=0 +ENV LCCL_PARALLEL=0 +ENV CPLUS_INCLUDE_PATH=${CPLUS_INCLUDE_PATH}:/usr/include/c++/12:/usr/include/c++/12/x86_64-openEuler-linux + +SHELL [ "/bin/bash", "-c" ] + +RUN yum update -y && \ + yum install -y \ + ca-certificates \ + bash \ + glibc \ + sqlite-devel \ + gcc \ + gcc-c++ \ + make \ + cmake \ + && yum clean all \ + && rm -rf /var/cache/yum \ + && rm -rf /tmp/* + +COPY --from=cann-installer /usr/local/python3.11.4 /usr/local/python3.11.4 +COPY --from=cann-installer /usr/local/Ascend /usr/local/Ascend +COPY --from=cann-installer /etc/Ascend /etc/Ascend + +# Note: Set environment variables +RUN \ + CANN_TOOLKIT_ENV_FILE="/usr/local/Ascend/ascend-toolkit/set_env.sh" && \ + CANN_NNAL_ENV_FILE="/usr/local/Ascend/nnal/atb/set_env.sh" && \ + echo "source ${CANN_TOOLKIT_ENV_FILE}" >> /etc/profile && \ + echo "source ${CANN_TOOLKIT_ENV_FILE}" >> ~/.bashrc && \ + echo "source ${CANN_NNAL_ENV_FILE}" >> /etc/profile && \ + echo "source ${CANN_NNAL_ENV_FILE}" >> ~/.bashrc + +ENTRYPOINT ["/bin/bash", "-c", "\ + source /usr/local/Ascend/ascend-toolkit/set_env.sh && \ + source /usr/local/Ascend/nnal/atb/set_env.sh && \ + exec \"$@\"", "--"]⏎ \ No newline at end of file diff --git a/AI/cann/README.md b/AI/cann/README.md index 8cfce4b..6d045f5 100644 --- a/AI/cann/README.md +++ b/AI/cann/README.md @@ -19,7 +19,7 @@ The tag of each `cann` docker image is consist of the complete software stack ve |----------|-------------|------------------| |[cann7.0.RC1.alpha002-oe2203sp2](https://gitee.com/openeuler/openeuler-docker-images/blob/master/AI/cann/7.0.RC1.alpha002/22.03-lts-sp2/Dockerfile)| CANN 7.0.RC1.alpha002 on openEuler 22.03-LTS-SP2 | arm64 | |[8.0.RC1-oe2203sp4](https://gitee.com/openeuler/openeuler-docker-images/blob/master/AI/cann/8.0.RC1/22.03-lts-sp4/Dockerfile)| CANN 8.0.RC1 with Python 3.8 on openEuler 22.03-LTS-SP4 | arm64,amd64 | -|[8.1.RC1-oe2203lts](https://gitee.com/openeuler/openeuler-docker-images/blob/master/AI/cann/8.1.RC1-python3.11/22.03-lts/Dockerfile)| CANN 8.1.RC1 with Python 3.11 on openEuler 22.03-LTS | arm64,amd64 | +|[8.1.RC1-python3.11-oe2203lts](https://gitee.com/openeuler/openeuler-docker-images/blob/master/AI/cann/8.1.RC1-python3.11/22.03-lts/Dockerfile)| CANN 8.1.RC1 with Python 3.11 on openEuler 22.03-LTS | arm64,amd64 | # Usage In this usage, users can select the corresponding `{Tag}` and `container startup options` based on their requirements. diff --git a/AI/cann/meta.yml b/AI/cann/meta.yml index ea2ab35..f7bfac2 100644 --- a/AI/cann/meta.yml +++ b/AI/cann/meta.yml @@ -4,3 +4,5 @@ path: 8.0.RC1/22.03-lts-sp4/Dockerfile 8.1.RC1-python3.11-oe2203lts: path: 8.1.RC1-python3.11/22.03-lts/Dockerfile +8.1.RC1-python3.11-oe2403lts: + path: 8.1.RC1-python3.11/24.03-lts/Dockerfile -- Gitee From 79914f881474f1a443b65acf343b1b561ebee2ad Mon Sep 17 00:00:00 2001 From: zhihang Date: Wed, 11 Jun 2025 13:06:51 +0800 Subject: [PATCH 2/2] fix README.md --- AI/cann/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/AI/cann/README.md b/AI/cann/README.md index 6d045f5..91007d6 100644 --- a/AI/cann/README.md +++ b/AI/cann/README.md @@ -20,6 +20,8 @@ The tag of each `cann` docker image is consist of the complete software stack ve |[cann7.0.RC1.alpha002-oe2203sp2](https://gitee.com/openeuler/openeuler-docker-images/blob/master/AI/cann/7.0.RC1.alpha002/22.03-lts-sp2/Dockerfile)| CANN 7.0.RC1.alpha002 on openEuler 22.03-LTS-SP2 | arm64 | |[8.0.RC1-oe2203sp4](https://gitee.com/openeuler/openeuler-docker-images/blob/master/AI/cann/8.0.RC1/22.03-lts-sp4/Dockerfile)| CANN 8.0.RC1 with Python 3.8 on openEuler 22.03-LTS-SP4 | arm64,amd64 | |[8.1.RC1-python3.11-oe2203lts](https://gitee.com/openeuler/openeuler-docker-images/blob/master/AI/cann/8.1.RC1-python3.11/22.03-lts/Dockerfile)| CANN 8.1.RC1 with Python 3.11 on openEuler 22.03-LTS | arm64,amd64 | +|[8.1.RC1-python3.11-oe2403lts](https://gitee.com/openeuler/openeuler-docker-images/blob/master/AI/cann/8.1.RC1-python3.11/24.03-lts/Dockerfile)| CANN 8.1.RC1 with Python 3.11 on openEuler 24.03-LTS | arm64,amd64 | + # Usage In this usage, users can select the corresponding `{Tag}` and `container startup options` based on their requirements. -- Gitee