2017-02-02 2 views
0

Ich habe vor kurzem an der Programmierung eines konvolutionellen neuronalen Netzwerkes mit Rückpropagation gearbeitet, und ich habe hauptsächlich Java verwendet, um das Programm und libGDX für die grafischen Visualisierungen auszuführen. Durch intensive Recherchen habe ich festgestellt, dass ich die Matrixberechnungen auf der Grafikkarte statt auf der CPU durchführen sollte, um Leistung und Effizienz stark zu steigern.Unterstützt libGDX den in LWJGL eingebauten OpenCL-Wrapper, aus dem er besteht?

Nachdem ich online nach Quellen gesucht hatte, stellte ich fest, dass der Hauptweg, solche Berechnungen auf der Grafikkarte durchzuführen, OpenCl war. Nach noch mehr Nachforschungen entdeckte ich, dass meine beiden Hauptoptionen für OpenCl-Unterstützung auf Java LWJGL oder JOCL waren.

libGDX wurde auf LWJGL aufgebaut, also war mein erster Instinkt zu sehen, ob ich auf diesen eingebauten OpenCL-Support über die libGDX-Bibliothek zugreifen konnte, aber nachdem ich mich umgesehen hatte, fand ich nichts darüber!

Meine Frage ist, kann ich auf OpenCl durch die libGDX-Bibliothek zugreifen, und wenn ja, wie?

Wenn ich nicht auf die OpenCl-Implementierung von LWJGL zugreifen kann, sollte ich JOCL verwenden, um auf mathematische GPU-Berechnungen zuzugreifen, oder sollte ich eine zweite Bibliothek von LWJGL in meine libGDX-Anwendung einfügen?

Antwort

1

Nicht sicher, ob es in Lwjgl2 in GDX ist, aber ich weiß, die LibGDX Lwjgl3-Implementierung enthält es nicht. Aber Lwjgl3 ist in Module unterteilt, so dass Sie das OpenCL-Modul in Ihrem Gradle-Projekt hinzufügen können. wenn die OpenCL-Modul alle Abhängigkeiten auf dem Kern von Lwjgl3 hat

In "core" Abhängigkeiten hinzufügen

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

Was ich nicht weiß, ist. Wenn dies der Fall ist, möchten Sie möglicherweise zum LibGDX Lwjgl3-Backend wechseln. Zum Umschalten auf Lwjgl3, in den "desktop" Abhängigkeiten, fügen 3 nach lwjgl3, so:

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

Wenn Sie Lwjgl3 wechseln, müssen Sie einige der DesktopLauncher Importe und Klassennamen aufzuräumen, im Grunde Zugabe von 3 nach LWJGL in die Klassennamen (scroll down here for instructions if you need them).

Möglicherweise müssen Sie die Versionsnummer mit der Version von Lwjgl3 synchronisieren, die von der LibGDX-Version verwendet wird.