2010-05-11 3 views

답변

3

Jama은 상당히 잘 작동합니다.

0

C++ 및 NDK를 사용하는 경우 Eigen을 사용할 수 있습니다. SSE 2/3/4, ARM NEON 및 AltiVec 명령어 세트를 사용할 수 있습니다.

7

종래의 선형 대수학 라이브러리는 레이어로 구현됩니다. Basic Linear Algebra Subprogram (BLAS)은 하단에 있습니다. Linear Algebra Package (LAPACK)은 BLAS 위에 구축되었습니다. 이 두 레이어 라이브러리의 인터페이스는 1990 년대에 표준화되었으며 하드웨어 공급 업체는 대개 아키텍처에 맞게 다양한 사용자 지정된 구현을 제공합니다. LAPACK은 언급 한 선형 대수 라이브러리 연산 (SVD, QR, LU, 최소 제곱, 역 등)을 제공합니다. 가장 최근에, 종래의 BLAS 및 LAPACK 라이브러리에 대한 래퍼를 실제로 제공하는보다 사용자 친화적 인 선형 대수 라이브러리 (예 : Armadillo, Eigen)가 등장했습니다.

JBLAS은 전통적인 BLAS의 자바 구현입니다. JAMA은 Java로 구현 된 LAPACK 형 라이브러리입니다. 이 두 라이브러리는 안드로이드에서 목표로하지 않습니다. 하지만 안드로이드 프로그래밍은 대개 자바를 포함하기 때문에 안드로이드에서 작동하도록 할 수 있습니다. 그러나 이러한 구현에서 성능을 기대할 수는 없습니다. 필자가 직접 작성하지 않고 라이브러리를 호출하기 때문에 성능이 핵심 요소이며, 고성능은 대개 Android OS를 사용하는 모바일 플랫폼에서 낮은 에너지 비용을 높입니다.

위의 선형 대수 라이브러리는 대개 CPU (예 : x86 아키텍처, Linux/Windows/MacOS)를 대상으로하지만 전문가는 현재 모바일 플랫폼 (예 : ARM, OS : Android) .

Qualcomm이 Qualcomm의 사용자 정의 된 ARM 아키텍처에서 실행할 수있는 자체 BLAS 계열 라이브러리 Snapdragon Math Library을 방금 발표했습니다. 최상위 레벨 LAPACK을 연결하면 이러한 선형 대수 연산 (SVD, QR, LU, 최소 제곱, 역 등)을 Android에서 고성능으로 구현할 수 있습니다.

+0

감사합니다. Dan! 방금 내 대답을 편집했습니다. 그것이 자급 자족하기를 희망한다. –