Clarification: Default CUDA required?
behrica opened this issue · 6 comments
Just to ask a Clarification from a previous discussion.
Does deep-diamond
currently needs CUDA 11.6 ? (and 11.4 does not work ?)
Otherwise asked:
Even downgrading all CUDA related Java dependencies (both transitive from Neanderthal and [org.jcuda/jcudnn "11.6.1"])
to 11.4 (and of course having CUDA 11.4 installed) ) is likely not working, as deep-diamond relies on features only present in jcudnn
11.6
Sorry to repeat the question here, just to have clarity on the requirements for deep-diamond
.
Yes. While Neanderthal might (and in general will) work with older versions, Deep Diamond is very sensitive to CUDA versions due to heavy use of cuDNN, which changed a lot in recent versions.
ok, thanks.
Last clarification :
Due to the GLIB issue (version 2.34 required) for org.jcuda 11.6
there are very few OS on which deep-diamond
can currently work (without recompiling org.jcuda)
, arch linux is one of them.
Correct ?
I don't think that would be a correct statement.
https://repology.org/project/glibc/versions
As far as I can see, glibc 2.34 is available in Arch, Centos (Stream 8), Fedora (35+), Debian (Experimental), Gentoo, Manjaro (Stable), Nix, OpenSuse, Ubuntu (22.04).
It seems to me that recent versions of all popular distros do use glibc 2.34+. 2 year old versions don't. I understand that many people use 2 year old versions of Linux for this reason or that (all legitimate), but that's how it is.
However, the solution is easy: build and contribute JCuda with an older glibc (the newer systems will still be able to work!) and contribute that to JCuda. The build is fairly automatic, it's just not trivial. It requires some manual steps, but not many.
Thanks that clarifies it.
I tried what you suggested (install CUDA 11.6 on Ubuntu 22.04 and / or re-compile JCuda on GLIB 2.32 system).
Both failed for various reasons, but nothing on which deep-diamond
can do anything about.
I am fairly certain that this would solve itself soon, as there are people who compile to older glibc (soon or later someone will step up and contribute), and as OSs upgrade glibc.