From adbbfe12e29719e3a234fe650ae5c316f6ea4dfd Mon Sep 17 00:00:00 2001 From: gouzi <530971494@qq.com> Date: Sat, 20 Jun 2026 00:04:58 +0800 Subject: [PATCH 01/14] Update CI build image GCC to 11 --- .github/workflows/docker.yml | 2 +- tools/dockerfile/ci_dockerfile.sh | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index f967e3cf938a61..0662dc88ad4448 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -75,7 +75,7 @@ jobs: docker_cpu_file: Dockerfile.cuda9_cudnn7_gcc48_py35_centos6 docker_sot_file: Dockerfile.gcc133_ubuntu24_cpu_sot docker_coverage_file: Dockerfile.cuda117_cudnn8_gcc82_ubuntu18_coverage - docker_build_file: Dockerfile.cuda11.2_cudnn8_gcc82_trt8 + docker_build_file: Dockerfile.cuda11.8_cudnn8_gcc11_trt8 docker_distribute_file: Dockerfile.cuda123_cudnn9_gcc122_ubuntu20 docker_xpu_file: Dockerfile.develop.xre.ubuntu22 docker_npu_file: Dockerfile.develop.npu diff --git a/tools/dockerfile/ci_dockerfile.sh b/tools/dockerfile/ci_dockerfile.sh index fd984efc4d45b8..3726e8bffd780f 100644 --- a/tools/dockerfile/ci_dockerfile.sh +++ b/tools/dockerfile/ci_dockerfile.sh @@ -58,7 +58,7 @@ function make_sot_dockerfile(){ function make_ce_framework_dockerfile(){ - dockerfile_name="Dockerfile.cuda11.2_cudnn8_gcc82_trt8" + dockerfile_name="Dockerfile.cuda11.8_cudnn8_gcc11_trt8" sed "s##nvidia/cuda:11.8.0-cudnn8-devel-ubuntu20.04#g" ./Dockerfile.ubuntu20 >${dockerfile_name} dockerfile_line=$(wc -l ${dockerfile_name}|awk '{print $1}') sed -i "s##ENV LD_LIBRARY_PATH=/usr/local/cuda-11.8/targets/x86_64-linux/lib:\$LD_LIBRARY_PATH #g" ${dockerfile_name} @@ -70,6 +70,10 @@ function make_ce_framework_dockerfile(){ sed -i "${dockerfile_line}i RUN pip3.10 install wheel distro jinja2 bce-python-sdk==0.8.74" ${dockerfile_name} sed -i "${dockerfile_line}i RUN pip3.10 install nvidia-cuda-cupti-cu11==11.8.87 nvidia-cuda-runtime-cu11==11.8.89 nvidia-cudnn-cu11==8.7.0.84 nvidia-cublas-cu11==11.11.3.6 nvidia-cufft-cu11==10.9.0.58 nvidia-curand-cu11==10.3.0.86 nvidia-cusolver-cu11==11.4.1.48 nvidia-cusparse-cu11==11.7.5.86 nvidia-nccl-cu11==2.19.3" ${dockerfile_name} sed -i 's#RUN bash /build_scripts/install_trt.sh#RUN bash /build_scripts/install_trt.sh trt8531#g' ${dockerfile_name} + sed -i 's#RUN bash /build_scripts/install_gcc.sh gcc82#RUN add-apt-repository ppa:ubuntu-toolchain-r/test \&\& apt-get update \&\& apt-get install -y gcc-11 g++-11#g' ${dockerfile_name} + sed -i 's#/usr/local/gcc-8.2/bin/gcc#/usr/bin/gcc-11#g' ${dockerfile_name} + sed -i 's#/usr/local/gcc-8.2/bin/g++#/usr/bin/g++-11#g' ${dockerfile_name} + sed -i 's#ENV PATH=/usr/local/gcc-8.2/bin:$PATH##g' ${dockerfile_name} } From 6a78dfe5d3e3485c8bdd3d39c8740c4ff0ee96a9 Mon Sep 17 00:00:00 2001 From: gouzi <530971494@qq.com> Date: Sat, 20 Jun 2026 00:45:30 +0800 Subject: [PATCH 02/14] Build Python from source in CI image --- tools/dockerfile/ci_dockerfile.sh | 52 +++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/tools/dockerfile/ci_dockerfile.sh b/tools/dockerfile/ci_dockerfile.sh index 3726e8bffd780f..929731600226fe 100644 --- a/tools/dockerfile/ci_dockerfile.sh +++ b/tools/dockerfile/ci_dockerfile.sh @@ -57,6 +57,57 @@ function make_sot_dockerfile(){ } +function use_source_built_python(){ + dockerfile_name=$1 + awk ' + /^RUN apt-get update && \\$/ { + first_line=$0 + if ((getline second_line) > 0 && second_line ~ /^ apt-get install -y python3\.9 /) { + print "RUN apt-get update && apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev \\" + print " libreadline-dev libsqlite3-dev libncursesw5-dev libffi-dev libgdbm-dev \\" + print " libgdbm-compat-dev liblzma-dev libexpat1-dev tk-dev uuid-dev xz-utils" + print "RUN set -eux; \\" + print " for PYTHON_SOURCE_VERSION in 3.9.0 3.10.0 3.11.0 3.12.0 3.13.0; do \\" + print " wget -q https://www.python.org/ftp/python/${PYTHON_SOURCE_VERSION}/Python-${PYTHON_SOURCE_VERSION}.tgz && \\" + print " tar -xzf Python-${PYTHON_SOURCE_VERSION}.tgz && \\" + print " cd Python-${PYTHON_SOURCE_VERSION} && \\" + print " CFLAGS=\"-Wformat\" ./configure --prefix=/usr/local --enable-shared --with-ensurepip=install > /dev/null && \\" + print " make -j\"$(nproc)\" > /dev/null && make altinstall > /dev/null && ldconfig && \\" + print " cd .. && rm -rf Python-${PYTHON_SOURCE_VERSION} Python-${PYTHON_SOURCE_VERSION}.tgz; \\" + print " done && \\" + print " PYTHON_SOURCE_VERSION=3.13.0; \\" + print " wget -q https://www.python.org/ftp/python/${PYTHON_SOURCE_VERSION}/Python-${PYTHON_SOURCE_VERSION}.tgz && \\" + print " tar -xzf Python-${PYTHON_SOURCE_VERSION}.tgz && \\" + print " cd Python-${PYTHON_SOURCE_VERSION} && \\" + print " CFLAGS=\"-Wformat\" ./configure --prefix=/usr/local --enable-shared --with-ensurepip=install --disable-gil > /dev/null && \\" + print " make -j\"$(nproc)\" > /dev/null && make altinstall > /dev/null && ldconfig && \\" + print " cd .. && rm -rf Python-${PYTHON_SOURCE_VERSION} Python-${PYTHON_SOURCE_VERSION}.tgz && \\" + print " ln -sf /usr/local/bin/python3.9 /usr/local/bin/python3 && \\" + print " ln -sf /usr/local/bin/python3 /usr/local/bin/python" + while ((getline) > 0) { + if ($0 ~ /^ apt-get install python-is-python3$/) { + break + } + } + next + } + print first_line + if (second_line != "") { + print second_line + } + next + } + /^RUN rm \/usr\/bin\/python && ln -s \/usr\/bin\/python3\.9 \/usr\/bin\/python && \\$/ { + print "RUN rm -f /usr/bin/python && ln -s /usr/local/bin/python3.9 /usr/bin/python && \\" + print " rm -f /usr/bin/python3 && ln -s /usr/local/bin/python3.9 /usr/bin/python3" + getline + next + } + { print } + ' ${dockerfile_name} > ${dockerfile_name}.tmp && mv ${dockerfile_name}.tmp ${dockerfile_name} +} + + function make_ce_framework_dockerfile(){ dockerfile_name="Dockerfile.cuda11.8_cudnn8_gcc11_trt8" sed "s##nvidia/cuda:11.8.0-cudnn8-devel-ubuntu20.04#g" ./Dockerfile.ubuntu20 >${dockerfile_name} @@ -74,6 +125,7 @@ function make_ce_framework_dockerfile(){ sed -i 's#/usr/local/gcc-8.2/bin/gcc#/usr/bin/gcc-11#g' ${dockerfile_name} sed -i 's#/usr/local/gcc-8.2/bin/g++#/usr/bin/g++-11#g' ${dockerfile_name} sed -i 's#ENV PATH=/usr/local/gcc-8.2/bin:$PATH##g' ${dockerfile_name} + use_source_built_python ${dockerfile_name} } From 9a01d3ad3c3397ead8c525894fbbdccae9225ab4 Mon Sep 17 00:00:00 2001 From: gouzi <530971494@qq.com> Date: Sat, 20 Jun 2026 00:53:19 +0800 Subject: [PATCH 03/14] Move Python source build into Ubuntu20 Dockerfile --- tools/dockerfile/Dockerfile.ubuntu20 | 32 ++++++++++++----- tools/dockerfile/ci_dockerfile.sh | 52 ---------------------------- 2 files changed, 23 insertions(+), 61 deletions(-) diff --git a/tools/dockerfile/Dockerfile.ubuntu20 b/tools/dockerfile/Dockerfile.ubuntu20 index fc5b56f3c6ec5a..1567b187d30a00 100644 --- a/tools/dockerfile/Dockerfile.ubuntu20 +++ b/tools/dockerfile/Dockerfile.ubuntu20 @@ -59,15 +59,29 @@ WORKDIR /home RUN wget -q https://cmake.org/files/v3.18/cmake-3.18.0-Linux-x86_64.tar.gz && tar -zxvf cmake-3.18.0-Linux-x86_64.tar.gz && rm cmake-3.18.0-Linux-x86_64.tar.gz ENV PATH=/home/cmake-3.18.0-Linux-x86_64/bin:$PATH -RUN apt-get update && \ - apt-get install -y python3.9 python3.9-dev python3.9-distutils \ - python3.10 python3.10-dev python3.10-distutils \ - python3.11 python3.11-dev python3.11-distutils \ - python3.12 python3.12-dev \ - python3.13 python3.13-dev python3.13-nogil && \ - apt-get install python-is-python3 -RUN rm /usr/bin/python && ln -s /usr/bin/python3.9 /usr/bin/python && \ - rm /usr/bin/python3 && ln -s /usr/bin/python3.9 /usr/bin/python3 +RUN apt-get update && apt-get install -y make libssl-dev zlib1g-dev libbz2-dev \ + libreadline-dev libsqlite3-dev libncursesw5-dev libffi-dev libgdbm-dev \ + libgdbm-compat-dev liblzma-dev libexpat1-dev tk-dev uuid-dev xz-utils +RUN set -eux; \ + for PYTHON_SOURCE_VERSION in 3.9.0 3.10.0 3.11.0 3.12.0 3.13.0; do \ + wget -q https://www.python.org/ftp/python/${PYTHON_SOURCE_VERSION}/Python-${PYTHON_SOURCE_VERSION}.tgz && \ + tar -xzf Python-${PYTHON_SOURCE_VERSION}.tgz && \ + cd Python-${PYTHON_SOURCE_VERSION} && \ + CFLAGS="-Wformat" ./configure --prefix=/usr/local --enable-shared --with-ensurepip=install > /dev/null && \ + make -j"$(nproc)" > /dev/null && make altinstall > /dev/null && ldconfig && \ + cd .. && rm -rf Python-${PYTHON_SOURCE_VERSION} Python-${PYTHON_SOURCE_VERSION}.tgz; \ + done && \ + PYTHON_SOURCE_VERSION=3.13.0; \ + wget -q https://www.python.org/ftp/python/${PYTHON_SOURCE_VERSION}/Python-${PYTHON_SOURCE_VERSION}.tgz && \ + tar -xzf Python-${PYTHON_SOURCE_VERSION}.tgz && \ + cd Python-${PYTHON_SOURCE_VERSION} && \ + CFLAGS="-Wformat" ./configure --prefix=/usr/local --enable-shared --with-ensurepip=install --disable-gil > /dev/null && \ + make -j"$(nproc)" > /dev/null && make altinstall > /dev/null && ldconfig && \ + cd .. && rm -rf Python-${PYTHON_SOURCE_VERSION} Python-${PYTHON_SOURCE_VERSION}.tgz && \ + ln -sf /usr/local/bin/python3.9 /usr/local/bin/python3 && \ + ln -sf /usr/local/bin/python3 /usr/local/bin/python +RUN rm -f /usr/bin/python && ln -s /usr/local/bin/python3.9 /usr/bin/python && \ + rm -f /usr/bin/python3 && ln -s /usr/local/bin/python3.9 /usr/bin/python3 WORKDIR /home RUN wget -q https://bootstrap.pypa.io/get-pip.py diff --git a/tools/dockerfile/ci_dockerfile.sh b/tools/dockerfile/ci_dockerfile.sh index 929731600226fe..3726e8bffd780f 100644 --- a/tools/dockerfile/ci_dockerfile.sh +++ b/tools/dockerfile/ci_dockerfile.sh @@ -57,57 +57,6 @@ function make_sot_dockerfile(){ } -function use_source_built_python(){ - dockerfile_name=$1 - awk ' - /^RUN apt-get update && \\$/ { - first_line=$0 - if ((getline second_line) > 0 && second_line ~ /^ apt-get install -y python3\.9 /) { - print "RUN apt-get update && apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev \\" - print " libreadline-dev libsqlite3-dev libncursesw5-dev libffi-dev libgdbm-dev \\" - print " libgdbm-compat-dev liblzma-dev libexpat1-dev tk-dev uuid-dev xz-utils" - print "RUN set -eux; \\" - print " for PYTHON_SOURCE_VERSION in 3.9.0 3.10.0 3.11.0 3.12.0 3.13.0; do \\" - print " wget -q https://www.python.org/ftp/python/${PYTHON_SOURCE_VERSION}/Python-${PYTHON_SOURCE_VERSION}.tgz && \\" - print " tar -xzf Python-${PYTHON_SOURCE_VERSION}.tgz && \\" - print " cd Python-${PYTHON_SOURCE_VERSION} && \\" - print " CFLAGS=\"-Wformat\" ./configure --prefix=/usr/local --enable-shared --with-ensurepip=install > /dev/null && \\" - print " make -j\"$(nproc)\" > /dev/null && make altinstall > /dev/null && ldconfig && \\" - print " cd .. && rm -rf Python-${PYTHON_SOURCE_VERSION} Python-${PYTHON_SOURCE_VERSION}.tgz; \\" - print " done && \\" - print " PYTHON_SOURCE_VERSION=3.13.0; \\" - print " wget -q https://www.python.org/ftp/python/${PYTHON_SOURCE_VERSION}/Python-${PYTHON_SOURCE_VERSION}.tgz && \\" - print " tar -xzf Python-${PYTHON_SOURCE_VERSION}.tgz && \\" - print " cd Python-${PYTHON_SOURCE_VERSION} && \\" - print " CFLAGS=\"-Wformat\" ./configure --prefix=/usr/local --enable-shared --with-ensurepip=install --disable-gil > /dev/null && \\" - print " make -j\"$(nproc)\" > /dev/null && make altinstall > /dev/null && ldconfig && \\" - print " cd .. && rm -rf Python-${PYTHON_SOURCE_VERSION} Python-${PYTHON_SOURCE_VERSION}.tgz && \\" - print " ln -sf /usr/local/bin/python3.9 /usr/local/bin/python3 && \\" - print " ln -sf /usr/local/bin/python3 /usr/local/bin/python" - while ((getline) > 0) { - if ($0 ~ /^ apt-get install python-is-python3$/) { - break - } - } - next - } - print first_line - if (second_line != "") { - print second_line - } - next - } - /^RUN rm \/usr\/bin\/python && ln -s \/usr\/bin\/python3\.9 \/usr\/bin\/python && \\$/ { - print "RUN rm -f /usr/bin/python && ln -s /usr/local/bin/python3.9 /usr/bin/python && \\" - print " rm -f /usr/bin/python3 && ln -s /usr/local/bin/python3.9 /usr/bin/python3" - getline - next - } - { print } - ' ${dockerfile_name} > ${dockerfile_name}.tmp && mv ${dockerfile_name}.tmp ${dockerfile_name} -} - - function make_ce_framework_dockerfile(){ dockerfile_name="Dockerfile.cuda11.8_cudnn8_gcc11_trt8" sed "s##nvidia/cuda:11.8.0-cudnn8-devel-ubuntu20.04#g" ./Dockerfile.ubuntu20 >${dockerfile_name} @@ -125,7 +74,6 @@ function make_ce_framework_dockerfile(){ sed -i 's#/usr/local/gcc-8.2/bin/gcc#/usr/bin/gcc-11#g' ${dockerfile_name} sed -i 's#/usr/local/gcc-8.2/bin/g++#/usr/bin/g++-11#g' ${dockerfile_name} sed -i 's#ENV PATH=/usr/local/gcc-8.2/bin:$PATH##g' ${dockerfile_name} - use_source_built_python ${dockerfile_name} } From e264b52d30719714d5b466f1de9e0ce8582e12d6 Mon Sep 17 00:00:00 2001 From: gouzi <530971494@qq.com> Date: Fri, 26 Jun 2026 00:41:03 +0800 Subject: [PATCH 04/14] [CI] Update build image to CUDA 12.8 --- .github/workflows/docker.yml | 2 +- tools/dockerfile/ci_dockerfile.sh | 12 +++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 0662dc88ad4448..59e83efc79bf20 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -75,7 +75,7 @@ jobs: docker_cpu_file: Dockerfile.cuda9_cudnn7_gcc48_py35_centos6 docker_sot_file: Dockerfile.gcc133_ubuntu24_cpu_sot docker_coverage_file: Dockerfile.cuda117_cudnn8_gcc82_ubuntu18_coverage - docker_build_file: Dockerfile.cuda11.8_cudnn8_gcc11_trt8 + docker_build_file: Dockerfile.cuda12.8_cudnn9_gcc11_trt10 docker_distribute_file: Dockerfile.cuda123_cudnn9_gcc122_ubuntu20 docker_xpu_file: Dockerfile.develop.xre.ubuntu22 docker_npu_file: Dockerfile.develop.npu diff --git a/tools/dockerfile/ci_dockerfile.sh b/tools/dockerfile/ci_dockerfile.sh index 263f07305c62c7..f92e54924d3d93 100644 --- a/tools/dockerfile/ci_dockerfile.sh +++ b/tools/dockerfile/ci_dockerfile.sh @@ -58,18 +58,20 @@ function make_sot_dockerfile(){ function make_ce_framework_dockerfile(){ - dockerfile_name="Dockerfile.cuda11.8_cudnn8_gcc11_trt8" - sed "s##nvidia/cuda:11.8.0-cudnn8-devel-ubuntu20.04#g" ./Dockerfile.ubuntu20 >${dockerfile_name} + dockerfile_name="Dockerfile.cuda12.8_cudnn9_gcc11_trt10" + sed "s##nvidia/cuda:12.8.1-cudnn-devel-ubuntu20.04#g" ./Dockerfile.ubuntu20 >${dockerfile_name} dockerfile_line=$(wc -l ${dockerfile_name}|awk '{print $1}') - sed -i "s##ENV LD_LIBRARY_PATH=/usr/local/cuda-11.8/targets/x86_64-linux/lib:\$LD_LIBRARY_PATH #g" ${dockerfile_name} + sed -i "s##ENV LD_LIBRARY_PATH=/usr/local/cuda-12.8/targets/x86_64-linux/lib:\$LD_LIBRARY_PATH #g" ${dockerfile_name} sed -i 's###g' ${dockerfile_name} sed -i "7i RUN chmod 777 /tmp" ${dockerfile_name} sed -i "${dockerfile_line}i RUN wget --no-check-certificate -q https://paddle-edl.bj.bcebos.com/hadoop-2.7.7.tar.gz \&\& \ tar -xzf hadoop-2.7.7.tar.gz && mv hadoop-2.7.7 /usr/local/" ${dockerfile_name} sed -i "${dockerfile_line}i RUN apt-get update && apt install -y zstd pigz libcurl4-openssl-dev gettext ninja-build" ${dockerfile_name} sed -i "${dockerfile_line}i RUN pip3.10 install wheel distro jinja2 bce-python-sdk==0.8.74" ${dockerfile_name} - sed -i "${dockerfile_line}i RUN pip3.10 install nvidia-cuda-cupti-cu11==11.8.87 nvidia-cuda-runtime-cu11==11.8.89 nvidia-cudnn-cu11==8.7.0.84 nvidia-cublas-cu11==11.11.3.6 nvidia-cufft-cu11==10.9.0.58 nvidia-curand-cu11==10.3.0.86 nvidia-cusolver-cu11==11.4.1.48 nvidia-cusparse-cu11==11.7.5.86 nvidia-nccl-cu11==2.19.3" ${dockerfile_name} - sed -i 's#RUN bash /build_scripts/install_trt.sh#RUN bash /build_scripts/install_trt.sh trt8531#g' ${dockerfile_name} + sed -i "${dockerfile_line}i RUN pip3.10 install nvidia-cuda-nvrtc-cu12==12.8.61 nvidia-cuda-runtime-cu12==12.8.57 nvidia-cuda-cupti-cu12==12.8.57 nvidia-cudnn-cu12==9.7.1.26 nvidia-cublas-cu12==12.8.3.14 nvidia-cufft-cu12==11.3.3.41 nvidia-curand-cu12==10.3.9.55 nvidia-cusolver-cu12==11.7.2.55 nvidia-cusparse-cu12==12.5.7.53 nvidia-cusparselt-cu12==0.6.3 nvidia-nccl-cu12==2.28.3 nvidia-nvtx-cu12==12.8.55 nvidia-nvjitlink-cu12==12.8.61 nvidia-cufile-cu12==1.13.0.11" ${dockerfile_name} + sed -i 's#RUN bash /build_scripts/install_trt.sh#RUN bash /build_scripts/install_trt.sh trt105018#g' ${dockerfile_name} + sed -i 's#RUN bash /build_scripts/install_cudnn.sh cudnn841##g' ${dockerfile_name} + sed -i 's#ENV CUDNN_VERSION=8.4.1#ENV CUDNN_VERSION=9.7.1#g' ${dockerfile_name} sed -i 's#RUN bash /build_scripts/install_gcc.sh gcc82#RUN add-apt-repository ppa:ubuntu-toolchain-r/test \&\& apt-get update \&\& apt-get install -y gcc-11 g++-11#g' ${dockerfile_name} sed -i 's#/usr/local/gcc-8.2/bin/gcc#/usr/bin/gcc-11#g' ${dockerfile_name} sed -i 's#/usr/local/gcc-8.2/bin/g++#/usr/bin/g++-11#g' ${dockerfile_name} From 865c9dc097227e43be9d4462fa44d0200a556b60 Mon Sep 17 00:00:00 2001 From: gouzi <530971494@qq.com> Date: Fri, 26 Jun 2026 10:10:57 +0800 Subject: [PATCH 05/14] Fix GCC 11 install in CI build image --- tools/dockerfile/build_scripts/install_gcc.sh | 17 +++++++++++++++++ tools/dockerfile/ci_dockerfile.sh | 8 ++++---- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/tools/dockerfile/build_scripts/install_gcc.sh b/tools/dockerfile/build_scripts/install_gcc.sh index 8461a7bd913828..3a504f49e69e50 100644 --- a/tools/dockerfile/build_scripts/install_gcc.sh +++ b/tools/dockerfile/build_scripts/install_gcc.sh @@ -75,6 +75,23 @@ elif [ "$1" == "gcc121" ]; then cp ${lib_so_6} ${lib_so_6}.bak && rm -f ${lib_so_6} && ln -s /usr/local/gcc-12.1/lib64/libstdc++.so.6 ${lib_so_6} && \ cp /usr/local/gcc-12.1/lib64/libstdc++.so.6.0.30 ${lib_path} +elif [ "$1" == "gcc11" ]; then + GCC_VERSION=${GCC_VERSION:-11.5.0} + GCC_MAJOR_MINOR=$(echo ${GCC_VERSION} | cut -d. -f1,2) + GCC_PREFIX=/usr/local/gcc-${GCC_MAJOR_MINOR} + GCC_ARCHIVE=gcc-${GCC_VERSION}.tar.xz + wget -q https://ftp.gnu.org/gnu/gcc/gcc-${GCC_VERSION}/${GCC_ARCHIVE} + tar -xf ${GCC_ARCHIVE} && \ + cd gcc-${GCC_VERSION} && \ + unset LIBRARY_PATH CPATH C_INCLUDE_PATH PKG_CONFIG_PATH CPLUS_INCLUDE_PATH INCLUDE && \ + ./contrib/download_prerequisites && \ + cd .. && mkdir temp_gcc11 && cd temp_gcc11 && \ + ../gcc-${GCC_VERSION}/configure --prefix=${GCC_PREFIX} --enable-checking=release --enable-languages=c,c++ --disable-multilib && \ + make -j$(nproc) && make install + cd .. && rm -rf temp_gcc11 gcc-${GCC_VERSION} ${GCC_ARCHIVE} + cp ${lib_so_6} ${lib_so_6}.bak && rm -f ${lib_so_6} && + ln -s ${GCC_PREFIX}/lib64/libstdc++.so.6 ${lib_so_6} && \ + cp ${GCC_PREFIX}/lib64/libstdc++.so.6.* ${lib_path} elif [ "$1" == "gcc152" ]; then GCC_VERSION=${GCC_VERSION:-15.2.0} GCC_MAJOR_MINOR=$(echo ${GCC_VERSION} | cut -d. -f1,2) diff --git a/tools/dockerfile/ci_dockerfile.sh b/tools/dockerfile/ci_dockerfile.sh index f92e54924d3d93..57b799615378de 100644 --- a/tools/dockerfile/ci_dockerfile.sh +++ b/tools/dockerfile/ci_dockerfile.sh @@ -72,10 +72,10 @@ function make_ce_framework_dockerfile(){ sed -i 's#RUN bash /build_scripts/install_trt.sh#RUN bash /build_scripts/install_trt.sh trt105018#g' ${dockerfile_name} sed -i 's#RUN bash /build_scripts/install_cudnn.sh cudnn841##g' ${dockerfile_name} sed -i 's#ENV CUDNN_VERSION=8.4.1#ENV CUDNN_VERSION=9.7.1#g' ${dockerfile_name} - sed -i 's#RUN bash /build_scripts/install_gcc.sh gcc82#RUN add-apt-repository ppa:ubuntu-toolchain-r/test \&\& apt-get update \&\& apt-get install -y gcc-11 g++-11#g' ${dockerfile_name} - sed -i 's#/usr/local/gcc-8.2/bin/gcc#/usr/bin/gcc-11#g' ${dockerfile_name} - sed -i 's#/usr/local/gcc-8.2/bin/g++#/usr/bin/g++-11#g' ${dockerfile_name} - sed -i 's#ENV PATH=/usr/local/gcc-8.2/bin:$PATH##g' ${dockerfile_name} + sed -i 's#RUN bash /build_scripts/install_gcc.sh gcc82#RUN bash /build_scripts/install_gcc.sh gcc11#g' ${dockerfile_name} + sed -i 's#/usr/local/gcc-8.2/bin/gcc#/usr/local/gcc-11.5/bin/gcc#g' ${dockerfile_name} + sed -i 's#/usr/local/gcc-8.2/bin/g++#/usr/local/gcc-11.5/bin/g++#g' ${dockerfile_name} + sed -i 's#ENV PATH=/usr/local/gcc-8.2/bin:$PATH#ENV PATH=/usr/local/gcc-11.5/bin:$PATH#g' ${dockerfile_name} } From 0905483ecdb615b4984c9f580ca1659975e9448f Mon Sep 17 00:00:00 2001 From: gouzi <530971494@qq.com> Date: Mon, 29 Jun 2026 23:04:13 +0800 Subject: [PATCH 06/14] Use CUDA 12.6 build image for SM70 TensorRT --- .github/workflows/docker.yml | 2 +- tools/dockerfile/build_scripts/install_trt.sh | 5 +++++ tools/dockerfile/ci_dockerfile.sh | 12 ++++++------ 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 59e83efc79bf20..d0b9e1f2a61cf8 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -75,7 +75,7 @@ jobs: docker_cpu_file: Dockerfile.cuda9_cudnn7_gcc48_py35_centos6 docker_sot_file: Dockerfile.gcc133_ubuntu24_cpu_sot docker_coverage_file: Dockerfile.cuda117_cudnn8_gcc82_ubuntu18_coverage - docker_build_file: Dockerfile.cuda12.8_cudnn9_gcc11_trt10 + docker_build_file: Dockerfile.cuda12.6_cudnn9_gcc11_trt10 docker_distribute_file: Dockerfile.cuda123_cudnn9_gcc122_ubuntu20 docker_xpu_file: Dockerfile.develop.xre.ubuntu22 docker_npu_file: Dockerfile.develop.npu diff --git a/tools/dockerfile/build_scripts/install_trt.sh b/tools/dockerfile/build_scripts/install_trt.sh index 89ff4697f93aa4..864e3cc51164cc 100644 --- a/tools/dockerfile/build_scripts/install_trt.sh +++ b/tools/dockerfile/build_scripts/install_trt.sh @@ -61,6 +61,11 @@ elif [[ "$1" == "trt8531" ]];then tar -zxf TensorRT-8.5.3.1.Linux.x86_64-gnu.cuda-11.8.cudnn8.6.tar.gz -C /usr/local cp -rf /usr/local/TensorRT-8.5.3.1/include/* /usr/include/ && cp -rf /usr/local/TensorRT-8.5.3.1/lib/* /usr/lib/ rm -f TensorRT-8.5.3.1.Linux.x86_64-gnu.cuda-11.8.cudnn8.6.tar.gz +elif [[ "$1" == "trt104026" ]];then + wget -q https://developer.download.nvidia.com/compute/machine-learning/tensorrt/10.4.0/tars/TensorRT-10.4.0.26.Linux.x86_64-gnu.cuda-12.6.tar.gz --no-check-certificate + tar -zxf TensorRT-10.4.0.26.Linux.x86_64-gnu.cuda-12.6.tar.gz -C /usr/local + cp -rf /usr/local/TensorRT-10.4.0.26/include/* /usr/include/ && cp -rf /usr/local/TensorRT-10.4.0.26/lib/* /usr/lib/ + rm -f TensorRT-10.4.0.26.Linux.x86_64-gnu.cuda-12.6.tar.gz elif [[ "$1" == "trt105018" ]];then wget -q https://paddle-qa.bj.bcebos.com/nvidia/trt/TensorRT-10.5.0.18-cuda12.tgz --no-check-certificate --no-proxy tar -zxf TensorRT-10.5.0.18-cuda12.tgz -C /usr/local diff --git a/tools/dockerfile/ci_dockerfile.sh b/tools/dockerfile/ci_dockerfile.sh index 57b799615378de..cd88fa01ab56f7 100644 --- a/tools/dockerfile/ci_dockerfile.sh +++ b/tools/dockerfile/ci_dockerfile.sh @@ -58,20 +58,20 @@ function make_sot_dockerfile(){ function make_ce_framework_dockerfile(){ - dockerfile_name="Dockerfile.cuda12.8_cudnn9_gcc11_trt10" - sed "s##nvidia/cuda:12.8.1-cudnn-devel-ubuntu20.04#g" ./Dockerfile.ubuntu20 >${dockerfile_name} + dockerfile_name="Dockerfile.cuda12.6_cudnn9_gcc11_trt10" + sed "s##nvidia/cuda:12.6.3-cudnn-devel-ubuntu20.04#g" ./Dockerfile.ubuntu20 >${dockerfile_name} dockerfile_line=$(wc -l ${dockerfile_name}|awk '{print $1}') - sed -i "s##ENV LD_LIBRARY_PATH=/usr/local/cuda-12.8/targets/x86_64-linux/lib:\$LD_LIBRARY_PATH #g" ${dockerfile_name} + sed -i "s##ENV LD_LIBRARY_PATH=/usr/local/cuda-12.6/targets/x86_64-linux/lib:\$LD_LIBRARY_PATH #g" ${dockerfile_name} sed -i 's###g' ${dockerfile_name} sed -i "7i RUN chmod 777 /tmp" ${dockerfile_name} sed -i "${dockerfile_line}i RUN wget --no-check-certificate -q https://paddle-edl.bj.bcebos.com/hadoop-2.7.7.tar.gz \&\& \ tar -xzf hadoop-2.7.7.tar.gz && mv hadoop-2.7.7 /usr/local/" ${dockerfile_name} sed -i "${dockerfile_line}i RUN apt-get update && apt install -y zstd pigz libcurl4-openssl-dev gettext ninja-build" ${dockerfile_name} sed -i "${dockerfile_line}i RUN pip3.10 install wheel distro jinja2 bce-python-sdk==0.8.74" ${dockerfile_name} - sed -i "${dockerfile_line}i RUN pip3.10 install nvidia-cuda-nvrtc-cu12==12.8.61 nvidia-cuda-runtime-cu12==12.8.57 nvidia-cuda-cupti-cu12==12.8.57 nvidia-cudnn-cu12==9.7.1.26 nvidia-cublas-cu12==12.8.3.14 nvidia-cufft-cu12==11.3.3.41 nvidia-curand-cu12==10.3.9.55 nvidia-cusolver-cu12==11.7.2.55 nvidia-cusparse-cu12==12.5.7.53 nvidia-cusparselt-cu12==0.6.3 nvidia-nccl-cu12==2.28.3 nvidia-nvtx-cu12==12.8.55 nvidia-nvjitlink-cu12==12.8.61 nvidia-cufile-cu12==1.13.0.11" ${dockerfile_name} - sed -i 's#RUN bash /build_scripts/install_trt.sh#RUN bash /build_scripts/install_trt.sh trt105018#g' ${dockerfile_name} + sed -i "${dockerfile_line}i RUN pip3.10 install nvidia-cuda-nvrtc-cu12==12.6.77 nvidia-cuda-runtime-cu12==12.6.77 nvidia-cuda-cupti-cu12==12.6.80 nvidia-cudnn-cu12==9.5.1.17 nvidia-cublas-cu12==12.6.4.1 nvidia-cufft-cu12==11.3.0.4 nvidia-curand-cu12==10.3.7.77 nvidia-cusolver-cu12==11.7.1.2 nvidia-cusparse-cu12==12.5.4.2 nvidia-cusparselt-cu12==0.6.3 nvidia-nccl-cu12==2.25.1 nvidia-nvtx-cu12==12.6.77 nvidia-nvjitlink-cu12==12.6.85 nvidia-cufile-cu12==1.11.1.6" ${dockerfile_name} + sed -i 's#RUN bash /build_scripts/install_trt.sh#RUN bash /build_scripts/install_trt.sh trt104026#g' ${dockerfile_name} sed -i 's#RUN bash /build_scripts/install_cudnn.sh cudnn841##g' ${dockerfile_name} - sed -i 's#ENV CUDNN_VERSION=8.4.1#ENV CUDNN_VERSION=9.7.1#g' ${dockerfile_name} + sed -i 's#ENV CUDNN_VERSION=8.4.1#ENV CUDNN_VERSION=9.5.1#g' ${dockerfile_name} sed -i 's#RUN bash /build_scripts/install_gcc.sh gcc82#RUN bash /build_scripts/install_gcc.sh gcc11#g' ${dockerfile_name} sed -i 's#/usr/local/gcc-8.2/bin/gcc#/usr/local/gcc-11.5/bin/gcc#g' ${dockerfile_name} sed -i 's#/usr/local/gcc-8.2/bin/g++#/usr/local/gcc-11.5/bin/g++#g' ${dockerfile_name} From 2e91ecd5394d3793c926e073a72b676ef6ff8c0b Mon Sep 17 00:00:00 2001 From: gouzi <530971494@qq.com> Date: Tue, 30 Jun 2026 00:36:20 +0800 Subject: [PATCH 07/14] Use mirror for GCC 11 source download --- tools/dockerfile/build_scripts/install_gcc.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tools/dockerfile/build_scripts/install_gcc.sh b/tools/dockerfile/build_scripts/install_gcc.sh index 3a504f49e69e50..0df936efbf6fe7 100644 --- a/tools/dockerfile/build_scripts/install_gcc.sh +++ b/tools/dockerfile/build_scripts/install_gcc.sh @@ -80,7 +80,8 @@ elif [ "$1" == "gcc11" ]; then GCC_MAJOR_MINOR=$(echo ${GCC_VERSION} | cut -d. -f1,2) GCC_PREFIX=/usr/local/gcc-${GCC_MAJOR_MINOR} GCC_ARCHIVE=gcc-${GCC_VERSION}.tar.xz - wget -q https://ftp.gnu.org/gnu/gcc/gcc-${GCC_VERSION}/${GCC_ARCHIVE} + wget -q --tries=5 https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-${GCC_VERSION}/${GCC_ARCHIVE} || \ + wget -q --tries=5 https://ftp.gnu.org/gnu/gcc/gcc-${GCC_VERSION}/${GCC_ARCHIVE} tar -xf ${GCC_ARCHIVE} && \ cd gcc-${GCC_VERSION} && \ unset LIBRARY_PATH CPATH C_INCLUDE_PATH PKG_CONFIG_PATH CPLUS_INCLUDE_PATH INCLUDE && \ From 4f816137596e652ac1f51f48427b020967edc98a Mon Sep 17 00:00:00 2001 From: gouzi <530971494@qq.com> Date: Tue, 30 Jun 2026 00:38:30 +0800 Subject: [PATCH 08/14] Revert "Use mirror for GCC 11 source download" This reverts commit 2e91ecd5394d3793c926e073a72b676ef6ff8c0b. --- tools/dockerfile/build_scripts/install_gcc.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tools/dockerfile/build_scripts/install_gcc.sh b/tools/dockerfile/build_scripts/install_gcc.sh index 0df936efbf6fe7..3a504f49e69e50 100644 --- a/tools/dockerfile/build_scripts/install_gcc.sh +++ b/tools/dockerfile/build_scripts/install_gcc.sh @@ -80,8 +80,7 @@ elif [ "$1" == "gcc11" ]; then GCC_MAJOR_MINOR=$(echo ${GCC_VERSION} | cut -d. -f1,2) GCC_PREFIX=/usr/local/gcc-${GCC_MAJOR_MINOR} GCC_ARCHIVE=gcc-${GCC_VERSION}.tar.xz - wget -q --tries=5 https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-${GCC_VERSION}/${GCC_ARCHIVE} || \ - wget -q --tries=5 https://ftp.gnu.org/gnu/gcc/gcc-${GCC_VERSION}/${GCC_ARCHIVE} + wget -q https://ftp.gnu.org/gnu/gcc/gcc-${GCC_VERSION}/${GCC_ARCHIVE} tar -xf ${GCC_ARCHIVE} && \ cd gcc-${GCC_VERSION} && \ unset LIBRARY_PATH CPATH C_INCLUDE_PATH PKG_CONFIG_PATH CPLUS_INCLUDE_PATH INCLUDE && \ From 030d647d493bb5e61407350430085390e50136fa Mon Sep 17 00:00:00 2001 From: gouzi <530971494@qq.com> Date: Wed, 1 Jul 2026 21:56:21 +0800 Subject: [PATCH 09/14] Use TRT 8 build image for P4 inference --- .github/workflows/docker.yml | 2 +- tools/dockerfile/build_scripts/install_trt.sh | 5 ----- tools/dockerfile/ci_dockerfile.sh | 14 +++++++------- 3 files changed, 8 insertions(+), 13 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index d0b9e1f2a61cf8..430cf5f996b40b 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -75,7 +75,7 @@ jobs: docker_cpu_file: Dockerfile.cuda9_cudnn7_gcc48_py35_centos6 docker_sot_file: Dockerfile.gcc133_ubuntu24_cpu_sot docker_coverage_file: Dockerfile.cuda117_cudnn8_gcc82_ubuntu18_coverage - docker_build_file: Dockerfile.cuda12.6_cudnn9_gcc11_trt10 + docker_build_file: Dockerfile.cuda12.3_cudnn9_gcc11_trt8 docker_distribute_file: Dockerfile.cuda123_cudnn9_gcc122_ubuntu20 docker_xpu_file: Dockerfile.develop.xre.ubuntu22 docker_npu_file: Dockerfile.develop.npu diff --git a/tools/dockerfile/build_scripts/install_trt.sh b/tools/dockerfile/build_scripts/install_trt.sh index 864e3cc51164cc..89ff4697f93aa4 100644 --- a/tools/dockerfile/build_scripts/install_trt.sh +++ b/tools/dockerfile/build_scripts/install_trt.sh @@ -61,11 +61,6 @@ elif [[ "$1" == "trt8531" ]];then tar -zxf TensorRT-8.5.3.1.Linux.x86_64-gnu.cuda-11.8.cudnn8.6.tar.gz -C /usr/local cp -rf /usr/local/TensorRT-8.5.3.1/include/* /usr/include/ && cp -rf /usr/local/TensorRT-8.5.3.1/lib/* /usr/lib/ rm -f TensorRT-8.5.3.1.Linux.x86_64-gnu.cuda-11.8.cudnn8.6.tar.gz -elif [[ "$1" == "trt104026" ]];then - wget -q https://developer.download.nvidia.com/compute/machine-learning/tensorrt/10.4.0/tars/TensorRT-10.4.0.26.Linux.x86_64-gnu.cuda-12.6.tar.gz --no-check-certificate - tar -zxf TensorRT-10.4.0.26.Linux.x86_64-gnu.cuda-12.6.tar.gz -C /usr/local - cp -rf /usr/local/TensorRT-10.4.0.26/include/* /usr/include/ && cp -rf /usr/local/TensorRT-10.4.0.26/lib/* /usr/lib/ - rm -f TensorRT-10.4.0.26.Linux.x86_64-gnu.cuda-12.6.tar.gz elif [[ "$1" == "trt105018" ]];then wget -q https://paddle-qa.bj.bcebos.com/nvidia/trt/TensorRT-10.5.0.18-cuda12.tgz --no-check-certificate --no-proxy tar -zxf TensorRT-10.5.0.18-cuda12.tgz -C /usr/local diff --git a/tools/dockerfile/ci_dockerfile.sh b/tools/dockerfile/ci_dockerfile.sh index cd88fa01ab56f7..ae32a97a33916e 100644 --- a/tools/dockerfile/ci_dockerfile.sh +++ b/tools/dockerfile/ci_dockerfile.sh @@ -58,20 +58,20 @@ function make_sot_dockerfile(){ function make_ce_framework_dockerfile(){ - dockerfile_name="Dockerfile.cuda12.6_cudnn9_gcc11_trt10" - sed "s##nvidia/cuda:12.6.3-cudnn-devel-ubuntu20.04#g" ./Dockerfile.ubuntu20 >${dockerfile_name} + dockerfile_name="Dockerfile.cuda12.3_cudnn9_gcc11_trt8" + sed "s##nvidia/cuda:12.3.2-cudnn9-devel-ubuntu20.04#g" ./Dockerfile.ubuntu20 >${dockerfile_name} dockerfile_line=$(wc -l ${dockerfile_name}|awk '{print $1}') - sed -i "s##ENV LD_LIBRARY_PATH=/usr/local/cuda-12.6/targets/x86_64-linux/lib:\$LD_LIBRARY_PATH #g" ${dockerfile_name} + sed -i "s##ENV LD_LIBRARY_PATH=/usr/local/cuda-12.3/targets/x86_64-linux/lib:\$LD_LIBRARY_PATH #g" ${dockerfile_name} sed -i 's###g' ${dockerfile_name} sed -i "7i RUN chmod 777 /tmp" ${dockerfile_name} sed -i "${dockerfile_line}i RUN wget --no-check-certificate -q https://paddle-edl.bj.bcebos.com/hadoop-2.7.7.tar.gz \&\& \ tar -xzf hadoop-2.7.7.tar.gz && mv hadoop-2.7.7 /usr/local/" ${dockerfile_name} sed -i "${dockerfile_line}i RUN apt-get update && apt install -y zstd pigz libcurl4-openssl-dev gettext ninja-build" ${dockerfile_name} sed -i "${dockerfile_line}i RUN pip3.10 install wheel distro jinja2 bce-python-sdk==0.8.74" ${dockerfile_name} - sed -i "${dockerfile_line}i RUN pip3.10 install nvidia-cuda-nvrtc-cu12==12.6.77 nvidia-cuda-runtime-cu12==12.6.77 nvidia-cuda-cupti-cu12==12.6.80 nvidia-cudnn-cu12==9.5.1.17 nvidia-cublas-cu12==12.6.4.1 nvidia-cufft-cu12==11.3.0.4 nvidia-curand-cu12==10.3.7.77 nvidia-cusolver-cu12==11.7.1.2 nvidia-cusparse-cu12==12.5.4.2 nvidia-cusparselt-cu12==0.6.3 nvidia-nccl-cu12==2.25.1 nvidia-nvtx-cu12==12.6.77 nvidia-nvjitlink-cu12==12.6.85 nvidia-cufile-cu12==1.11.1.6" ${dockerfile_name} - sed -i 's#RUN bash /build_scripts/install_trt.sh#RUN bash /build_scripts/install_trt.sh trt104026#g' ${dockerfile_name} - sed -i 's#RUN bash /build_scripts/install_cudnn.sh cudnn841##g' ${dockerfile_name} - sed -i 's#ENV CUDNN_VERSION=8.4.1#ENV CUDNN_VERSION=9.5.1#g' ${dockerfile_name} + sed -i "${dockerfile_line}i RUN pip3.10 install nvidia-cuda-runtime-cu12==12.3.101 nvidia-cuda-cupti-cu12==12.3.101 nvidia-cudnn-cu12==9.1.1.17 nvidia-cublas-cu12==12.3.4.1 nvidia-cufft-cu12==11.2.1.3 nvidia-curand-cu12==10.3.5.147 nvidia-cusolver-cu12==11.6.1.9 nvidia-cusparse-cu12==12.3.1.170 nvidia-nccl-cu12==2.28.3 nvidia-nvtx-cu12==12.4.127 nvidia-cuda-nvrtc-cu12==12.3.107" ${dockerfile_name} + sed -i 's#RUN bash /build_scripts/install_trt.sh#RUN bash /build_scripts/install_trt.sh trt8616#g' ${dockerfile_name} + sed -i 's#RUN bash /build_scripts/install_cudnn.sh cudnn841#RUN bash /build_scripts/install_cudnn.sh cudnn911#g' ${dockerfile_name} + sed -i 's#ENV CUDNN_VERSION=8.4.1#ENV CUDNN_VERSION=9.1.1#g' ${dockerfile_name} sed -i 's#RUN bash /build_scripts/install_gcc.sh gcc82#RUN bash /build_scripts/install_gcc.sh gcc11#g' ${dockerfile_name} sed -i 's#/usr/local/gcc-8.2/bin/gcc#/usr/local/gcc-11.5/bin/gcc#g' ${dockerfile_name} sed -i 's#/usr/local/gcc-8.2/bin/g++#/usr/local/gcc-11.5/bin/g++#g' ${dockerfile_name} From 2d11a2f730c6b4d5d8d8e5723a50246ea185f1ff Mon Sep 17 00:00:00 2001 From: gouzi <530971494@qq.com> Date: Thu, 2 Jul 2026 12:55:37 +0800 Subject: [PATCH 10/14] Use CUDA 12.4 for GCC 11 build image --- .github/workflows/docker.yml | 2 +- tools/dockerfile/ci_dockerfile.sh | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 430cf5f996b40b..3c3ab2dcbeb288 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -75,7 +75,7 @@ jobs: docker_cpu_file: Dockerfile.cuda9_cudnn7_gcc48_py35_centos6 docker_sot_file: Dockerfile.gcc133_ubuntu24_cpu_sot docker_coverage_file: Dockerfile.cuda117_cudnn8_gcc82_ubuntu18_coverage - docker_build_file: Dockerfile.cuda12.3_cudnn9_gcc11_trt8 + docker_build_file: Dockerfile.cuda12.4_cudnn9_gcc11_trt8 docker_distribute_file: Dockerfile.cuda123_cudnn9_gcc122_ubuntu20 docker_xpu_file: Dockerfile.develop.xre.ubuntu22 docker_npu_file: Dockerfile.develop.npu diff --git a/tools/dockerfile/ci_dockerfile.sh b/tools/dockerfile/ci_dockerfile.sh index ae32a97a33916e..61eb22a26b9602 100644 --- a/tools/dockerfile/ci_dockerfile.sh +++ b/tools/dockerfile/ci_dockerfile.sh @@ -58,17 +58,17 @@ function make_sot_dockerfile(){ function make_ce_framework_dockerfile(){ - dockerfile_name="Dockerfile.cuda12.3_cudnn9_gcc11_trt8" - sed "s##nvidia/cuda:12.3.2-cudnn9-devel-ubuntu20.04#g" ./Dockerfile.ubuntu20 >${dockerfile_name} + dockerfile_name="Dockerfile.cuda12.4_cudnn9_gcc11_trt8" + sed "s##nvidia/cuda:12.4.1-cudnn-devel-ubuntu20.04#g" ./Dockerfile.ubuntu20 >${dockerfile_name} dockerfile_line=$(wc -l ${dockerfile_name}|awk '{print $1}') - sed -i "s##ENV LD_LIBRARY_PATH=/usr/local/cuda-12.3/targets/x86_64-linux/lib:\$LD_LIBRARY_PATH #g" ${dockerfile_name} + sed -i "s##ENV LD_LIBRARY_PATH=/usr/local/cuda-12.4/targets/x86_64-linux/lib:\$LD_LIBRARY_PATH #g" ${dockerfile_name} sed -i 's###g' ${dockerfile_name} sed -i "7i RUN chmod 777 /tmp" ${dockerfile_name} sed -i "${dockerfile_line}i RUN wget --no-check-certificate -q https://paddle-edl.bj.bcebos.com/hadoop-2.7.7.tar.gz \&\& \ tar -xzf hadoop-2.7.7.tar.gz && mv hadoop-2.7.7 /usr/local/" ${dockerfile_name} sed -i "${dockerfile_line}i RUN apt-get update && apt install -y zstd pigz libcurl4-openssl-dev gettext ninja-build" ${dockerfile_name} sed -i "${dockerfile_line}i RUN pip3.10 install wheel distro jinja2 bce-python-sdk==0.8.74" ${dockerfile_name} - sed -i "${dockerfile_line}i RUN pip3.10 install nvidia-cuda-runtime-cu12==12.3.101 nvidia-cuda-cupti-cu12==12.3.101 nvidia-cudnn-cu12==9.1.1.17 nvidia-cublas-cu12==12.3.4.1 nvidia-cufft-cu12==11.2.1.3 nvidia-curand-cu12==10.3.5.147 nvidia-cusolver-cu12==11.6.1.9 nvidia-cusparse-cu12==12.3.1.170 nvidia-nccl-cu12==2.28.3 nvidia-nvtx-cu12==12.4.127 nvidia-cuda-nvrtc-cu12==12.3.107" ${dockerfile_name} + sed -i "${dockerfile_line}i RUN pip3.10 install nvidia-cuda-nvrtc-cu12==12.4.127 nvidia-cuda-runtime-cu12==12.4.127 nvidia-cuda-cupti-cu12==12.4.127 nvidia-cudnn-cu12==9.1.0.70 nvidia-cublas-cu12==12.4.5.8 nvidia-cufft-cu12==11.2.1.3 nvidia-curand-cu12==10.3.5.147 nvidia-cusolver-cu12==11.6.1.9 nvidia-cusparse-cu12==12.3.1.170 nvidia-cusparselt-cu12==0.6.2 nvidia-nccl-cu12==2.28.3 nvidia-nvtx-cu12==12.4.127 nvidia-nvjitlink-cu12==12.4.127" ${dockerfile_name} sed -i 's#RUN bash /build_scripts/install_trt.sh#RUN bash /build_scripts/install_trt.sh trt8616#g' ${dockerfile_name} sed -i 's#RUN bash /build_scripts/install_cudnn.sh cudnn841#RUN bash /build_scripts/install_cudnn.sh cudnn911#g' ${dockerfile_name} sed -i 's#ENV CUDNN_VERSION=8.4.1#ENV CUDNN_VERSION=9.1.1#g' ${dockerfile_name} From 68250cae466fa54d0033a7be2bd8332ec93bc56a Mon Sep 17 00:00:00 2001 From: gouzi <530971494@qq.com> Date: Tue, 21 Jul 2026 14:35:21 +0800 Subject: [PATCH 11/14] Use CUDA 12.8 build image without TensorRT --- .github/workflows/docker.yml | 2 +- tools/dockerfile/ci_dockerfile.sh | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 3c3ab2dcbeb288..128443d2ff9267 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -75,7 +75,7 @@ jobs: docker_cpu_file: Dockerfile.cuda9_cudnn7_gcc48_py35_centos6 docker_sot_file: Dockerfile.gcc133_ubuntu24_cpu_sot docker_coverage_file: Dockerfile.cuda117_cudnn8_gcc82_ubuntu18_coverage - docker_build_file: Dockerfile.cuda12.4_cudnn9_gcc11_trt8 + docker_build_file: Dockerfile.cuda12.8_cudnn9_gcc11 docker_distribute_file: Dockerfile.cuda123_cudnn9_gcc122_ubuntu20 docker_xpu_file: Dockerfile.develop.xre.ubuntu22 docker_npu_file: Dockerfile.develop.npu diff --git a/tools/dockerfile/ci_dockerfile.sh b/tools/dockerfile/ci_dockerfile.sh index 61eb22a26b9602..a7c7e4dfe70e1d 100644 --- a/tools/dockerfile/ci_dockerfile.sh +++ b/tools/dockerfile/ci_dockerfile.sh @@ -58,20 +58,20 @@ function make_sot_dockerfile(){ function make_ce_framework_dockerfile(){ - dockerfile_name="Dockerfile.cuda12.4_cudnn9_gcc11_trt8" - sed "s##nvidia/cuda:12.4.1-cudnn-devel-ubuntu20.04#g" ./Dockerfile.ubuntu20 >${dockerfile_name} + dockerfile_name="Dockerfile.cuda12.8_cudnn9_gcc11" + sed "s##nvidia/cuda:12.8.1-cudnn-devel-ubuntu20.04#g" ./Dockerfile.ubuntu20 >${dockerfile_name} dockerfile_line=$(wc -l ${dockerfile_name}|awk '{print $1}') - sed -i "s##ENV LD_LIBRARY_PATH=/usr/local/cuda-12.4/targets/x86_64-linux/lib:\$LD_LIBRARY_PATH #g" ${dockerfile_name} + sed -i "s##ENV LD_LIBRARY_PATH=/usr/local/cuda-12.8/targets/x86_64-linux/lib:\$LD_LIBRARY_PATH #g" ${dockerfile_name} sed -i 's###g' ${dockerfile_name} sed -i "7i RUN chmod 777 /tmp" ${dockerfile_name} sed -i "${dockerfile_line}i RUN wget --no-check-certificate -q https://paddle-edl.bj.bcebos.com/hadoop-2.7.7.tar.gz \&\& \ tar -xzf hadoop-2.7.7.tar.gz && mv hadoop-2.7.7 /usr/local/" ${dockerfile_name} sed -i "${dockerfile_line}i RUN apt-get update && apt install -y zstd pigz libcurl4-openssl-dev gettext ninja-build" ${dockerfile_name} sed -i "${dockerfile_line}i RUN pip3.10 install wheel distro jinja2 bce-python-sdk==0.8.74" ${dockerfile_name} - sed -i "${dockerfile_line}i RUN pip3.10 install nvidia-cuda-nvrtc-cu12==12.4.127 nvidia-cuda-runtime-cu12==12.4.127 nvidia-cuda-cupti-cu12==12.4.127 nvidia-cudnn-cu12==9.1.0.70 nvidia-cublas-cu12==12.4.5.8 nvidia-cufft-cu12==11.2.1.3 nvidia-curand-cu12==10.3.5.147 nvidia-cusolver-cu12==11.6.1.9 nvidia-cusparse-cu12==12.3.1.170 nvidia-cusparselt-cu12==0.6.2 nvidia-nccl-cu12==2.28.3 nvidia-nvtx-cu12==12.4.127 nvidia-nvjitlink-cu12==12.4.127" ${dockerfile_name} - sed -i 's#RUN bash /build_scripts/install_trt.sh#RUN bash /build_scripts/install_trt.sh trt8616#g' ${dockerfile_name} - sed -i 's#RUN bash /build_scripts/install_cudnn.sh cudnn841#RUN bash /build_scripts/install_cudnn.sh cudnn911#g' ${dockerfile_name} - sed -i 's#ENV CUDNN_VERSION=8.4.1#ENV CUDNN_VERSION=9.1.1#g' ${dockerfile_name} + sed -i "${dockerfile_line}i RUN pip3.10 install nvidia-cuda-nvrtc-cu12==12.8.61 nvidia-cuda-runtime-cu12==12.8.57 nvidia-cuda-cupti-cu12==12.8.57 nvidia-cudnn-cu12==9.7.1.26 nvidia-cublas-cu12==12.8.3.14 nvidia-cufft-cu12==11.3.3.41 nvidia-curand-cu12==10.3.9.55 nvidia-cusolver-cu12==11.7.2.55 nvidia-cusparse-cu12==12.5.7.53 nvidia-cusparselt-cu12==0.6.3 nvidia-nccl-cu12==2.28.3 nvidia-nvtx-cu12==12.8.55 nvidia-nvjitlink-cu12==12.8.61 nvidia-cufile-cu12==1.13.0.11" ${dockerfile_name} + sed -i 's#RUN bash /build_scripts/install_trt.sh##g' ${dockerfile_name} + sed -i 's#RUN bash /build_scripts/install_cudnn.sh cudnn841##g' ${dockerfile_name} + sed -i 's#ENV CUDNN_VERSION=8.4.1#ENV CUDNN_VERSION=9.7.1#g' ${dockerfile_name} sed -i 's#RUN bash /build_scripts/install_gcc.sh gcc82#RUN bash /build_scripts/install_gcc.sh gcc11#g' ${dockerfile_name} sed -i 's#/usr/local/gcc-8.2/bin/gcc#/usr/local/gcc-11.5/bin/gcc#g' ${dockerfile_name} sed -i 's#/usr/local/gcc-8.2/bin/g++#/usr/local/gcc-11.5/bin/g++#g' ${dockerfile_name} From f5ea56cc025bc44d02f909acc98a5c05de382beb Mon Sep 17 00:00:00 2001 From: gouzi <530971494@qq.com> Date: Wed, 22 Jul 2026 00:30:17 +0800 Subject: [PATCH 12/14] Enable Python faulthandler for CE framework test --- .github/workflows/_CE-Framework.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/_CE-Framework.yml b/.github/workflows/_CE-Framework.yml index 57a11be4a71b8f..ec2b549270272a 100644 --- a/.github/workflows/_CE-Framework.yml +++ b/.github/workflows/_CE-Framework.yml @@ -299,6 +299,7 @@ jobs: run: | docker exec -t ${{ env.container_name }} /bin/bash -c ' export PATH=$(pwd)/run_env:${PATH} + export PYTHONFAULTHANDLER=1 cd /PaddleTest/framework/api rm ./device/test_cuda_get_device_capability.py bash run_paddle_ci.sh From 32ac2ef000eb91790f75bf399276faa25360047f Mon Sep 17 00:00:00 2001 From: gouzi <530971494@qq.com> Date: Wed, 22 Jul 2026 14:17:25 +0800 Subject: [PATCH 13/14] Avoid overriding system libstdc++ in GCC 11 image --- tools/dockerfile/build_scripts/install_gcc.sh | 3 --- 1 file changed, 3 deletions(-) diff --git a/tools/dockerfile/build_scripts/install_gcc.sh b/tools/dockerfile/build_scripts/install_gcc.sh index 3a504f49e69e50..bd1598ccf3a7b5 100644 --- a/tools/dockerfile/build_scripts/install_gcc.sh +++ b/tools/dockerfile/build_scripts/install_gcc.sh @@ -89,9 +89,6 @@ elif [ "$1" == "gcc11" ]; then ../gcc-${GCC_VERSION}/configure --prefix=${GCC_PREFIX} --enable-checking=release --enable-languages=c,c++ --disable-multilib && \ make -j$(nproc) && make install cd .. && rm -rf temp_gcc11 gcc-${GCC_VERSION} ${GCC_ARCHIVE} - cp ${lib_so_6} ${lib_so_6}.bak && rm -f ${lib_so_6} && - ln -s ${GCC_PREFIX}/lib64/libstdc++.so.6 ${lib_so_6} && \ - cp ${GCC_PREFIX}/lib64/libstdc++.so.6.* ${lib_path} elif [ "$1" == "gcc152" ]; then GCC_VERSION=${GCC_VERSION:-15.2.0} GCC_MAJOR_MINOR=$(echo ${GCC_VERSION} | cut -d. -f1,2) From e38837f0b251063c5733ef22302b9ef60c8e19d5 Mon Sep 17 00:00:00 2001 From: gouzi <530971494@qq.com> Date: Wed, 22 Jul 2026 18:00:24 +0800 Subject: [PATCH 14/14] Include docker build scripts in image cache key --- .github/workflows/docker.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 128443d2ff9267..7febd9c583bcff 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -108,7 +108,11 @@ jobs: fi for name in "${!docker_files[@]}" do - md5_value=`md5sum tools/dockerfile/${docker_files[$name]} | awk '{print $1}'` + if grep -q "tools/dockerfile/build_scripts" tools/dockerfile/${docker_files[$name]}; then + md5_value=`(md5sum tools/dockerfile/${docker_files[$name]}; find tools/dockerfile/build_scripts -type f -print | sort | xargs md5sum) | md5sum | awk '{print $1}'` + else + md5_value=`md5sum tools/dockerfile/${docker_files[$name]} | awk '{print $1}'` + fi if [ $name == "docker_dcu" ]; then md5_value="76937a563116f6008c8ca4cb4f592759" fi