Apakah ada manfaat untuk mengkompilasi LAPACK dari sumber dibandingkan menginstal paket prebuilt dari Ubuntu?

13

Saya tahu bahwa ATLAS dapat mengoptimalkan dirinya untuk mesin yang dikompilasi dan dengan demikian manfaat maksimum dapat ditemukan dengan mengkompilasi dari sumber. Apakah ada manfaat untuk menyusun LAPACK dari sumber? Akan jauh lebih mudah untuk menginstal paket prebuilt.

OSE
sumber
Mungkin ada baiknya mencoba teknik ini untuk melihat mengapa waktu dihabiskan. Saya telah menemukan, jika saya bekerja banyak dengan matriks tidak besar, rutinitas perpustakaan menghabiskan lebih dari setengah waktu mereka mengklasifikasikan flag karakter input mereka, dan klasifikasi input lainnya, sehingga Anda mungkin mendapatkan banyak percepatan dengan menambah perpustakaan dengan beberapa rutin kode tangan yang dipilih dengan baik.
Mike Dunlavey

Jawaban:

9

OpenBlas cukup cepat, sehingga Anda dapat menautkannya ke LAPACK. Sudahkah Anda mencoba versi LAPACK / BLAS yang telah dikompilasi dari vendor CPU Anda? Misalnya AMD ACML (gratis) atau Intel MKL (gratis di linux untuk penggunaan non-komersial dan non-akademik)? Anda hanya perlu membongkar dan menjalankan file instal.

Menurut pendapat saya satu-satunya keuntungan menggunakan ATLAS adalah ketika Anda menggunakan CPU yang tidak biasa. Kalau tidak gunakan yang dari vendor CPU. Juga ada versi nVIDIA CUDA dan AMD OpenCL yang sangat bagus.

EDIT: ingatlah bahwa Anda selalu dapat membangun paket DEB Ubuntu dari sumber yang biasanya lebih mudah daripada mengkompilasi perangkat lunak dari sumber.

Penderitaan
sumber
Saya pikir saya akan pergi dengan saran Anda dan menginstal MKL. Juga terima kasih atas tip membangun paket DEB, saya tidak tahu itu mungkin.
OSE
2
Ingat bahwa Anda perlu mengonfigurasi ld (penghubung perpustakaan dinamis untuk dapat menemukan lib tersebut). BLAS dan LAPACK dari Intel MKL ada dalam libmkl_rt.sofile yang biasanya ditautkan menggunakan:-L/opt/intel/mkl/lib/intel64 -lmkl_rt
Misery
2
Orang harus menunjukkan bahwa lisensi nonkomersial Intel menjadi semakin terbatas pada setiap rilis, ke titik di mana mereka sekarang sangat eksplisit tentang penggunaan akademis yang tidak tercakup olehnya segera setelah Anda mendapatkan uang untuk penelitian Anda.
Christian Clason
Yest yang layak disebut. Namun seseorang dapat mengujinya secara gratis:] Dan jika terbukti bermanfaat, itu bukan hal yang paling mahal di dunia.
Misery
7

Paket repositori tidak aman untuk digunakan dengan threading karena cara itu dikompilasi. Saya melaporkan bug di forum Lapack , tetapi akan butuh waktu lama untuk solusi atau solusi untuk masuk ke dalam repositori. Jika Anda mengompilasinya sendiri, pastikan untuk menambahkan "-frecursive" ke gfortran.

Victor Liu
sumber
6

Dalam pengalaman saya, cara terbaik untuk menggunakan blas / lapack pada versi terbaru dari ubuntu adalah dengan menggunakan openblas yang dikemas.

Untuk apa nilainya, saya kebanyakan menggunakan blas / lapack melalui python numpy / scipy, dan menggunakan openblas mempercepat beberapa aljabar linier dengan seperti 200x vs default. Saya sudah mencoba menggunakan custom ATLAS, tetapi itu sangat menyakitkan dan tidak memberi banyak jika ada speedup vs openblas, tapi saya mungkin salah melakukannya.

alat pemotong
sumber