是否有人有Intel Math Kernel Library和AMD Math Core Library的编程经验?我正在构建一台用于高性能统计计算的个人计算机,并且正在讨论要购买的组件。 AMD数学核心库的吸引力在于它是免费的,但我在学术界,所以MKL并不昂贵。但是我有兴趣听到以下的想法:
答案 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倍。我将它用于密集非对称复数矩阵,用于线性求解和特征系统计算。您应该知道函数声明