Pergunta

Alguém tem experiência em programação tanto para Intel Math Kernel Biblioteca o e AMD Math Núcleo Biblioteca ? Estou construindo um computador pessoal para cálculos estatísticos de alta performance e estou debatendo sobre os componentes para comprar. Um apelo da biblioteca AMD Math Core é que ele é livre, mas estou na academia para que o MKL que não é caro. Mas eu estaria interessado em pensamentos ouvindo em:

  1. O que proporciona uma melhor API?
  2. que proporciona melhor desempenho, em média, por cada dólar, incluindo os custos de licenciamento e hardware.
  3. O AMCL-GPU um fator que eu deveria considerar?
Foi útil?

Solução

Intel MKL e ACML têm APIs semelhantes mas MKL tem um conjunto mais completo de funcionalidade suportada incluindo BLAS (e CBLAS) / LAPACK / FFTs / vector e estatística matemática / Dispersa agentes de resolução directos e iterativos / Dispersa BLAS, e assim por diante. Intel MKL também é otimizado para ambos os processadores Intel e AMD e tem um fórum de usuários ativos, você pode pedir ajuda ou orientação. Uma avaliação independente das duas bibliotecas é postado aqui: ( http://www.advancedclustering.com/company-blog/high-performance-linpack-on-xeon-5500-v-opteron-2400.html )

• Shane Corder, Advanced Clustering, (também realizado por HPCWire: Referência Desafio: Nehalem Versus Istambul): “Em nossa recente teste e através da experiência do mundo real, nós descobrimos que os compiladores da Intel e Intel Math Kernel Library (MKL) geralmente oferecem o melhor desempenho. Em vez de apenas se decidir sobre kit de ferramentas da Intel tentamos vários compiladores incluindo: Intel, compiladores GNU, e Grupo de Portland. Nós também testamos várias bibliotecas de álgebra linear, incluindo: MKL, AMD Núcleo Math Library (ACML) e libGOTO da Universidade de Texas. Todos os testes mostraram que poderíamos alcançar o mais alto desempenho ao utilizar tanto Biblioteca da Intel compiladores e Intel Math - mesmo no sistema AMD - assim que estes lhes foram usados ??como a base dos nossos benchmarks “. [O teste mostrou Referencial 4-core Nehalem X5550 2,66 GHz na 74.0GFs vs Istambul 2435 2,6 GHz no 99.4GFs; Istambul apenas 34% mais rápido, apesar de 50% a mais núcleos]

Espero que isso ajude.

Outras dicas

Na verdade, existem duas versões de rotinas LAPACK em ACML. Os sem arrastando sublinhado (_) são as rotinas C-versão, que, como disse Victor, não necessitam de matrizes de espaço de trabalho e você pode apenas passar valores em vez de referências para os parâmetros. Aqueles com o sublinhado, porém, são apenas baunilha rotinas Fortran. Fazer um "dumpbin / exportações" na libacml_dll.dll e você verá.

Eu tenho usado AMCL por suas rotinas BLAS / LAPACK, então isso provavelmente não vai responder à sua pergunta, mas eu espero que seja útil para alguém. Comparando-os com baunilha BLAS / LAPACK, seu desempenho foi um factor de 2-3 melhor no meu caso de uso particular. I utilizado para as matrizes complexas não simétricos densas, para ambos os resolve lineares e cálculos Eigensystem. Você deve saber que as declarações de função são não idênticas às rotinas de baunilha. Isso exigiu uma quantidade substancial de macros de pré-processamento para me permitir alternar livremente entre os dois. Em particular, todas as rotinas LAPACK em AMCL não necessitam de matrizes de trabalho. Esta é uma grande conveniência se AMCL é a única biblioteca que você vai usar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top