Existe algum benefício em compilar o LAPACK a partir do código-fonte em vez de instalar o pacote pré-construído no Ubuntu?

13

Eu sei que o ATLAS é capaz de otimizar-se para a máquina na qual é compilado e, portanto, o máximo de benefícios é encontrado ao compilar a partir do código-fonte. Existe algum benefício em compilar o LAPACK a partir da fonte? Seria muito mais fácil instalar o pacote pré-construído.

OSE
fonte
Pode valer a pena tentar esta técnica para ver por que o tempo está sendo gasto. Descobri que, se estou trabalhando muito com matrizes não grandes, as rotinas da biblioteca passam mais da metade do tempo classificando seus sinalizadores de caracteres de entrada e outras classificações de entrada, para que você possa obter muita aceleração aumentando a biblioteca com algumas rotinas codificadas à mão bem escolhidas.
Mike Dunlavey

Respostas:

9

O OpenBlas é bastante rápido, então você pode vinculá-lo ao LAPACK. Você já tentou a versão pré-compilada do LAPACK / BLAS do seu fornecedor de CPU? Por exemplo, AMD ACML (gratuito) ou Intel MKL (gratuito no Linux para uso não comercial e não acadêmico)? Você simplesmente precisa descompactar e executar o arquivo de instalação.

Na minha opinião, a única vantagem de usar o ATLAS é quando você usa uma CPU incomum. Caso contrário, use o do fornecedor da CPU. Também existem as versões nVIDIA CUDA e AMD OpenCL disponíveis, que são realmente boas.

EDIT: lembre-se de que você sempre pode criar um pacote Ubuntu DEB a partir da fonte, o que geralmente é muito mais fácil do que compilar software a partir da fonte.

Miséria
fonte
Acho que vou seguir sua sugestão e instalar o MKL. Também obrigado pela dica sobre a criação de pacotes DEB, eu não sabia que isso era possível.
OSE
2
Lembre-se de que você precisa configurar o ld (vinculador de bibliotecas dinâmicas para encontrar essas bibliotecas). O BLAS e o LAPACK do Intel MKL estão no libmkl_rt.soarquivo normalmente vinculado usando:-L/opt/intel/mkl/lib/intel64 -lmkl_rt
Misery
2
É importante ressaltar que a licença não comercial da Intel se tornou cada vez mais restritiva a cada versão, a ponto de agora serem muito explícitas sobre o uso acadêmico não ser coberto por ela assim que você recebe algum dinheiro para sua pesquisa.
Christian Clason
Yest que vale a pena mencionar. No entanto, é possível testá-lo gratuitamente:] E se isso for útil, não é a coisa mais cara do mundo.
Misery
7

O pacote do repositório não é seguro para uso com o encadeamento devido à maneira como foi compilado. Eu relatei o bug no fórum Lapack , mas levará muito tempo para que as soluções alternativas ou soluções cheguem ao repositório. Se você mesmo compilar, não se esqueça de adicionar o "-frecursive" ao gfortran.

Victor Liu
fonte
6

Na minha experiência, a melhor maneira de usar blas / lapack em versões recentes do ubuntu é usar os openblas empacotados.

Quanto vale a pena, eu uso principalmente blas / lapack através de python numpy / scipy, e o uso de openblas acelera parte da álgebra linear em 200x vs. o padrão. Eu tentei usar o ATLAS personalizado, mas foi uma dor enorme e não deu muito mais aceleração do que openblas, mas eu poderia estar fazendo errado.

tosquiadeira
fonte