فهرست منبع

[WIP] opt ultra-infer build scripts (#2805)

* opt build scripts

* update 3.0rc paddle_inference url
zhang-prog 10 ماه پیش
والد
کامیت
d13d1009f6

+ 1 - 1
libs/ultra-infer/VERSION_NUMBER

@@ -1 +1 @@
-0.0.0
+1.0.0

+ 23 - 14
libs/ultra-infer/scripts/linux/_build_cpp.sh

@@ -2,10 +2,6 @@
 
 set -e
 
-TRT_VERSION='8.5.2.2'
-CUDA_VERSION='11.8'
-CUDNN_VERSION='8.6'
-
 # deal cmd input
 while [[ "$#" -gt 0 ]]; do
     case "$1" in
@@ -13,6 +9,13 @@ while [[ "$#" -gt 0 ]]; do
         --enable-benchmark) ENABLE_BENCHMARK="$2"; shift ;;
         --paddleinference-url) PADDLEINFERENCE_URL="$2"; shift ;;
         --paddleinference-version) PADDLEINFERENCE_VERSION="$2"; shift ;;
+        --enable-paddle-backend) ENABLE_PADDLE_BACKEND="$2"; shift ;;
+        --enable-ort-backend) ENABLE_ORT_BACKEND="$2"; shift ;;
+        --enable-openvino-backend) ENABLE_OPENVINO_BACKEND="$2"; shift ;;
+        --enable-trt-backend) ENABLE_TRT_BACKEND="$2"; shift ;;
+        --trt-directory) TRT_DIRECTORY="$2"; shift ;;
+        --enable-vision) ENABLE_VISION="$2"; shift ;;
+        --enable-text) ENABLE_TEXT="$2"; shift ;;
         *) echo "Unknown parameter passed: $1"; exit 1 ;;
     esac
     shift
@@ -37,9 +40,15 @@ ln -sf /opt/_internal/cpython-3.10.0/bin/pip3.10 /usr/bin/pip
 export LD_LIBRARY_PATH=/opt/_internal/cpython-3.10.0/lib:${LD_LIBRARY_PATH}
 export PATH=/opt/_internal/cpython-3.10.0/bin:${PATH}
 
-rm -rf "TensorRT-${TRT_VERSION}" "TensorRT-${TRT_VERSION}.Linux.x86_64-gnu.cuda-${CUDA_VERSION}.cudnn${CUDNN_VERSION}.tar.gz"
-http_proxy= https_proxy= wget "https://fastdeploy.bj.bcebos.com/resource/TensorRT/TensorRT-${TRT_VERSION}.Linux.x86_64-gnu.cuda-${CUDA_VERSION}.cudnn${CUDNN_VERSION}.tar.gz"
-tar -xzvf "TensorRT-${TRT_VERSION}.Linux.x86_64-gnu.cuda-${CUDA_VERSION}.cudnn${CUDNN_VERSION}.tar.gz"
+if [ "$ENABLE_TRT_BACKEND" = "ON" ] && [ "$TRT_DIRECTORY" = "Default" ]; then
+    TRT_VERSION='8.5.2.2'
+    CUDA_VERSION='11.8'
+    CUDNN_VERSION='8.6'
+    rm -rf "TensorRT-${TRT_VERSION}" "TensorRT-${TRT_VERSION}.Linux.x86_64-gnu.cuda-${CUDA_VERSION}.cudnn${CUDNN_VERSION}.tar.gz"
+    http_proxy= https_proxy= wget "https://fastdeploy.bj.bcebos.com/resource/TensorRT/TensorRT-${TRT_VERSION}.Linux.x86_64-gnu.cuda-${CUDA_VERSION}.cudnn${CUDNN_VERSION}.tar.gz"
+    tar -xzvf "TensorRT-${TRT_VERSION}.Linux.x86_64-gnu.cuda-${CUDA_VERSION}.cudnn${CUDNN_VERSION}.tar.gz"
+    TRT_DIRECTORY="/workspace/ultra-infer/TensorRT-${TRT_VERSION}"
+fi
 
 (
     cd /workspace/ultra-infer
@@ -49,15 +58,15 @@ tar -xzvf "TensorRT-${TRT_VERSION}.Linux.x86_64-gnu.cuda-${CUDA_VERSION}.cudnn${
         -DLIBRARY_NAME='ultra_infer_runtime' \
         -DCMAKE_INSTALL_PREFIX="${PWD}/ultra_infer_install" \
         -DWITH_GPU="${WITH_GPU}" \
-        -DENABLE_TRT_BACKEND="${WITH_GPU}" \
-        -DTRT_DIRECTORY="/workspace/ultra-infer/TensorRT-${TRT_VERSION}" \
-        -DENABLE_ORT_BACKEND=ON \
-        -DENABLE_PADDLE_BACKEND=ON \
+        -DENABLE_TRT_BACKEND="${ENABLE_TRT_BACKEND}"  \
+        -DTRT_DIRECTORY="${TRT_DIRECTORY}"  \
+        -DENABLE_ORT_BACKEND="${ENABLE_ORT_BACKEND}"  \
+        -DENABLE_PADDLE_BACKEND="${ENABLE_PADDLE_BACKEND}"  \
         -DPADDLEINFERENCE_URL="${PADDLEINFERENCE_URL}" \
         -DPADDLEINFERENCE_VERSION="${PADDLEINFERENCE_VERSION}" \
-        -DENABLE_OPENVINO_BACKEND=ON \
-        -DENABLE_VISION=ON \
-        -DENABLE_TEXT=ON \
+        -DENABLE_OPENVINO_BACKEND="${ENABLE_OPENVINO_BACKEND}" \
+        -DENABLE_VISION="${ENABLE_VISION}" \
+        -DENABLE_TEXT="${ENABLE_TEXT}" \
         -DBUILD_ULTRAINFER_PYTHON=OFF \
         -DBUILD_FD_TRITON_BACKEND=ON \
         -DENABLE_BENCHMARK="${ENABLE_BENCHMARK}" \

+ 23 - 14
libs/ultra-infer/scripts/linux/_build_py.sh

@@ -2,10 +2,6 @@
 
 set -e
 
-TRT_VERSION='8.5.2.2'
-CUDA_VERSION='11.8'
-CUDNN_VERSION='8.6'
-
 while [[ "$#" -gt 0 ]]; do
     case "$1" in
         --with-gpu) WITH_GPU="$2"; shift ;;
@@ -13,6 +9,13 @@ while [[ "$#" -gt 0 ]]; do
         --python) PYTHON_VERSION="$2"; shift ;;
         --paddleinference-url) PADDLEINFERENCE_URL="$2"; shift ;;
         --paddleinference-version) PADDLEINFERENCE_VERSION="$2"; shift ;;
+        --enable-paddle-backend) ENABLE_PADDLE_BACKEND="$2"; shift ;;
+        --enable-ort-backend) ENABLE_ORT_BACKEND="$2"; shift ;;
+        --enable-openvino-backend) ENABLE_OPENVINO_BACKEND="$2"; shift ;;
+        --enable-trt-backend) ENABLE_TRT_BACKEND="$2"; shift ;;
+        --trt-directory) TRT_DIRECTORY="$2"; shift ;;
+        --enable-vision) ENABLE_VISION="$2"; shift ;;
+        --enable-text) ENABLE_TEXT="$2"; shift ;;
         *) echo "Unknown parameter passed: $1"; exit 1 ;;
     esac
     shift
@@ -47,20 +50,26 @@ python -m pip install numpy pandas
 
 cd /workspace/ultra-infer
 
-rm -rf "TensorRT-${TRT_VERSION}" "TensorRT-${TRT_VERSION}.Linux.x86_64-gnu.cuda-${CUDA_VERSION}.cudnn${CUDNN_VERSION}.tar.gz"
-http_proxy= https_proxy= wget "https://fastdeploy.bj.bcebos.com/resource/TensorRT/TensorRT-${TRT_VERSION}.Linux.x86_64-gnu.cuda-${CUDA_VERSION}.cudnn${CUDNN_VERSION}.tar.gz"
-tar -xzvf "TensorRT-${TRT_VERSION}.Linux.x86_64-gnu.cuda-${CUDA_VERSION}.cudnn${CUDNN_VERSION}.tar.gz"
+if [ "$ENABLE_TRT_BACKEND" = "ON" ] && [ "$TRT_DIRECTORY" = "Default" ]; then
+    TRT_VERSION='8.5.2.2'
+    CUDA_VERSION='11.8'
+    CUDNN_VERSION='8.6'
+    rm -rf "TensorRT-${TRT_VERSION}" "TensorRT-${TRT_VERSION}.Linux.x86_64-gnu.cuda-${CUDA_VERSION}.cudnn${CUDNN_VERSION}.tar.gz"
+    http_proxy= https_proxy= wget "https://fastdeploy.bj.bcebos.com/resource/TensorRT/TensorRT-${TRT_VERSION}.Linux.x86_64-gnu.cuda-${CUDA_VERSION}.cudnn${CUDNN_VERSION}.tar.gz"
+    tar -xzvf "TensorRT-${TRT_VERSION}.Linux.x86_64-gnu.cuda-${CUDA_VERSION}.cudnn${CUDNN_VERSION}.tar.gz"
+    TRT_DIRECTORY="/workspace/ultra-infer/TensorRT-${TRT_VERSION}"
+fi
 
 export WITH_GPU="${WITH_GPU}"
-export ENABLE_TRT_BACKEND="${WITH_GPU}"
-export TRT_DIRECTORY="/workspace/ultra-infer/TensorRT-${TRT_VERSION}"
-export ENABLE_ORT_BACKEND=ON
-export ENABLE_PADDLE_BACKEND=ON
+export ENABLE_TRT_BACKEND="${ENABLE_TRT_BACKEND}"
+export TRT_DIRECTORY="${TRT_DIRECTORY}"
+export ENABLE_ORT_BACKEND="${ENABLE_ORT_BACKEND}"
+export ENABLE_PADDLE_BACKEND="${ENABLE_PADDLE_BACKEND}"
 export PADDLEINFERENCE_URL="${PADDLEINFERENCE_URL}"
 export PADDLEINFERENCE_VERSION="${PADDLEINFERENCE_VERSION}"
-export ENABLE_OPENVINO_BACKEND=ON
-export ENABLE_VISION=ON
-export ENABLE_TEXT=ON
+export ENABLE_OPENVINO_BACKEND="${ENABLE_OPENVINO_BACKEND}"
+export ENABLE_VISION="${ENABLE_VISION}"
+export ENABLE_TEXT="${ENABLE_TEXT}"
 export ENABLE_BENCHMARK="${ENABLE_BENCHMARK}"
 export CC=/usr/local/gcc-8.2/bin/gcc
 export CXX=/usr/local/gcc-8.2/bin/g++

+ 22 - 11
libs/ultra-infer/scripts/linux/set_up_docker_and_build_cpp.sh

@@ -1,23 +1,34 @@
 #!/bin/bash
 
 # input
-CONTAINER_NAME="${CONTAINER_NAME:-build_fd}"
+CONTAINER_NAME="${CONTAINER_NAME:-build}"
 WITH_GPU="${WITH_GPU:-ON}"
 ENABLE_BENCHMARK="${ENABLE_BENCHMARK:-OFF}"
 DEBUG="${DEBUG:-OFF}"
+ENABLE_PADDLE_BACKEND="${ENABLE_PADDLE_BACKEND:-ON}"
+ENABLE_ORT_BACKEND="${ENABLE_ORT_BACKEND:-ON}"
+ENABLE_OPENVINO_BACKEND="${ENABLE_OPENVINO_BACKEND:-ON}"
+ENABLE_TRT_BACKEND="${ENABLE_TRT_BACKEND:-ON}"
+TRT_DIRECTORY="${TRT_DIRECTORY:-Default}"
+ENABLE_VISION="${ENABLE_VISION:-ON}"
+ENABLE_TEXT="${ENABLE_TEXT:-ON}"
 
-DOCKER_IMAGE="ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/paddle_manylinux_devel:cuda11.8-cudnn8.6-trt8.5-gcc8.2"
-
-if [[ -z "$PADDLEINFERENCE_URL" ]]; then
-    echo "Error: PADDLEINFERENCE_URL is not set."
-    exit 1
+if [ "$WITH_GPU" = "OFF" ]; then
+    ENABLE_TRT_BACKEND="OFF"
 fi
 
-if [[ -z "$PADDLEINFERENCE_VERSION" ]]; then
-    echo "Error: PADDLEINFERENCE_VERSION is not set."
-    exit 1
+if [ "$ENABLE_PADDLE_BACKEND" = "ON" ] && [ -z "$PADDLEINFERENCE_URL" ]; then
+    if [ "$WITH_GPU" = "ON" ]; then
+        PADDLEINFERENCE_URL=https://paddle-qa.bj.bcebos.com/paddle-pipeline/GITHUB_Docker_Compile_Test_Cuda118_cudnn860_Trt8522_R1/791e99fc54c36151b9e5f1245e0fc8ae5d8a282b/paddle_inference.tgz
+        PADDLEINFERENCE_VERSION="3.0.0-rc"
+    else
+        PADDLEINFERENCE_URL=https://paddle-qa.bj.bcebos.com/paddle-pipeline/GITHUB_Docker_Compile_Test_CPU_R1/791e99fc54c36151b9e5f1245e0fc8ae5d8a282b/paddle_inference.tgz
+        PADDLEINFERENCE_VERSION="3.0.0-rc"
+    fi
 fi
 
+DOCKER_IMAGE="ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/paddle_manylinux_devel:cuda11.8-cudnn8.6-trt8.5-gcc8.2"
+
 # Set variables
 CMAKE_CXX_COMPILER="/usr/local/gcc-8.2/bin/g++"
 
@@ -36,7 +47,7 @@ docker run --gpus all -it --name="${CONTAINER_NAME}" --shm-size=128g --net=host
 "${DOCKER_IMAGE}" /bin/bash -c "
 ldconfig && \
 cd /workspace && \
-./ultra-infer/scripts/linux/_build_cpp.sh --with-gpu "${WITH_GPU}" --enable-benchmark "${ENABLE_BENCHMARK}" --paddleinference-url "${PADDLEINFERENCE_URL}" --paddleinference-version "${PADDLEINFERENCE_VERSION}" && \
+./ultra-infer/scripts/linux/_build_cpp.sh --with-gpu "${WITH_GPU}" --enable-benchmark "${ENABLE_BENCHMARK}" --paddleinference-url "${PADDLEINFERENCE_URL}" --paddleinference-version "${PADDLEINFERENCE_VERSION}" --enable-paddle-backend "${ENABLE_PADDLE_BACKEND}" --enable-ort-backend "${ENABLE_ORT_BACKEND}" --enable-openvino-backend "${ENABLE_OPENVINO_BACKEND}" --enable-trt-backend "${ENABLE_TRT_BACKEND}" --trt-directory "${TRT_DIRECTORY}" --enable-vision "${ENABLE_VISION}" --enable-text "${ENABLE_TEXT}" && \
 tail -f /dev/null"
 EOF
 )
@@ -49,7 +60,7 @@ docker run -it --name="${CONTAINER_NAME}" --shm-size=128g --net=host \
 -e "https_proxy=${https_proxy}" \
 "${DOCKER_IMAGE}" /bin/bash -c "
 cd /workspace && \
-./ultra-infer/scripts/linux/_build_cpp.sh --with-gpu "${WITH_GPU}" --enable-benchmark "${ENABLE_BENCHMARK}" --paddleinference-url "${PADDLEINFERENCE_URL}" --paddleinference-version "${PADDLEINFERENCE_VERSION}" && \
+./ultra-infer/scripts/linux/_build_cpp.sh --with-gpu "${WITH_GPU}" --enable-benchmark "${ENABLE_BENCHMARK}" --paddleinference-url "${PADDLEINFERENCE_URL}" --paddleinference-version "${PADDLEINFERENCE_VERSION}" --enable-paddle-backend "${ENABLE_PADDLE_BACKEND}" --enable-ort-backend "${ENABLE_ORT_BACKEND}" --enable-openvino-backend "${ENABLE_OPENVINO_BACKEND}" --enable-trt-backend "${ENABLE_TRT_BACKEND}" --trt-directory "${TRT_DIRECTORY}" --enable-vision "${ENABLE_VISION}" --enable-text "${ENABLE_TEXT}" && \
 tail -f /dev/null"
 EOF
 )

+ 22 - 11
libs/ultra-infer/scripts/linux/set_up_docker_and_build_py.sh

@@ -1,24 +1,35 @@
 #!/bin/bash
 
 # input
-CONTAINER_NAME="${CONTAINER_NAME:-build_fd}"
+CONTAINER_NAME="${CONTAINER_NAME:-build}"
 WITH_GPU="${WITH_GPU:-ON}"
 ENABLE_BENCHMARK="${ENABLE_BENCHMARK:-OFF}"
 DEBUG="${DEBUG:-OFF}"
 PYTHON_VERSION="${PYTHON_VERSION:-3.10.0}"
+ENABLE_PADDLE_BACKEND="${ENABLE_PADDLE_BACKEND:-ON}"
+ENABLE_ORT_BACKEND="${ENABLE_ORT_BACKEND:-ON}"
+ENABLE_OPENVINO_BACKEND="${ENABLE_OPENVINO_BACKEND:-ON}"
+ENABLE_TRT_BACKEND="${ENABLE_TRT_BACKEND:-ON}"
+TRT_DIRECTORY="${TRT_DIRECTORY:-Default}"
+ENABLE_VISION="${ENABLE_VISION:-ON}"
+ENABLE_TEXT="${ENABLE_TEXT:-ON}"
 
-DOCKER_IMAGE="ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/paddle_manylinux_devel:cuda11.8-cudnn8.6-trt8.5-gcc8.2"
-
-if [[ -z "$PADDLEINFERENCE_URL" ]]; then
-    echo "Error: PADDLEINFERENCE_URL is not set."
-    exit 1
+if [ "$WITH_GPU" = "OFF" ]; then
+    ENABLE_TRT_BACKEND="OFF"
 fi
 
-if [[ -z "$PADDLEINFERENCE_VERSION" ]]; then
-    echo "Error: PADDLEINFERENCE_VERSION is not set."
-    exit 1
+if [ "$ENABLE_PADDLE_BACKEND" = "ON" ] && [ -z "$PADDLEINFERENCE_URL" ]; then
+    if [ "$WITH_GPU" = "ON" ]; then
+        PADDLEINFERENCE_URL=https://paddle-qa.bj.bcebos.com/paddle-pipeline/GITHUB_Docker_Compile_Test_Cuda118_cudnn860_Trt8522_R1/791e99fc54c36151b9e5f1245e0fc8ae5d8a282b/paddle_inference.tgz
+        PADDLEINFERENCE_VERSION="3.0.0-rc"
+    else
+        PADDLEINFERENCE_URL=https://paddle-qa.bj.bcebos.com/paddle-pipeline/GITHUB_Docker_Compile_Test_CPU_R1/791e99fc54c36151b9e5f1245e0fc8ae5d8a282b/paddle_inference.tgz
+        PADDLEINFERENCE_VERSION="3.0.0-rc"
+    fi
 fi
 
+DOCKER_IMAGE="ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/paddle_manylinux_devel:cuda11.8-cudnn8.6-trt8.5-gcc8.2"
+
 # Set variables
 CMAKE_CXX_COMPILER="/usr/local/gcc-8.2/bin/g++"
 
@@ -37,7 +48,7 @@ docker run --gpus all -it --name="${CONTAINER_NAME}" --shm-size=128g --net=host
 "${DOCKER_IMAGE}" /bin/bash -c "
 cd /workspace && \
 ldconfig && \
-./ultra-infer/scripts/linux/_build_py.sh --with-gpu "${WITH_GPU}" --enable-benchmark "${ENABLE_BENCHMARK}" --python "${PYTHON_VERSION}" --paddleinference-url "${PADDLEINFERENCE_URL}" --paddleinference-version "${PADDLEINFERENCE_VERSION}" && \
+./ultra-infer/scripts/linux/_build_py.sh --with-gpu "${WITH_GPU}" --enable-benchmark "${ENABLE_BENCHMARK}" --python "${PYTHON_VERSION}" --paddleinference-url "${PADDLEINFERENCE_URL}" --paddleinference-version "${PADDLEINFERENCE_VERSION}" --enable-paddle-backend "${ENABLE_PADDLE_BACKEND}" --enable-ort-backend "${ENABLE_ORT_BACKEND}" --enable-openvino-backend "${ENABLE_OPENVINO_BACKEND}" --enable-trt-backend "${ENABLE_TRT_BACKEND}" --trt-directory "${TRT_DIRECTORY}" --enable-vision "${ENABLE_VISION}" --enable-text "${ENABLE_TEXT}" && \
 tail -f /dev/null"
 EOF
 )
@@ -50,7 +61,7 @@ docker run -it --name="${CONTAINER_NAME}" --shm-size=128g --net=host \
 -e "https_proxy=${https_proxy}" \
 "${DOCKER_IMAGE}" /bin/bash -c "
 cd /workspace && \
-./ultra-infer/scripts/linux/_build_py.sh --with-gpu "${WITH_GPU}" --enable-benchmark "${ENABLE_BENCHMARK}" --python "${PYTHON_VERSION}" --paddleinference-url "${PADDLEINFERENCE_URL}" --paddleinference-version "${PADDLEINFERENCE_VERSION}" && \
+./ultra-infer/scripts/linux/_build_py.sh --with-gpu "${WITH_GPU}" --enable-benchmark "${ENABLE_BENCHMARK}" --python "${PYTHON_VERSION}" --paddleinference-url "${PADDLEINFERENCE_URL}" --paddleinference-version "${PADDLEINFERENCE_VERSION}" --enable-paddle-backend "${ENABLE_PADDLE_BACKEND}" --enable-ort-backend "${ENABLE_ORT_BACKEND}" --enable-openvino-backend "${ENABLE_OPENVINO_BACKEND}" --enable-trt-backend "${ENABLE_TRT_BACKEND}" --trt-directory "${TRT_DIRECTORY}" --enable-vision "${ENABLE_VISION}" --enable-text "${ENABLE_TEXT}" && \
 tail -f /dev/null"
 EOF
 )