英特尔MKL与AMD数学核心库

时间:2009-10-29 16:22:22

标签: math optimization intel hpc amd-processor

是否有人有Intel Math Kernel LibraryAMD Math Core Library的编程经验?我正在构建一台用于高性能统计计算的个人计算机,并且正在讨论要购买的组件。 AMD数学核心库的吸引力在于它是免费的,但我在学术界,所以MKL并不昂贵。但是我有兴趣听到以下的想法:

  1. 哪个提供更好的API?
  2. 平均每美元提供更好的性能,包括许可和硬件成本。
  3. AMCL-GPU是我应该考虑的因素吗?

3 个答案:

答案 0 :(得分:12)

英特尔MKL和ACML具有类似的API,但MKL具有更丰富的支持功能,包括BLAS(和CBLAS)/ LAPACK / FFT /矢量和统计数学/稀疏直接和迭代求解器/稀疏BLAS等。英特尔MKL还针对英特尔和AMD处理器进行了优化,并拥有一个活跃的用户论坛,您可以寻求帮助或指导。这里发布了对这两个图书馆的独立评估:(http://www.advancedclustering.com/company-blog/high-performance-linpack-on-xeon-5500-v-opteron-2400.html

•Shane Corder,高级集群,(也由HPCWire承担:基准挑战:Nehalem Versus Istanbul):“在我们最近的测试和现实世界的经验中,我们发现了英特尔编译器和英特尔数学核心库(MKL)通常提供最佳性能。我们尝试了各种编译器,包括:英特尔,GNU编译器和波特兰集团,而不是仅仅使用英特尔的工具包。我们还测试了各种线性代数库,包括:MKL,AMD核心数学库(ACML)和德克萨斯大学的libGOTO。所有测试表明,当使用英特尔编译器和英特尔数学库时,即使在AMD系统上,我们也可以获得最高性能,因此将它们用作我们基准测试的基础。“[基准测试显示4核Nehalem X5550 2.66GHz,74.0GFs,伊斯坦布尔2435 2.6GHz,99.4GFs;尽管核心数增加了50%,但伊斯坦布尔仅增加了34%]

希望这有帮助。

答案 1 :(得分:3)

实际上,ACML中有两个版本的LAPACK例程。没有尾随下划线(_)的那些是C版本例程,正如Victor所说,不需要工作区数组,您只需传递值而不是参数的引用。然而,带有下划线的那些只是vanilla Fortran例程。在libacml_dll.dll上执行“dumpbin / exports”,你会看到。

答案 2 :(得分:2)

我已经将AMCL用于其BLAS / LAPACK例程,所以这可能无法解答您的问题,但我希望它对某些人有用。将它们与香草BLAS / LAPACK进行比较,在我的特定用例中,它们的性能是2-3倍。我将它用于密集非对称复数矩阵,用于线性求解和特征系统计算。您应该知道函数声明 与vanilla例程相同。这需要大量的预处理器宏,以允许我在两者之间自由切换。特别是AMCL中的所有LAPACK例程都不需要工作数组。如果AMCL是您将使用的唯一库,这是一个主要的便利。