PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : java und OpenCl


Gast
2010-09-29, 02:20:10
Hallo,
ich versuche java und OpenCL/Cuda zum laufen zu bringen.
Da gibt es einmal http://jogamp.org/jocl/www/ und http://www.jocl.org/

Weder das eine, noch andere konnte ich zum laufen bringen.
Ich habe Win 7 mit Cuda 3.0
Beim einen geht das ant file nicht, weil irgendwelche java dlls sich nicht mit gcc kompilieren lassen, beim anderen findet er zwar die mitgelieferte dll, aber ich bekome irgendwie eine "Exception in thread "main" java.lang.UnsatisfiedLinkError: Could not load the native library" Meldung.
Hat es jemand geschafft unter Win7-64 bit einese von beidem zum laufen zu bringen ?

Gast
2010-09-29, 10:59:27
also ich habs jetzt zumindest unter linux zum laufen bekommen.
Ist es richtig dass ich mit float[] schneller bin also wenn ich die GPU verwende, im Programm: http://jogamp.org/wiki/index.php/JOCL_Tutorial ?

Senior Sanchez
2010-09-29, 12:15:21
also ich habs jetzt zumindest unter linux zum laufen bekommen.
Ist es richtig dass ich mit float[] schneller bin also wenn ich die GPU verwende, im Programm: http://jogamp.org/wiki/index.php/JOCL_Tutorial ?

Ich weiß jetzt ehrlich gesagt nicht, wo du float[] verwenden willst, aber probiere es doch einfach aus. :)

Ganon
2010-09-29, 22:39:00
Für triviale Aufgaben ist ein simpler Algo in der normalen Sprache natürlich schneller. OpenCL ist nicht für simplen Kram gedacht.

Gasti
2010-09-29, 22:50:02
Wenn man kompliziert == datenintensiv annimmt schon.
Der Algo ansich muss nicht kompliziert sein.

tomvos
2010-09-30, 07:09:27
Die eingesparte Rechenzeit muss halt größer sein als der Zusatzaufwand für den Transfer (hin und zurück) zwischen Host und Device. Dann lohnt sich eine Auslagerung der Aufgaben auf die GPU.

Gast
2010-09-30, 12:00:38
@Senior Sanchez
ich damit folgendes:
Das Beispielprogramm erstellt ja zwei float-Vektoren mit Zufallszahlen und addiert diese auf der Graka. Wenn ich das ganze nun auf der CPU ausführe,also nur float[] verwende, bin ich schneller.
Da ich mich noch eingelesen hab, wie man die Graka in OpenCL verwenden sollte um einen Geschwindigkeitsvorteil zu erzielen, wollte ich eben wissen, ob das Ergebnis richtig ist

Gast
2010-09-30, 12:05:04
@Senior Sanchez
ich meinte damit folgendes:
Das Beispielprogramm erstellt ja zwei float-Vektoren mit Zufallszahlen und addiert diese auf der Graka. Wenn ich das ganze nun auf der CPU ausführe,also nur float[] verwende, bin ich schneller.
Da ich mich noch nicht eingelesen hab, wie man die Graka in OpenCL verwenden sollte um einen Geschwindigkeitsvorteil zu erzielen, wollte ich eben wissen, ob das Ergebnis richtig ist.

Edit: Sorry hab ein paar Wörter vergessen

universaL
2010-09-30, 21:01:17
hmm,

ist dein java 32 oder 64bit und sind deine dlls entsprechend kompiliert? das letzte mal als ich damit gespielt habe, hatte ich auch einige probleme damit, weiss aber auch nciht mehr so genau was genau.

ich hab die dlls damals mit dem microsoft c compilier kompiliert-

Gast
2010-09-30, 21:03:48
openjdk 64