Test sous BLAS
bonjour,
j'ai un code.c du produit de deux matrices creuses,je voulais le tester sous la bibiothèque BLAS.
s'il vous plait,comment ça se fait?
merci,
j'ai un code.c du produit de deux matrices creuses,je voulais le tester sous la bibiothèque BLAS.
s'il vous plait,comment ça se fait?
merci,
1 réponse
-
Installe le paquet libblas-dev :
sudo apt-get update
sudo apt-get install libblas-dev
Ensuite regardons avec apt-file ce que ce paquet nous installe :
sudo apt-get install apt-file
apt-file update
apt-file list libblas-dev
Exemple :
(mando@aldur) (~) $ apt-file list libblas-dev
libblas-dev: /usr/include/cblas.h
libblas-dev: /usr/include/cblas_f77.h
libblas-dev: /usr/lib/libblas/libblas.a
libblas-dev: /usr/lib/libblas/libblas.so
libblas-dev: /usr/lib/pkgconfig/blas-netlib.pc
libblas-dev: /usr/share/doc/libblas-dev/changelog.Debian.gz
libblas-dev: /usr/share/doc/libblas-dev/copyright
1) On voit ici que le header fournit s'appelle cblas.h et qu'il est dans/usr/include
.
Ce répertoire est automatiquement examiné par ton compilateur, donc il suffira de faire#include <cblas.h>
pour que les fonctions cblas soient déclarées. Pas besoin de passer d'option au compilateur pour cela.
On crée un fichier (mettons toto.c) :
#include <cblas.h>
#include <stdio.h>
int main() {
float x, y;
cblas_sdsdot(0, 0.0, &x, 1, &y, 1);
printf("x = %lf\n", x);
printf("y = %lf\n", x);
return 0;
}
2) Ensuite on voit que le paquet fournit une librairie partagée (libblas.so). L'option à passer à gcc sera donc-lblas
(on enlève le préfixe "lib" et le suffixe ".so" pour déterminer ça, c'est pareil pour toutes les librairies). Puis on compile :
gcc -W -Wall -O2 -o toto toto.c -lblas
./toto
On obtient :
(mando@aldur) (~) $ ./a.out
x = 0.000000
y = 0.000000
Bonne chance