2009-10-29 39 views
20

¿Alguien tiene experiencia en programación tanto para el Intel Math Kernel Library como para el AMD Math Core Library? Estoy construyendo una computadora personal para cálculos estadísticos de alto rendimiento y estoy debatiendo sobre los componentes para comprar. Una apelación de la biblioteca AMD Math Core es que es gratuita, pero estoy en la academia, por lo que el MKL no es tan caro. Pero me interesaría escuchar los pensamientos sobre: ​​Intel MKL vs. AMD Math Core Library

  1. ¿Qué proporciona una mejor API?
  2. Que proporciona un mejor rendimiento, en promedio, por dólar, incluidos los costos de licencias y hardware.
  3. ¿Es el AMCL-GPU un factor que debería considerar?
+0

Me pregunto si hay un truco para hacer que MKL funcione en procesadores AMD. – Royi

+0

@Drazick Entiendo que MKL también funciona con procesadores AMD, con optimizaciones y todo. – becko

Respuesta

9

Intel MKL y ACML tienen API similares, pero MKL tiene un conjunto más rico de funcionalidades compatibles que incluyen BLAS (y CBLAS)/LAPACK/FFT/Vector y Statistical Math/Sparse solucionadores directos e iterativos/Sparse BLAS, y así sucesivamente. Intel MKL también está optimizado para procesadores Intel y AMD y tiene un foro de usuario activo al que puede recurrir para obtener ayuda u orientación. Una evaluación independiente de las dos bibliotecas se publica aquí: (http://www.advancedclustering.com/company-blog/high-performance-linpack-on-xeon-5500-v-opteron-2400.html)

• Shane Corder, Advanced Clustering, (también realizado por HPCWire: Benchmark Challenge: Nehalem Versus Istanbul): "En nuestras pruebas recientes y a través de la experiencia real, hemos encontrado que los compiladores de Intel y la biblioteca de Intel Math Kernel (MKL) suelen proporcionar el mejor rendimiento. En lugar de simplemente conformarnos con el kit de herramientas de Intel, probamos varios compiladores que incluyen: Intel, compiladores de GNU y Portland Group. También probamos varias bibliotecas de álgebra lineal, que incluyen: MKL, AMD Core Math Library (ACML) y libGOTO de la Universidad de Texas. Todas las pruebas demostraron que podíamos lograr el máximo rendimiento cuando utilizábamos los compiladores Intel y la biblioteca matemática Intel, incluso en el sistema AMD, por lo que estos se usaron como base de nuestros puntos de referencia ". [Las pruebas comparativas mostraron 4 núcleos Nehalem X5550 2.66GHz a 74.0GFs frente a Estambul 2435 2.6GHz a 99.4GFs; Estambul solo un 34% más rápido a pesar de tener un 50% más de núcleos]

Espero que esto ayude.

2

He usado AMCL para sus rutinas BLAS/LAPACK, por lo que probablemente no responda a su pregunta, pero espero que sea útil para alguien. Comparándolos con BLAS/LAPACK de vainilla, su rendimiento fue un factor de 2-3 mejor en mi caso de uso particular. Lo usé para matrices complejas densas no simétricas, tanto para soluciones lineales como para cálculos de sistemas eigens. Debe saber que las declaraciones de función son no idénticas a las rutinas de vanilla. Esto requirió una cantidad sustancial de macros de preprocesador para permitirme cambiar libremente entre los dos. En particular, todas las rutinas LAPACK en AMCL no requieren matrices de trabajo. Esta es una gran ventaja si AMCL es la única biblioteca que usará.

3

De hecho, hay dos versiones de rutinas LAPACK en ACML. Los que no tienen el guión bajo final (_) son las rutinas de la versión C, que como dijo Víctor, no requieren matrices de espacios de trabajo y usted puede simplemente pasar valores en lugar de referencias para los parámetros. Sin embargo, los que tienen el guión bajo son rutinas vanas de Fortran. Haga un "dumpbin/exports" en libacml_dll.dll y verá.

Cuestiones relacionadas