Subprogram Aljabar Linear Dasar itu apa sih?

Subprogram Aljabar Linear Dasar (SALD, dalam Bahasa Inggris: Basic Linear Algebra Subprograms, BLAS) adalah spesifikasi yang mengatur kumpulan rutin tingkat rendah yang berkaitan dengan melakukan operasi aljabar linear umum seperti penambahan vektor, perkalian skalar, perkalian titik, kombinasi linear, dan perkalian matriks. Operasi-operasi tersebut secara de facto adalah standar rutin tingkat rendah untuk pustaka tentang aljabar linear. Meskipun spesifikasi SALD bersifat umum, implementasi SALD pada perangkat tertentu sering kali mengoptimalkan aspek kecepatan, agar penggunaannya dapat memberikan peforma yang menguntungkan secara substansial. Implementasi SALD akan memanfaatkan perangkat keras titik kambang khusus seperti register vektor atau instruksi SIMD.

SALD berasal dari pustaka Fortran pada tahun 1979 dan antarmukanya distandarkan oleh BLAS Technical (BLAST) Forum, dengan laporan SALD terbaru dapat ditemukan pada situs web netlib. Pustaka Fortran ini dikenal sebagai implementasi acuan dan tidak dioptimalkan untuk kecepatan, tetapi berada dalam domain publik.

Kebanyakan pustaka menawarkan rutinitas aljabar linear yang kompatibel dengan antarmuka SALD, memungkinkan pengguna pustaka untuk mengembangkan program yang tidak bergantung dengan pustaka SALD yang mereka gunakan. Contoh perpustakaan SALD meliputi: AMD Core Math Library (ACML), Arm Performance Libraries, Automatically Tuned Linear Algebra Software (ATLAS), Intel Math Kernel Library (MKL), dan OpenBLAS. ACML sudah tidak didukung oleh produsennya. ATLAS adalah pustaka portabel yang secara otomatis mengoptimalkan dirinya sendiri keadaan arsitektur ia dijalankan. MKL adalah freeware dan vendor library berbayar yang dioptimalkan untuk x86 dan x86-64 dengan penekanan kinerja pada prosesor Intel. OpenBLAS adalah pustaka open-source yang dioptimalkan untuk banyak arsitektur populer. LINPACK benchmark sangat bergantung pada routine gemmpada SALD untuk prosesnya dalam mengukur performa.

Banyak aplikasi perangkat lunak numerik menggunakan pustaka yang kompatibel dengan SALD ketika melakukan komputasi aljabar linear, termasuk Armadillo, LAPACK, LINPACK, GNU Octave, Mathematica, MATLAB, NumPy, R, dan Julia.