DeepStream는 NVIDIA에서 제공하는 Gstreamer의 확장으로, TensorRT의 기능을 포함 Gstreamer기능이라고 생각하면 되겠다.
Gstreamer 에 AI Inference 하기 위해서 별도의 Gstreamer Plugin을 추가하여 개발한 것이다.
DeepStream이 완전지원이 된다면, 사용자는 손쉽게 Gsteamer 처럼 파이프라인만 구축하고 실행을 하면 되기 때문에 상당히 매력적인 기능이다.
현재 Jetson TX2의 경우 JetPack 4.2 용 TensorRT 5.0 의 DeepStream은 아직 제공하고 있지 않으며, Jetpack 3.2 TensorRT 4.0 기준용 Version로 제공을 하고 있다.
TensorRT 5.0의 경우 Jetson AGX Xavier 에서만 제공하고 있다.
DeepStream SDK Download
https://developer.nvidia.com/embedded/deepstream-on-jetson-downloads
1.1 Jetson TX2 와 Jetson AGX Xavier 비교
DeepStream 에서 주요기능은 TensorRT의 역할일 것이며, 나머지는 Gstreamer와 거의 동일하기 때문에 크게 신경을 쓰지 않아도 될 것 같다.
가장 주목해서 봐야할 기능은 DLA(Deep Learning Accelerator)의 기능이 될 것이며, 이것은 TensorRT의 기능이다.
현재 Jetson TX2에서도 TensorRT에서 DLA(gieexec or trtexec)는 지원을 하고 있지만, 아래의 비교를 보면,
현재 Jetson TX2의 경우 JetPack 4.2 용 TensorRT 5.0 의 DeepStream은 아직 제공하고 있지 않으며, Jetpack 3.2 TensorRT 4.0 기준용 Version로 제공을 하고 있다.
TensorRT 5.0의 경우 Jetson AGX Xavier 에서만 제공하고 있다.
- Jetson TX2 : DeepStream 1.5 까지 지원 (현재)
- Jetson AGX Xavier : DeepStream 3.0 지원 (최근에 지원)
DeepStream SDK Download
https://developer.nvidia.com/embedded/deepstream-on-jetson-downloads
1.1 Jetson TX2 와 Jetson AGX Xavier 비교
DeepStream 에서 주요기능은 TensorRT의 역할일 것이며, 나머지는 Gstreamer와 거의 동일하기 때문에 크게 신경을 쓰지 않아도 될 것 같다.
가장 주목해서 봐야할 기능은 DLA(Deep Learning Accelerator)의 기능이 될 것이며, 이것은 TensorRT의 기능이다.
현재 Jetson TX2에서도 TensorRT에서 DLA(gieexec or trtexec)는 지원을 하고 있지만, 아래의 비교를 보면,
Jetson TX2는 HW 미지원이고 Jetson AGX Xavier는 HW 지원 이다
Jetson AGX Xavier에서 다음으로 봐야할 기능이 Vison Accelerator 일 것 같으며 는 OpenCV or VisionWork처럼 HW적으로 지원해줄 것 같은데,
Jetson AGX Xavier에서 다음으로 봐야할 기능이 Vison Accelerator 일 것 같으며 는 OpenCV or VisionWork처럼 HW적으로 지원해줄 것 같은데,
아직 써보지 못해서 뭐라고 말은 못하겠다.
기존에 사용되어지는 CUDA기반의 VisionWork/OpenCV가 별도의 엔진이 존재하는 것인지 좀 의문스럽다.
추후 Jetson AGX Xavier를 사용 할 기회가 있다면 사용 해본 후에 관련내용을 다시 정리해보자.
두개의 GPU기능을 보면 차이가 많이나며, Tensor 처리부분도 역시 차이가 많이 난다.
기존에 사용되어지는 CUDA기반의 VisionWork/OpenCV가 별도의 엔진이 존재하는 것인지 좀 의문스럽다.
추후 Jetson AGX Xavier를 사용 할 기회가 있다면 사용 해본 후에 관련내용을 다시 정리해보자.
두개의 GPU기능을 보면 차이가 많이나며, Tensor 처리부분도 역시 차이가 많이 난다.
- Jetson TX2 와 Jetson AGX Xavier 비교
- GPU 성능: 아키텍쳐 변경 및 Clock 과 TensorCores ( AI Interence 할 경우)
- DL Accelerator: AI Interence 할 경우, TensorRT
- Vision Accelerator: 비디오 입력시 , 영상처리
Feature | Jetson™ TX2 | Jetson™ AGX Xavier |
---|---|---|
GPU | 256 Core Pascal @ 1.3GHz | 512 Core Volta @ 1.37GHz 64 Tensor Cores |
DL Accelerator | - | (2x) NVDLA |
Vision Accelerator | - | (2x) 7-way VLIW Processor |
CPU | 6 core Denver and A57 @ 2GHz (2x) 2MB L2 | 8 core Carmel ARM CPU @ 2.26GHz (4x) 2MB L2 + 4MB L3 |
Memory | 8GB 128 bit LPDDR4 58.4 GB/s | 16GB 256-bit LPDDR4x @ 2133MHz 137 GB/s |
Storage | 32GB eMMC | 32GB eMMC |
Video Encode | (2x) 4K @30 HEVC | (4x) 4Kp60 / (8x) 4Kp30 HEVC |
Video Decode | (2x) 4K @30 12 bit support | (2x) 8Kp30 / (6x) 4Kp60 12 bit support |
Camera | 12 lanes MIPI CSI-2 D-PHY 1.2 30Gbps | 16 lanes MIPI CSI-2 | 8 lanes SLVS-EC D-PHY 40Gbps / C-PHY 109Gbps |
PCI Express | 5 lanes PCIe Gen 2 1x4 + 1x1 | 2x1 + 1x4 | 16 lanes PCIe Gen 4 1x8 + 1x4 + 1x2 + 2x1 |
Mechanical | 50mm x 87mm 400 pin connector | 100mm x 87mm 699 pin connector |
Power | 7.5W / 15W | 10W / 15W / 30W |
Jetson Board 비교
http://connecttech.com/xavier-tx2-comparison/
DeepStream SDK 내용
http://on-demand.gputechconf.com/gtc-cn/2018/pdf/CH8307.pdf
NVIDIA Tesla T4의 기능소개
상위문서를 보면, NVIDIA T4 가 나오는데, NGC(Nvidia GPU Cloud)를 이용하여 동작되는 것으로 보면, ARM용은 아니며, x86용 기반으로 동작되는 기기 인 것 같다.
https://www.nvidia.com/ko-kr/data-center/tesla-t4/
2. DeepStream 의 기능
전체구조를 보면, 쉽게 IP Camera or 보안장비에 연결되어 RTSP로 영상데이터를 받아 이를 Gstream의 중간 기능에,
TensorRT(Inference Engine)를 추가하여 영상 분석과 Detection 및 Tracking 기능을 주로 추가하여 합성되는 기능이다.
DeepStream SW의 구조를 봐도 상위 설명과 크게 다르지 않으며, 아래의 구조를 보면 쉽게 이해간다.
주요기능이 TRT(TensorRT)를 어떻게 Gstream PiPe에 효율적으로 넣을 것인가가 핵심기능이 될 것 같다.
개인적으로 문제가 될 부분을 미리 예상해보자면
NVIDIA Deep Stream SDK
https://developer.nvidia.com/deepstream-sdk
https://devblogs.nvidia.com/intelligent-video-analytics-deepstream-sdk-3-0/
https://devblogs.nvidia.com/accelerate-video-analytics-deepstream-2/?ncid=so-int-dmsk20ntllh-43648
DeepStream SW의 구조를 봐도 상위 설명과 크게 다르지 않으며, 아래의 구조를 보면 쉽게 이해간다.
주요기능이 TRT(TensorRT)를 어떻게 Gstream PiPe에 효율적으로 넣을 것인가가 핵심기능이 될 것 같다.
개인적으로 문제가 될 부분을 미리 예상해보자면
- Toltal Latency 문제 : 파이프라인이 길어져서 발생되는 총 Latency 문제
- Gstream 객체간의 Latency : 즉 Pipe Line에서도 각 객체의 Latency가 다를 것이며, 이에관련된 Buffer 처리문제
- TensorRT 적용부분: Gstream에서 이 부분에서 Buffer문제와 빠른 동작이 요구될터인데, HW적으로 어떻게 지원될지가 궁금하다.
NVIDIA Deep Stream SDK
https://developer.nvidia.com/deepstream-sdk
- NVIDIA Tesla T4 기반의 DeepStream SDK 3.0
https://devblogs.nvidia.com/intelligent-video-analytics-deepstream-sdk-3-0/
- DeepStream SDK 2.0
https://devblogs.nvidia.com/accelerate-video-analytics-deepstream-2/?ncid=so-int-dmsk20ntllh-43648
- DeepStream 기반의 Github