¿Hay algún beneficio en compilar LAPACK desde la fuente en lugar de instalar el paquete precompilado desde Ubuntu?

13

Sé que ATLAS puede optimizarse para la máquina en la que se compila y, por lo tanto, se obtienen los máximos beneficios compilando desde la fuente. ¿Hay algún beneficio en compilar LAPACK desde la fuente? Sería mucho más fácil instalar el paquete preconstruido.

OSE
fuente
Puede valer la pena probar esta técnica para ver por qué se está gastando el tiempo. Descubrí que, si estoy trabajando mucho con matrices no grandes, las rutinas de la biblioteca pasan más de la mitad de su tiempo clasificando sus banderas de caracteres de entrada y otra clasificación de entrada, por lo que puede aumentar mucho la velocidad al aumentar la biblioteca con algunas rutinas codificadas a mano bien elegidas.
Mike Dunlavey

Respuestas:

9

OpenBlas es bastante rápido, por lo que puede vincularlo a LAPACK. ¿Has probado la versión precompilada de LAPACK / BLAS de tu proveedor de CPU? Por ejemplo, AMD ACML (gratis) o Intel MKL (gratis en Linux para uso no comercial y no académico). Simplemente necesita descomprimir y ejecutar el archivo de instalación.

En mi opinión, la única ventaja de usar ATLAS es cuando usas alguna CPU inusual. De lo contrario, use el del proveedor de CPU. También hay versiones de nVIDIA CUDA y AMD OpenCL disponibles que realmente son geniales.

EDITAR: recuerde que siempre puede construir un paquete Ubuntu DEB desde la fuente, que generalmente es mucho más fácil que compilar software desde la fuente.

Miseria
fuente
Creo que voy a seguir con su sugerencia e instalar MKL. También gracias por el consejo sobre la construcción de paquetes DEB, no sabía que era posible.
OSE
2
Recuerde que debe configurar ld (enlazador de bibliotecas dinámicas para poder encontrar esas bibliotecas). BLAS y LAPACK de Intel MKL está en el libmkl_rt.soarchivo generalmente vinculado mediante:-L/opt/intel/mkl/lib/intel64 -lmkl_rt
Misery
2
Uno debería señalar que la licencia no comercial de Intel se ha vuelto cada vez más restrictiva con cada lanzamiento, hasta el punto de que ahora son muy explícitos sobre el uso académico que no está cubierto tan pronto como obtiene dinero para su investigación.
Christian Clason
Yest que vale la pena mencionar. Sin embargo, uno puede probarlo gratis:] Y si resulta útil, no es la cosa más cara del mundo.
Miseria
7

El paquete de repositorio no es seguro de usar con subprocesos debido a la forma en que se compiló. Informé del error en el foro de Lapack , pero las soluciones o soluciones tardarán mucho tiempo en llegar al repositorio. Si lo compila usted mismo, asegúrese de agregar el "-frecursivo" a gfortran.

Victor Liu
fuente
6

En mi experiencia, la mejor manera de usar blas / lapack en versiones recientes de ubuntu es usar el paquete openblas.

Para lo que vale, utilizo principalmente blas / lapack a través de python numpy / scipy, y el uso de openblas acelera parte del álgebra lineal como 200x en comparación con el valor predeterminado. Intenté usar ATLAS personalizado, pero fue un gran dolor y no me dio mucha aceleración en comparación con openblas, pero podría haberlo estado haciendo mal.

clíper
fuente