Bâtiment ATLAS (et plus tard Octave avec ATLAS)


9

J'essaie de configurer ATLAS (pour pouvoir ensuite compiler l'octave avec le support ATLAS).

Si je ne me trompe pas, je dois encore le construire manuellement en raison des optimisations spécifiques à l'environnement. Je vois un paquet pour ATLAS, mais il semble qu'il utilise les options de construction génériques multiplateforme (par exemple "ça va être lent").

Ainsi, l'exécution du script de configuration comme décrit dans les documents semble mal se passer. En tant que développeur java, je ne réussis jamais à faire des erreurs ou des erreurs dans ces processus de construction. Suis-je manquant de dépendances (si oui, y a-t-il une documentation sur ce dont j'ai besoin)?

allusers@vbubuntu:~/Downloads/atlas3.10.1/build_vbubuntu$ ../configure -b 64 -D c -DPentiumCPS=3000 --with-netlib-lapack-tarfile=/home/allusers/Downloads/lapack-3.5.0.tgz

make: `xconfig' is up to date.
./xconfig -d s /home/allusers/Downloads/atlas3.10.1/build_vbubuntu/../ -d b /home/allusers/Downloads/atlas3.10.1/build_vbubuntu  -b 64 -D c -DPentiumCPS=3000 -Si lapackref 1

OS configured as Linux (1)

Assembly configured as GAS_x8664 (2)

Vector ISA Extension configured as  SSE3 (6,448)
ERROR: enum fam=3, chip=2, mach=0
make[3]: *** [atlas_run] Error 44
make[2]: *** [IRunArchInfo_x86] Error 2

Architecture configured as  Corei1 (25)
ERROR: enum fam=3, chip=2, mach=0
make[3]: *** [atlas_run] Error 44
make[2]: *** [IRunArchInfo_x86] Error 2

Clock rate configured as 2350Mhz
ERROR: enum fam=3, chip=2, mach=0
make[3]: *** [atlas_run] Error 44
make[2]: *** [IRunArchInfo_x86] Error 2

Maximum number of threads configured as  4
Parallel make command configured as '$(MAKE) -j 4'
ERROR: enum fam=3, chip=2, mach=0
make[3]: *** [atlas_run] Error 44
make[2]: *** [IRunArchInfo_x86] Error 2
Cannot detect CPU throttling.
rm -f config1.out
make atlas_run atldir=/home/allusers/Downloads/atlas3.10.1/build_vbubuntu exe=xprobe_comp redir=config1.out \
                args="-v 0 -o atlconf.txt -O 1 -A 25 -Si nof77 0 -V 448   -b 64 -d b /home/allusers/Downloads/atlas3.10.1/build_vbubuntu"
make[1]: Entering directory `/home/allusers/Downloads/atlas3.10.1/build_vbubuntu'
cd /home/allusers/Downloads/atlas3.10.1/build_vbubuntu ; ./xprobe_comp -v 0 -o atlconf.txt -O 1 -A 25 -Si nof77 0 -V 448   -b 64 -d b /home/allusers/Downloads/atlas3.10.1/build_vbubuntu > config1.out
make[2]: gfortran: Command not found
make[2]: *** [IRunF77Comp] Error 127
make[2]: g77: Command not found
make[2]: *** [IRunF77Comp] Error 127
make[2]: f77: Command not found
make[2]: *** [IRunF77Comp] Error 127


Unable to find usable compiler for F77; abortingMake sure compilers are in your path, and specify good compilers to configure
(see INSTALL.txt or 'configure --help' for details)make[1]: *** [atlas_run] Error 8
make[1]: Leaving directory `/home/allusers/Downloads/atlas3.10.1/build_vbubuntu'
make: *** [IRun_comp] Error 2
ERROR 512 IN SYSCMND: 'make IRun_comp args="-v 0 -o atlconf.txt -O 1 -A 25 -Si nof77 0 -V 448   -b 64"'
mkdir src bin tune interfaces
mkdir: cannot create directory ‘src’: File exists
mkdir: cannot create directory ‘bin’: File exists
mkdir: cannot create directory ‘tune’: File exists
mkdir: cannot create directory ‘interfaces’: File exists
make: *** [make_subdirs] Error 1
make -f Make.top startup
make[1]: Entering directory `/home/allusers/Downloads/atlas3.10.1/build_vbubuntu'
Make.top:1: Make.inc: No such file or directory
Make.top:325: warning: overriding commands for target `/AtlasTest'
Make.top:76: warning: ignoring old commands for target `/AtlasTest'
make[1]: *** No rule to make target `Make.inc'.  Stop.
make[1]: Leaving directory `/home/allusers/Downloads/atlas3.10.1/build_vbubuntu'
make: *** [startup] Error 2
mv: cannot move ‘lapack-3.5.0’ to ‘../reference/lapack-3.5.0’: Directory not empty
mv: cannot stat ‘lib/Makefile’: No such file or directory
../configure: 450: ../configure: cannot create lib/Makefile: Directory nonexistent
../configure: 451: ../configure: cannot create lib/Makefile: Directory nonexistent
../configure: 452: ../configure: cannot create lib/Makefile: Directory nonexistent
../configure: 453: ../configure: cannot create lib/Makefile: Directory nonexistent
../configure: 509: ../configure: cannot create lib/Makefile: Directory nonexistent
DONE configure

Réponses:


12

La meilleure façon de créer la bibliothèque ATLAS personnalisée pour votre processeur particulier est de suivre les instructions de /usr/share/doc/libatlas3-base/README.Debian(également disponible pour une lecture en ligne ici ). Les instructions expliquent explicitement comment reconstruire le atlaspaquet source pour Debian / Ubuntu d'une manière qui vous donnera des paquets personnalisés qui peuvent être installés à la place des paquets fournis dans les dépôts officiels.

L'extrait pertinent de README.Debiandit:

Création de packages Atlas optimisés sur votre ARCH

La construction de vos propres packages optimisés d'Atlas est simple. Obtenez simplement les sources du paquet et ses dépendances de construction:

# apt-get source atlas
# apt-get build-dep atlas
# apt-get install devscripts

et tapez ce qui suit dans le sous-répertoire source de l'atlas:

# fakeroot debian/rules custom

il devrait produire un paquet appelé:

../libatlas3-base_*.deb

qui est optimisé pour l'architecture sur laquelle Atlas a été construit. Installez ensuite le package à l'aide de dpkg -i.


Après la dernière étape 'dpkg -i', comment compiler / lier avec CBLAS et CLAPACK d'ATLAS? Je n'ai pas d'ATLAS dans / usr / local. Quels arguments -I et -L dois-je passer à g ++? J'ai essayé 'g ++ main.cpp -I $ ~ / atlas-xxxx / include -L ~ / atlas-xxxx / build / atlas-base / lib / -lf77blas -lcblas -latlas', mais cela me donne '/ usr / bin / ld: impossible de trouver -lf77blas '. Merci.
Salmonstrikes

1
@Salmonstrikes Installez les packages libatlas-base-devet libatlas-devqui ont également été créés , et les bibliothèques sont installées pour être intégrées /usr/lib.
Mike Miller

1
Merci! Cela a fonctionné Pour référence future, pour obtenir le code à compiler, j'avais besoin: 1) d'utiliser des gardes externes "C" pour les deux 'cblas.h' et 'clapack.h' stackoverflow.com/questions/10786237/… 2) 'g ++ main.cpp -I / usr / include / atlas -lf77blas -lcblas -llapack_atlas '; pour une raison quelconque, «-llapack» seul ne fonctionne pas et j'avais besoin de «-llapack_atlas»
Salmonstrikes

3

On dirait que ce sont les dépendances dont il avait besoin, le processus de construction est maintenant en cours d'exécution. Ces choses ne sont jamais facilement documentées sous une belle forme de consommable.

Pour Ubuntu (gfortran, g77 et f77 respectivement):

sudo apt-get install gfortran f2c libcnf-dev

En outre, toute personne trouvant cette question peut trouver cette question d'utilisation liée au stackoverflow:

/programming/23876286/building-octave-from-source-did-atlas-get-included-properly-in-octaves-confi

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.