错误:“ UnsatisfedLinkError:com.aparapi.internal.jni.OPENCLJNI.getPlatforms()” JNI配置

时间:2019-05-12 09:46:54

标签: java macos gpu opencl aparapi

我将尝试在MAC OS上执行基于Aparapi的示例脚本。我使用的是Eclipse的最新版本,但是当我执行DeviceInfo示例以获取所有可用设备时:

public class DeviceInfo {
    public static void main(String[] args) {
        KernelPreferences preferences = KernelManager.instance().getDefaultPreferences();
        System.out.println("-- Devices in preferred order --");
        for (Device device : preferences.getPreferredDevices(null)) {
            System.out.println(device);
        }
    }
}

它生成

java.lang.UnsatisfiedLinkError: com.amd.aparapi.OpenCLJNI.getPlatforms()Ljava/util/List"

有人可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

为Mac(x86_64)构建本机程序集并将其添加到jniLibs中;这是source code

java.lang.UnsatisfiedLinkError通常意味着它找不到本地程序集。

答案 1 :(得分:0)

尽管macOS Mojave 10.14.4不直接支持OpenCL,但我已经执行了Aparapi Framework。

我发现问题出在阿帕拉皮图书馆。特别是,要解决生成的错误,我按照以下步骤操作:

  • 下载此存储库https://github.com/aparapi/aparapi用于AMD图形卡
  • 打开目录“ com.amd.aparapi ”,然后从终端执行

    \Hash::check($request->password, $user->password)
    

    此命令生成该库的.jar文件

  • 将生成jar添加到Eclipse中项目的类路径中

  • 在以下位置为您的操作系统添加特定的Aparapi库:

    ant -f build.xml
    
  • 在执行代码之前,在“ 运行配置”中添加VM参数

    <your-workspace-path>/<your-project>/src/main/resources/osx/
    
  • 执行脚本!