J'essaie d'accélérer les opérations matricielles en utilisant NumPy dans Ubuntu 14.04 LTS (64 bits). Au lieu d'utiliser ATLAS (en fait quand j'utilise ATLAS, il n'y a qu'un seul thread qui tourne, avec 7 autres threads ouverts qui ne font rien, même si je spécifie OMP_NUM_THREADS=8
par exemple, je ne sais pas pourquoi), j'ai décidé de donner OpenBLAS un essai.Pas de _dotblas.so après l'installation de OpenBLAS et Numpy
J'ai passé des heures en suivant plusieurs tutoriels pour construire le code source de OpenBLAS et NumPy, par ex. [1], [2], [3], [4] et [5]. Cependant, aucun d'eux ne peut générer _dotblas.so
après avoir compilé NumPy, qui est un fichier critique pour accélérer dot
opération entre les matrices. Puis-je savoir si quelqu'un a construit avec succès NumPy et OpenBLAS sous Ubuntu 14.04? Si oui, pouvez-vous s'il vous plaît laissez-moi savoir comment faire?
Merci.
Mise à jour:
ci-dessous est essentiellement ce que je résume de ces cinq postes et essayé dans ma machine:
# OpenBLAS
git clone git://github.com/xianyi/OpenBLAS
cd OpenBLAS
make FC=gfortran
sudo make PREFIX=/opt/OpenBLAS/ install
cd ..
# let the system know
sudo sh -c 'echo "/opt/OpenBLAS/lib" > /etc/ld.so.conf.d/openblas.conf'
sudo ldconfig
# Numpy
git clone https://github.com/numpy/numpy
cd numpy
vim site.cfg # and put the following content within #### in site.cfg
####
[default]
library_dirs = /opt/OpenBLAS/lib
[atlas]
atlas_libs = openblas
library_dirs = /opt/OpenBLAS/lib
[lapack]
lapack_libs = openblas
library_dirs = /opt/OpenBLAS/lib
####
export BLAS=/opt/OpenBLAS/lib/libopenblas.a
export LAPACK=/opt/OpenBLAS/lib/libopenblas.a
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/OpenBLAS/lib/
python setup.py build
sudo python setup.py install
MISE À JOUR: Le script ci-dessus a été testé fonctionne bien sur Ubuntu 12.04 et 14.04 64 bits.
Merci d'avoir soulevé cette question - J'ai ajouté un [nouveau script de test] (https://gist.github.com/alimuldal/eb0f4eea8af331b2a890) à [mon précédent guide] (http://stackoverflow.com/questions/11443302/compiling-numpy-avec-openblas-integration/14391693 # 14391693) pour compiler numpy contre OpenBLAS –
@ali_m: Merci pour votre gentil guide! J'en ai beaucoup appris auparavant. En fait, dans votre guide, vous n'avez pas mis [atlas] 'et [lapack]' dans le fichier * site.cfg *, alors que d'autres l'ont fait (voir quelques liens dans mon article) en affirmant que ces deux sont importants. Pouvez-vous commenter si '[atlas]' et '[lapack]' sont vraiment nécessaires? – mintaka
[ATLAS] (http://math-atlas.sourceforge.net/) est une implémentation BLAS alternative. Cette section de 'site.cfg' ne serait importante que si vous vouliez utiliser ATLAS au lieu de OpenBLAS (si vous incluez à la fois les sections [atlas]' et [openblas] ', alors je pense que numpy priorise la liaison avec OpenBLAS sur ATLAS, cela ne ferait aucune différence). La section '[lapack]' est également inutile si vous utilisez OpenBLAS, car [une construction par défaut] (https://github.com/xianyi/OpenBLAS/blob/develop/Makefile.rule#L75-L77) de OpenBLAS inclut également le contenu de [netlib-lapack] (http://www.netlib.org/lapack/). –