2010-05-11 7 views

risposta

3

Jama funziona abbastanza bene.

0

Se si utilizza C++ e NDK, è possibile utilizzare Eigen. Può utilizzare i set di istruzioni SSE 2/3/4, ARM NEON e AltiVec.

7

Le librerie di algebra lineare convenzionale sono implementate a strati. Basic Linear Algebra Subprogram (BLAS) si trova nel livello inferiore. Linear Algebra Package (LAPACK) è costruito sopra BLAS. Le interfacce per queste librerie a due strati sono standardizzate negli anni '90 e i fornitori di hardware forniranno di solito varie implementazioni personalizzate per le loro architetture. LAPACK fornisce le operazioni della libreria algebra lineare (SVD, QR, LU, minimi quadrati, inversa, ecc.) Che hai menzionato. Negli anni più recenti, emergono alcune librerie di algebra lineare più user-friendly (ad esempio Armadillo, Eigen) che forniscono effettivamente alcuni wrapper per la libreria convenzionale BLAS e LAPACK.

JBLAS è solo un'implementazione java del tradizionale BLAS. JAMA è anche una libreria simile a LAPACK implementata con Java. Queste due librerie non sono rivolte in modo acuto ad Android. Ma dal momento che la programmazione Android di solito coinvolge Java, possiamo farli funzionare su Android. Tuttavia, non possiamo aspettarci prestazioni da queste implementazioni. La mia argomentazione è che le prestazioni sono un fattore chiave, dal momento che stai invocando le librerie invece di scriverle tu stesso, e le alte prestazioni di solito aumentano il costo a basso costo nelle piattaforme mobili con sistema operativo Android.

Mentre le librerie di algebra lineare sopra di solito indirizzano alla CPU (ad esempio architettura x86, SO: Linux/Windows/MacOS), gli esperti stanno ora facendo progressi per fornire anche supporti stack completi su piattaforme mobili (es. ARM, OS: Android) .

Ho appena notato che Qualcomm ha appena rilasciato la sua libreria simile a BLAS Snapdragon Math Library, che può essere eseguita su architettura ARM personalizzata di Qualcomm. Con il livello superiore LAPACK che si collega ad esso, queste operazioni di algebra lineare (SVD, QR, LU, minimi quadrati, inversa, ecc.) Possono essere implementate su Android con prestazioni elevate.

+0

Grazie Dan! Ho appena modificato la mia risposta. Spero che sia più autonomo. –