2010-05-11 10 views

Trả lời

3

Jama hoạt động khá tốt.

0

Nếu bạn sử dụng C++ và NDK, bạn có thể sử dụng Eigen. Nó có thể sử dụng các bộ lệnh SSE 2/3/4, ARM NEON và AltiVec.

7

Thư viện Đại số tuyến tính thông thường được triển khai trong các lớp. Basic Linear Algebra Subprogram (BLAS) nằm ở dưới cùng. Linear Algebra Package (LAPACK) được xây dựng trên đầu trang của BLAS. Các giao diện cho các thư viện hai lớp này được chuẩn hóa vào năm 1990 và các nhà cung cấp phần cứng thường sẽ cung cấp các triển khai tùy chỉnh khác nhau cho các kiến ​​trúc của chúng. LAPACK cung cấp các hoạt động thư viện đại số tuyến tính (SVD, QR, LU, hình vuông nhỏ nhất, nghịch đảo, vv) mà bạn đã đề cập. Trong những năm gần đây, một số thư viện đại số tuyến tính thân thiện với người dùng khác xuất hiện (ví dụ: Armadillo, Eigen), thực tế cung cấp một số trình bao bọc cho thư viện BLAS và LAPACK thông thường.

JBLAS chỉ là triển khai java của BLAS truyền thống. JAMA cũng là một thư viện giống như LAPACK được triển khai với Java. Hai thư viện này không có ý định targetting tại Android. Nhưng kể từ khi lập trình Android thường liên quan đến Java, chúng tôi có thể làm cho chúng hoạt động trên Android. Tuy nhiên, chúng tôi không thể mong đợi hiệu suất từ ​​những triển khai này. Lập luận của tôi là hiệu suất là yếu tố then chốt, vì bạn đang gọi các thư viện thay vì tự viết nó, và hiệu suất cao thường sẽ tăng chi phí năng lượng thấp trong các nền tảng di động với hệ điều hành Android.

Trong khi các thư viện đại số tuyến tính thường nhắm mục tiêu vào CPU (ví dụ: kiến ​​trúc x86, OS: Linux/Windows/MacOS), các chuyên gia hiện đang tiến hành cung cấp hỗ trợ đầy đủ trên nền tảng di động (ví dụ: ARM, OS: Android) .

Tôi chỉ nhận thấy rằng Qualcomm vừa phát hành thư viện BLAS giống như của riêng mình Snapdragon Math Library, có thể chạy trên kiến ​​trúc ARM tùy chỉnh của Qualcomm. Với mức cao nhất LAPACK liên kết với nó, các hoạt động đại số tuyến tính (SVD, QR, LU, hình vuông nhỏ nhất, nghịch đảo, vv) có thể được triển khai trên Android với hiệu suất cao.

+0

Cảm ơn Dan! Tôi vừa chỉnh sửa câu trả lời của mình. Hy vọng nó là khép kín hơn. –