From 2a72714b6e5fc9a966489720b4dd787d08899f2c Mon Sep 17 00:00:00 2001 From: Matthias Vogelgesang Date: Tue, 26 Dec 2017 20:59:23 +0100 Subject: Document reduction kernels --- docs/filters.rst | 5 ++++- docs/kernels.rst | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/filters.rst b/docs/filters.rst index f6b914d..719719f 100644 --- a/docs/filters.rst +++ b/docs/filters.rst @@ -518,7 +518,7 @@ Reducing with OpenCL kernel void sum (global float *in, global float *out) { size_t idx = get_global_id (1) * get_global_size (0) + get_global_id (0); - in[idx] += out[idx]; + out[idx] += in[idx]; } kernel void divide (global float *out, uint count) @@ -531,6 +531,9 @@ Reducing with OpenCL ufo-launch ... ! opencl-reduce kernel=sum finish=divide ! ... + If :gobj:prop:`filename` is not set, a default kernel file is loaded. See + :ref:`opencl-reduction-default-kernels` for a list of possible kernels. + .. gobj:prop:: filename:string Filename with kernel sources to load. diff --git a/docs/kernels.rst b/docs/kernels.rst index f2f77e1..cd0020c 100644 --- a/docs/kernels.rst +++ b/docs/kernels.rst @@ -17,3 +17,36 @@ This section lists all kernel functions that are available to the .. c:function:: void nlm_noise_reduction () Smooths data within a local neighbourhood. + + +.. _opencl-reduction-default-kernels: + + +OpenCL reduction default kernels +================================ + +This section lists all kernel functions that are available to the +:gobj:class:`opencl-reduce` filter if no filename is specified. These kernels +are supposed to be used for the ``kernel`` argument. + +.. c:function:: void minimum () + + Computes the minimum of each pixel in the stream. + +.. c:function:: void maximum () + + Computes the maximum of each pixel in the stream. + +.. c:function:: void sum () + + Computes the sum of each pixel in the stream. + + +These kernels are supposed to be used in the ``finish`` argument: + +.. c:function:: void divide () + + Divides each pixel by the stream count. Together with ``sum`` this can be + used to compute the average, i.e.:: + + ufo-launch .. ! opencl-reduce kernel=sum finish=divide ! .. -- cgit v1.2.3