libGDX 是否支持内置于 LWJGL 中的 OpenCL 包装器?

Does libGDX support the OpenCL wrapper built into LWJGL, which it is built off of?

我最近一直在编写卷积反向传播神经网络,我主要使用 Java 到 运行 程序和 libGDX 图形可视化。通过大量研究,我发现要大幅提高性能和效率,我应该在显卡而不是 CPU 上执行矩阵计算。

网上查了资料,发现在显卡上进行这种计算的主要方式是通过OpenCl。经过更多研究后,我发现我在 Java 上支持 OpenCl 的主要两个选项是通过 LWJGL 或 JOCL。

libGDX 是建立在 LWJGL 上的,所以我的第一直觉是看看我是否可以通过 libGDX 库访问内置的 OpenCL 支持,但是,环顾四周后,我一无所获随便这个!

我的问题是,我能否通过 libGDX 库访问 OpenCl,如果可以,如何访问?

如果我无法访问 LWJGL 的 OpenCl 实现,我应该使用 JOCL 访问 GPU 数学计算,还是应该在我的 libGDX 应用程序中添加第二个 LWJGL 库?

不确定它是否在 GDX 的 Lwjgl2 中,但我知道 LibGDX Lwjgl3 实现不包含它。但 Lwjgl3 被分解成模块,因此您可以在 Gradle 项目中添加 OpenCL 模块。

"core"依赖项中,添加

compile "org.lwjgl:lwjgl-opencl:3.1.0"

我不知道这个 OpenCL 模块是否对 Lwjgl3 的核心有任何依赖。如果是这样,您可能想切换到 LibGDX Lwjgl3 后端。要切换到Lwjgl3,在"desktop"依赖项中,在lwjgl3之后添加3,所以:

compile "com.badlogicgames.gdx:gdx-backend-lwjgl3:$gdxVersion"

如果切换到 Lwjgl3,则必须清理一些 DesktopLauncher 导入和 class 名称,基本上是在 class 名称中的 Lwjgl 之后添加 3 (scroll down here for instructions if you need them)。

您可能需要使版本号与 LibGDX 版本正在使用的 Lwjgl3 版本保持同步。