libGDX是否支持内置于LWJGL中的OpenCL包装器,它是由它构建的?

时间:2017-02-02 03:40:43

标签: libgdx neural-network opencl lwjgl jocl

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

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

libGDX是建立在LWJGL上的,所以我的第一直觉就是看看我是否可以通过libGDX库访问内置的OpenCL支持,但是,环顾四周之后,我什么都没发现!

我的问题是,我可以通过libGDX库访问OpenCl,如果是,那该怎么办?

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

1 个答案:

答案 0 :(得分:2)

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

"core"依赖项中,添加

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

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

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

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

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