Pregunta

¿Alguien tiene experiencia en programación tanto para la Intel Math Kernel Library 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 la academia, por lo que el MKL no es tan caro. Pero me interesaría escuchar opiniones sobre: ??

  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 debo considerar?
¿Fue útil?

Solución

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 Estadística matemática / 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 usuarios activo al que puede recurrir para obtener ayuda u orientación. Aquí se publica una evaluación independiente de las dos bibliotecas: ( http://www.advancedclustering.com/company-blog/high-performance-linpack-on-xeon-5500-v-opteron-2400.html )

& # 8226; Shane Corder, Advanced Clustering, (también publicado por HPCWire: Benchmark Challenge: Nehalem Versus Istanbul): & # 8220; En nuestras pruebas recientes y a través de la experiencia del mundo real, hemos encontrado que los compiladores Intel y la Intel Intel Kernel Library (MKL) generalmente Proporcionar el mejor rendimiento. En lugar de conformarnos con el kit de herramientas de Intel, probamos varios compiladores, incluidos: Intel, compiladores GNU y Portland Group. También probamos varias bibliotecas de álgebra lineal, incluidas: MKL, AMD Core Math Library (ACML) y libGOTO de la Universidad de Texas. Todas las pruebas mostraron que podríamos lograr el mayor rendimiento al usar 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. & # 8221; [Las pruebas de referencia 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 un 50% más de núcleos]

Espero que esto ayude.

Otros consejos

De hecho, hay dos versiones de rutinas LAPACK en ACML. Las que no tienen subrayado (_) son las rutinas de la versión C, que como dijo Victor, no requieren matrices de espacio de trabajo y solo puede pasar valores en lugar de referencias para los parámetros. Sin embargo, los que tienen el guión bajo son solo rutinas vainilla de Fortran. Hacer un '' basurero / exportaciones '' en libacml_dll.dll y verás.

He usado AMCL para sus rutinas BLAS / LAPACK, por lo que esto probablemente no responderá 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 utilicé para matrices complejas no asimétricas densas, tanto para soluciones lineales como para cálculos de sistemas propios. Debe saber que las declaraciones de función no son idénticas a las rutinas de vainilla. Esto requirió una cantidad sustancial de macros de preprocesador para permitirme cambiar libremente entre las dos. En particular, todas las rutinas de LAPACK en AMCL no requieren arreglos de trabajo. Esta es una gran conveniencia si AMCL es la única biblioteca que usará.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top