Xây dựng ATLAS (và sau đó là Octave w / ATLAS)


9

Tôi đang cố gắng thiết lập ATLAS (để sau này tôi có thể biên dịch quãng tám với sự hỗ trợ của ATLAS).

Nếu tôi đúng, tôi vẫn cần xây dựng thủ công do tối ưu hóa môi trường cụ thể. Tôi thấy một gói cho ATLAS, nhưng có vẻ như nó sử dụng các tùy chọn xây dựng chung đa nền tảng (ví dụ: "nó sẽ chậm").

Vì vậy, việc chạy tập lệnh cấu hình như được mô tả trong các tài liệu dường như rất kém. Là một nhà phát triển java, tôi không bao giờ làm tốt việc tạo ra các đầu hoặc các lỗi trong các quy trình xây dựng này. Tôi có bị thiếu phụ thuộc không (nếu có thì có tài liệu nào về những gì tôi cần không)?

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

Câu trả lời:


12

Cách tốt nhất để xây dựng thư viện ATLAS được tùy chỉnh cho bộ xử lý cụ thể của bạn là làm theo các hướng dẫn trong /usr/share/doc/libatlas3-base/README.Debian(cũng có sẵn để đọc trực tuyến tại đây ). Các hướng dẫn cho biết rõ cách xây dựng lại atlasgói nguồn cho Debian / Ubuntu theo cách sẽ cung cấp cho bạn các gói được tạo tùy chỉnh có thể được cài đặt thay cho các gói được cung cấp trong kho chính thức.

Đoạn trích liên quan từ README.Debiannói:

Xây dựng các gói Atlas được tối ưu hóa trên ARCH của bạn

Xây dựng các gói tối ưu hóa của riêng bạn là đơn giản. Chỉ cần lấy các nguồn của gói và các phụ thuộc xây dựng của nó:

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

và gõ như sau từ thư mục con nguồn atlas:

# fakeroot debian/rules custom

cần tạo ra một gói gọi là:

../libatlas3-base_*.deb

được tối ưu hóa cho kiến ​​trúc Atlas đã được xây dựng trên. Sau đó cài đặt gói bằng cách sử dụng dpkg -i.


Sau bước 'dpkg -i' cuối cùng, làm cách nào để tôi biên dịch / liên kết với ATLAS 'CBLAS và CLAPACK? Tôi không có bất kỳ ATLAS nào trong / usr / local. Tôi nên chuyển các đối số -I và -L cho g ++? Tôi đã thử 'g ++ main.cpp -I $ ~ / atlas-xxxx / bao gồm -L ~ / atlas-xxxx / build / atlas-base / lib / -lf77blas -lcblas -latlas', nhưng nó mang lại cho tôi '/ usr / bin / ld: không thể tìm thấy -lf77blas '. Cảm ơn.
Salmonstrikes

1
@Salmonstrikes Cài đặt libatlas-base-devlibatlas-devcác gói cũng được xây dựng và các thư viện được cài đặt để xây dựng /usr/lib.
Mike Miller

1
Cảm ơn! Điều đó có hiệu quả Để tham khảo trong tương lai, để lấy mã để biên dịch, tôi cần: 1) sử dụng các bộ bảo vệ "C" bên ngoài cho cả 'cblas.h' và 'clapack.h' stackoverflow.com/questions/10786237/ tựa 2) 'g ++ main.cpp -I / usr / bao gồm / atlas -lf77blas -lcblas -llapack_atlas '; vì một số lý do, một mình '-llapack' không hoạt động và tôi cần '-llapack_atlas'
Salmonstrikes

3

Có vẻ như đây là những phụ thuộc cần thiết, quá trình xây dựng hiện đang chạy. Những điều này không bao giờ chỉ là tài liệu dễ dàng trong một hình thức tiêu thụ tốt đẹp.

Đối với Ubuntu (tương ứng gfortran, g77 và f77):

sudo apt-get install gfortran f2c libcnf-dev

Ngoài ra, bất cứ ai tìm thấy câu hỏi này đều có thể tìm thấy câu hỏi sử dụng stackoverflow liên quan này:

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

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.