Skip to content

Commit

Permalink
550 savant cupy integration (#555)
Browse files Browse the repository at this point in the history
  • Loading branch information
denisvmedyantsev authored Nov 29, 2023
1 parent c3aaf8c commit 347c607
Show file tree
Hide file tree
Showing 75 changed files with 805 additions and 541 deletions.
6 changes: 4 additions & 2 deletions .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,10 @@ Makefile
**/*.egg-info/
**/build/
**/cmake-build-debug/
downloads/
models/
cache/
var/
data/
logs/
.venv/
env/
venv/
9 changes: 4 additions & 5 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ __pycache__/
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
Expand Down Expand Up @@ -57,11 +56,11 @@ coverage.xml
docs/build/
generated

# local cached models
models
# cached models, downloads, etc.
cache

# data
# data (sample video)
data

# logs
# logs (perf measurement)
logs
7 changes: 5 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -119,13 +119,16 @@ run-dev:
--net=host --privileged \
-e DISPLAY=$(DISPLAY) \
-e XAUTHORITY=/tmp/.docker.xauth \
-e MODEL_PATH=/cache/models \
-e DOWNLOAD_PATH=/cache/downloads \
-e CUPY_CACHE_DIR=/cache/cupy \
-e NUMBA_CACHE_DIR=/cache/numba \
-e ZMQ_SRC_ENDPOINT=router+bind:ipc:///tmp/zmq-sockets/input-video.ipc \
-e ZMQ_SINK_ENDPOINT=pub+bind:ipc:///tmp/zmq-sockets/output-video.ipc \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-v /tmp/.docker.xauth:/tmp/.docker.xauth \
-v `pwd`/data:/data \
-v `pwd`/downloads:/downloads \
-v `pwd`/models:/models \
-v `pwd`/cache:/cache \
-v `pwd`/gst_plugins:$(PROJECT_PATH)/gst_plugins \
-v `pwd`/samples:$(PROJECT_PATH)/samples \
-v `pwd`/savant:$(PROJECT_PATH)/savant \
Expand Down
26 changes: 13 additions & 13 deletions docker/Dockerfile.deepstream
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ RUN python -m pip install --no-cache-dir --upgrade pip
# Savant python package builder
FROM base_builder as savant_build

RUN apt-get install --no-install-recommends -y python3.8-venv
RUN apt update && apt install --no-install-recommends -y python3.8-venv

RUN python3 -m pip install setuptools wheel build

Expand Down Expand Up @@ -57,8 +57,8 @@ RUN if [ "$TARGETARCH" = "amd64" ]; then \
rm /etc/ld.so.conf.d/nvidia-tegra.conf; \
mkdir -p /opt/nvidia/l4t-packages/; \
touch /opt/nvidia/l4t-packages/.nv-l4t-disable-boot-fw-update-in-preinstall; \
apt-get update; \
apt-get install -y nvidia-l4t-multimedia; \
apt update; \
apt install -y nvidia-l4t-multimedia; \
fi

WORKDIR /libs/savanboost
Expand All @@ -82,18 +82,18 @@ ARG TARGETARCH
ARG DEEPSTREAM_VERSION

# remove nvidia repos (sometimes break down)
#RUN rm -r /etc/apt/sources.list.d/* && apt-get clean
#RUN rm -r /etc/apt/sources.list.d/* && apt clean

# install base packages
RUN apt-get update \
&& apt-get install --no-install-recommends -y \
RUN apt update \
&& apt install --no-install-recommends -y \
python3-pip \
python3-dev \
libcairo2-dev \
libgirepository1.0-dev \
python3-gst-1.0 \
gstreamer1.0-python3-plugin-loader \
&& apt-get install --reinstall -y \
&& apt install --reinstall -y \
gstreamer1.0-plugins-ugly \
libavutil56 \
libavformat58 \
Expand All @@ -104,8 +104,8 @@ RUN apt-get update \
libx265-179 \
libmpg123-0 \
libx264-155 \
&& apt-get autoremove -y \
&& apt-get clean \
&& apt autoremove -y \
&& apt clean \
&& rm -rf /var/lib/apt/lists/*

ARG PROJECT_PATH=/opt/savant
Expand Down Expand Up @@ -198,11 +198,11 @@ FROM base AS adapters

HEALTHCHECK NONE

RUN apt-get update \
&& apt-get install -y \
RUN apt update \
&& apt install -y \
gstreamer1.0-libav \
&& apt-get autoremove -y \
&& apt-get clean \
&& apt autoremove -y \
&& apt clean \
&& rm -rf /var/lib/apt/lists/*

COPY --from=mediamtx /mediamtx/mediamtx mediamtx/mediamtx
Expand Down
27 changes: 18 additions & 9 deletions docs/performance.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@
| [#456](https://github.com/insight-platform/Savant/issues/456) | 171.82 | 35.73 | |
| [#443](https://github.com/insight-platform/Savant/issues/443) | 178.01 | 33.75 | |
| [#443](https://github.com/insight-platform/Savant/issues/443) (queue length 10) | 161.77 | 37.95 | |
| [#352](https://github.com/insight-platform/Savant/issues/352) | 369.37 | 48.13 | 72.04 |
| [#352](https://github.com/insight-platform/Savant/issues/352) | 371.42 | 53.67? | 70.58 |
| [#550](https://github.com/insight-platform/Savant/issues/550) | 371.29 | | 71.79 |

### conditional_video_processing

Expand All @@ -45,23 +46,26 @@
| [#407](https://github.com/insight-platform/Savant/issues/407) | 127.37 | 27.61 | |
| [#456](https://github.com/insight-platform/Savant/issues/456) | 127.23 | 28.71 | |
| [#443](https://github.com/insight-platform/Savant/issues/443) | 130.15 | 28.72 | |
| [#352](https://github.com/insight-platform/Savant/issues/352) | 225.87 | 36.45 | 50.87 |
| [#352](https://github.com/insight-platform/Savant/issues/352) | 224.22 | 36.45? | 48.92 |
| [#550](https://github.com/insight-platform/Savant/issues/550) | 229.22 | | 49.77 |

### intersection_traffic_meter (yolov8m)

| Savant ver. | A4000 | Xavier NX | Orin Nano |
|---------------------------------------------------------------|--------|-----------|-----------|
| [#356](https://github.com/insight-platform/Savant/issues/356) | 93.03 | 21.22 | |
| [#443](https://github.com/insight-platform/Savant/issues/443) | 94.56 | 21.56 | |
| [#352](https://github.com/insight-platform/Savant/issues/352) | 261.64 | 32.15 | 46.28 |
| [#352](https://github.com/insight-platform/Savant/issues/352) | 264.02 | 32.15? | 41.14 |
| [#550](https://github.com/insight-platform/Savant/issues/550) | 268.50 | | 41.11 |

### license_plate_recognition

| Savant ver. | A4000 | Xavier NX | Orin Nano |
|---------------------------------------------------------------|--------|-----------|-----------|
| [#455](https://github.com/insight-platform/Savant/issues/455) | 92.4 | 25.29 | |
| [#443](https://github.com/insight-platform/Savant/issues/443) | 92.73 | 25.32 | |
| [#352](https://github.com/insight-platform/Savant/issues/352) | 271.2 | 35.90 | 43.44 |
| [#352](https://github.com/insight-platform/Savant/issues/352) | 270.99 | 35.90? | 42.24 |
| [#550](https://github.com/insight-platform/Savant/issues/550) | 272.64 | | 41.86 |

### nvidia_car_classification

Expand All @@ -77,7 +81,8 @@
| [#456](https://github.com/insight-platform/Savant/issues/456) | 150.07 | 38.76 | |
| [#443](https://github.com/insight-platform/Savant/issues/443) | 151.47 | 42.00 | |
| [#443](https://github.com/insight-platform/Savant/issues/443) (queue length 10) | 149.89 | 41.79 | |
| [#352](https://github.com/insight-platform/Savant/issues/352) | 464.44 | 64.33 | 132.76 |
| [#352](https://github.com/insight-platform/Savant/issues/352) | 475.19 | 64.33? | 133.48 |
| [#550](https://github.com/insight-platform/Savant/issues/550) | 519.29 | | 144.69 |

### opencv_cuda_bg_remover_mog2

Expand All @@ -93,7 +98,8 @@
| [#456](https://github.com/insight-platform/Savant/issues/456) | 606.74 | 95.05 | |
| [#443](https://github.com/insight-platform/Savant/issues/443) | 610.06 | 94.00 | |
| [#443](https://github.com/insight-platform/Savant/issues/443) (queue length 10) | 618.57 | 95.59 | |
| [#352](https://github.com/insight-platform/Savant/issues/352) | 743.37 | 102.53 | 137.4 |
| [#352](https://github.com/insight-platform/Savant/issues/352) | 740.03 | 102.53? | 130.39 |
| [#550](https://github.com/insight-platform/Savant/issues/550) | 749.55 | | 128.76 |

### opencv_cuda_bg_remover_mog2 (multi-stream)

Expand All @@ -118,7 +124,8 @@
| [#456](https://github.com/insight-platform/Savant/issues/456) | 116.44 | 26.03 | |
| [#443](https://github.com/insight-platform/Savant/issues/443) | 124.87 | 29.13 | |
| [#443](https://github.com/insight-platform/Savant/issues/443) (queue length 10) | 110.64 | 26.73 | |
| [#352](https://github.com/insight-platform/Savant/issues/352) | 414.12 | 77.47 | 131.26 |
| [#352](https://github.com/insight-platform/Savant/issues/352) | 414.61 | 77.47? | 117.53 |
| [#550](https://github.com/insight-platform/Savant/issues/550) | 416.32 | | 117.34 |

### traffic_meter (yolov8m)

Expand All @@ -134,7 +141,8 @@
| [#456](https://github.com/insight-platform/Savant/issues/456) | 136.80 | 23.29 | |
| [#443](https://github.com/insight-platform/Savant/issues/443) | 134.26 | 23.98 | |
| [#443](https://github.com/insight-platform/Savant/issues/443) (queue length 10) | 123.88 | 19.33 | |
| [#352](https://github.com/insight-platform/Savant/issues/352) | 257.66 | 54.74 | 101.18 |
| [#352](https://github.com/insight-platform/Savant/issues/352) | 256.09 | 54.74? | 41.02 |
| [#550](https://github.com/insight-platform/Savant/issues/550) | 255.94 | | 41.01 |

### yolov8_seg

Expand All @@ -149,4 +157,5 @@ Note: `yolov8_seg` always has a queue length of 10.
| [#407](https://github.com/insight-platform/Savant/issues/407) | 67.73 | 21.57 | |
| [#456](https://github.com/insight-platform/Savant/issues/456) | 68.48 | 21.71 | |
| [#443](https://github.com/insight-platform/Savant/issues/443) | 71.28 | 21.95 | |
| [#352](https://github.com/insight-platform/Savant/issues/352) | 81.58 | 24.73 | 38.76 |
| [#352](https://github.com/insight-platform/Savant/issues/352) | 85.69 | 24.73? | 35.96 |
| [#550](https://github.com/insight-platform/Savant/issues/550) | 91.04 | | 36.01 |
5 changes: 3 additions & 2 deletions samples/age_gender_recognition/docker-compose.l4t.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,12 @@ services:
restart: unless-stopped
volumes:
- zmq_sockets:/tmp/zmq-sockets
- ../../models/age_gender_recognition:/models
- ../../downloads/age_gender_recognition:/downloads
- ../../cache:/cache
- ..:/opt/savant/samples
command: samples/age_gender_recognition/module.yml
environment:
- MODEL_PATH=/cache/models/age_gender_recognition
- DOWNLOAD_PATH=/cache/downloads/age_gender_recognition
- ZMQ_SRC_ENDPOINT=sub+bind:ipc:///tmp/zmq-sockets/input-video.ipc
- ZMQ_SINK_ENDPOINT=pub+bind:ipc:///tmp/zmq-sockets/output-video.ipc
- METRICS_FRAME_PERIOD=1000
Expand Down
6 changes: 3 additions & 3 deletions samples/age_gender_recognition/docker-compose.x86.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,15 @@ services:

module:
image: ghcr.io/insight-platform/savant-deepstream:latest

restart: unless-stopped
volumes:
- zmq_sockets:/tmp/zmq-sockets
- ../../models/age_gender_recognition:/models
- ../../downloads/age_gender_recognition:/downloads
- ../../cache:/cache
- ..:/opt/savant/samples
command: samples/age_gender_recognition/module.yml
environment:
- MODEL_PATH=/cache/models/age_gender_recognition
- DOWNLOAD_PATH=/cache/downloads/age_gender_recognition
- ZMQ_SRC_ENDPOINT=sub+bind:ipc:///tmp/zmq-sockets/input-video.ipc
- ZMQ_SINK_ENDPOINT=pub+bind:ipc:///tmp/zmq-sockets/output-video.ipc
- METRICS_FRAME_PERIOD=1000
Expand Down
7 changes: 4 additions & 3 deletions samples/age_gender_recognition/module.yml
Original file line number Diff line number Diff line change
Expand Up @@ -73,10 +73,11 @@ pipeline:
# tracker
- element: nvtracker
properties:
tracker-width: 640
tracker-height: 640
ll-lib-file: /opt/nvidia/deepstream/deepstream/lib/libnvds_nvmultiobjecttracker.so
ll-config-file: ${oc.env:PROJECT_PATH}/samples/age_gender_recognition/config_tracker_NvDCF_perf.yml
ll-config-file: ${oc.env:PROJECT_PATH}/samples/assets/tracker/config_tracker_NvDCF_perf.yml
tracker-width: 960
tracker-height: 544
display-tracking-id: 0

# age-gender estimator
- element: nvinfer@attribute_model
Expand Down
5 changes: 3 additions & 2 deletions samples/animegan/docker-compose.x86.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,12 @@ services:
image: ghcr.io/insight-platform/savant-deepstream:latest
volumes:
- zmq_sockets:/tmp/zmq-sockets
- ../../models/animegan:/models
- ../../downloads/animegan:/downloads
- ../../cache:/cache
- ..:/opt/savant/samples
command: samples/animegan/module.yml
environment:
- MODEL_PATH=/cache/models/animegan
- DOWNLOAD_PATH=/cache/downloads/animegan
- ZMQ_SRC_ENDPOINT=router+bind:ipc:///tmp/zmq-sockets/input-video.ipc
- ZMQ_SINK_ENDPOINT=pub+bind:ipc:///tmp/zmq-sockets/output-video.ipc
- METRICS_FRAME_PERIOD=1000
Expand Down
5 changes: 3 additions & 2 deletions samples/area_object_counting/docker-compose.l4t.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,12 @@ services:
image: ghcr.io/insight-platform/savant-deepstream-l4t:latest
volumes:
- zmq_sockets:/tmp/zmq-sockets
- ../../models/area_object_counting:/models
- ../../downloads/area_object_counting:/downloads
- ../../cache:/cache
- .:/opt/savant/samples/area_object_counting
command: samples/area_object_counting/module.yml
environment:
- MODEL_PATH=/cache/models/area_object_counting
- DOWNLOAD_PATH=/cache/downloads/area_object_counting
- ZMQ_SRC_ENDPOINT=sub+bind:ipc:///tmp/zmq-sockets/input-video.ipc
- ZMQ_SINK_ENDPOINT=pub+bind:ipc:///tmp/zmq-sockets/output-video.ipc
- METRICS_FRAME_PERIOD=1000
Expand Down
5 changes: 3 additions & 2 deletions samples/area_object_counting/docker-compose.x86.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,12 @@ services:
image: ghcr.io/insight-platform/savant-deepstream:latest
volumes:
- zmq_sockets:/tmp/zmq-sockets
- ../../models/area_object_counting:/models
- ../../downloads/area_object_counting:/downloads
- ../../cache:/cache
- .:/opt/savant/samples/area_object_counting
command: samples/area_object_counting/module.yml
environment:
- MODEL_PATH=/cache/models/area_object_counting
- DOWNLOAD_PATH=/cache/downloads/area_object_counting
- ZMQ_SRC_ENDPOINT=sub+bind:ipc:///tmp/zmq-sockets/input-video.ipc
- ZMQ_SINK_ENDPOINT=pub+bind:ipc:///tmp/zmq-sockets/output-video.ipc
- METRICS_FRAME_PERIOD=1000
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
%YAML:1.0
################################################################################
# This is the default NvSORT tracker configuration file from Deepstream samples
################################################################################
# Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved.
#
# Permission is hereby granted, free of charge, to any person obtaining a
Expand Down
5 changes: 3 additions & 2 deletions samples/conditional_video_processing/docker-compose.l4t.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,12 @@ services:
restart: unless-stopped
volumes:
- zmq_sockets:/tmp/zmq-sockets
- ../../models/peoplenet_detector:/models
- ../../downloads/peoplenet_detector:/downloads
- ../../cache:/cache
- ..:/opt/savant/samples
command: samples/conditional_video_processing/demo.yml
environment:
- MODEL_PATH=/cache/models/peoplenet_detector
- DOWNLOAD_PATH=/cache/downloads/peoplenet_detector
- ZMQ_SRC_ENDPOINT=sub+bind:ipc:///tmp/zmq-sockets/input-video.ipc
- ZMQ_SINK_ENDPOINT=pub+bind:ipc:///tmp/zmq-sockets/output-video.ipc
- METRICS_FRAME_PERIOD=1000
Expand Down
5 changes: 3 additions & 2 deletions samples/conditional_video_processing/docker-compose.x86.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,12 @@ services:
restart: unless-stopped
volumes:
- zmq_sockets:/tmp/zmq-sockets
- ../../models/peoplenet_detector:/models
- ../../downloads/peoplenet_detector:/downloads
- ../../cache:/cache
- ..:/opt/savant/samples
command: samples/conditional_video_processing/demo.yml
environment:
- MODEL_PATH=/cache/models/peoplenet_detector
- DOWNLOAD_PATH=/cache/downloads/peoplenet_detector
- ZMQ_SRC_ENDPOINT=sub+bind:ipc:///tmp/zmq-sockets/input-video.ipc
- ZMQ_SINK_ENDPOINT=pub+bind:ipc:///tmp/zmq-sockets/output-video.ipc
- METRICS_FRAME_PERIOD=1000
Expand Down
13 changes: 8 additions & 5 deletions samples/face_reid/docker-compose.l4t.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,12 @@ services:
image: ghcr.io/insight-platform/savant-deepstream-l4t:latest
volumes:
- zmq_sockets:/tmp/zmq-sockets
- ../../models/face_reid:/models
- ../../downloads/face_reid:/downloads
- ../../cache:/cache
- ./src:/opt/savant/samples/face_reid
command: samples/face_reid/index_builder.yml
environment:
- MODEL_PATH=/cache/models/face_reid
- DOWNLOAD_PATH=/cache/downloads/face_reid
- ZMQ_SRC_ENDPOINT=rep+bind:ipc:///tmp/zmq-sockets/input-video.ipc
- ZMQ_SINK_ENDPOINT=pub+bind:ipc:///tmp/zmq-sockets/output-video.ipc
runtime: nvidia
Expand Down Expand Up @@ -62,11 +63,13 @@ services:
restart: unless-stopped
volumes:
- zmq_sockets:/tmp/zmq-sockets
- ../../models/face_reid:/models
- ../../downloads/face_reid:/downloads
- ..:/opt/savant/samples
- ../../cache:/cache
- ./src:/opt/savant/samples/face_reid
- ./index_files:/index
command: samples/face_reid/module.yml
environment:
- MODEL_PATH=/cache/models/face_reid
- DOWNLOAD_PATH=/cache/downloads/face_reid
- ZMQ_SRC_ENDPOINT=sub+bind:ipc:///tmp/zmq-sockets/input-video.ipc
- ZMQ_SINK_ENDPOINT=pub+bind:ipc:///tmp/zmq-sockets/output-video.ipc
- METRICS_FRAME_PERIOD=1000
Expand Down
Loading

0 comments on commit 347c607

Please sign in to comment.