Vraag:
Welke efficiënte matriximplementaties zijn er voor Java
demongolem
2014-02-05 07:50:11 UTC
view on stackexchange narkive permalink

Van tijd tot tijd heb ik een bibliotheek nodig die matrixvermenigvuldiging voor mij kan uitvoeren. Ik denk dat ik voor het laatst EJML heb gebruikt, maar dat is niet per se het gemakkelijkste pakket om te gebruiken als ik met feature-vectoren werk. Het hebben van een goed pakket kan het verschil betekenen in wachturen voordat uw berekeningen zijn voltooid. Dus wat zijn de meest efficiënte pakketten die er zijn? Zijn er goede benchmarks om dergelijke beweringen van verschillende pakketten te ondersteunen die mogelijk bestaan?

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

Laat me een antwoord geven, aangezien deze vraag een beetje stil is. Van de EJML-website vond ik deze grafiek:

enter image description here

Dus volgens dit is EJML in het algemeen het beste met pure Java-code voor kleinere matrix en MTJ is het beste voor grote matrices. Opnieuw voorzichtig zijn met de rapportage van een van de kandidaten, maar dit geeft wel enig inzicht in de verschillende beschikbare pakketten.

Dit is het soort antwoord dat me doet denken dat deze site echt zou kunnen werken
#2
+1
damienfrancois
2014-02-05 13:12:27 UTC
view on stackexchange narkive permalink

JBLAS is het equivalent van de standaard C / FORTRAN BLAS-bibliotheek en is erg snel. Het wordt geleverd met voorgecompileerde binaire bestanden en gebruikt de hardware zo efficiënt mogelijk, waarbij de implementatie afhankelijk is van het hardwaretype.

Een ander alternatief is JAMA.

Ik zal je een positieve stem geven, maar ik was op zoek naar meer details over wat ze efficiënt maakt / hoe efficiënt ze zijn vergeleken met elkaar.
Wat bedoel je met C / Fortran standard blas? Bedoel je NetBlas? (Welke IIRC bestaat alleen als een referentie en is opgebouwd rond loops en is traag.) Bedoel je Atlas die wordt aangevuld voor je eigen systeem? Bedoel je de sterk geoptimaliseerde OpenBlas? Bedoel je dat het opzoekt welke BLAS-bibliotheek je hebt geïnstalleerd en biedt een wikkel eromheen? Er is geen C-standaard BLAS.
Ik bedoel de originele netBLAS API-definitie.


Deze Q&A is automatisch vertaald vanuit de Engelse taal.De originele inhoud is beschikbaar op stackexchange, waarvoor we bedanken voor de cc by-sa 3.0-licentie waaronder het wordt gedistribueerd.
Loading...