有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

OpenCL for Java应该使用什么API

我应该使用什么API来支持Java中的OpenCL

我想知道这对性能最好

  1. 爪哇语
  2. Aparabi(由AMD提供的API)
  3. 乔克

将Java字节码转换为OpenCL需要JavaCL,还是只有Aparabi(AMD提供的API)可以做到这一点


共 (1) 个答案

  1. # 1 楼答案

    据我所知,Aparabi是唯一一个提供从字节码自动转换OpenCL的框架。RootBeer为CUDA提供了类似的选择

    WRT性能如果您准备手动调整OpenCL和/或知道如何利用OpenCL的一些更高级功能(本地内存、向量指令、重叠传输/调度),您可能会发现JavaCL或JOCL提供了更多性能机会

    特别是,如果您有多个希望应用的OpenCL内核(比如在管道中),您可以使用JOCL/JavaCL更容易地最小化主机和GPU之间的缓冲区传输。阿帕拉比在这里缺乏一些灵活性

    然而,我预计(并观察到)这三个框架中大多数“简单”算法的性能非常相似

    我的建议(我是Aparabi的发明者/最初的贡献者)是尝试Aparabi,如果你发现自己想要“调整”生成的OpenCL(Aparabi将允许你列出它生成的代码),或者发现你想要试验重叠的缓冲区/传输或多内核调度,当你获得更多经验时,你可以随时切换到JOCL/JavaCL