Excellent, thank you.  I thought that would be the way to go initially but
I hesitated because of concerns about having additional temporary objects
taking up memory when matrices begin to get larger but it certainly is
simpler this way.

Glad to hear that 1.7.0 is nearly completed.  Does that mean we should
expect a formal release soon?

Regards,
Charles

On Mon, Jul 27, 2015 at 9:57 AM, Karl Rupp <r...@iue.tuwien.ac.at> wrote:

> Hi Charles,
>
>  > I am working on writing some additional opencl kernels (potentially to
> > incorporate in to viennacl) which involve column-wise reductions.  A
> > simple case would simply be the sum of each column of a matrix.
> > However, I am having an extremely difficult time getting my kernel
> > correct (reductions are tricky to me).  That said, after searching for
> > some resources I came across an old post on sourceforge referring to
> > column-wise kernels
> > (http://sourceforge.net/p/viennacl/mailman/message/27542552/) with
> > viennacl.  This leads me to my primary question.
> >
> > Are there such kernels already in ViennaCL that I have overlooked?
>
> Yes ;-) Have a look here at how row-wise sums reduce to a standard
> matrix-vector product:
> https://sourceforge.net/p/viennacl/discussion/1143678/thread/38e942a0/
>
> That is, in order to compute a row-sum and a column-sum you can use
>   row_sum = prod(A, ones);
>   col_sum = prod(trans(A), ones);
>
> In an hour or two I will push convenience functions for summation fixing
> the only remaining issue for the 1.7.0 release:
>   https://github.com/viennacl/viennacl-dev/issues/127
>
>
> > If not, are there any examples or resources you would recommend to help
> > learn this topic?  I have tried searching further but the only thing I
> > can really find is a reduction of an entire matrix (which is relatively
> > simple) as opposed to by column or row.
>
> At this point I can only recommend to think about how such operations
> can be recast in terms of (standard) linear algebra. For example, row-
> and column-wise updates to a matrix are special cases of the more general
>   A += outer_prod(u, v);
> operation (rank-1 updates). I'll improve the documentation in that
> direction.
>
> Best regards,
> Karli
>
>
>
> ------------------------------------------------------------------------------
> _______________________________________________
> ViennaCL-devel mailing list
> ViennaCL-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/viennacl-devel
>
------------------------------------------------------------------------------
_______________________________________________
ViennaCL-devel mailing list
ViennaCL-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/viennacl-devel

Reply via email to