2010-05-11 14 views

Respuesta

3

Jama funciona bastante bien.

0

Si usa C++ y NDK puede usar Eigen. Puede usar conjuntos de instrucciones SSE 2/3/4, ARM NEON y AltiVec.

7

Las bibliotecas convencionales de Álgebra lineal se implementan en capas. Basic Linear Algebra Subprogram (BLAS) está en la capa inferior. Linear Algebra Package (LAPACK) está construido encima de BLAS. Las interfaces para estas dos bibliotecas de capa se estandarizaron en la década de 1990, y los proveedores de hardware generalmente proporcionarán diversas implementaciones personalizadas para sus arquitecturas. LAPACK proporciona las operaciones de la biblioteca de álgebra lineal (SVD, QR, LU, mínimos cuadrados, inversa, etc.) que mencionó. En los últimos años, surgen algunas librerías de álgebra lineal más fáciles de usar (por ejemplo, Armadillo, Eigen), que realmente proporcionan algunas envolturas para la biblioteca convencional BLAS y LAPACK.

JBLAS es solo una implementación java de BLAS tradicional. JAMA es también una biblioteca similar a LAPACK implementada con Java. Estas dos bibliotecas no están dirigidas específicamente a Android. Pero dado que la programación de Android generalmente involucra Java, podemos hacer que funcionen en Android. Sin embargo, no podemos esperar el rendimiento de estas implementaciones. Mi argumento es que el rendimiento es un factor clave, ya que está invocando las bibliotecas en lugar de escribirlo usted mismo, y el alto rendimiento generalmente aumentará el bajo costo de energía en las plataformas móviles con sistema operativo Android. Mientras que las bibliotecas de álgebra lineal anteriores generalmente apuntan a la CPU (por ejemplo, arquitectura x86, sistema operativo: Linux/Windows/MacOS), los expertos están progresando para proporcionar soporte de pila completo en plataformas móviles (ej. ARM, SO: Android) .

Me acabo de dar cuenta de que Qualcomm acaba de lanzar su propia biblioteca similar a BLAS Snapdragon Math Library, que se puede ejecutar en la arquitectura ARM personalizada de Qualcomm. Con el nivel superior LAPACK vinculándolo, estas operaciones de álgebra lineal (SVD, QR, LU, mínimos cuadrados, inversa, etc.) pueden implementarse en Android con alto rendimiento.

+0

Gracias Dan! Acabo de editar mi respuesta. Espero que sea más autónomo. –

Cuestiones relacionadas