通过icc或gcc编译和链接mkl库之间有不同的性能吗?

时间:2016-05-06 04:47:56

标签: gcc compilation intel icc

我无法找到有关此主题的任何信息, 运行编译并与gcc或icc链接的程序时,运行时性能是否有所不同?

(我的假设是该程序在英特尔架构上运行)

1 个答案:

答案 0 :(得分:1)

由于MKL正式支持这两个编译器,并且它们链接了相同的库,例如libmkl_core.alibmkl_core.so,它们可以完成MKL的实际工作。 MKL操作的性能应该相同。但是,当然自己编写的代码可能会有所不同,因为它们是由不同的编译器编译的。

修改

MKL被设计为C库。大多数API都是预编译的,设计用于在大型输入数据上运行,这需要相对较长的运行时间。调用API的方式不会对性能产生太大影响。

有内联代码和帮助程序marcos通过。例如,mkl_direct_call.h包括用于小矩阵乘法的内联代码/ marco,小矩阵(大小约为20或更小)可以通过此代码获得性能改进。因此,当涉及此部分时,您可能会看到性能差异。有关详细信息,请参阅以下链接。

Improve Intel MKL Performance for Small Problems: The Use of MKL_DIRECT_CALL

Limitations of the Direct Call