Ich weiß, dass ATLAS in der Lage ist, sich für die Maschine zu optimieren, auf der es kompiliert wird, und somit maximale Vorteile durch das Kompilieren aus dem Quellcode erzielt. Hat das Kompilieren von LAPACK aus dem Quellcode einen Vorteil? Es wäre viel einfacher, nur das vorgefertigte Paket zu installieren.
performance
lapack
OSE
quelle
quelle
Antworten:
OpenBlas ist ziemlich schnell, so dass Sie es mit LAPACK verknüpfen können. Haben Sie eine vorkompilierte Version von LAPACK / BLAS von Ihrem CPU-Hersteller ausprobiert? Zum Beispiel AMD ACML (kostenlos) oder Intel MKL (kostenlos unter Linux für nicht kommerzielle und nicht akademische Zwecke)? Sie müssen lediglich die Installationsdatei entpacken und ausführen.
Meiner Meinung nach ist der einzige Vorteil der Verwendung von ATLAS, wenn Sie eine ungewöhnliche CPU verwenden. Verwenden Sie andernfalls den vom CPU-Hersteller. Es gibt auch nVIDIA CUDA und AMD OpenCL Versionen, die wirklich rocken.
BEARBEITEN: Denken Sie daran, dass Sie immer ein Ubuntu DEB-Paket aus dem Quellcode erstellen können, was normalerweise viel einfacher ist als das Kompilieren von Software aus dem Quellcode.
quelle
libmkl_rt.so
Datei normalerweise verknüpft mit:-L/opt/intel/mkl/lib/intel64 -lmkl_rt
Das Repository-Paket kann aufgrund der Kompilierung nicht sicher mit Threading verwendet werden. Ich habe den Fehler im Lapack-Forum gemeldet , aber es wird lange dauern , bis Problemumgehungen oder Lösungen in das Repository gelangen. Wenn Sie es selbst kompilieren, müssen Sie gfortran das "-frecursive" hinzufügen.
quelle
Meiner Erfahrung nach ist die Verwendung von blas / lapack in den neuesten Ubuntu-Versionen die Verwendung der Openblas-Pakete.
Für das, was es wert ist, verwende ich meistens Blas / Lapack durch Python Numpy / Scipy, und die Verwendung von Openblas beschleunigt einen Teil der linearen Algebra um das 200-fache im Vergleich zur Standardeinstellung. Ich habe versucht, benutzerdefiniertes ATLAS zu verwenden, aber es war sehr schmerzhaft und hat nicht viel gegeben, wenn es zu einer Beschleunigung im Vergleich zu openblas kam, aber ich hätte es möglicherweise falsch gemacht.
quelle