22

有没有人有过英特尔数学内核库AMD 数学核心库的编程经验?我正在为高性能统计计算构建个人计算机,并且正在讨论要购买的组件。AMD Math Core 库的一个吸引力在于它是免费的,但我在学术界,所以 MKL 并不那么昂贵。但我很想听听以下方面的想法:

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

3 回答 3

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 与伊斯坦布尔):“在我们最近的测试中并通过现实世界的经验,我们发现英特尔编译器和英特尔数学核心函数库 (MKL) 通常提供最棒的表演。我们尝试了各种编译器,而不是仅仅使用英特尔的工具包,包括:英特尔、GNU 编译器和 Portland Group。我们还测试了各种线性代数库,包括:MKL、AMD 核心数学库 (ACML) 和德克萨斯大学的 libGOTO。所有测试都表明,在同时使用英特尔编译器和英特尔数学库时——甚至在 AMD 系统上——我们可以实现最高性能,因此将它们用作我们基准测试的基础。” [基准测试显示 4 核 Nehalem X5550 2.66GHz 在 74.0GFs 与 Istanbul 2435 2.6GHz 在 99.4GFs;

希望这可以帮助。

于 2009-10-30T23:36:30.980 回答
3

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

于 2010-06-21T19:45:53.360 回答
2

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

于 2009-10-29T18:22:55.233 回答