Hi Karli,

Thank you very much, you nailed it! I also found the following
documentation (I do not why I have not found it before):

http://viennacl.sourceforge.net/doc/manual-custom-contexts.html

Hence, It is time to try to implement truly incompressible SPH in
AQUAgpusph!

Best wishes,
Pepe

2016-03-30 22:05 GMT+02:00 Karl Rupp <r...@iue.tuwien.ac.at>:

> Hi Jose,
>
> > (Is it Karl or Karli?)
>
> feel free to pick your favorite (just like Jose/Pepe) :-)
>
>
> Thanks for your quick answer! I should further investigate. However, I
>> could not find how to execute an exclusive_scan() without downloading
>> the number of elements per row from the GPU to the host.
>>
>
> exclusive_scan() is also available for vectors (more precisely: the base
> class vector_base<>):
>
> https://github.com/viennacl/viennacl-dev/blob/master/viennacl/linalg/vector_operations.hpp#L1272
>
> Here is an example of how to wrap a host buffer in a vector_base object in
> order to call exclusive_scan:
>
> https://github.com/viennacl/viennacl-dev/blob/master/viennacl/linalg/host_based/amg_operations.hpp#L1444
>
> (the OpenCL version works similarly - either provide your own OpenCL
> cl_mem buffer, or use the memory handle from the compressed_matrix).
>
> Best regards,
> Karli
>
>
>
>
>
>
> 2016-03-29 22:24 GMT+02:00 Karl Rupp <r...@iue.tuwien.ac.at
>> <mailto:r...@iue.tuwien.ac.at>>:
>>
>>     Hi Jose,
>>
>>     > I have been looking for documentation regarding how to handle a
>> matrix
>>
>>         (sparse) in an OpenCL kernel. My main objective is to can fill a
>>         sparse
>>         matrix using an OpenCL kernel.
>>
>>         Would it be possible??
>>
>>         P.S. I can eventually precompute the matrix and indexes arrays
>>         sizes.
>>
>>
>>     Yes, that's possible. The typical procedure for doing so is:
>>
>>     1. Compute number of elements per row, store in a buffer
>>     2. Run exclusive_scan() on the buffer to obtain the row-array for
>>     the three-array CSR format.
>>     3. Allocate the column index and value array (CSR format)
>>     4. Populate these two arrays with values
>>     5. Pass the arrays to a viennacl::compressed_matrix<>.
>>
>>     Instead of 5. you may already start with a
>>     viennacl::compressed_matrix<> and operate on the OpenCL buffers
>>     directly.
>>
>>     There is no ready-to-go example, but the pattern shows up in e.g.
>>     the sparse matrix-matrix product
>>     (viennacl/linalg/opencl/sparse_matrix_operations.hpp).
>>
>>     Best regards,
>>     Karli
>>
>>
>>
>>
>
------------------------------------------------------------------------------
Transform Data into Opportunity.
Accelerate data analysis in your applications with
Intel Data Analytics Acceleration Library.
Click to learn more.
http://pubads.g.doubleclick.net/gampad/clk?id=278785471&iu=/4140
_______________________________________________
ViennaCL-devel mailing list
ViennaCL-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/viennacl-devel

Reply via email to