A implementação do netlib BLAS é uma excelente referência, sendo principalmente não otimizada e bem documentada (por exemplo, zgemm ). No entanto, está no Fortran 77, tornando-o um tanto inacessível para aqueles com uma educação em programação mais moderna. Existe uma implementação de nível de referência do BLAS, como netlib, em C / C ++?
11
Uma implementação notável da linguagem C do BLAS é o ATLAS. Entre recursos úteis:
http://math-atlas.sourceforge.net/
fonte
O Netlib também produz CLAPACK , que inclui BLAS, mas é apenas o código fortran executado no f2c e, portanto, é um pouco desajeitado (por exemplo, zgemm ).
fonte
Para uma implementação de alto desempenho que não esteja apenas entre os de melhor desempenho (melhor que 85% do pico em 60 núcleos do Intel Xeon Phi), mas também seja a mais bem escrita, dê uma olhada no BLIS:
https://github.com/flame/blis
fonte
Tenho implementações de alguns bits do BLAS / LAPACK no RNP e RNP2 .
fonte
Atualmente, estamos trabalhando em um curso on-line aberto em grande escala, "LAFF-On High-Performance Computing", que usa dgemm como exemplo que leva a diferentes níveis de paralelização: nível de instrução, OpenMP, MPI.
Esta não é uma implementação de referência para o BLAS, mas é uma referência de como codificar o BLAS (para desempenho). Para se manter informado, visite www.ulaff.net
fonte