Implementasi netlib BLAS adalah referensi yang sangat baik, sebagian besar tidak dioptimalkan dan didokumentasikan dengan baik (misalnya zgemm ). Namun, itu di Fortran 77, membuatnya agak tidak dapat diakses oleh mereka yang memiliki pendidikan pemrograman yang lebih modern. Apakah ada implementasi level referensi BLAS, seperti netlib, di C / C ++?
11
Implementasi bahasa C yang terkenal dari BLAS adalah ATLAS. Di antara fitur-fitur yang berguna:
http://math-atlas.sourceforge.net/
sumber
Netlib juga menghasilkan CLAPACK , yang termasuk BLAS, tetapi itu hanya kode fortran yang dijalankan melalui f2c dan karena itu agak kikuk (misalnya zgemm ).
sumber
Untuk implementasi berkinerja tinggi yang tidak hanya di antara yang berkinerja tertinggi (lebih tinggi dari 85% puncak pada 60 core Intel Xeon Phi), tetapi juga merupakan yang paling indah, lihat di BLIS:
https://github.com/flame/blis
sumber
Saya memiliki implementasi beberapa bit BLAS / LAPACK di RNP dan RNP2 .
sumber
Kami saat ini sedang mengerjakan Kursus Open Online Massive, "LAFF-On High-Performance Computing" yang menggunakan dgemm sebagai contoh yang mengarahkan seseorang melalui berbagai level paralelisasi: level instruksi, OpenMP, MPI.
Ini bukan implementasi referensi untuk BLAS, tetapi ini adalah referensi untuk cara membuat kode BLAS (untuk kinerja). Untuk mendapat informasi, kunjungi www.ulaff.net
sumber