New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[SYSTEMML-1118]Updated to use JCuda 0.8.0 #291
Conversation
Ping @niketanpansare |
+1 on the update to the latest cuda + cudnn. |
22173a4
to
f0fef4b
Compare
but let's keep native BLAS and GPU backend separate. |
Can we please move this discussion to #307 ? The PR addresses:
|
@nakul02 I take back my earlier comment. For now, let's use the approach in your PR. LGTM after resolving conflicting files 👍 |
This PR is now updated to use jcuda8 artifacts available on maven central. |
LGTM 👍 |
@nakul02 Thank you for helping getting jcuda deployed to maven central! This will be of great assistance to many people out there. |
I would not recommend to have non-SystemML related code in Uber jar file. We do have AntLR and wink files in Uber jar, but I am not sure if thats right approach. Unless you convince other way, I would prefer to have jcuda files outside Uber jar. |
<dependency> | ||
<groupId>org.jcuda</groupId> | ||
<artifactId>jcuda</artifactId> | ||
<version>0.7.5b</version> | ||
<scope>provided</scope> | ||
<version>${jcuda.version}</version> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@nakul02 can you please mark all jcuda related artifacts as "provided" dependency ? The PR increases the size of SystemML.jar from 4.7 MB to 6.4 MB.
@asurve- I suggested adding the jcuda jars to the Uber jar because those jars may not be available in the environment they are run in (Spark) |
If the On the other hand, (as @niketanpansare and I spoke offline about), the jar becomes bigger and for a feature that is not used every single time, maybe making the jar bigger is not a good idea. @lresende, @deroneriksson, @bertholdreinwald - do you have any comments/thoughts? |
Assuming jcuda is compatible with Apache License, I see two possible solutions :
I would prefer not to have this in the "fat-jar" particularly because of size and platform dependency. But then we might need to add things to classpath in order to run systemml with GPU support. |
Thanks @nakul02 LGTM |
Thanks @asurve. Docs will be available in https://github.com/apache/incubator-systemml/blob/master/docs/devdocs/gpu-backend.md. Will merge. |
This PR updates systemml to use cuda 8 and cudnn 5.1.
Use has been significantly simplified compared to the steps listed here.
The user need only invoke maven to make the package and the cuda native shared libraries will be available wrapped in jars in the classpath without the need to set any environment variables or extra java options. (tested on a Centos 7 x86_64 system).
mavenized-jcuda and jcuda packages have been excluded in the shade plugin to stop them from being included in the package. This decision can be revisited in the future.
Note - This is a WIP. We still await the availability of a repo from where we can fetch mavenized-jcuda with cuda 8.