S9391 GstCUDA: Easy GStreamer and CUDA Integration
- Eng. Daniel Garbanzo
- MSc. Michael Grüner
GTC March 2019
S9391 GstCUDA: Easy GStreamer and CUDA Integration Eng. Daniel - - PowerPoint PPT Presentation
S9391 GstCUDA: Easy GStreamer and CUDA Integration Eng. Daniel Garbanzo MSc. Michael Grner GTC March 2019 About RidgeRun GStreamer Overview CUDA Overview GstCUDA Introduction Agenda Application Examples Performance Statistics GstCUDA
GTC March 2019
2
3
Medical Industry Automotive Industry Smart Devices Computer Vision
4
5
6
7
Easily change your application end use Easily change from SW to HW accelerated processing
Code equivalent : gst-launch v4l2src ! videoconverter ! omxh265enc ! mpegtsmux ! udpsink Code equivalent : gst-launch v4l2src ! videoconverter ! x265enc ! mpegtsmux ! filesink
8
9
10
11
12
13
Without GstCUDA With GstCUDA
3 Months 10 days 5 days
Create GStreamer plugin with CUDA support Generate CUDA algorithm Integrate CUDA algorithm
10 days 0.1 day
Generate CUDA algorithm Integrate CUDA algorithm Total = 3.5 months Total = 10.1 days
14
Memcpy
15
improves performance
cause poor performance
resolutions
16
17
18
19
20
21
location = median_filter.so
22
location = thermal_overlay.so
IR
23
bool open(); bool close(); bool process (const GstCudaData &inbuf, GstCudaData &outbuf); bool process_ip (const GstCudaData &inbuf, GstCudaData &outbuf); bool open(); bool close(); bool process (vector<GstCudaData> &inbufs, GstCudaData &outbuf); bool process_ip (vector<GstCudaData> &inbufs, GstCudaData &outbuf);
24
25
26
memory interfaces
Memory allocators
different topologies
evaluate custom algorithms
CUDA algorithms
element boilerplate
the prototyping elements
28
29
30
31
32
33
stream input
location = convolution.so
34
35
36
37
*baseline = simple capture pipeline (without GstCUDA)
location = memcpy.so
38
39
Note: Maximum Framerate limited to 245 fps by the video source
40
41
*baseline = simple capture pipeline (without GstCUDA)
location = mixer.so
42
43
Note: Maximum Framerate limited to 240fps by the video source
44
*baseline = simple capture pipeline (without GstCUDA)
45
○ gstcuda.ridgerun.com
○ ridgerun.com
○ ridgerun.com/contact
46