Membangun ATLAS (dan kemudian Octave dengan ATLAS)

9

Saya mencoba mengatur ATLAS (jadi nanti saya bisa mengkompilasi oktaf dengan dukungan ATLAS).

Jika saya benar, saya masih perlu membuat ini secara manual karena optimasi khusus lingkungan. Saya memang melihat paket untuk ATLAS, tetapi sepertinya itu menggunakan opsi build generik cross platform (misalnya "itu akan lambat").

Jadi, menjalankan skrip configure seperti yang dijelaskan dalam dokumen tampaknya berjalan buruk. Sebagai pengembang java, saya tidak pernah berhasil membuat kesalahan besar dalam proses pembangunan ini. Apakah saya kehilangan dependensi (jika ada apakah ada dokumentasi tentang apa yang saya butuhkan)?

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
David Parks
sumber

Jawaban:

12

Cara terbaik untuk membangun pustaka ATLAS yang dikustomisasi untuk prosesor khusus Anda adalah dengan mengikuti instruksi di /usr/share/doc/libatlas3-base/README.Debian(juga tersedia untuk membaca online di sini ). Instruksi memberitahu secara eksplisit bagaimana membangun kembali atlaspaket sumber untuk Debian / Ubuntu dengan cara yang akan memberi Anda paket yang dibuat khusus yang dapat diinstal sebagai pengganti paket yang disediakan di repositori resmi.

Kutipan yang relevan dari README.Debianmengatakan:

Membangun Paket Atlas yang Dioptimalkan di ARCH Anda

Membangun paket Atlas Anda yang dioptimalkan sendiri sangatlah mudah. Dapatkan saja sumber paket dan dependensinya:

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

dan ketik berikut ini dari subdir sumber atlas:

# fakeroot debian/rules custom

itu harus menghasilkan paket yang disebut:

../libatlas3-base_*.deb

yang dioptimalkan untuk arsitektur Atlas telah dibangun. Kemudian instal paket menggunakan dpkg -i.

Mike Miller
sumber
Setelah langkah 'dpkg -i' terakhir, bagaimana cara mengkompilasi / menghubungkan CBLAS dan CLAPACK ATLAS? Saya tidak punya ATLAS di / usr / local. Apa argumen -I dan -L yang harus saya sampaikan ke g ++? Saya mencoba 'g ++ main.cpp -I $ ~ / atlas-xxxx / include -L ~ / atlas-xxxx / build / atlas-base / lib / -lf77blas -lcblas -latlas', tapi itu memberi saya '/ usr / bin / ld: tidak dapat menemukan -lf77blas '. Terima kasih.
Salmonstrikes
1
@Salmonstrikes Instal libatlas-base-devdan libatlas-devpaket yang juga dibangun, dan perpustakaan diinstal untuk membangun /usr/lib.
Mike Miller
1
Terima kasih! Itu bekerja Untuk referensi di masa mendatang, untuk mendapatkan kode untuk dikompilasi, saya membutuhkan: 1) untuk menggunakan penjaga "C" eksternal untuk 'cblas.h' dan 'clapack.h' stackoverflow.com/questions/10786237/… 2) 'g ++ main.cpp -I / usr / include / atlas -lf77blas -lcblas -llapack_atlas '; untuk beberapa alasan '-lapack' saja tidak berfungsi dan saya membutuhkan '-lapack_atlas'
Salmonstrikes
3

Sepertinya ini adalah dependensi yang dibutuhkan, proses build sekarang berjalan. Hal-hal ini tidak pernah dengan mudah didokumentasikan dalam bentuk konsumsi yang bagus.

Untuk Ubuntu (masing-masing gfortran, g77, dan f77):

sudo apt-get install gfortran f2c libcnf-dev

Juga, siapa pun yang menemukan pertanyaan ini dapat menemukan masalah penggunaan stackoverflow terkait ini:

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

David Parks
sumber