Skip to content
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

compile cuda presets on jetson nano #735

Closed
kwatters opened this issue Jun 8, 2019 · 24 comments
Closed

compile cuda presets on jetson nano #735

kwatters opened this issue Jun 8, 2019 · 24 comments

Comments

@kwatters
Copy link
Contributor

kwatters commented Jun 8, 2019

So, I'm still working through building various javacpp presets for the jetson nano. Now, I'm working on getting the cuda version of libdn4j build. That depends on javacpp-cuda ... so, I've made some progress, but am running into a compilation issue that I'm hoping someone else might recognize ...

I've updated the cppbuild.sh to include a branch for linux-arm64 ... On the Jetson Nano, cuda is pre-installed into /usr/local/cuda (version 10.0 ) and it would seem the header files for cuDNN are available in /usr/include ...

in the javacpp-presets/cuda directory, i'm building with the following command

mvn clean install -DskipTests -Dmaven.javadoc.skip=true -Djavacpp.platform=linux-arm64 -nsu -X -Djavacpp.platform.library.path=/usr/local/cuda -Djavacpp.includePath=/usr/local/cuda/include:/usr/include

It seems to progress, but I end up with the failure below:

[INFO] Changes detected - recompiling the module!
[DEBUG] Classpath:
[DEBUG]  /home/kwatters/usb/javacpp-presets/cuda/target/classes
[DEBUG]  /home/kwatters/.m2/repository/org/bytedeco/javacpp/1.5/javacpp-1.5.jar
[DEBUG] Source roots:
[DEBUG]  /home/kwatters/usb/javacpp-presets/cuda/src/main/java
[DEBUG]  /home/kwatters/usb/javacpp-presets/cuda/src/gen/java
[DEBUG]  /home/kwatters/usb/javacpp-presets/cuda/cppbuild/linux-arm64/java
[DEBUG]  /home/kwatters/usb/javacpp-presets/cuda/target/generated-sources/annotations
[DEBUG] Command line options:
[DEBUG] -d /home/kwatters/usb/javacpp-presets/cuda/target/classes -classpath /home/kwatters/usb/javacpp-presets/cuda/target/classes:/home/kwatters/.m2/repository/org/bytedeco/javacpp/1.5/javacpp-1.5.jar: -sourcepath /home/kwatters/usb/javacpp-presets/cuda/src/main/java:/home/kwatters/usb/javacpp-presets/cuda/src/gen/java:/home/kwatters/usb/javacpp-presets/cuda/target/generated-sources/annotations:/home/kwatters/usb/javacpp-presets/cuda/target/generated-sources/annotations: -s /home/kwatters/usb/javacpp-presets/cuda/target/generated-sources/annotations -g -nowarn -target 1.7 -source 1.7 -encoding UTF-8
[DEBUG] incrementalBuildHelper#beforeRebuildExecution
[INFO] Compiling 325 source files to /home/kwatters/usb/javacpp-presets/cuda/target/classes
[DEBUG] incrementalBuildHelper#afterRebuildExecution
[INFO] /home/kwatters/usb/javacpp-presets/cuda/src/gen/java/org/bytedeco/cuda/cudart/uint4.java: Some input files use unchecked or unsafe operations.
[INFO] /home/kwatters/usb/javacpp-presets/cuda/src/gen/java/org/bytedeco/cuda/cudart/uint4.java: Recompile with -Xlint:unchecked for details.
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /home/kwatters/usb/javacpp-presets/cuda/src/gen/java/org/bytedeco/cuda/global/nppig.java:[1297,108] reference to NppiImageDescriptor is ambiguous
  both class org.bytedeco.cuda.nppc.NppiImageDescriptor in org.bytedeco.cuda.nppc and class org.bytedeco.cuda.nppig.NppiImageDescriptor in org.bytedeco.cuda.nppig match
[ERROR] /home/kwatters/usb/javacpp-presets/cuda/src/gen/java/org/bytedeco/cuda/global/nppig.java:[1297,139] reference to NppiImageDescriptor is ambiguous
  both class org.bytedeco.cuda.nppc.NppiImageDescriptor in org.bytedeco.cuda.nppc and class org.bytedeco.cuda.nppig.NppiImageDescriptor in org.bytedeco.cuda.nppig match
[ERROR] /home/kwatters/usb/javacpp-presets/cuda/src/gen/java/org/bytedeco/cuda/global/nppig.java:[1312,108] reference to NppiImageDescriptor is ambiguous
  both class org.bytedeco.cuda.nppc.NppiImageDescriptor in org.bytedeco.cuda.nppc and class org.bytedeco.cuda.nppig.NppiImageDescriptor in org.bytedeco.cuda.nppig match
[ERROR] /home/kwatters/usb/javacpp-presets/cuda/src/gen/java/org/bytedeco/cuda/global/nppig.java:[1312,139] reference to NppiImageDescriptor is ambiguous
  both class org.bytedeco.cuda.nppc.NppiImageDescriptor in org.bytedeco.cuda.nppc and class org.bytedeco.cuda.nppig.NppiImageDescriptor in org.bytedeco.cuda.nppig match
[ERROR] /home/kwatters/usb/javacpp-presets/cuda/src/gen/java/org/bytedeco/cuda/global/nppig.java:[1327,108] reference to NppiImageDescriptor is ambiguous
  both class org.bytedeco.cuda.nppc.NppiImageDescriptor in org.bytedeco.cuda.nppc and class org.bytedeco.cuda.nppig.NppiImageDescriptor in org.bytedeco.cuda.nppig match
[ERROR] /home/kwatters/usb/javacpp-presets/cuda/src/gen/java/org/bytedeco/cuda/global/nppig.java:[1327,139] reference to NppiImageDescriptor is ambiguous
  both class org.bytedeco.cuda.nppc.NppiImageDescriptor in org.bytedeco.cuda.nppc and class org.bytedeco.cuda.nppig.NppiImageDescriptor in org.bytedeco.cuda.nppig match
[ERROR] /home/kwatters/usb/javacpp-presets/cuda/src/gen/java/org/bytedeco/cuda/global/nppig.java:[1342,109] reference to NppiImageDescriptor is ambiguous
  both class org.bytedeco.cuda.nppc.NppiImageDescriptor in org.bytedeco.cuda.nppc and class org.bytedeco.cuda.nppig.NppiImageDescriptor in org.bytedeco.cuda.nppig match
[ERROR] /home/kwatters/usb/javacpp-presets/cuda/src/gen/java/org/bytedeco/cuda/global/nppig.java:[1342,140] reference to NppiImageDescriptor is ambiguous
  both class org.bytedeco.cuda.nppc.NppiImageDescriptor in org.bytedeco.cuda.nppc and class org.bytedeco.cuda.nppig.NppiImageDescriptor in org.bytedeco.cuda.nppig match
[ERROR] /home/kwatters/usb/javacpp-presets/cuda/src/gen/java/org/bytedeco/cuda/global/nppig.java:[1357,109] reference to NppiImageDescriptor is ambiguous
  both class org.bytedeco.cuda.nppc.NppiImageDescriptor in org.bytedeco.cuda.nppc and class org.bytedeco.cuda.nppig.NppiImageDescriptor in org.bytedeco.cuda.nppig match
[ERROR] /home/kwatters/usb/javacpp-presets/cuda/src/gen/java/org/bytedeco/cuda/global/nppig.java:[1357,140] reference to NppiImageDescriptor is ambiguous
  both class org.bytedeco.cuda.nppc.NppiImageDescriptor in org.bytedeco.cuda.nppc and class org.bytedeco.cuda.nppig.NppiImageDescriptor in org.bytedeco.cuda.nppig match
[ERROR] /home/kwatters/usb/javacpp-presets/cuda/src/gen/java/org/bytedeco/cuda/global/nppig.java:[1372,109] reference to NppiImageDescriptor is ambiguous
  both class org.bytedeco.cuda.nppc.NppiImageDescriptor in org.bytedeco.cuda.nppc and class org.bytedeco.cuda.nppig.NppiImageDescriptor in org.bytedeco.cuda.nppig match
[ERROR] /home/kwatters/usb/javacpp-presets/cuda/src/gen/java/org/bytedeco/cuda/global/nppig.java:[1372,140] reference to NppiImageDescriptor is ambiguous
  both class org.bytedeco.cuda.nppc.NppiImageDescriptor in org.bytedeco.cuda.nppc and class org.bytedeco.cuda.nppig.NppiImageDescriptor in org.bytedeco.cuda.nppig match
[ERROR] /home/kwatters/usb/javacpp-presets/cuda/src/gen/java/org/bytedeco/cuda/global/nppig.java:[1387,109] reference to NppiImageDescriptor is ambiguous
  both class org.bytedeco.cuda.nppc.NppiImageDescriptor in org.bytedeco.cuda.nppc and class org.bytedeco.cuda.nppig.NppiImageDescriptor in org.bytedeco.cuda.nppig match
[ERROR] /home/kwatters/usb/javacpp-presets/cuda/src/gen/java/org/bytedeco/cuda/global/nppig.java:[1387,140] reference to NppiImageDescriptor is ambiguous
  both class org.bytedeco.cuda.nppc.NppiImageDescriptor in org.bytedeco.cuda.nppc and class org.bytedeco.cuda.nppig.NppiImageDescriptor in org.bytedeco.cuda.nppig match
[ERROR] /home/kwatters/usb/javacpp-presets/cuda/src/gen/java/org/bytedeco/cuda/global/nppig.java:[1402,110] reference to NppiImageDescriptor is ambiguous
  both class org.bytedeco.cuda.nppc.NppiImageDescriptor in org.bytedeco.cuda.nppc and class org.bytedeco.cuda.nppig.NppiImageDescriptor in org.bytedeco.cuda.nppig match
[ERROR] /home/kwatters/usb/javacpp-presets/cuda/src/gen/java/org/bytedeco/cuda/global/nppig.java:[1402,141] reference to NppiImageDescriptor is ambiguous
  both class org.bytedeco.cuda.nppc.NppiImageDescriptor in org.bytedeco.cuda.nppc and class org.bytedeco.cuda.nppig.NppiImageDescriptor in org.bytedeco.cuda.nppig match
[INFO] 16 errors
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  06:03 min
[INFO] Finished at: 2019-06-07T22:37:19-04:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile (default-compile) on project cuda: Compilation failure: Compilation failure:
[ERROR] /home/kwatters/usb/javacpp-presets/cuda/src/gen/java/org/bytedeco/cuda/global/nppig.java:[1297,108] reference to NppiImageDescriptor is ambiguous
[ERROR]   both class org.bytedeco.cuda.nppc.NppiImageDescriptor in org.bytedeco.cuda.nppc and class org.bytedeco.cuda.nppig.NppiImageDescriptor in org.bytedeco.cuda.nppig match
[ERROR] /home/kwatters/usb/javacpp-presets/cuda/src/gen/java/org/bytedeco/cuda/global/nppig.java:[1297,139] reference to NppiImageDescriptor is ambiguous
[ERROR]   both class org.bytedeco.cuda.nppc.NppiImageDescriptor in org.bytedeco.cuda.nppc and class org.bytedeco.cuda.nppig.NppiImageDescriptor in org.bytedeco.cuda.nppig match
[ERROR] /home/kwatters/usb/javacpp-presets/cuda/src/gen/java/org/bytedeco/cuda/global/nppig.java:[1312,108] reference to NppiImageDescriptor is ambiguous
[ERROR]   both class org.bytedeco.cuda.nppc.NppiImageDescriptor in org.bytedeco.cuda.nppc and class org.bytedeco.cuda.nppig.NppiImageDescriptor in org.bytedeco.cuda.nppig match
[ERROR] /home/kwatters/usb/javacpp-presets/cuda/src/gen/java/org/bytedeco/cuda/global/nppig.java:[1312,139] reference to NppiImageDescriptor is ambiguous
[ERROR]   both class org.bytedeco.cuda.nppc.NppiImageDescriptor in org.bytedeco.cuda.nppc and class org.bytedeco.cuda.nppig.NppiImageDescriptor in org.bytedeco.cuda.nppig match
[ERROR] /home/kwatters/usb/javacpp-presets/cuda/src/gen/java/org/bytedeco/cuda/global/nppig.java:[1327,108] reference to NppiImageDescriptor is ambiguous
[ERROR]   both class org.bytedeco.cuda.nppc.NppiImageDescriptor in org.bytedeco.cuda.nppc and class org.bytedeco.cuda.nppig.NppiImageDescriptor in org.bytedeco.cuda.nppig match
[ERROR] /home/kwatters/usb/javacpp-presets/cuda/src/gen/java/org/bytedeco/cuda/global/nppig.java:[1327,139] reference to NppiImageDescriptor is ambiguous
[ERROR]   both class org.bytedeco.cuda.nppc.NppiImageDescriptor in org.bytedeco.cuda.nppc and class org.bytedeco.cuda.nppig.NppiImageDescriptor in org.bytedeco.cuda.nppig match
[ERROR] /home/kwatters/usb/javacpp-presets/cuda/src/gen/java/org/bytedeco/cuda/global/nppig.java:[1342,109] reference to NppiImageDescriptor is ambiguous
[ERROR]   both class org.bytedeco.cuda.nppc.NppiImageDescriptor in org.bytedeco.cuda.nppc and class org.bytedeco.cuda.nppig.NppiImageDescriptor in org.bytedeco.cuda.nppig match
[ERROR] /home/kwatters/usb/javacpp-presets/cuda/src/gen/java/org/bytedeco/cuda/global/nppig.java:[1342,140] reference to NppiImageDescriptor is ambiguous
[ERROR]   both class org.bytedeco.cuda.nppc.NppiImageDescriptor in org.bytedeco.cuda.nppc and class org.bytedeco.cuda.nppig.NppiImageDescriptor in org.bytedeco.cuda.nppig match
[ERROR] /home/kwatters/usb/javacpp-presets/cuda/src/gen/java/org/bytedeco/cuda/global/nppig.java:[1357,109] reference to NppiImageDescriptor is ambiguous
[ERROR]   both class org.bytedeco.cuda.nppc.NppiImageDescriptor in org.bytedeco.cuda.nppc and class org.bytedeco.cuda.nppig.NppiImageDescriptor in org.bytedeco.cuda.nppig match
[ERROR] /home/kwatters/usb/javacpp-presets/cuda/src/gen/java/org/bytedeco/cuda/global/nppig.java:[1357,140] reference to NppiImageDescriptor is ambiguous
[ERROR]   both class org.bytedeco.cuda.nppc.NppiImageDescriptor in org.bytedeco.cuda.nppc and class org.bytedeco.cuda.nppig.NppiImageDescriptor in org.bytedeco.cuda.nppig match
[ERROR] /home/kwatters/usb/javacpp-presets/cuda/src/gen/java/org/bytedeco/cuda/global/nppig.java:[1372,109] reference to NppiImageDescriptor is ambiguous
[ERROR]   both class org.bytedeco.cuda.nppc.NppiImageDescriptor in org.bytedeco.cuda.nppc and class org.bytedeco.cuda.nppig.NppiImageDescriptor in org.bytedeco.cuda.nppig match
[ERROR] /home/kwatters/usb/javacpp-presets/cuda/src/gen/java/org/bytedeco/cuda/global/nppig.java:[1372,140] reference to NppiImageDescriptor is ambiguous
[ERROR]   both class org.bytedeco.cuda.nppc.NppiImageDescriptor in org.bytedeco.cuda.nppc and class org.bytedeco.cuda.nppig.NppiImageDescriptor in org.bytedeco.cuda.nppig match
[ERROR] /home/kwatters/usb/javacpp-presets/cuda/src/gen/java/org/bytedeco/cuda/global/nppig.java:[1387,109] reference to NppiImageDescriptor is ambiguous
[ERROR]   both class org.bytedeco.cuda.nppc.NppiImageDescriptor in org.bytedeco.cuda.nppc and class org.bytedeco.cuda.nppig.NppiImageDescriptor in org.bytedeco.cuda.nppig match
[ERROR] /home/kwatters/usb/javacpp-presets/cuda/src/gen/java/org/bytedeco/cuda/global/nppig.java:[1387,140] reference to NppiImageDescriptor is ambiguous
[ERROR]   both class org.bytedeco.cuda.nppc.NppiImageDescriptor in org.bytedeco.cuda.nppc and class org.bytedeco.cuda.nppig.NppiImageDescriptor in org.bytedeco.cuda.nppig match
[ERROR] /home/kwatters/usb/javacpp-presets/cuda/src/gen/java/org/bytedeco/cuda/global/nppig.java:[1402,110] reference to NppiImageDescriptor is ambiguous
[ERROR]   both class org.bytedeco.cuda.nppc.NppiImageDescriptor in org.bytedeco.cuda.nppc and class org.bytedeco.cuda.nppig.NppiImageDescriptor in org.bytedeco.cuda.nppig match
[ERROR] /home/kwatters/usb/javacpp-presets/cuda/src/gen/java/org/bytedeco/cuda/global/nppig.java:[1402,141] reference to NppiImageDescriptor is ambiguous
[ERROR]   both class org.bytedeco.cuda.nppc.NppiImageDescriptor in org.bytedeco.cuda.nppc and class org.bytedeco.cuda.nppig.NppiImageDescriptor in org.bytedeco.cuda.nppig match
[ERROR] -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile (default-compile) on project cuda: Compilation failure
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:566)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:289)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356)
Caused by: org.apache.maven.plugin.compiler.CompilationFailureException: Compilation failure
    at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute (AbstractCompilerMojo.java:1215)
    at org.apache.maven.plugin.compiler.CompilerMojo.execute (CompilerMojo.java:188)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:566)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:289)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356)
[ERROR]
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

Any help is appreciated. I am building this on the 1.5 tagged release. I'm happy to provide a PR with my changes once I get it working.

@saudet
Copy link
Member

saudet commented Jun 8, 2019 via email

@saudet
Copy link
Member

saudet commented Jun 9, 2019

Also make sure to delete src/gen before starting the build.

@kwatters
Copy link
Contributor Author

kwatters commented Jun 9, 2019

Thanks for the advice, I will try that. I did come to realize that the latest version of javacpp-presets for cuda are against Cuda 10.1. Unfortunately, and surprisingly, it seems nVidia's latest cuda release for the Jetson Nano is 10.0.
I discovered that there were two of the same classes in different packages that were being generated by the build. I deleted one of them after it was generated, and this was enough to get past that ambigious class error, however, then it failed on a cuBLASLt api as this was introduced in cuda 10.1.
There's no release date yet from nvidia as far as I can tell about cuda 10.1 on the nano, so I think I probably should table this issue , or perhaps roll back to an older version of javacpp-presets prior to the upgrade do cuda 10.1 ...

@saudet
Copy link
Member

saudet commented Jun 9, 2019

There is a backport for CUDA 10.0 in the cuda100 branch.

@kwatters
Copy link
Contributor Author

Excellent, I was able to build it successfully on the cuda100 branch!

@kwatters
Copy link
Contributor Author

Just to report back a bit more. I was able to successfully build against the cuda100 branch. I was able to use that to build nd4j.. and finally, pull it all together to see gpu accelerated VGG16 classification in MyRobotLab on the Jetson Nano.. My understanding is that the Nano will eventually support cuda 10.1.. but I have no idea when that will happen.

I'm happy to share the jar files that I'm using for cuda & nd4j if anyone is interested.

@saudet
Copy link
Member

saudet commented Jun 28, 2019

Awesome! We would need to get this working with cross compilation to make it useful for CI purposes though. Is this something you could start looking into? In any case, please do send pull requests for your updates, even if we need to compile on the device! Thanks

@kwatters
Copy link
Contributor Author

kwatters commented Jul 1, 2019

So, there are toolchains available for x-compile of the jetson nano. I haven't tested them out. (I was able to cross compile the raspi stuff following the other tutorial.. so perhaps I could hack my way though the jetson tool chain stuff. (as this is a background project, I can't commit to getting it done.. but I will try..) Building natively on the jetson was a pain. (a number of issues with power supplies, limited memory, and poor disk i/o performance to the SD card.)

Anyway, here's a pointer to a forum thread about setting up x-compile for the jetson boards
https://devtalk.nvidia.com/default/topic/1050570/jetson-nano/cross-compiling-c-c-code-for-jetson-nano-in-ubuntu-18-04-in-a-host-pc-x86-x64-/

@saudet
Copy link
Member

saudet commented Jul 1, 2019

If you could figure this out so that it could be automated for CI, that would be awesome!

This was referenced Jul 16, 2019
@saudet
Copy link
Member

saudet commented Jul 23, 2019

@kwatters Until then though, if you have an account at Sonatype OSS, I could give you permission to deploy artifacts. Just let me know your username! Thanks

@kwatters
Copy link
Contributor Author

I'd be happy to share the binaries .. have a look here:

http://repo.myrobotlab.org/artifactory/webapp/#/artifacts/browse/tree/General/myrobotlab/org/bytedeco/cuda-nano/10.0-7.4-1.5

I changed the artifact name to "cuda-nano" because it's set for cuda compatibility level 5.3 only.

@saudet
Copy link
Member

saudet commented Jul 26, 2019

@kwatters What's the name of your account on https://oss.sonatype.org/? I'll need that so you can deploy them alongside the others

@kwatters
Copy link
Contributor Author

I just registered an account kwatters@kmwllc.com ...

@saudet
Copy link
Member

saudet commented Jul 26, 2019

What's your username though, just "kwatters"?

@kwatters
Copy link
Contributor Author

kwatters commented Aug 5, 2019

Sorry for the late reply.. was traveling/vacation. Yes, my nickname is "kwatters" for sonatype. thanks!

@saudet
Copy link
Member

saudet commented Aug 8, 2019

Ok, thanks! You should have access within a few days:
https://issues.sonatype.org/browse/OSSRH-50648
Feel free to upload as many snapshots as you want, but let me know beforehand if you intend to release anything! Thanks

@saudet
Copy link
Member

saudet commented Nov 13, 2019

Let's wait for this to happen, which will allow us to support ARM like all the other platforms:
https://nvidianews.nvidia.com/news/nvidia-brings-cuda-to-arm-enabling-new-path-to-exascale-supercomputing

@saudet
Copy link
Member

saudet commented Feb 26, 2020

FYI, there is now a preview release for CUDA 10.2 available at:
https://developer.nvidia.com/cuda-toolkit/arm

@kwatters
Copy link
Contributor Author

Awesome! I was beginning to wonder if Nvidia had forgotten about cuda on the nano. I'll see about blowing the dust off my nano and see how it goes.

@saudet
Copy link
Member

saudet commented Mar 1, 2020

BTW, do you have a fork or a branch somewhere that shows what you had to modify to get it to build for CUDA 10.0 with the Jetson SDK?

@saudet
Copy link
Member

saudet commented Mar 3, 2020

It doesn't look like this is going to help for Jetson though:
https://devtalk.nvidia.com/default/topic/1069763/jetson-agx-xavier/cuda-10-2-107-on-arm/

@kwatters
Copy link
Contributor Author

kwatters commented Mar 4, 2020

Yeah, the jetson board bundle their software with the "jetpack" releases. So, I think the best we can try is to compile against the source and see how that goes.
I did have a branch that i made my changes to for javacpp. but I never committed anything back or made any sort of pull request for it. I just booted up my jetson nano for the first time in many months.. the code/directories are still there. I'll try to find some time to review/audit what i did.

@saudet
Copy link
Member

saudet commented Feb 3, 2021

CUDA 11.2 is now supported on "linux-arm64", but this might not work with Jetson if the latest version supported there is 10.x. For that reason, we can now consider this issue to be about supporting old versions of CUDA.

@saudet
Copy link
Member

saudet commented Feb 3, 2021

Duplicate of #918

@saudet saudet marked this as a duplicate of #918 Feb 3, 2021
@saudet saudet closed this as completed Feb 3, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants