That's something Cyprien also mentioned was problematic. There doesn't
appear to be any problems with the license of CUDA itself that would
prevent us to distribute the binaries, actually. Cyprien knows who we
could contact at NVIDIA to iron out the details.
However, there is one technical aspect that worries me and that still
needs to be investigated. At load time, CUDA needs
libcuda.so/dylib
(nvcuda.dll is the equivalent on Windows I believe) and that comes with
the video driver, not CUDA. So, the question is, can we bundle that? Is
it generic enough across versions of the video driver? My guess is that
it isn't, so we'd still be stuck with the same issue... If you find any
answers concerning that, please let us know!
Another option would be to modify Caffe itself so that when it runs in
CPU mode, that it doesn't try to load the CUDA binaries.
Yet another option is to provide a set of two binaries: one compiled
with CUDA, and one without. If the one compiled with CUDA fails to load,
then we try to load the CPU-only version. That's probably easier to get
done, but requires more disk space and more build time, something that
I'm not ready to provide until we get a build server somewhere...
Have you had any more thoughts about this recently, Cyprien?
The path issue on Mac OS X is because it has a weird way of doing rpath,
and the Caffe build would need to be adjusted for that. Check for
example the patch for FFmpeg:
https://github.com/bytedeco/javacpp-presets/blob/master/ffmpeg/ffmpeg-3.0-macosx.patch
Samuel