jcuda / jcuda-main

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

JCuda 10.0.0 on macOS #30

Closed cfries closed 4 years ago

cfries commented 5 years ago

I have a Maven project which builds perfectly on MacOS 10.13 with JCuda 10.1.0 and NVIDIA Cuda 10.1.

Trying to build the project on JCuda 10.0.0 I get the error

[ERROR] Failed to execute goal on project finmath-lib-cuda-extensions: Could not resolve dependencies for project net.finmath:finmath-lib-cuda-extensions:jar:4.0.12-SNAPSHOT: The following artifacts could not be resolved: org.jcuda:jcuda-natives:jar:apple-x86_64:10.0.0, org.jcuda:jcurand-natives:jar:apple-x86_64:10.0.0: Failure to find org.jcuda:jcuda-natives:jar:apple-x86_64:10.0.0 in https://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced -> [Help 1]

That is

are missing.

Did I do something wrong or is this an issue? It seems to me as if apple-x86_64 is not in the Maven central natives for 10.0.

cfries commented 5 years ago

Comment: I would be willing to support and try to contribute a binary compilation, however, since 10.1.0 comes with a working binary, maybe there is already someone you could provide it for 10.0.0. If I should provide a binary, any hint on build pipeline would be helpful.

jcuda commented 5 years ago

That's right: For JCuda 10.0.0, there are no MacOS binaries available. I can build the binaries for Windows, and with some hassle (and without proper testing) on a VM for Linux, but for MacOS, I have to rely on contributors who provide the binaries.

The versioning- and release policy for Maven Central is very strict - which is a good thing, but means that it's not possible to directly add new binaries (with the same version) later. So the only viable path would be to create a 10.0.1 (or 10.0.0b) releases which includes the MacOS binaries.

We would have to be very careful, though, to not accidentally link the binaries against some newer (CUDA 10.1) binaries that are already installed on the system.

If you or someone else could provide the MacOS binaries for CUDA 10.0, we could give it a try. The compilation itself should not be so difficult - it is described in https://github.com/jcuda/jcuda-main/blob/master/BUILDING.md . Basically: Clone all projects, run CMake in jcuda-main, and compile it using the generated makefiles. (The devil is in the detail, but it's supposed to be that simple, at least)

jcuda commented 4 years ago

CUDA 11 drops the support for MacOS. So this issue is implicitly resolved now.