3

我尝试在 4 台计算机上运行我的 aparapi java 程序。2 台计算机可以完美运行,但其他 2 台计算机抛出java.lang.UnsatisfiedLinkError

`

Exception in thread "GPU" java.lang.UnsatisfiedLinkError: C:\Users\Wrusol\AppData\Local\Temp\libaparapi_x86_641952980562458381879.dll: Can't find dependent libraries
        at java.lang.ClassLoader$NativeLibrary.load(Native Method)
        at java.lang.ClassLoader.loadLibrary0(Unknown Source)
        at java.lang.ClassLoader.loadLibrary(Unknown Source)
        at java.lang.Runtime.load0(Unknown Source)
        at java.lang.System.load(Unknown Source)
        at com.aparapi.natives.util.NativeUtils.loadLibraryFromJar(NativeUtils.java:100)
        at com.aparapi.natives.NativeLoader.load(NativeLoader.java:42)
        at com.aparapi.internal.opencl.OpenCLLoader.<clinit>(OpenCLLoader.java:43)
        at com.aparapi.internal.opencl.OpenCLPlatform.getOpenCLPlatforms(OpenCLPlatform.java:73)
        at com.aparapi.device.OpenCLDevice.listDevices(OpenCLDevice.java:458)
        at com.aparapi.internal.kernel.KernelManager.createDefaultPreferredDevices(KernelManager.java:203)
        at com.aparapi.internal.kernel.KernelManager.createDefaultPreferences(KernelManager.java:178)
        at com.aparapi.internal.kernel.KernelManager.<init>(KernelManager.java:46)
        at com.aparapi.internal.kernel.KernelManager.<clinit>(KernelManager.java:38)
        at com.aparapi.internal.kernel.KernelRunner.<init>(KernelRunner.java:170)
        at com.aparapi.Kernel.prepareKernelRunner(Kernel.java:2270)
        at com.aparapi.Kernel.execute(Kernel.java:2439)
        at com.aparapi.Kernel.execute(Kernel.java:2396)
        at com.aparapi.Kernel.execute(Kernel.java:2336)
        at com.mycompany.insurancecompanywithgpu.SimulationCounter.GPUSimulation(SimulationCounter.java:387)
        at com.mycompany.insurancecompanywithgpu.SimulationCounter$2.run(SimulationCounter.java:357)
        at java.lang.Thread.run(Unknown Source)

`

4

2 回答 2

2

注意:我是 Aparapi 项目的现任负责人。这是 Aparapi 的早期版本中存在的错误。如果您使用此处描述的 1.5.0 版,您会没事的: http: //aparapi.com/introduction/getting-started.html

如果你在 maven Central 中使用 Aparapi 的版本,不需要安装任何东西。假设您安装了任何 OpenCL 实现,那么所有需要安装的东西都已安装。Aparapi 通过 maven 甚至 dll/so 文件为您的平台引入依赖项并自动加载它。

您还可以在自述文件中找到类似的信息:https ://github.com/Syncleus/Aparapi

您遇到的错误首先在这里提到,如果您需要该信息,请列出修复它的补丁/版本:https ://github.com/Syncleus/aparapi/issues/52

于 2018-03-04T19:23:45.967 回答
-1

您需要添加必要的本机库

对于 Windows,这意味着 .dll 文件。在与您的 jar 文件处于同一级别的文件夹中找到不同的 arch 类型 .dll。

通过命令行启动 jar 文件时,添加以下语句:

java "-Djava.library.path=lib" -jar your.jar

lib包含本机 .dll 的文件夹在哪里。对于其他操作系统,aparapi 站点上还提供了本机库。如果需要,只需将它们也放入您的lib文件夹中。

于 2017-09-06T14:27:49.960 回答