Domanda:
Quali implementazioni di matrice efficienti ci sono per Java
demongolem
2014-02-05 07:50:11 UTC
view on stackexchange narkive permalink

Di tanto in tanto ho bisogno di una libreria in grado di eseguire la moltiplicazione di matrici per me. Penso di aver usato di recente EJML, ma questo non è necessariamente il pacchetto più semplice da usare quando lavoro con i vettori di caratteristiche. Avere un buon pacchetto può fare la differenza nelle ore di attesa per il completamento dei calcoli. Allora quali sono i pacchetti più efficienti là fuori? Esistono buoni benchmark per supportare tali affermazioni fatte da vari pacchetti che potrebbero esistere?

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

Bene, lasciatemi dare una risposta poiché questa domanda è un po 'tranquilla. Dal sito Web EJML, ho trovato questo grafico:

enter image description here

Quindi, in base a questo, EJML è il migliore nel complesso utilizzando il codice Java puro per matrici più piccole e MTJ è il migliore per le grandi dimensioni matrici. Ancora una volta devo stare attento con uno dei candidati che fa la segnalazione, ma questo fornisce alcune informazioni sui diversi pacchetti disponibili.

Questo è il tipo di risposta che mi fa pensare che questo sito potrebbe effettivamente funzionare
#2
+1
damienfrancois
2014-02-05 13:12:27 UTC
view on stackexchange narkive permalink

JBLAS è l'equivalente della libreria BLAS standard C / FORTRAN ed è molto veloce. Viene fornito con binari precompilati e utilizza l'hardware nel modo più efficiente possibile, cambiando l'implementazione a seconda del tipo di hardware.

Un'altra alternativa è JAMA.

Ti darò un voto positivo, tuttavia stavo cercando maggiori dettagli su ciò che li rende efficienti / quanto sono efficienti rispetto tra loro.
Cosa intendi per blas standard C / Fortran? Intendi NetBlas? (Quale IIRC esiste solo come referene ed è costruito attorno a loop ed è lento.) Intendi Atlas che è compilato per il tuo sistema? Intendi OpenBlas altamente ottimizzato? Intendi che cerca quale libreria BLAS hai installato e fornisce un wrapper attorno a quello? Non esiste un BLAS standard C.
Intendo la definizione originale dell'API netBLAS.


Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...