Mavenized JCuda

I can test 0.6.0RC tomorrow - and maybe then I’ll also have a chance to build the Win64 libs.
From quickly skimming over the repo, it seems that the 0.6.0RC natives are not yet contained?
It’s a pity that I currently have only the Win32 version of these libs, until now. But hopefully, I can do the update to 0.6.0 final soon - it’s about time…

No, repo contains now native libs of 0.6.0RC for win-32. You could take a look here - https://github.com/MysterionRise/mavenized-jcuda/blob/master/repo/jcuda/JCublas/0.6.0RC/JCublas-0.6.0RC-windows-x86.dll

Yes, I tested it for Win32, and it ran smoothly. I’m currently uploading the Win64 binaries. Hopefully I can soon do the update to 6.0 (final), because the RC version of CUDA is no longer available, so actually, the JCuda RC is already „outdated“ anyhow (I had/have some delays for the update this time, unfortunately :frowning: )

Will wait for it, dude

So, if I had known that there have been no changes in the API between the RC and the final version, I could have done this much earlier. However, the Win32/64 binaries for version 0.6.0 (final) are now online at http://jcuda.org/downloads/downloads.html (btw: The Win64 lib for the RC are now also linked… I had uploaded them, but not added the link on the download site)

Awesome! Will update my project soon. Btw, your date is incorrect on jcuda.org site (2014-06-20), it should be May, I guess

*** Edit ***

Marco, I’ve just updated my project. Could you please test it? Both x86 and x86_64 libs are available.

First of all: When I wanted to test the 0.6.0RC, I probably accidentally tested 0.5.5. The main POM is not updated to reflect the latest version.

Now, just setting
<jcuda.version>0.6.0RC</jcuda.version>
caused problems with unresolved artifacts:


Failed to execute goal on project mavenized-jcuda: Could not resolve dependencies for project org.mystic:mavenized-jcuda:jar:0.1: The following artifacts could not be resolved:
    jcuda:JCublas2:dll:windows-x86_64:0.6.0RC, 
    jcuda:JCublas:dll:windows-x86_64:0.6.0RC, 
    jcuda:JCudaDriver:dll:windows-x86_64:0.6.0RC, 
    jcuda:JCudaRuntime:dll:windows-x86_64:0.6.0RC, 
    jcuda:JCufft:dll:windows-x86_64:0.6.0RC, 
    jcuda:JCurand:dll:windows-x86_64:0.6.0RC, 
    jcuda:JCusparse:dll:windows-x86_64:0.6.0RC: 
Could not find artifact jcuda:JCublas2:dll:windows-x86_64:0.6.0RC in jcuda.local 

which is kind of confusing, because I think it should be able to resolve them despite the “RC” suffix, but I’m not so familiar with maven, so am not sure what might cause the problem here.

Another issue is that the the “JCusparse2” DLL is no longer contained in the download package since version 0.6.0RC. NVIDIA has merged the API of CUSPARSE and CUSPARSE_v2, and now there is only one API for CUSPARSE, which is available as the “JCusparse” library. Removing the dependencies for “JCusparse2” from the POM resolved this, but I’m not sure how to solve this in a general way. I assume that it should be possible to have “version dependent dependencies” in Maven, but no idea how…

And finally, the wrong DLLs seem to be contained in the Win64 part of the repo: The Win32 and Win64 libraries are the same (they are both the Win32 version).

I’ll try to test it on Win32 (and fix the typo on the website) later today.

*** Edit ***

For the Win32 version, strangely, it worked even with the RC suffix. The “JCusparse2” issue was the same, and the 32/64bit-DLL version was not noticable here, of course

It’s because I don’t set RC version for 64 bits. Is it available? (previously it wasn’t that’s why my project doesn’t contain it)
About 32bits and 64 bits same libs, i will fix it, probably it’s my typo in install script.

What is more important it’s a removed JCuspartse2 library. Don’t know right now how to handle it properly, will think about it later tomorrow.

Thanks for your feedback

The 64bit libs for the RC are also on the website. I think I’ll also drop a note to those who always provided the Linux/Mac binaries, maybe this helps to make the repo more complete sooner.

I see, does it worth to keep RC version of libs?

Project is updated. JCusparse2 issue is created on GitHub for further investigation

*** Edit ***

JCuda 0.6.0 support · Issue #2 · MysterionRise/mavenized-jcuda · GitHub - created

*** Edit ***

I’ve just update project, to solve JCusparse2 absence issue.
Also test it on Wind 8 32 bit. Work smoothly. (at least building of maven project)
Also, I’ve update README. Since 0.6.0 is a new stuff it’s a priority number 1, works automatically, 0.5.5 and lower shouldn’t work automatically now (all you need is to add small activation command (added in README.md))

Anyway Maven should do that in needed way, BUT it’s still an old issue on Maven Jira that isn’t resolved yet :frowning: Sad
For curious people - http://jira.codehaus.org/browse/MNG-4565 and http://jira.codehaus.org/browse/MNG-3328

I think that the RC versions are not really “important” in hindsight. Usually (for previous versions of CUDA), I quickly updated JCuda for the RCs, and there usually was a larger time span in which people could use CUDA RC + JCuda RC. But this time (for version 6), due to the delay, the CUDA “final” release was published when I finished the JCuda RC - and the CUDA RC is no longer (officially) available at the NVIDIA website anyhow. So the older “final” versions may be important (because people might install an older CUDA version for whatever reason, and then look for the matching JCuda version), but the RC versions are probably not so much an issue.

Good to see that the JCusparse2 issue could be resolved (even if you consider the solution as “not nice” - I didn’t understand much of the Maven internals, admittedly…)

Anyway, it’s in repo - so let it be.

So, could you test 0.6.0 version?

I already tested 0.6.0 in general, but can do another test concerning the JCusparse2 issue in the next few days

It would be awesome. I will close my issue after you test it. Right now, I could only test maven build, since I don’t have any machine with Nvidia :frowning:

1 box at home, 1 laptop at work, GF laptop - none of them have Nvidia :slight_smile:

It worked properly for Win32 here, I can test it for Win64 later. When setting version 0.5.5 in the POM and adding “-P windows-x86_old”, it also seemed to fetch the JCublas2 library, so this should work as well. Thumbs up! ::manklatsch

Just create a pull request for this bag in Maven - https://github.com/apache/maven/pull/15 - hope it will succeed soon, so, I could switch mavenized jcuda to more “nice” solution

Fuh, it looks, like starting from Maven 3.2.2 - it will contain my fix, so JCuda could be used more smoothly.

I’ve update mavenized-jcuda to make it work with Unix 64 and Mac 64 platforms :slight_smile:

I see, Cuda 6.5 is released. I need to update project soon :slight_smile:

Marco, could you test 6.5 JCuda update on my project?

Thanks/