Difference between revisions of "GstCUDA - Example: cudamux"

From RidgeRun Developer Connection
Jump to: navigation, search
m
 
(8 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 +
{{GstCUDA/Head|previous=Example - cudafilter: Unified memory allocator|next=Example - cudamux: NVMM direct mapping|keywords=GstCUDA Examples, cudamux, cudamux example}}
 +
 +
This page gives an usage example of the cudamux element.
 +
<br>
 +
<br>
 
<table>
 
<table>
 
<tr>
 
<tr>
 
<td><div class="clear; float:right">__TOC__</div></td>
 
<td><div class="clear; float:right">__TOC__</div></td>
 
<td valign=top>
 
<td valign=top>
{{Debug Symbol}} Problems running the pipelines shown on this page?<br>Please see our [http://developer.ridgerun.com/wiki/index.php?title=GStreamer_Debugging GStreamer Debugging guide] for help.
+
{{GStreamer debug}}
 
</td>
 
</td>
 
</table>
 
</table>
  
{{GstCUDA Page |
+
<!-------------
[[GstCUDA - Example - cudafilter: Unified memory allocator | cudafilter unified memory allocator ]]|
+
<pre style=background-color:yellow>
[[GstCUDA - Example - cudamux: NVMM direct mapping | cudamux: NVMM direct mapping]]|
+
This examples will only run in JetPack 3.0 and below. For newer JetPack versions, please refer to https://developer.ridgerun.com/wiki/index.php?title=GstCUDA_-_Example_-_cudamux:_Unified_memory_allocator
 +
</pre>
 +
--------->
  
This page gives an usage example of the cudamux element.
+
<br>
 
+
{{Ambox
__TOC__
+
|type=notice
 +
|issue=This examples will only run in JetPack 3.0 and below. For newer JetPack versions,
 +
please refer to [https://developer.ridgerun.com/wiki/index.php?title=GstCUDA_-_Example_-_cudamux:_Unified_memory_allocator/  GstCUDA_-_Example_-_cudamux:_Unified_memory_allocator]
 +
}}
 +
<br>
  
 
== Introduction ==
 
== Introduction ==
Line 19: Line 30:
 
* '''''$GstCUDA_DIR/tests/examples/cudamux_algorithms/mixer/mixer.so'''''
 
* '''''$GstCUDA_DIR/tests/examples/cudamux_algorithms/mixer/mixer.so'''''
  
The '''''mixer.so''''' CUDA algorithm library consists in a very basic algorithm that receives two YUV I420 images as inputs and mixed them on the GPU, this  
+
The '''''mixer.so''''' CUDA algorithm library consists of a very basic algorithm that receives two YUV I420 images as inputs and mixed them on the GPU, this generates an output image that is the average of the two input images. All the processing of the images is done in the GPU. This basic algorithm is just for example and demonstration purposes, because it shows the capability of GstCUDA to execute an algorithm on the GPU that goes through each pixel in the incoming images, process them, and generate an output image.
generates an output image that is the average of the two input images. All the processing of the images is done in the GPU. This basic algorithm is just for example and demonstration purposes, because it shows the capability of GstCUDA to execute an algorithm on the GPU that go through each pixel in the incoming images, process them and generate and output image.
 
  
 
Below you will find a set of test pipelines with their respective performance stats for the mixer CUDA algorithm library.
 
Below you will find a set of test pipelines with their respective performance stats for the mixer CUDA algorithm library.
  
'''''Note:''''' To get the best performance on the Tegra platform, you must execute the jetson_clocks.sh script. This script tune-up the Tegra to high performance mode. All the reported performance stats came from tests done after ran the jetson_clocks.sh script.  
+
'''''Note:''''' To get the best performance on the Tegra platform, you must execute the jetson_clocks.sh script. This script tune-up the Tegra to high-performance mode. All the reported performance stats came from tests done after ran the jetson_clocks.sh script.  
 
Execute command: ''sudo ~/jetson_clocks.sh''
 
Execute command: ''sudo ~/jetson_clocks.sh''
  
Line 37: Line 47:
 
</html>
 
</html>
  
}}
+
{{GstCUDA/Foot|previous=Example - cudafilter: Unified memory allocator|next=Example - cudamux: NVMM direct mapping}}

Latest revision as of 11:11, 15 September 2020


Previous: Example - cudafilter: Unified memory allocator Index Next: Example - cudamux: NVMM direct mapping


Nvidia-preferred-partner-badge-rgb-for-screen.png



This page gives an usage example of the cudamux element.

Error something wrong.jpg Problems running the pipelines shown on this page?
Please see our GStreamer Debugging guide for help.




Introduction

GstCUDA offers one basic CUDA algorithm library example, designed for the cudamux element that works just out of the box, so it is perfect for training and giving the first steps on GstCUDA. The idea is to give detailed examples on how to use the cudamux element, and also to give some examples of written code of a functional (out of the box) CUDA algorithm library for the cudamux element. The cudamux CUDA algorithm library example is automatically built, and you can find it under the following path:

  • $GstCUDA_DIR/tests/examples/cudamux_algorithms/mixer/mixer.so

The mixer.so CUDA algorithm library consists of a very basic algorithm that receives two YUV I420 images as inputs and mixed them on the GPU, this generates an output image that is the average of the two input images. All the processing of the images is done in the GPU. This basic algorithm is just for example and demonstration purposes, because it shows the capability of GstCUDA to execute an algorithm on the GPU that goes through each pixel in the incoming images, process them, and generate an output image.

Below you will find a set of test pipelines with their respective performance stats for the mixer CUDA algorithm library.

Note: To get the best performance on the Tegra platform, you must execute the jetson_clocks.sh script. This script tune-up the Tegra to high-performance mode. All the reported performance stats came from tests done after ran the jetson_clocks.sh script. Execute command: sudo ~/jetson_clocks.sh

Examples Index


Previous: Example - cudafilter: Unified memory allocator Index Next: Example - cudamux: NVMM direct mapping