GstCUDA

From RidgeRun Developer Wiki
Revision as of 17:08, 13 October 2017 by Dgarbanzo (talk | contribs)


Overview

GstCUDA is a RidgeRun developed, GStreamer plug-in and framework enabling easy integration of CUDA algorithms into GStreamer pipelines. GstCUDA offers a framework that allows users to easily develop custom GStreamer elements that executes any CUDA algorithm. The GstCUDA framework is a series of base classes abstracting the complexity of both CUDA and GStreamer. With GstCUDA, developers avoid writing elements from scratch, allowing the developer to focus on the algorithm logic, and accelerating time to market.


GstCUDA offers a GStreamer plugin that contains a set of elements, that are ideal for GStreamer/CUDA quick prototyping. Those elements consists in a set of filters with different input/output pads combinations, that are capable to load on run-time an external custom CUDA library that contains the algorithm to be executed on the GPU on each frame that passes through them. GstCUDA plugin, allows users to develop their own CUDA processing library, pass the library into the GstCUDA filter element that best adapts to the algorithm requirements, which executes the library on the GPU, passing upstream frames from the GStreamer pipeline to the GPU and passing the modified frames downstream to the next element in the GStreamer pipeline. Those elements were conceived thinking in the customers needs of quick prototyping and reducing product time to market. So, it makes those elements fully adaptable to different project needs, what converts GstCUDA in a powerful tool, that can't be missing in a CUDA/GStreamer project development.


One remarkable feature of GstCUDA is that it provides a zero memory copy interface between CUDA and GStreamer on TEGRA X1/X2 platforms. This enables heavy algorithms and large amounts of data (up to 2x 4K 60fps streams) to be processed on CUDA without affecting the performance due to copies or memory conversions. GstCUDA provides the necessary APIs to directly handle NVMM buffers type to achieve the best possible performance on TEGRA X1/X2 platforms. It provides a series of base classes and utilities that abstract the complexity of handle memory interface between GStreamer and CUDA, so the developer can focus on what actually gives value to the end product. GstCuda ensures an optimal performance for GStreamer/CUDA applications on TEGRA platforms.


Also, RidgeRun offers GstCUDA ad-ons. Those consists in full complete and ready to use elements that executes a specific CUDA algorithm that is integrated into the element code. Those ad-ons elements are based on the GstCUDA framework, and clearly shows the potential of this framework being used to generate a final product.


If you are interested in a new different ad-on or want help to develop the custom algorithm CUDA library for the quick prototyping GstCUDA elements, please don't hesitate in contact us.


The following table of contents offers all you need to know about GstCUDA project.

Template:Eval SDK Download, Demo Image download and Contact Us buttons

Promo/Demo Video

Under Construction!

Getting Started

Start navigating this wiki by going to the Features and Limitations page in the table of contents.