Edificio ATLAS (e successivamente Ottava con ATLAS)


9

Sto cercando di impostare ATLAS (in modo da poter successivamente compilare l'ottava con il supporto ATLAS).

Se ho ragione, devo ancora crearlo manualmente a causa delle ottimizzazioni specifiche dell'ambiente. Vedo un pacchetto per ATLAS, ma sembra che stia usando le opzioni di generazione generiche multipiattaforma (ad es. "Sarà lento").

Quindi, l'esecuzione dello script di configurazione come descritto nei documenti sembra andare male. Come sviluppatore Java non faccio mai bene a fare errori o errori in questi processi di compilazione. Mi mancano le dipendenze (in caso affermativo esiste una documentazione su ciò di cui ho bisogno)?

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

Risposte:


12

Il modo migliore per creare la libreria ATLAS personalizzata per il tuo particolare processore è seguire le istruzioni in /usr/share/doc/libatlas3-base/README.Debian(disponibili anche per la lettura online qui ). Le istruzioni spiegano esplicitamente come ricostruire il atlaspacchetto sorgente per Debian / Ubuntu in modo da offrire pacchetti personalizzati che possono essere installati al posto dei pacchetti forniti nei repository ufficiali.

Il relativo estratto da README.Debiandice:

Creazione di pacchetti Atlas ottimizzati sul tuo ARCH

Costruire i tuoi pacchetti ottimizzati di Atlas è semplice. Basta ottenere i sorgenti del pacchetto e le sue dipendenze di build:

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

e digitare quanto segue dal sottodir di origine dell'atlante:

# fakeroot debian/rules custom

dovrebbe produrre un pacchetto chiamato:

../libatlas3-base_*.deb

che è ottimizzato per l'architettura su cui è stato costruito Atlas. Quindi installare il pacchetto utilizzando dpkg -i.


Dopo l'ultimo passaggio 'dpkg -i', come faccio a compilare / collegare CBLAS e CLAPACK di ATLAS? Non ho alcun ATLAS in / usr / local. Quali argomenti -I e -L dovrei passare a g ++? Ho provato 'g ++ main.cpp -I $ ~ / atlas-xxxx / include -L ~ / atlas-xxxx / build / atlas-base / lib / -lf77blas -lcblas -latlas', ma mi dà '/ usr / bin / ld: impossibile trovare -lf77blas '. Grazie.
Salmonstrikes,

1
@Salmonstrikes Installa i pacchetti libatlas-base-deve libatlas-devche sono stati compilati e le librerie sono installate per la compilazione /usr/lib.
Mike Miller,

1
Grazie! Che ha lavorato per riferimento futuro, per ottenere il codice da compilare, avevo bisogno di: 1) per utilizzare extern guardie "C" per entrambi 'cblas.h' e 'clapack.h' stackoverflow.com/questions/10786237/... 2) 'g ++ main.cpp -I / usr / include / atlas -lf77blas -lcblas -llapack_atlas '; per qualche motivo '-llapack' da solo non funziona e avevo bisogno di '-llapack_atlas'
Salmonstrikes

3

Sembra che queste fossero le dipendenze di cui aveva bisogno, il processo di compilazione è ora in esecuzione. Queste cose non sono mai facilmente documentabili in una bella forma consumabile.

Per Ubuntu (rispettivamente gfortran, g77 e f77):

sudo apt-get install gfortran f2c libcnf-dev

Inoltre, chiunque trovi questa domanda può trovare questa relativa domanda d'uso dello stackoverflow:

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.