I’ve done the following
- built my Java program with beta7 and Cuda 10.2 dependencies on Windows 10.
- installed Cuda10.2 and cudnn10.2. (copied dlls from cudnn/bin into Cuda10.2 bin)
- Set “-Djava.library.path=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\bin”
and get the following…
[main] INFO org.nd4j.linalg.factory.Nd4jBackend - Loaded [JCublasBackend] backend
[main] INFO org.nd4j.nativeblas.NativeOpsHolder - Number of threads used for linear algebra: 32
[main] INFO org.nd4j.linalg.api.ops.executioner.DefaultOpExecutioner - Backend used: [CUDA]; OS: [Windows 10]
[main] INFO org.nd4j.linalg.api.ops.executioner.DefaultOpExecutioner - Cores: [8]; Memory: [7.1GB];
[main] INFO org.nd4j.linalg.api.ops.executioner.DefaultOpExecutioner - Blas vendor: [CUBLAS]
[main] INFO org.nd4j.linalg.jcublas.JCublasBackend - ND4J CUDA build version: 10.2.89
[main] INFO org.nd4j.linalg.jcublas.JCublasBackend - CUDA device 0: [Quadro M2200]; cc: [5.2]; Total memory: [4294967296]
[main] INFO org.deeplearning4j.nn.multilayer.MultiLayerNetwork - Starting MultiLayerNetwork with WorkspaceModes set to [training: ENABLED; inference: ENABLED], cacheMode set to [NONE]
[main] WARN org.deeplearning4j.nn.layers.convolution.ConvolutionLayer - Could not initialize CudnnConvolutionHelper
java.lang.reflect.InvocationTargetException
…
Caused by: java.lang.UnsatisfiedLinkError: no jnicudnn in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
…
Caused by: java.lang.UnsatisfiedLinkError: C:\Users\DavidWood.javacpp\cache\cuda-10.2-7.6-1.5.3-windows-x86_64.jar\org\bytedeco\cuda\windows-x86_64\jnicudnn.dll: The specified procedure could not be found
…
If I run the following (recommended on other posts):
try {
Loader.load(cudnn.class);
} catch (UnsatisfiedLinkError e) {
String path = Loader.cacheResource(cudnn.class, "windows-x86_64/jnicudnn.dll").getPath();
new ProcessBuilder("c:/temp/dependencies/DependenciesGui.exe", path).start().waitFor();
}
I see that it can’t find cudnn64_7.dll. The cudnn 10.2 I installed contains cudnn64_8.dll. I copied this file to cudnn64_7.dll, but no joy.
Thoughts?