GStreamer Compute

Aaron Boxer boxerab at gmail.com
Mon Apr 8 02:05:27 UTC 2019


Dear GStreamers,

I'm thinking of writing an OpenCL plugin that will
add an arbitrary 2d OpenCl kernel into the pipeline;
possible applications are edge detection, debayering...

Is there any existing element I could use as a template?
One twist is that GPUs give the highest performance in asynchronous mode, so
the element will need to pull buffers from upstream, schedule them to
the GPU, and only push the processed buffers downstream when the GPU
completes.  Also, it would be good to have the option of keeping the memory
on the device, in order to apply a series of kernels without costly move
to host and back to device.

Simple use case will be a kernel stored in a single user-specified text
file that will be passed
to the plugin, compiled for a specified device, and then executed on the
buffers.
For more complex situations, plugin could be sub-classed with multiple
kernels.

Future work could involve exploring other languages such as SYCL, which
some say is the future
of open source compute:

https://en.wikipedia.org/wiki/SYCL

https://www.youtube.com/watch?v=ZTq8wKnVUZ8
(But Mommy, I don't want to use CUDA ! )

Any advice or guidance would be greatly appreciated.

Many Thanks,
Aaron
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20190407/02fd1905/attachment.html>


More information about the gstreamer-devel mailing list