CharlesIndeed, you should try to reduce row/column wise reductions to simple
matrix multiplications. I had posed a similar question earlier and reworked my
problem. Thanks and Regards
Sumit
From: Karl Rupp <[email protected]>
To: [email protected]
Sent: Monday, July 27, 2015 8:27 PM
Subject: Re: [ViennaCL-devel] Column-wise kernels?
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/viennacl-devel
------------------------------------------------------------------------------
_______________________________________________
ViennaCL-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/viennacl-devel