我尝试在4台计算机上运行我的aparapi java程序。 2台计算机可以完美运行,但其他2台计算机可以运行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)
:
`
{{1}}
`
答案 0 :(得分:1)
注意:我现在是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
答案 1 :(得分:-1)
对于Windows,这意味着.dll文件。在文件夹中找到不同的arch类型.dll,与jar文件位于同一级别。
通过命令行启动jar文件时,添加以下语句:
java "-Djava.library.path=lib" -jar your.jar
其中lib
是包含本机.dlls的文件夹。
对于其他操作系统,aparapi站点上还提供了本机库。如果需要,也可以将它们放在lib
文件夹中。