Question

Quelqu'un at-il de l'expérience en programmation pour la bibliothèque du noyau Math Intel et la bibliothèque AMD Math Core ? Je construis un ordinateur personnel pour les calculs statistiques de haute performance et je débatte des composants à acheter. L’appel de la bibliothèque AMD Math Core réside dans le fait qu’elle est gratuite, mais comme je suis dans les milieux universitaires, la MKL n’est pas si chère. Mais j'aimerais connaître votre avis sur:

  1. Qui fournit une meilleure API?
  2. Qui offre de meilleures performances, en moyenne, par dollar, coûts de licence et de matériel compris.
  3. Le AMCL-GPU est-il un facteur à prendre en compte?
Était-ce utile?

La solution

Intel MKL et ACML ont des API similaires, mais MKL possède un ensemble plus riche de fonctionnalités prises en charge, notamment BLAS (et CBLAS) / LAPACK / FFTs / Vector et Statistical Math / Solveurs directs et itératifs / BLAS clairsemés, etc. Intel MKL est également optimisé pour les processeurs Intel et AMD et dispose d'un forum d'utilisateurs actif auquel vous pouvez vous adresser pour obtenir de l'aide ou des conseils. Une évaluation indépendante des deux bibliothèques est affichée ici: ( http://www.advancedclustering.com/company-blog/high-performance-linpack-on-xeon-5500-v-opteron-2400.html )

& # 8226; Shane Corder, Advanced Clustering, (également réalisé par HPCWire: Benchmark Challenge: Nehalem Versus Istanbul): & # 8220; Lors de nos récents tests et de l'expérience du monde réel, nous avons constaté que les compilateurs d'Intel et la bibliothèque de noyaux de Mathématiques Intel (MKL) sont généralement utilisés. fournir la meilleure performance. Au lieu de nous contenter de la boîte à outils d'Intel, nous avons essayé divers compilateurs, notamment: Intel, les compilateurs GNU et le groupe Portland. Nous avons également testé diverses bibliothèques d'algèbre linéaire, notamment: MKL, la bibliothèque mathématique de base d'AMD (ACML) et libGOTO de l'Université du Texas. Tous les tests ont montré que nous pouvions atteindre les performances les plus élevées avec les compilateurs Intel et la bibliothèque de mathématiques Intel, même sur le système AMD. Ils ont donc été utilisés comme base de nos tests de performance. [L’essai comparatif a montré que le Nehalem X5550 à 4 cœurs 2,66 GHz à 74,0 GF était à 4 cœurs vs 2435 2,6 GHz à Istanbul à 99,4 GF; Istanbul seulement 34% plus rapide malgré 50% de cœurs supplémentaires]

J'espère que cela vous aidera.

Autres conseils

En fait, il existe deux versions des routines LAPACK dans ACML. Celles qui ne comportent pas de tiret bas (_) sont les routines de la version C qui, comme l’a dit Victor, ne nécessitent pas de tableaux d’espace de travail et vous pouvez simplement passer des valeurs au lieu de références pour les paramètres. Ceux qui sont soulignés ne sont toutefois que des routines Fortran vanilleuses. Faites un " dumpbin / exports " sur libacml_dll.dll et vous verrez.

J'ai utilisé AMCL pour ses routines BLAS / LAPACK, donc cela ne répondra probablement pas à votre question, mais j'espère que c'est utile pour quelqu'un. En les comparant à la vanille BLAS / LAPACK, leurs performances étaient de 2 à 3 meilleures dans mon cas d'utilisation particulier. Je l'ai utilisé pour les matrices complexes non symétriques denses, aussi bien pour les solutions linéaires que pour les calculs de systèmes propres. Vous devez savoir que les déclarations de fonction ne sont pas identiques aux routines vanilla. Cela a nécessité une quantité importante de macros de préprocesseur pour me permettre de basculer librement entre les deux. En particulier, toutes les routines LAPACK dans AMCL ne nécessitent pas de tableaux de travail. C’est un avantage important si AMCL est la seule bibliothèque que vous utiliserez.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top