我已在 Gradle 中导入以下库:
compile group: 'org.jcuda', name: 'jcuda-natives', version: '0.9.2'
compile group: 'org.jcuda', name: 'jcublas-natives', version: '0.9.2'
compile group: 'org.jcuda', name: 'jcublas', version: '0.9.2'
并复制粘贴JCublasSampleexample from JCuda page .
不幸的是,我收到以下错误:
Creating input data...
Performing Sgemm with Java...
Performing Sgemm with JCublas...
Exception in thread "main" java.lang.UnsatisfiedLinkError: Error while loading native library "JCudaRuntime-0.9.2-windows-x86_64"
Operating system name: Windows 10
Architecture : amd64
Architecture bit size: 64
---(start of nested stack traces)---
Stack trace from the attempt to load the library as a file:
java.lang.UnsatisfiedLinkError: no JCudaRuntime-0.9.2-windows-x86_64 in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
at java.lang.Runtime.loadLibrary0(Runtime.java:870)
at java.lang.System.loadLibrary(System.java:1122)
at jcuda.LibUtils.loadLibrary(LibUtils.java:143)
at jcuda.runtime.JCuda.initialize(JCuda.java:422)
at jcuda.runtime.JCuda.<clinit>(JCuda.java:406)
at jcuda.jcublas.JCublas.initialize(JCublas.java:93)
at jcuda.jcublas.JCublas.<clinit>(JCublas.java:81)
...
当然,图书馆不存在。问题是如何链接Maven/Gradle?网站称所有 DLL 都应位于 JAR 内。
CUDA
已安装,但我没有像处理 nd4j
那样在任何地方指定它的版本。
最佳答案
这是我的错:正确 CUDA 版本的 cublas DLL 不在 PATH
中。 JCublas 的 DLL
在没有任何 Gradle 技巧的情况下成功加载,因为代码将其复制到 CLASSPATH
的 tmp
目录中。同时,错误消息没有提供任何信息,建议我在其他地方寻找问题,而且 Gradle 示例也很困惑。
总结所需内容:安装与 JCublas 相同版本的 CUDA(且路径正确),并在类路径上提供所需的“ native ”JAR。
关于java - 尝试运行 JCuda 示例时 java.library.path 中没有 JCudaRuntime-0.9.2-windows-x86_64,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53034218/