but is getting a “CUSOLVER_STATUS_INVALID_VALUE” error. I think it’s because I set ‘jobu’ and ‘jobvt’ wrong because they are byte data-type (and I kinda expecting them to be string or char). So what are the possible value for them?
*** Edit ***
I just put in ‘A’ and assign it to byte, and I’m not getting the error anymore. But, is the native library actually implemented for JCusolver? All the pointers I put there seemed unchanged after execution.
You’re right. The first arguments should definitely be char on Java side. I’ll fix this for the next release.
You mentioned that the pointers remain unchanged: Maybe I’m misinterpreting this statement, but of course, the pointers will not be changed - only the memory they point to. When you copy the memory back to the host, you should see the changes.
BUT a side note: The CUSOLVER library is rather new (introduced with CUDA 7.0), its functionality is rather complex (gotta love these 16-argument-functions…), and there are hardly any samples available (not even in the NVIDIA CUDA SDK or its documentation). So I could hardly test JCusolver with real application cases, and there may still be things not working as expected. (For example, I just noticed that the rwork parameter is assumed to be in host memory space - I’ll have to take a look at this as well). In general: If you encounter any issues, don’t hesitate to bring them up here. And if you have any small, standalone examples that use CUSOLVER, e.g. of something like the SVD computation, that could be used as tests and/or put on the website, this would be appreciated