Hi, > One question: you mentioned padding for the `matrix` type. When i > initialize the `matrix` instance, i only specify dimensions. how do I > know padding values?
if you want to provide your own padded dimensions, consider using matrix_base directly. If you want to query the padded dimensions, use internal_size1() and internal_size2() for the internal number of rows and columns. http://viennacl.sourceforge.net/doc/manual-types.html#manual-types-matrix Best regards, Karli > > On Tue, Jul 12, 2016 at 5:53 AM, Karl Rupp <r...@iue.tuwien.ac.at > <mailto:r...@iue.tuwien.ac.at>> wrote: > > Hi Dmitriy, > > On 07/12/2016 07:17 AM, Dmitriy Lyubimov wrote: > > Hi, > > I am trying to create some elementary wrappers for VCL in javacpp. > > Everything goes fine, except i really would rather not use those > "cpu" > types (std::map, > std::vector) and rather initialize matrices directly by feeding > row-major or CCS formats. > > I see that matrix () constructor accepts this form of > initialization; > but it really states that > it does "wrapping" for the device memory. > > > Yes, the constructors either create their own memory buffer > (zero-initialized) or wrap an existing buffer. These are the only > reasonable options. > > > Now, i can create a host matrix() using host memory and row-major > packing. This works ok it seems. > > However, these are still host instances. Can i copy host > instances to > instances on opencl context? > > > Did you look at viennacl::copy() or viennacl::fast_copy()? > > > That might be one way bypassing unnecessary (in my case) > complexities of > working with std::vector and std::map classes from java side. > > But it looks like there's no copy() variation that would accept a > matrix-on-host and matrix-on-opencl arguments (or rather, it of > course > declares those to be ambiguous since two methods fit). > > > If you want to copy your OpenCL data into a viennacl::matrix, you > may wrap the memory handle (obtained with .elements()) into a vector > and copy that. If you have plain host data, use > viennacl::fast_copy() and mind the data layout (padding of > rows/columns!) > > > For compressed_matrix, there seems to be a set() method, but i guess > this also requires CCS arrays in the device memory if I use it. Same > question, is there a way to send-and-wrap CCS arrays to an > opencl device > instance of compressed matrix without using std::map? > > > Currently you have to use .set() if you want to bypass > viennacl::copy() and std::map. > > I acknowledge that the C++ type system is a pain when interfacing > from other languages. We will make this much more convenient in > ViennaCL 2.0. The existing interface in ViennaCL 1.x is too hard to > fix without breaking lots of user code, so we won't invest time in > that (contributions welcome, though :-) ) > > Best regards, > Karli > > > ------------------------------------------------------------------------------ What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports.http://sdm.link/zohodev2dev _______________________________________________ ViennaCL-devel mailing list ViennaCL-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/viennacl-devel