jcuda / jcuda-main

Summarizes the main JCuda libraries
MIT License
99 stars 20 forks source link

CUDA 11.5 #43

Closed jcuda closed 2 years ago

jcuda commented 3 years ago

CUDA 11.5 has been released. JCuda should be updated accordingly.

jcuda commented 2 years ago

Aaaand there's CUDA 11.6. I wonder if anybody is still interested in that. I might do the update to 11.5 and 11.6 at some point anyhow...

jcuda commented 2 years ago

@blueberry : In case you are still willing to contribute the Linux binaries (despite the delays on my side) : The updates for CUDA 11.5 have been done, and are tagged as version-11.5.2-RC00 (which is the same as master right now).

These are the updates for cuda_11.5.2_496.13 and cudnn_8.3.2.44. In fact, there have hardly been any API changes, so I might have done this update far more quickly, but that's sometimes hard to figure out beforehand. I hope that I can do the updates for 11.6.x soon.

blueberry commented 2 years ago

Yes, I'll certainly provide these. Should I assume you're about to tackle 11.6 in the next couple of weeks? Then I might wait a bit, and do both versions in one sweep?

jcuda commented 2 years ago

I'll try to prepare the release of 11.6 as soon as possible (so will try to focus on that in the next days, and ... if there are not toooo many API changes/extensions, should be able to do this at least during the weekend). I intended to prepare it, but wait with the commit/push until 11.5 is done. (Just to avoid headaches if there is something wrong in 11.5 that has to be fixed).

But I'd do what is easier for you here: If it would be easier for you do do both in "one pass", based on two tagged states (version-11.5.2-RC00 and version-11.6.X-RC00), then I could prepare them and drop you a note here when they are ready.

jcuda commented 2 years ago

On a second thought: I think that it could make sense to do dedicated updates for 11.5 and 11.6.

If something has to be fixed in JCuda 11.5, then doing this on a hotfix branch can be cumbersome. The "magic" of mvn release involves some steps that are a bit intransparent - i.e. the automatic version number updates. Beyond that: When I now update to CUDA 11.6 for the update of JCuda, and then want to make the release of JCuda 11.5, I'd either have to uninstall CUDA 11.6 and re-install 11.5, or be extremely careful, for example, to make sure that the compilation of the JCUda 11.5 DLLs do not accidentally pick up the CUDA 11.6 DLLs as their dependencies. (Or for short: There are many things that could go wrong when trying to do both updates at once...)

@blueberry If you have a strong preference for doing the updates of 11.5 and 11.6 in "one pass", then I could have a closer look at the options. On the one hand, of course, I don't want to cause more effort for you than necessary. On the other hand, I'd like to avoid trouble during the update process...

corepointer commented 2 years ago

Aaaand there's CUDA 11.6. I wonder if anybody is still interested in that. I might do the update to 11.5 and 11.6 at some point anyhow...

Very much interested! One of the projects I'm workign on - Apache SystemDS - is using JCuda.

I have compiled version-11.5.2-RC00 on Linux and found some tests in mvn install are failing. Specifically it's the addtions to JCublas2 that don't seem to have a native implementation and make the BasicBindingTest fail.

blueberry commented 2 years ago

@blueberry If you have a strong preference for doing the updates of 11.5 and 11.6 in "one pass", then I could have a closer look at the options. On the one hand, of course, I don't want to cause more effort for you than necessary. On the other hand, I'd like to avoid trouble during the update process...

Just checking in to say that I'm back and I'll do the 11.5 build in a day or two, and when you prepare 11.6 I'll probably be able to do the build immediately.

jcuda commented 2 years ago

@blueberry Great. As I mentioned, having separate releases feels a bit safer. Of course, it should be possible to build the 11.5 library even with 11.6 installt, because it should link against the CUDA SDK that is selected via CMake, but I'd still like to build (and test) it on a "pure 11.5" setup.

Speaking about tests... @corepointer It should have reported if this test was failing here (during the Maven build), but I'll check and review it manually ASAP.

jcuda commented 2 years ago

@corepointer You're right, and thanks for making me aware of that.

Apparently, I did not run the local mvn package before asking about the versioning strategy here.

There is a part of CUBLAS that refers to a "legacy CUBLAS computeType migration", and this part is not properly handled by the code generator - but I accidentally added the auto-generated functions. I now removed them via https://github.com/jcuda/jcublas/commit/3e48718ee00b34cb70253f93620931ce7f4f1935

(Now, to some extent, I confirmed my concerns: Updating this after already having updated to 11.6, could be a pain in the back...)

Also @blueberry : The updated state is tagged as version-11.5.2-RC01 (release candidate 01), which is the same as master right now. If you compile the binaries, I'll create the release ASAP, and then try to do the update for 11.6 ... (hopefully, before CUDA 12 is published ;-) )


An aside:

One of the projects I'm workign on - Apache SystemDS - is using JCuda.

I don't keep track (and more frankly, don't have the slightest idea) who is actually using JCuda, so it's always interesting to head about that - and maybe I'll have a closer look at how JCuda is used there, and for which purpose. (When it is about ML, then I assume that JCublas will be the main usage). I could imagine that people who are starting a new project might rather juse the CUDA bindings from JavaCPP, because they have quicker updates (with fewer manual steps), and a more sophisticated deployment mechanism. Somehow related to that is the question about the distribution of the CUDA binaries that @blueberry brought up at https://github.com/jcuda/jcuda-main/issues/36

blueberry commented 2 years ago

Hi @jcuda Here are the Linux binaries. As soon as you update the code to 11.6, I'll provide those too. Thank you! jcuda-11.5.2.zip

jcuda commented 2 years ago

JCuda 11.5.2 has been released, and will soon be available under the usual coordinates:

<dependency>
    <groupId>org.jcuda</groupId>
    <artifactId>jcuda</artifactId>
    <version>11.5.2</version>
</dependency>
<dependency>
    <groupId>org.jcuda</groupId>
    <artifactId>jcublas</artifactId>
    <version>11.5.2</version>
</dependency>
<dependency>
    <groupId>org.jcuda</groupId>
    <artifactId>jcufft</artifactId>
    <version>11.5.2</version>
</dependency>
<dependency>
    <groupId>org.jcuda</groupId>
    <artifactId>jcusparse</artifactId>
    <version>11.5.2</version>
</dependency>
<dependency>
    <groupId>org.jcuda</groupId>
    <artifactId>jcusolver</artifactId>
    <version>11.5.2</version>
</dependency>
<dependency>
    <groupId>org.jcuda</groupId>
    <artifactId>jcurand</artifactId>
    <version>11.5.2</version>
</dependency>
<dependency>
    <groupId>org.jcuda</groupId>
    <artifactId>jcudnn</artifactId>
    <version>11.5.2</version>
</dependency>

Thanks @blueberry for your support and for providing the Linux binaries!

I'll schedule the update for CUDA 11.6 (I'll try to do this during the weekend, but have another task there). Once the RC for 11.6 is out, I'll close this issue (11.6 will then be tracked in https://github.com/jcuda/jcuda-main/issues/44 )