Intel MKL vs. AMD Math Core Library
optimization hpc (3)
De hecho, hay dos versiones de rutinas LAPACK en ACML. Las que no tienen un guión bajo (_) son las rutinas de la versión C, que, como dijo Victor, no requieren matrices de espacios de trabajo y solo puede pasar valores en lugar de referencias para los parámetros. Los que tienen el guión bajo, sin embargo, son sólo rutinas de vainilla Fortran. Haz un "dumpbin / exports" en libacml_dll.dll y lo verás.
¿Alguien tiene experiencia en programación tanto para la biblioteca Intel Math Kernel como para la 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. Un atractivo de la biblioteca AMD Math Core es que es gratis, pero estoy en el mundo académico, por lo que el MKL no es tan caro. Pero me gustaría escuchar pensamientos sobre:
- ¿Cuál proporciona una mejor API?
- Lo que proporciona un mejor rendimiento, en promedio, por dólar, incluidos los costos de licencias y hardware.
- ¿La AMCL-GPU un factor que debería considerar?
He usado AMCL para sus rutinas BLAS / LAPACK, por lo que probablemente esto no responda a tu 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 utilicé para matrices complejas densas no simétricas, tanto para soluciones lineales como para cálculos de sistemas electrónicos. Debe saber que las declaraciones de funciones no son idénticas a las rutinas de vainilla. Esto requería una cantidad sustancial de macros de preprocesador que me permitieran cambiar libremente entre los dos. En particular, todas las rutinas de LAPACK en AMCL no requieren matrices de trabajo. Esta es una gran conveniencia si AMCL es la única biblioteca que utilizará.
Intel MKL y ACML tienen API similares, pero MKL tiene un conjunto más rico de funcionalidades compatibles que incluyen BLAS (y CBLAS) / LAPACK / FFTs / Vector y Matemáticas estadísticas / Solucionadores directos e iterativos dispersos / BLAS dispersos, etc. Intel MKL también está optimizado para procesadores Intel y AMD y tiene un foro de usuarios 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 en la experiencia del mundo real, hemos encontrado que los compiladores de Intel y la Biblioteca del núcleo de Intel Math Mejor presentación. En lugar de conformarnos con el kit de herramientas de Intel, probamos varios compiladores, entre ellos: Intel, compiladores 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 al utilizar tanto los compiladores Intel como la biblioteca matemática Intel, incluso en el sistema AMD, por lo que se utilizaron como base de nuestros puntos de referencia". [Las pruebas comparativas mostraron 4 núcleos Nehalem X5550 2.66GHz a 74.0GFs vs. Estambul 2435 2.6GHz a 99.4GFs; Estambul solo un 34% más rápido a pesar de un 50% más de núcleos]
Espero que esto ayude.