Frage:
Welche effizienten Matriximplementierungen gibt es für Java?
demongolem
2014-02-05 07:50:11 UTC
view on stackexchange narkive permalink

Von Zeit zu Zeit benötige ich eine Bibliothek, die für mich eine Matrixmultiplikation durchführen kann. Ich glaube, ich habe zuletzt EJML verwendet, aber das ist nicht unbedingt das einfachste Paket, wenn ich mit Feature-Vektoren arbeite. Ein gutes Paket kann den Unterschied in den Wartezeiten für den Abschluss Ihrer Berechnungen bedeuten. Was sind die effizientesten Pakete da draußen? Gibt es gute Benchmarks, um solche Behauptungen verschiedener Pakete zu stützen, die möglicherweise existieren?

Zwei antworten:
#1
+6
demongolem
2014-02-12 08:58:15 UTC
view on stackexchange narkive permalink

Lassen Sie mich eine Antwort geben, da diese Frage etwas leise ist. Auf der EJML-Website habe ich dieses Diagramm gefunden:

enter image description here

Demnach ist EJML insgesamt am besten mit reinem Java-Code für kleinere Matrix und MTJ am besten für große Matrizen. Ich muss wieder vorsichtig sein, wenn einer der Kandidaten Bericht erstattet, aber dies gibt einen Einblick in die verschiedenen verfügbaren Pakete.

Dies ist die Art von Antwort, die mich glauben lässt, dass diese Seite tatsächlich funktionieren könnte
#2
+1
damienfrancois
2014-02-05 13:12:27 UTC
view on stackexchange narkive permalink

JBLAS entspricht der C / FORTRAN-Standard-BLAS-Bibliothek und ist sehr schnell. Es wird mit vorkompilierten Binärdateien geliefert und nutzt die Hardware so effizient wie möglich, wobei die Implementierung je nach Hardwaretyp umgeschaltet wird.

Eine weitere Alternative ist JAMA.

Ich werde Sie positiv bewerten, aber ich habe nach mehr Details gesucht, was sie effizient macht / wie effizient sie miteinander verglichen werden.
Was meinst du mit C / Fortran Standard Blas? Meinst du NetBlas? (Welches IIRC existiert nur als Referenz und ist für Schleifen aufgebaut und langsam.) Meinen Sie Atlas, das für Ihr eigenes System kompiliert ist? Meinen Sie das hochoptimierte OpenBlas? Meinen Sie, es sucht nach Ihrer BLAS-Bibliothek installiert und bietet einen Wrapper um diesen? Es gibt kein C-Standard-BLAS.
Ich meine die ursprüngliche netBLAS API-Definition.


Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...