From 2705027ed8248c1220c828b664f9b43d6429a4cd Mon Sep 17 00:00:00 2001 From: Nicolas Mowen Date: Wed, 26 Feb 2025 08:35:47 -0700 Subject: [PATCH 1/8] Remove unneccessary trt wheels build --- docker/tensorrt/Dockerfile.amd64 | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/docker/tensorrt/Dockerfile.amd64 b/docker/tensorrt/Dockerfile.amd64 index 6be11c2104..2abf87a3ea 100644 --- a/docker/tensorrt/Dockerfile.amd64 +++ b/docker/tensorrt/Dockerfile.amd64 @@ -3,6 +3,9 @@ # https://askubuntu.com/questions/972516/debian-frontend-environment-variable ARG DEBIAN_FRONTEND=noninteractive +# Globally set pip break-system-packages option to avoid having to specify it every time +ARG PIP_BREAK_SYSTEM_PACKAGES=1 + # Make this a separate target so it can be built/cached optionally FROM wheels as trt-wheels ARG DEBIAN_FRONTEND @@ -14,11 +17,12 @@ COPY docker/tensorrt/requirements-amd64.txt /requirements-tensorrt.txt RUN mkdir -p /trt-wheels && pip3 wheel --wheel-dir=/trt-wheels -r /requirements-tensorrt.txt FROM tensorrt-base AS frigate-tensorrt +ARG PIP_BREAK_SYSTEM_PACKAGES ENV TRT_VER=8.6.1 -RUN python3 -m pip config set global.break-system-packages true -RUN --mount=type=bind,from=trt-wheels,source=/trt-wheels,target=/deps/trt-wheels \ - pip3 install -U /deps/trt-wheels/*.whl && \ - ldconfig + +# Install TensorRT +COPY docker/tensorrt/requirements-amd64.txt /requirements-tensorrt.txt +RUN pip3 install -U -r /requirements-tensorrt.txt && ldconfig WORKDIR /opt/frigate/ COPY --from=rootfs / / From ee2bccca35fba78d2a92b4faa389d92efc4eaf16 Mon Sep 17 00:00:00 2001 From: Nicolas Mowen Date: Wed, 26 Feb 2025 08:40:33 -0700 Subject: [PATCH 2/8] Cleanup --- docker/tensorrt/Dockerfile.amd64 | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/docker/tensorrt/Dockerfile.amd64 b/docker/tensorrt/Dockerfile.amd64 index 2abf87a3ea..e6429aa90c 100644 --- a/docker/tensorrt/Dockerfile.amd64 +++ b/docker/tensorrt/Dockerfile.amd64 @@ -6,21 +6,11 @@ ARG DEBIAN_FRONTEND=noninteractive # Globally set pip break-system-packages option to avoid having to specify it every time ARG PIP_BREAK_SYSTEM_PACKAGES=1 -# Make this a separate target so it can be built/cached optionally -FROM wheels as trt-wheels -ARG DEBIAN_FRONTEND -ARG TARGETARCH -RUN python3 -m pip config set global.break-system-packages true - -# Add TensorRT wheels to another folder -COPY docker/tensorrt/requirements-amd64.txt /requirements-tensorrt.txt -RUN mkdir -p /trt-wheels && pip3 wheel --wheel-dir=/trt-wheels -r /requirements-tensorrt.txt - FROM tensorrt-base AS frigate-tensorrt ARG PIP_BREAK_SYSTEM_PACKAGES ENV TRT_VER=8.6.1 -# Install TensorRT +# Install TensorRT wheels COPY docker/tensorrt/requirements-amd64.txt /requirements-tensorrt.txt RUN pip3 install -U -r /requirements-tensorrt.txt && ldconfig From 4f080fe68ed168d108136ba362248eda331401de Mon Sep 17 00:00:00 2001 From: Nicolas Mowen Date: Wed, 26 Feb 2025 09:07:03 -0700 Subject: [PATCH 3/8] Try without local cuda --- docker/tensorrt/Dockerfile.base | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/tensorrt/Dockerfile.base b/docker/tensorrt/Dockerfile.base index f9cdde5877..fd86924df4 100644 --- a/docker/tensorrt/Dockerfile.base +++ b/docker/tensorrt/Dockerfile.base @@ -24,7 +24,7 @@ ENV S6_CMD_WAIT_FOR_SERVICES_MAXTIME=0 COPY --from=trt-deps /usr/local/lib/libyolo_layer.so /usr/local/lib/libyolo_layer.so COPY --from=trt-deps /usr/local/src/tensorrt_demos /usr/local/src/tensorrt_demos -COPY --from=trt-deps /usr/local/cuda-12.* /usr/local/cuda +#COPY --from=trt-deps /usr/local/cuda-12.* /usr/local/cuda COPY docker/tensorrt/detector/rootfs/ / ENV YOLO_MODELS="" From 94c0f41704f29ddefdd8e7741788059fbf839470 Mon Sep 17 00:00:00 2001 From: Nicolas Mowen Date: Wed, 26 Feb 2025 09:36:19 -0700 Subject: [PATCH 4/8] Keep specific cuda libs only --- docker/tensorrt/Dockerfile.base | 7 ++++++- .../detector/rootfs/etc/ld.so.conf.d/cuda_tensorrt.conf | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/docker/tensorrt/Dockerfile.base b/docker/tensorrt/Dockerfile.base index fd86924df4..a6d774b662 100644 --- a/docker/tensorrt/Dockerfile.base +++ b/docker/tensorrt/Dockerfile.base @@ -22,9 +22,14 @@ FROM deps AS tensorrt-base #Disable S6 Global timeout ENV S6_CMD_WAIT_FOR_SERVICES_MAXTIME=0 +# COPY TensorRT Model Generation Deps COPY --from=trt-deps /usr/local/lib/libyolo_layer.so /usr/local/lib/libyolo_layer.so COPY --from=trt-deps /usr/local/src/tensorrt_demos /usr/local/src/tensorrt_demos -#COPY --from=trt-deps /usr/local/cuda-12.* /usr/local/cuda + +# COPY Individual CUDA deps +COPY --from=trt-deps /usr/local/cuda-12.3/targets/x86_64-linux/lib/libcurand.so.* /usr/local/cuda + + COPY docker/tensorrt/detector/rootfs/ / ENV YOLO_MODELS="" diff --git a/docker/tensorrt/detector/rootfs/etc/ld.so.conf.d/cuda_tensorrt.conf b/docker/tensorrt/detector/rootfs/etc/ld.so.conf.d/cuda_tensorrt.conf index 561b7bcd48..72eec56e09 100644 --- a/docker/tensorrt/detector/rootfs/etc/ld.so.conf.d/cuda_tensorrt.conf +++ b/docker/tensorrt/detector/rootfs/etc/ld.so.conf.d/cuda_tensorrt.conf @@ -1,5 +1,5 @@ /usr/local/lib -/usr/local/cuda/lib64 +/usr/local/cuda /usr/local/lib/python3.11/dist-packages/nvidia/cudnn/lib /usr/local/lib/python3.11/dist-packages/nvidia/cuda_runtime/lib /usr/local/lib/python3.11/dist-packages/nvidia/cublas/lib From 937921a8795e57fce66e72cb7ca9227f1b5c24c0 Mon Sep 17 00:00:00 2001 From: Nicolas Mowen Date: Wed, 26 Feb 2025 11:19:16 -0700 Subject: [PATCH 5/8] Cleanup --- docker/tensorrt/Dockerfile.base | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/tensorrt/Dockerfile.base b/docker/tensorrt/Dockerfile.base index a6d774b662..3de0269db3 100644 --- a/docker/tensorrt/Dockerfile.base +++ b/docker/tensorrt/Dockerfile.base @@ -27,7 +27,7 @@ COPY --from=trt-deps /usr/local/lib/libyolo_layer.so /usr/local/lib/libyolo_laye COPY --from=trt-deps /usr/local/src/tensorrt_demos /usr/local/src/tensorrt_demos # COPY Individual CUDA deps -COPY --from=trt-deps /usr/local/cuda-12.3/targets/x86_64-linux/lib/libcurand.so.* /usr/local/cuda +COPY --from=trt-deps /usr/local/cuda-12.3/targets/x86_64-linux/lib/libcurand.so.* /usr/local/cuda/ COPY docker/tensorrt/detector/rootfs/ / From 0fbdd2d43381f8054f84ecd1b97cc2090ea15cfd Mon Sep 17 00:00:00 2001 From: Nicolas Mowen Date: Wed, 26 Feb 2025 11:36:08 -0700 Subject: [PATCH 6/8] Add newer libcufft --- docker/tensorrt/requirements-amd64.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/docker/tensorrt/requirements-amd64.txt b/docker/tensorrt/requirements-amd64.txt index 8d520d9f90..0e003ca3d8 100644 --- a/docker/tensorrt/requirements-amd64.txt +++ b/docker/tensorrt/requirements-amd64.txt @@ -11,6 +11,7 @@ nvidia-cublas-cu11 == 11.11.3.6; platform_machine == 'x86_64' nvidia-cudnn-cu11 == 8.6.0.*; platform_machine == 'x86_64' nvidia-cudnn-cu12 == 9.5.0.*; platform_machine == 'x86_64' nvidia-cufft-cu11==10.*; platform_machine == 'x86_64' +nvidia-cufft-cu12==11.*; platform_machine == 'x86_64' onnx==1.16.*; platform_machine == 'x86_64' onnxruntime-gpu==1.20.*; platform_machine == 'x86_64' protobuf==3.20.3; platform_machine == 'x86_64' From cb99f627441b26e7fc5e5eafda3a6713ab25c175 Mon Sep 17 00:00:00 2001 From: Nicolas Mowen Date: Wed, 26 Feb 2025 11:36:22 -0700 Subject: [PATCH 7/8] remove target --- docker/tensorrt/trt.hcl | 1 - 1 file changed, 1 deletion(-) diff --git a/docker/tensorrt/trt.hcl b/docker/tensorrt/trt.hcl index ba3b932441..80757ba6d9 100644 --- a/docker/tensorrt/trt.hcl +++ b/docker/tensorrt/trt.hcl @@ -95,7 +95,6 @@ target "tensorrt" { wget = "target:wget", tensorrt-base = "target:tensorrt-base", rootfs = "target:rootfs" - wheels = "target:wheels" } target = "frigate-tensorrt" inherits = ["_build_args"] From 21aab91d1b9d7cf3d69504ba2d0eb8f5d4d0e499 Mon Sep 17 00:00:00 2001 From: Nicolas Mowen Date: Wed, 26 Feb 2025 11:54:25 -0700 Subject: [PATCH 8/8] Include more --- docker/tensorrt/Dockerfile.base | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/tensorrt/Dockerfile.base b/docker/tensorrt/Dockerfile.base index 3de0269db3..6d8d9591b0 100644 --- a/docker/tensorrt/Dockerfile.base +++ b/docker/tensorrt/Dockerfile.base @@ -28,7 +28,7 @@ COPY --from=trt-deps /usr/local/src/tensorrt_demos /usr/local/src/tensorrt_demos # COPY Individual CUDA deps COPY --from=trt-deps /usr/local/cuda-12.3/targets/x86_64-linux/lib/libcurand.so.* /usr/local/cuda/ - +COPY --from=trt-deps /usr/local/cuda-12.3/targets/x86_64-linux/lib/libnvrtc.so.* /usr/local/cuda/ COPY docker/tensorrt/detector/rootfs/ / ENV YOLO_MODELS=""