From 6959f4269d8e0a1078b517173efc12865d93aef2 Mon Sep 17 00:00:00 2001 From: gouzi <530971494@qq.com> Date: Mon, 6 Jul 2026 01:03:10 +0800 Subject: [PATCH 01/12] [CI] Enable DCU C++20 toolchain baseline --- cmake/hip.cmake | 2 +- tools/dockerfile/Dockerfile.develop.dtk | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/cmake/hip.cmake b/cmake/hip.cmake index 4cf3140ba4e752..2b245c21b38f85 100644 --- a/cmake/hip.cmake +++ b/cmake/hip.cmake @@ -198,7 +198,7 @@ list(APPEND HIP_CXX_FLAGS -Wno-missing-braces) list(APPEND HIP_CXX_FLAGS -Wno-sometimes-uninitialized) list(APPEND HIP_CXX_FLAGS -Wno-deprecated-copy) list(APPEND HIP_CXX_FLAGS -Wno-pessimizing-move) -list(APPEND HIP_CXX_FLAGS -std=c++17) +list(APPEND HIP_CXX_FLAGS -std=c++20) list(APPEND HIP_CXX_FLAGS --gpu-max-threads-per-block=1024) if(CMAKE_BUILD_TYPE MATCHES Debug) diff --git a/tools/dockerfile/Dockerfile.develop.dtk b/tools/dockerfile/Dockerfile.develop.dtk index a04a6a363b05b4..f5c90fdc10e88b 100644 --- a/tools/dockerfile/Dockerfile.develop.dtk +++ b/tools/dockerfile/Dockerfile.develop.dtk @@ -10,12 +10,12 @@ RUN yum install -y bzip2-devel openssh-server elfutils-devel diffutils libtool i openssl-devel libjpeg-turbo-devel libpng-devel ninja-build pciutils libzstd-devel zstd COPY tools/dockerfile/build_scripts /build_scripts -RUN bash /build_scripts/install_gcc.sh gcc82 -RUN ln -sf /usr/local/gcc-8.2/bin/gcc /usr/local/bin/gcc -RUN ln -sf /usr/local/gcc-8.2/bin/g++ /usr/local/bin/g++ -RUN ln -sf /usr/local/gcc-8.2/bin/gcc /usr/bin/gcc -RUN ln -sf /usr/local/gcc-8.2/bin/g++ /usr/bin/g++ -ENV PATH=/usr/local/gcc-8.2/bin:$PATH +RUN bash /build_scripts/install_gcc.sh gcc122 +RUN ln -sf /usr/local/gcc-12.2/bin/gcc /usr/local/bin/gcc +RUN ln -sf /usr/local/gcc-12.2/bin/g++ /usr/local/bin/g++ +RUN ln -sf /usr/local/gcc-12.2/bin/gcc /usr/bin/gcc +RUN ln -sf /usr/local/gcc-12.2/bin/g++ /usr/bin/g++ +ENV PATH=/usr/local/gcc-12.2/bin:$PATH # workdir WORKDIR /opt From 4e922db3fea4f8875088f43463cba3b4b9c15b9a Mon Sep 17 00:00:00 2001 From: gouzi <530971494@qq.com> Date: Wed, 8 Jul 2026 23:48:12 +0800 Subject: [PATCH 02/12] [CI] let DCU docker image follow Dockerfile md5 --- .github/workflows/docker.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index f967e3cf938a61..01e2faa7a47c6a 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -109,9 +109,6 @@ jobs: for name in "${!docker_files[@]}" do md5_value=`md5sum tools/dockerfile/${docker_files[$name]} | awk '{print $1}'` - if [ $name == "docker_dcu" ]; then - md5_value="76937a563116f6008c8ca4cb4f592759" - fi if [ $name == "docker_npu" ]; then md5_value="a3793bdeea5ae881a0c1eaf4d7c30c64" fi From c0adfdbc76c16538f375eacd273987ec306b2e28 Mon Sep 17 00:00:00 2001 From: gouzi <530971494@qq.com> Date: Thu, 9 Jul 2026 08:08:54 +0800 Subject: [PATCH 03/12] [CI] detect lib64 path when installing GCC --- tools/dockerfile/build_scripts/install_gcc.sh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tools/dockerfile/build_scripts/install_gcc.sh b/tools/dockerfile/build_scripts/install_gcc.sh index 8461a7bd913828..0376f43f73e599 100644 --- a/tools/dockerfile/build_scripts/install_gcc.sh +++ b/tools/dockerfile/build_scripts/install_gcc.sh @@ -19,14 +19,14 @@ # Stop at any error, show all commands set -ex -if [ -f "/etc/redhat-release" ];then - lib_so_5=/usr/lib64/libgfortran.so.5 - lib_so_6=/usr/lib64/libstdc++.so.6 - lib_path=/usr/lib64 -else +if [ -d "/usr/lib/x86_64-linux-gnu" ];then lib_so_5=/usr/lib/x86_64-linux-gnu/libstdc++.so.5 lib_so_6=/usr/lib/x86_64-linux-gnu/libstdc++.so.6 lib_path=/usr/lib/x86_64-linux-gnu +else + lib_so_5=/usr/lib64/libgfortran.so.5 + lib_so_6=/usr/lib64/libstdc++.so.6 + lib_path=/usr/lib64 fi if [ "$1" == "gcc82" ]; then @@ -43,7 +43,7 @@ if [ "$1" == "gcc82" ]; then ../gcc-8.2.0/configure --prefix=/usr/local/gcc-8.2 --enable-threads=posix --disable-checking --disable-multilib && \ make -j8 && make install cd .. && rm -rf temp_gcc82 gcc-8.2.0 gcc-8.2.0.tar.xz - if [ -f "/etc/redhat-release" ];then + if [ "${lib_path}" == "/usr/lib64" ];then cp ${lib_so_6} ${lib_so_6}.bak && rm -f ${lib_so_6} && ln -s /usr/local/gcc-8.2/lib64/libgfortran.so.5 ${lib_so_5} && \ ln -s /usr/local/gcc-8.2/lib64/libstdc++.so.6 ${lib_so_6} && \ From e9adce2b04b9ffcb1198e40dc70de4622ae1be74 Mon Sep 17 00:00:00 2001 From: gouzi <530971494@qq.com> Date: Thu, 9 Jul 2026 08:18:51 +0800 Subject: [PATCH 04/12] [CI] check libstdc++ path before GCC install --- tools/dockerfile/build_scripts/install_gcc.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/dockerfile/build_scripts/install_gcc.sh b/tools/dockerfile/build_scripts/install_gcc.sh index 0376f43f73e599..c4387ff304e4ce 100644 --- a/tools/dockerfile/build_scripts/install_gcc.sh +++ b/tools/dockerfile/build_scripts/install_gcc.sh @@ -19,7 +19,7 @@ # Stop at any error, show all commands set -ex -if [ -d "/usr/lib/x86_64-linux-gnu" ];then +if [ -e "/usr/lib/x86_64-linux-gnu/libstdc++.so.6" ];then lib_so_5=/usr/lib/x86_64-linux-gnu/libstdc++.so.5 lib_so_6=/usr/lib/x86_64-linux-gnu/libstdc++.so.6 lib_path=/usr/lib/x86_64-linux-gnu From 35e05b92299a262dfc68fe66e828690aa55a2be6 Mon Sep 17 00:00:00 2001 From: gouzi <530971494@qq.com> Date: Thu, 9 Jul 2026 09:49:05 +0800 Subject: [PATCH 05/12] [CI] install DCU requirements from build context --- tools/dockerfile/Dockerfile.develop.dtk | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tools/dockerfile/Dockerfile.develop.dtk b/tools/dockerfile/Dockerfile.develop.dtk index f5c90fdc10e88b..459e2cb8c85288 100644 --- a/tools/dockerfile/Dockerfile.develop.dtk +++ b/tools/dockerfile/Dockerfile.develop.dtk @@ -52,11 +52,11 @@ RUN pip3.10 install pre-commit==2.17.0 pylint pytest astroid isort coverage qtco RUN pip3.10 install attrs pyyaml pathlib2 scipy requests psutil Cython clang-format==13.0.0 PyGithub # install Paddle requirement -RUN wget https://raw.githubusercontent.com/PaddlePaddle/Paddle/develop/python/requirements.txt -O requirements.txt && \ - pip3.10 install -r requirements.txt && rm -rf requirements.txt - -RUN wget https://raw.githubusercontent.com/PaddlePaddle/Paddle/develop/python/unittest_py/requirements.txt -O requirements.txt && \ - pip3.10 install -r requirements.txt && rm -rf requirements.txt +COPY ./python/requirements.txt /root/ +COPY ./python/unittest_py/requirements.txt /home/ +RUN pip3.10 install -r /root/requirements.txt && \ + pip3.10 install -r /home/requirements.txt && \ + rm -rf /root/requirements.txt /home/requirements.txt # git credential to skip password typing RUN git config --global credential.helper store && \ From ab2a5596fd175cdcda2edfac405d727be77b19cd Mon Sep 17 00:00:00 2001 From: gouzi <530971494@qq.com> Date: Thu, 9 Jul 2026 09:51:07 +0800 Subject: [PATCH 06/12] [CI] restore DCU requirements download --- tools/dockerfile/Dockerfile.develop.dtk | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tools/dockerfile/Dockerfile.develop.dtk b/tools/dockerfile/Dockerfile.develop.dtk index 459e2cb8c85288..f5c90fdc10e88b 100644 --- a/tools/dockerfile/Dockerfile.develop.dtk +++ b/tools/dockerfile/Dockerfile.develop.dtk @@ -52,11 +52,11 @@ RUN pip3.10 install pre-commit==2.17.0 pylint pytest astroid isort coverage qtco RUN pip3.10 install attrs pyyaml pathlib2 scipy requests psutil Cython clang-format==13.0.0 PyGithub # install Paddle requirement -COPY ./python/requirements.txt /root/ -COPY ./python/unittest_py/requirements.txt /home/ -RUN pip3.10 install -r /root/requirements.txt && \ - pip3.10 install -r /home/requirements.txt && \ - rm -rf /root/requirements.txt /home/requirements.txt +RUN wget https://raw.githubusercontent.com/PaddlePaddle/Paddle/develop/python/requirements.txt -O requirements.txt && \ + pip3.10 install -r requirements.txt && rm -rf requirements.txt + +RUN wget https://raw.githubusercontent.com/PaddlePaddle/Paddle/develop/python/unittest_py/requirements.txt -O requirements.txt && \ + pip3.10 install -r requirements.txt && rm -rf requirements.txt # git credential to skip password typing RUN git config --global credential.helper store && \ From 7ccb51999adf7287363f90617218981fd9a9fe1f Mon Sep 17 00:00:00 2001 From: gouzi <530971494@qq.com> Date: Thu, 9 Jul 2026 14:27:39 +0800 Subject: [PATCH 07/12] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20DTK=20=E4=B8=8B?= =?UTF-8?q?=E8=BD=BD=E9=93=BE=E6=8E=A5=E8=87=B3=E6=96=B0=E7=9A=84=E6=BA=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tools/dockerfile/Dockerfile.develop.dtk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/dockerfile/Dockerfile.develop.dtk b/tools/dockerfile/Dockerfile.develop.dtk index f5c90fdc10e88b..b78a57314e7dfc 100644 --- a/tools/dockerfile/Dockerfile.develop.dtk +++ b/tools/dockerfile/Dockerfile.develop.dtk @@ -100,7 +100,7 @@ RUN yum clean all && \ rm -rf /var/lib/yum/history # Install DTK -RUN wget -q --no-proxy https://cancon.hpccube.com:65024/file/1/DTK-24.04.1/CentOS7.6/DTK-24.04.1-CentOS7.6-x86_64.tar.gz --no-check-certificate && \ +RUN wget -q --no-proxy https://download.sourcefind.cn:65024/file/1/DTK-24.04.1/CentOS7.6/DTK-24.04.1-CentOS7.6-x86_64.tar.gz --no-check-certificate && \ tar zxf DTK-24.04.1-CentOS7.6-x86_64.tar.gz && rm -rf DTK-24.04.1-CentOS7.6-x86_64.tar.gz # Replace if you use other device type, e.g. Z100, Z100L, K100 RUN wget -q https://paddle-device.bj.bcebos.com/dcu/hyhal-K100AI.tar.gz && \ From dc37cc13da7e59660f17580a20fa69fa6352dafe Mon Sep 17 00:00:00 2001 From: gouzi <530971494@qq.com> Date: Fri, 10 Jul 2026 22:20:07 +0800 Subject: [PATCH 08/12] [CI] keep GCC runtimes isolated from system libraries --- tools/dockerfile/Dockerfile.develop.dtk | 1 + tools/dockerfile/Dockerfile.release.ubuntu20 | 1 + tools/dockerfile/build_scripts/install_gcc.sh | 25 +------------------ tools/dockerfile/centos7_manylinux.sh | 14 +++++------ tools/dockerfile/ubuntu20_release.sh | 3 +++ 5 files changed, 13 insertions(+), 31 deletions(-) diff --git a/tools/dockerfile/Dockerfile.develop.dtk b/tools/dockerfile/Dockerfile.develop.dtk index b78a57314e7dfc..1020033c50ceb9 100644 --- a/tools/dockerfile/Dockerfile.develop.dtk +++ b/tools/dockerfile/Dockerfile.develop.dtk @@ -16,6 +16,7 @@ RUN ln -sf /usr/local/gcc-12.2/bin/g++ /usr/local/bin/g++ RUN ln -sf /usr/local/gcc-12.2/bin/gcc /usr/bin/gcc RUN ln -sf /usr/local/gcc-12.2/bin/g++ /usr/bin/g++ ENV PATH=/usr/local/gcc-12.2/bin:$PATH +ENV LD_LIBRARY_PATH=/usr/local/gcc-12.2/lib64:/usr/local/gcc-12.2/lib:${LD_LIBRARY_PATH} # workdir WORKDIR /opt diff --git a/tools/dockerfile/Dockerfile.release.ubuntu20 b/tools/dockerfile/Dockerfile.release.ubuntu20 index 397ca3cdfce960..f6cb486a342d73 100644 --- a/tools/dockerfile/Dockerfile.release.ubuntu20 +++ b/tools/dockerfile/Dockerfile.release.ubuntu20 @@ -47,6 +47,7 @@ RUN ln -s /usr/local/gcc-12.1/bin/g++ /usr/local/bin/g++ RUN ln -s /usr/local/gcc-12.1/bin/gcc /usr/bin/gcc RUN ln -s /usr/local/gcc-12.1/bin/g++ /usr/bin/g++ ENV PATH=/usr/local/gcc-12.1/bin:$PATH +ENV LD_LIBRARY_PATH=/usr/local/gcc-12.1/lib64:/usr/local/gcc-12.1/lib:${LD_LIBRARY_PATH} RUN bash /build_scripts/install_cudnn.sh cudnn841 ENV CUDNN_VERSION=8.4.1 diff --git a/tools/dockerfile/build_scripts/install_gcc.sh b/tools/dockerfile/build_scripts/install_gcc.sh index c4387ff304e4ce..c52fa603d0438e 100644 --- a/tools/dockerfile/build_scripts/install_gcc.sh +++ b/tools/dockerfile/build_scripts/install_gcc.sh @@ -19,15 +19,7 @@ # Stop at any error, show all commands set -ex -if [ -e "/usr/lib/x86_64-linux-gnu/libstdc++.so.6" ];then - lib_so_5=/usr/lib/x86_64-linux-gnu/libstdc++.so.5 - lib_so_6=/usr/lib/x86_64-linux-gnu/libstdc++.so.6 - lib_path=/usr/lib/x86_64-linux-gnu -else - lib_so_5=/usr/lib64/libgfortran.so.5 - lib_so_6=/usr/lib64/libstdc++.so.6 - lib_path=/usr/lib64 -fi +# GCC is installed side-by-side. Callers select its runtime via LD_LIBRARY_PATH. if [ "$1" == "gcc82" ]; then wget -q --no-proxy https://paddle-ci.gz.bcebos.com/gcc-8.2.0.tar.xz @@ -43,12 +35,6 @@ if [ "$1" == "gcc82" ]; then ../gcc-8.2.0/configure --prefix=/usr/local/gcc-8.2 --enable-threads=posix --disable-checking --disable-multilib && \ make -j8 && make install cd .. && rm -rf temp_gcc82 gcc-8.2.0 gcc-8.2.0.tar.xz - if [ "${lib_path}" == "/usr/lib64" ];then - cp ${lib_so_6} ${lib_so_6}.bak && rm -f ${lib_so_6} && - ln -s /usr/local/gcc-8.2/lib64/libgfortran.so.5 ${lib_so_5} && \ - ln -s /usr/local/gcc-8.2/lib64/libstdc++.so.6 ${lib_so_6} && \ - cp /usr/local/gcc-8.2/lib64/libstdc++.so.6.0.25 ${lib_path} - fi elif [ "$1" == "gcc122" ]; then wget -q --no-proxy https://paddle-ci.gz.bcebos.com/gcc-12.2.0.tar.gz tar -xzf gcc-12.2.0.tar.gz && \ @@ -59,9 +45,6 @@ elif [ "$1" == "gcc122" ]; then ../gcc-12.2.0/configure --prefix=/usr/local/gcc-12.2 --enable-checking=release --enable-languages=c,c++ --disable-multilib && \ make -j8 && make install cd .. && rm -rf temp_gcc122 gcc-12.2.0 gcc-12.2.0.tar.gz - cp ${lib_so_6} ${lib_so_6}.bak && rm -f ${lib_so_6} && - ln -s /usr/local/gcc-12.2/lib64/libstdc++.so.6 ${lib_so_6} && \ - cp /usr/local/gcc-12.2/lib64/libstdc++.so.6.0.30 ${lib_path} elif [ "$1" == "gcc121" ]; then wget -q --no-proxy https://paddle-ci.gz.bcebos.com/gcc-12.1.0.tar.gz tar -xzf gcc-12.1.0.tar.gz && \ @@ -72,9 +55,6 @@ elif [ "$1" == "gcc121" ]; then ../gcc-12.1.0/configure --prefix=/usr/local/gcc-12.1 --enable-checking=release --enable-languages=c,c++ --disable-multilib && \ make -j8 && make install cd .. && rm -rf temp_gcc121 gcc-12.1.0 gcc-12.1.0.tar.gz - 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" == "gcc152" ]; then GCC_VERSION=${GCC_VERSION:-15.2.0} GCC_MAJOR_MINOR=$(echo ${GCC_VERSION} | cut -d. -f1,2) @@ -89,8 +69,5 @@ elif [ "$1" == "gcc152" ]; 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_gcc152 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} fi diff --git a/tools/dockerfile/centos7_manylinux.sh b/tools/dockerfile/centos7_manylinux.sh index b3cbc9ff754d6a..d196a488937374 100755 --- a/tools/dockerfile/centos7_manylinux.sh +++ b/tools/dockerfile/centos7_manylinux.sh @@ -20,42 +20,42 @@ REPO="${REPO:-paddledocker}" function make_cuda112cudnn821trt8034() { sed 's//11.2.2-cudnn8-devel-centos7/g' Dockerfile.centos >Dockerfile.tmp - sed -i "s#RUN bash build_scripts/build.sh#RUN bash build_scripts/install_gcc.sh gcc82 \nRUN mv /usr/bin/cc /usr/bin/cc.bak \&\& ln -s /usr/local/gcc-8.2/bin/gcc /usr/bin/cc \nENV PATH=/usr/local/gcc-8.2/bin:\$PATH \nRUN yum remove -y libcudnn8-devel.x86_64 libcudnn8.x86_64 \nRUN bash build_scripts/install_cudnn.sh cudnn821 \nENV CUDNN_VERSION=8.2.1 \nRUN bash build_scripts/build.sh#g" Dockerfile.tmp + sed -i "s#RUN bash build_scripts/build.sh#RUN bash build_scripts/install_gcc.sh gcc82 \nRUN mv /usr/bin/cc /usr/bin/cc.bak \&\& ln -s /usr/local/gcc-8.2/bin/gcc /usr/bin/cc \nENV PATH=/usr/local/gcc-8.2/bin:\$PATH \nENV LD_LIBRARY_PATH=/usr/local/gcc-8.2/lib64:/usr/local/gcc-8.2/lib:\$LD_LIBRARY_PATH \nRUN yum remove -y libcudnn8-devel.x86_64 libcudnn8.x86_64 \nRUN bash build_scripts/install_cudnn.sh cudnn821 \nENV CUDNN_VERSION=8.2.1 \nRUN bash build_scripts/build.sh#g" Dockerfile.tmp sed -i "s#build_scripts/install_trt.sh#build_scripts/install_trt.sh trt8034#g" Dockerfile.tmp sed -i '/CMD/iRUN ldconfig' Dockerfile.tmp } function make_cuda116cudnn840trt8406() { sed 's//11.6.2-cudnn8-devel-centos7/g' Dockerfile.centos >Dockerfile.tmp - sed -i "s#RUN bash build_scripts/build.sh#RUN bash build_scripts/install_gcc.sh gcc82 \nRUN mv /usr/bin/cc /usr/bin/cc.bak \&\& ln -s /usr/local/gcc-8.2/bin/gcc /usr/bin/cc \nENV PATH=/usr/local/gcc-8.2/bin:\$PATH \nRUN bash build_scripts/build.sh#g" Dockerfile.tmp + sed -i "s#RUN bash build_scripts/build.sh#RUN bash build_scripts/install_gcc.sh gcc82 \nRUN mv /usr/bin/cc /usr/bin/cc.bak \&\& ln -s /usr/local/gcc-8.2/bin/gcc /usr/bin/cc \nENV PATH=/usr/local/gcc-8.2/bin:\$PATH \nENV LD_LIBRARY_PATH=/usr/local/gcc-8.2/lib64:/usr/local/gcc-8.2/lib:\$LD_LIBRARY_PATH \nRUN bash build_scripts/build.sh#g" Dockerfile.tmp sed -i "s#build_scripts/install_trt.sh#build_scripts/install_trt.sh trt8406#g" Dockerfile.tmp sed -i '/CMD/iRUN ldconfig' Dockerfile.tmp } function make_cuda117cudnn841trt8424() { sed 's//11.7.1-devel-centos7/g' Dockerfile.centos >Dockerfile.tmp - sed -i "s#RUN bash build_scripts/build.sh#RUN bash build_scripts/install_gcc.sh gcc82 \nRUN mv /usr/bin/cc /usr/bin/cc.bak \&\& ln -s /usr/local/gcc-8.2/bin/gcc /usr/bin/cc \nENV PATH=/usr/local/gcc-8.2/bin:\$PATH \nRUN bash build_scripts/install_cudnn.sh cudnn841 \nENV CUDNN_VERSION=8.4.1 \nRUN bash build_scripts/build.sh#g" Dockerfile.tmp + sed -i "s#RUN bash build_scripts/build.sh#RUN bash build_scripts/install_gcc.sh gcc82 \nRUN mv /usr/bin/cc /usr/bin/cc.bak \&\& ln -s /usr/local/gcc-8.2/bin/gcc /usr/bin/cc \nENV PATH=/usr/local/gcc-8.2/bin:\$PATH \nENV LD_LIBRARY_PATH=/usr/local/gcc-8.2/lib64:/usr/local/gcc-8.2/lib:\$LD_LIBRARY_PATH \nRUN bash build_scripts/install_cudnn.sh cudnn841 \nENV CUDNN_VERSION=8.4.1 \nRUN bash build_scripts/build.sh#g" Dockerfile.tmp sed -i "s#build_scripts/install_trt.sh#build_scripts/install_trt.sh trt8424#g" Dockerfile.tmp sed -i '/CMD/iRUN ldconfig' Dockerfile.tmp } function make_cuda118cudnn860trt8531() { sed 's//11.8.0-devel-centos7/g' Dockerfile.centos >Dockerfile.tmp - sed -i "s#RUN bash build_scripts/build.sh#RUN bash build_scripts/install_gcc.sh gcc82 \nRUN mv /usr/bin/cc /usr/bin/cc.bak \&\& ln -s /usr/local/gcc-8.2/bin/gcc /usr/bin/cc \nENV PATH=/usr/local/gcc-8.2/bin:\$PATH \nRUN bash build_scripts/install_cudnn.sh cudnn860 \nENV CUDNN_VERSION=8.6.0 \nRUN bash build_scripts/build.sh#g" Dockerfile.tmp + sed -i "s#RUN bash build_scripts/build.sh#RUN bash build_scripts/install_gcc.sh gcc82 \nRUN mv /usr/bin/cc /usr/bin/cc.bak \&\& ln -s /usr/local/gcc-8.2/bin/gcc /usr/bin/cc \nENV PATH=/usr/local/gcc-8.2/bin:\$PATH \nENV LD_LIBRARY_PATH=/usr/local/gcc-8.2/lib64:/usr/local/gcc-8.2/lib:\$LD_LIBRARY_PATH \nRUN bash build_scripts/install_cudnn.sh cudnn860 \nENV CUDNN_VERSION=8.6.0 \nRUN bash build_scripts/build.sh#g" Dockerfile.tmp sed -i "s#build_scripts/install_trt.sh#build_scripts/install_trt.sh trt8531#g" Dockerfile.tmp sed -i '/CMD/iRUN ldconfig' Dockerfile.tmp } function make_cuda120cudnn891trt8616() { sed 's//12.0.1-devel-centos7/g' Dockerfile.centos >Dockerfile.tmp - sed -i "s#RUN bash build_scripts/build.sh#RUN bash build_scripts/install_gcc.sh gcc122 \nRUN mv /usr/bin/cc /usr/bin/cc.bak \&\& ln -s /usr/local/gcc-12.2/bin/gcc /usr/bin/cc \nENV PATH=/usr/local/gcc-12.2/bin:\$PATH \nRUN bash build_scripts/install_cudnn.sh cudnn891 \nENV CUDNN_VERSION=8.9.1 \nRUN bash build_scripts/build.sh#g" Dockerfile.tmp + sed -i "s#RUN bash build_scripts/build.sh#RUN bash build_scripts/install_gcc.sh gcc122 \nRUN mv /usr/bin/cc /usr/bin/cc.bak \&\& ln -s /usr/local/gcc-12.2/bin/gcc /usr/bin/cc \nENV PATH=/usr/local/gcc-12.2/bin:\$PATH \nENV LD_LIBRARY_PATH=/usr/local/gcc-12.2/lib64:/usr/local/gcc-12.2/lib:\$LD_LIBRARY_PATH \nRUN bash build_scripts/install_cudnn.sh cudnn891 \nENV CUDNN_VERSION=8.9.1 \nRUN bash build_scripts/build.sh#g" Dockerfile.tmp sed -i "s#build_scripts/install_trt.sh#build_scripts/install_trt.sh trt8616#g" Dockerfile.tmp sed -i '/CMD/iRUN ldconfig' Dockerfile.tmp } function make_cuda123cudnn900trt8616() { sed 's//12.3.1-devel-centos7/g' Dockerfile.centos >Dockerfile.tmp - sed -i "s#RUN bash build_scripts/build.sh#RUN bash build_scripts/install_gcc.sh gcc122 \nRUN mv /usr/bin/cc /usr/bin/cc.bak \&\& ln -s /usr/local/gcc-12.2/bin/gcc /usr/bin/cc \nENV PATH=/usr/local/gcc-12.2/bin:\$PATH \nRUN bash build_scripts/install_cudnn.sh cudnn900 \nENV CUDNN_VERSION=9.0.0 \nRUN bash build_scripts/build.sh#g" Dockerfile.tmp + sed -i "s#RUN bash build_scripts/build.sh#RUN bash build_scripts/install_gcc.sh gcc122 \nRUN mv /usr/bin/cc /usr/bin/cc.bak \&\& ln -s /usr/local/gcc-12.2/bin/gcc /usr/bin/cc \nENV PATH=/usr/local/gcc-12.2/bin:\$PATH \nENV LD_LIBRARY_PATH=/usr/local/gcc-12.2/lib64:/usr/local/gcc-12.2/lib:\$LD_LIBRARY_PATH \nRUN bash build_scripts/install_cudnn.sh cudnn900 \nENV CUDNN_VERSION=9.0.0 \nRUN bash build_scripts/build.sh#g" Dockerfile.tmp sed -i "s#build_scripts/install_trt.sh#build_scripts/install_trt.sh trt8616#g" Dockerfile.tmp sed -i '/CMD/iRUN ldconfig' Dockerfile.tmp } @@ -70,7 +70,7 @@ function make_cuda124cudnn911trt8616() { function make_cuda125cudnn911trt8616() { sed 's//12.5.1-cudnn-devel-rockylinux8/g' Dockerfile.rockylinux8 >Dockerfile.tmp - sed -i "s#RUN bash build_scripts/build.sh#RUN bash build_scripts/install_gcc.sh gcc122 \nRUN mv /usr/bin/cc /usr/bin/cc.bak \&\& ln -s /usr/local/gcc-12.2/bin/gcc /usr/bin/cc \nENV PATH=/usr/local/gcc-12.2/bin:\$PATH \nRUN bash build_scripts/install_cudnn.sh cudnn911 \nENV CUDNN_VERSION=9.1.1 \nRUN bash build_scripts/build.sh#g" Dockerfile.tmp + sed -i "s#RUN bash build_scripts/build.sh#RUN bash build_scripts/install_gcc.sh gcc122 \nRUN mv /usr/bin/cc /usr/bin/cc.bak \&\& ln -s /usr/local/gcc-12.2/bin/gcc /usr/bin/cc \nENV PATH=/usr/local/gcc-12.2/bin:\$PATH \nENV LD_LIBRARY_PATH=/usr/local/gcc-12.2/lib64:/usr/local/gcc-12.2/lib:\$LD_LIBRARY_PATH \nRUN bash build_scripts/install_cudnn.sh cudnn911 \nENV CUDNN_VERSION=9.1.1 \nRUN bash build_scripts/build.sh#g" Dockerfile.tmp sed -i "s#build_scripts/install_trt.sh#build_scripts/install_trt.sh trt8616#g" Dockerfile.tmp sed -i '/CMD/iRUN ldconfig' Dockerfile.tmp } diff --git a/tools/dockerfile/ubuntu20_release.sh b/tools/dockerfile/ubuntu20_release.sh index 2018ec1c981176..a6622a5fbf47e2 100755 --- a/tools/dockerfile/ubuntu20_release.sh +++ b/tools/dockerfile/ubuntu20_release.sh @@ -22,6 +22,7 @@ function base_image(){ sed -i 's###g' ${dockerfile_name} sed -i "s##WORKDIR /usr/bin ENV PATH=/usr/local/gcc-8.2/bin:\$PATH #g" ${dockerfile_name} sed -i "s#gcc121#gcc82#g" ${dockerfile_name} + sed -i '/ENV LD_LIBRARY_PATH=\/usr\/local\/gcc-12.1\/lib64:\/usr\/local\/gcc-12.1\/lib:${LD_LIBRARY_PATH}/d' ${dockerfile_name} sed -i "s#gcc-12.1#gcc-8.2#g" ${dockerfile_name} sed -i 's#RUN bash /build_scripts/install_trt.sh#RUN bash /build_scripts/install_trt.sh trt8034#g' ${dockerfile_name} sed -i 's#cudnn841#cudnn821#g' ${dockerfile_name} @@ -33,6 +34,7 @@ function base_image(){ sed -i 's###g' ${dockerfile_name} sed -i "s##WORKDIR /usr/bin ENV PATH=/usr/local/gcc-8.2/bin:\$PATH #g" ${dockerfile_name} sed -i "s#gcc121#gcc82#g" ${dockerfile_name} + sed -i '/ENV LD_LIBRARY_PATH=\/usr\/local\/gcc-12.1\/lib64:\/usr\/local\/gcc-12.1\/lib:${LD_LIBRARY_PATH}/d' ${dockerfile_name} sed -i "s#gcc-12.1#gcc-8.2#g" ${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#cudnn841#cudnn860#g' ${dockerfile_name} @@ -71,6 +73,7 @@ function base_image(){ sed -i 's##RUN apt-get install -y gcc g++ make#g' ${dockerfile_name} sed -i "s##WORKDIR /usr/bin ENV PATH=/usr/local/gcc-8.2/bin:\$PATH #g" ${dockerfile_name} sed -i "s#gcc121#gcc82#g" ${dockerfile_name} + sed -i '/ENV LD_LIBRARY_PATH=\/usr\/local\/gcc-12.1\/lib64:\/usr\/local\/gcc-12.1\/lib:${LD_LIBRARY_PATH}/d' ${dockerfile_name} sed -i "s#gcc-12.1#gcc-8.2#g" ${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} From d9e3864c1dd5f0d21ac647cb23dd526f666860d2 Mon Sep 17 00:00:00 2001 From: gouzi <530971494@qq.com> Date: Mon, 13 Jul 2026 17:39:02 +0800 Subject: [PATCH 09/12] [CI] force remove stale DCU containers --- .github/workflows/_Linux-DCU.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/_Linux-DCU.yml b/.github/workflows/_Linux-DCU.yml index c352cb8a612661..7e8c1376f522c3 100644 --- a/.github/workflows/_Linux-DCU.yml +++ b/.github/workflows/_Linux-DCU.yml @@ -77,6 +77,7 @@ jobs: GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }} home_dir: ${{ github.workspace }}/../../../.. run: | + docker ps -aq --filter "name=^/${TASK}-" | xargs -r docker rm -f container_name=${TASK}-$(date +%Y%m%d-%H%M%S) echo "container_name=${container_name}" >> ${{ github.env }} docker run --shm-size=128G \ @@ -187,8 +188,7 @@ jobs: - name: Terminate and delete the container if: always() run: | - docker stop ${container_name} - docker rm ${container_name} + docker rm -f ${container_name} test: name: Test From 709a5ac906accb5ce67554cbf54b1532770914f2 Mon Sep 17 00:00:00 2001 From: gouzi <530971494@qq.com> Date: Mon, 13 Jul 2026 17:44:10 +0800 Subject: [PATCH 10/12] [CI] clean up DCU containers after failures --- .github/workflows/_Linux-DCU.yml | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/.github/workflows/_Linux-DCU.yml b/.github/workflows/_Linux-DCU.yml index 7e8c1376f522c3..ca6c1df1769917 100644 --- a/.github/workflows/_Linux-DCU.yml +++ b/.github/workflows/_Linux-DCU.yml @@ -188,7 +188,9 @@ jobs: - name: Terminate and delete the container if: always() run: | - docker rm -f ${container_name} + if [[ -n "${container_name:-}" ]]; then + docker rm -f "${container_name}" + fi test: name: Test @@ -232,6 +234,7 @@ jobs: GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }} home_dir: ${{ github.workspace }}/../../../.. run: | + docker ps -aq --filter "name=^/${TASK}-" | xargs -r docker rm -f container_name=${TASK}-$(date +%Y%m%d-%H%M%S) echo "container_name=${container_name}" >> ${{ github.env }} docker run --ulimit nofile=102400 --ulimit core=-1 --shm-size=32g -d -t --name ${container_name} \ @@ -301,8 +304,9 @@ jobs: - name: Terminate and delete the container if: always() run: | - docker exec -t ${{ env.container_name }} /bin/bash -c ' - rm -rf * .[^.]* - ' - docker stop ${container_name} - docker rm ${container_name} + if [[ -n "${container_name:-}" ]]; then + timeout 10m docker exec -t "${container_name}" /bin/bash -c ' + rm -rf * .[^.]* + ' || true + docker rm -f "${container_name}" + fi From 451581e1280df50f93603e9f6f5a32fc3fbcf190 Mon Sep 17 00:00:00 2001 From: gouzi <530971494@qq.com> Date: Mon, 13 Jul 2026 17:46:34 +0800 Subject: [PATCH 11/12] [CI] simplify DCU container cleanup --- .github/workflows/_Linux-DCU.yml | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/.github/workflows/_Linux-DCU.yml b/.github/workflows/_Linux-DCU.yml index ca6c1df1769917..3ad36a4813ac39 100644 --- a/.github/workflows/_Linux-DCU.yml +++ b/.github/workflows/_Linux-DCU.yml @@ -188,9 +188,11 @@ jobs: - name: Terminate and delete the container if: always() run: | - if [[ -n "${container_name:-}" ]]; then - docker rm -f "${container_name}" - fi + set -e + cleanup_status=0 + docker exec -t "${container_name}" /bin/bash -c 'rm -rf * .[^.]*' || cleanup_status=$? + docker rm -f "${container_name}" + exit ${cleanup_status} test: name: Test @@ -304,9 +306,8 @@ jobs: - name: Terminate and delete the container if: always() run: | - if [[ -n "${container_name:-}" ]]; then - timeout 10m docker exec -t "${container_name}" /bin/bash -c ' - rm -rf * .[^.]* - ' || true - docker rm -f "${container_name}" - fi + set -e + cleanup_status=0 + docker exec -t "${container_name}" /bin/bash -c 'rm -rf * .[^.]*' || cleanup_status=$? + docker rm -f "${container_name}" + exit ${cleanup_status} From d56360215810a1183c6af84a521699579eeb4455 Mon Sep 17 00:00:00 2001 From: gouzi <530971494@qq.com> Date: Tue, 14 Jul 2026 01:04:56 +0800 Subject: [PATCH 12/12] [CI] run DCU cleanup commands directly --- .github/workflows/_Linux-DCU.yml | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/.github/workflows/_Linux-DCU.yml b/.github/workflows/_Linux-DCU.yml index 3ad36a4813ac39..954bfdc656abbd 100644 --- a/.github/workflows/_Linux-DCU.yml +++ b/.github/workflows/_Linux-DCU.yml @@ -189,10 +189,8 @@ jobs: if: always() run: | set -e - cleanup_status=0 - docker exec -t "${container_name}" /bin/bash -c 'rm -rf * .[^.]*' || cleanup_status=$? + docker exec -t "${container_name}" /bin/bash -c 'rm -rf * .[^.]*' docker rm -f "${container_name}" - exit ${cleanup_status} test: name: Test @@ -307,7 +305,5 @@ jobs: if: always() run: | set -e - cleanup_status=0 - docker exec -t "${container_name}" /bin/bash -c 'rm -rf * .[^.]*' || cleanup_status=$? + docker exec -t "${container_name}" /bin/bash -c 'rm -rf * .[^.]*' docker rm -f "${container_name}" - exit ${cleanup_status}